goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

MATLAB Simulink Stateflow

Fachkräfte:
Testingenieur (w/m) Testframework für Simulink-basierte Echtzeitanwendungen
Pflege des MATLAB/Simulink-Testframeworks, Spezifizieren von Testkriterien, Testfällen und Testszenarien
dSPACE GmbH - Paderborn

Softwareentwickler MATLAB/Simulink (w/m)
Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLink
dSPACE GmbH - Paderborn

Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Professur für Mathematik und ein technisches Grundlagenfach
Vertretung des Lehrgebiets in Lehre und anwendungsbezogener Forschung
HAW Ingolstadt - Ingolstadt

Entwicklungsingenieur/-in Systemengineering - Software - Landmaschinengetriebe
Anforderungsmanagement, Softwareentwicklung, Systemanalysen
ZF Friedrichshafen AG - Friedrichshafen

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Zeiten aus Vektoren berechnen

 

Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 15:39     Titel: Zeiten aus Vektoren berechnen
  Antworten mit Zitat      
Hallo,

mein Problem ist folgendes: Habe 2 Vektoren gegeben. Vektor A enthält Werte, Vektor B enthält zu den Werte die entsprechenden Zeiten. Zusätzlich gegeben ist eine obere Schranke und eine untere Schranke. Geplottet ergeben beide Vektoren eine oszillierende Funktion, welche über die obere und untere Schranke sich hinausbewegt und wieder zurück. Dies geschieht extrem oft. Wie kann ich nun die Gesamtzeit herausbekommen, wie lang die Kurve oberhalb der oberen Schranke war und die Gesamtzeit, die die Kurve unterhalb der unteren Schranke war?

Vielen Dank im Voraus!

Carmen


Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 03.02.2012, 15:43     Titel:
  Antworten mit Zitat      
naja wenn der abstand zwischen den messungen immer gleich groß ist kannst du ja einfach zählen wie viele über bzw unter der schranke waren.
Private Nachricht senden Benutzer-Profile anzeigen
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 15:49     Titel:
  Antworten mit Zitat      
So einfach ist das leider nicht.

A=[2;2.24;2.36;2.55;2.12;1.93]
B=[5.5;5.6;5.7;5.8;5.9;5.10]

obere Schranke beispielsweise y=2 (B ist die x-Achse). Die Kurve kommt ja in unregelmäßigen Abständen über die Schranken und ich kann nicht einfach die Zeiten addieren.
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 03.02.2012, 15:52     Titel:
  Antworten mit Zitat      
anaja wenn die obere schranke 2 ist und der abstand immer 0.1 wie ich das sehe und 4 werte über 2 liegen würde ich sagen das 0.4 die antwort ist ^^ in welchem format die zeit allerdings bei dir vorliegt weis ich nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 15:55     Titel:
  Antworten mit Zitat      
anbei der Plot als Beispiel.

1.png
 Beschreibung:

Download
 Dateiname:  1.png
 Dateigröße:  9.63 KB
 Heruntergeladen:  4 mal
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 15:58     Titel:
  Antworten mit Zitat      
Bin leider eine blutige Anfängerin in Matlab und habe keine Ahnung, wie ich dies Programmieren sollte. Hoffe, dass Ihr mir hier weiterhelfen könnt.

Carmen
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 03.02.2012, 16:01     Titel:
  Antworten mit Zitat      
meine antwort belibt die gleiche ^^
Code:

o=3.5 %obere schranke
u=-3.5%untere schranke
dt=0.1 %zeitabstand zwischen den messungen
OT=sum(A>o)*dt
UT=sum(A<u)*dt
Private Nachricht senden Benutzer-Profile anzeigen
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 16:21     Titel:
  Antworten mit Zitat      
Genau ist dies aber nicht. Zwischen den einzelnen Punkten wird doch beim polten interpoliert. Nehmen wir an, ein Wert liegt oberhalb der Schranken und zwei Werte liegen darunter (Dreieck). An der Spitze vom Dreieck liegt der Punkt oberhalb der Schranke. Wie kann ich dann die Zeit berechnen, wo die Kurve oberhalb der Schranke liegt? Man weiss ja nicht genau ob 1*dt ist, da man nicht mehr Werte hat. Wie muss man mit so etwas umgehen?
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 03.02.2012, 16:37     Titel:
  Antworten mit Zitat      
wenn du willst kannst du dir ja mit interp1 noch werte interpolieren bis es dir genaugenug ist.100% genau bekommst es ja nie hin weil dein signal nicht kontinuirlich ist Smile man hat ja immer ne abtastrate. manche zeitabschnitte bewertest du zu groß und manche zu klein. wie genau die methode ist is dann en sache der fehlerabschätzung. mit anderen worten. du kennst die werte zwischen deinen messungen nicht. von daher kannst du auch nicht urteilen ob die methode genau ist oder sehr ungenau. aber ich denke bei genügend messwerten wird schon ein halbwegs genaues ergebniss rauskommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 16:53     Titel:
  Antworten mit Zitat      
Da hast Du recht! Wie füge ich "interp1" in obigen Code ein?
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 03.02.2012, 17:00     Titel:
  Antworten mit Zitat      
Code:


x und y hast du schon. jetzt musst du dir nur noch ein xx generieren also eine vektor mit ner höheren zeitauflösung und dann bekommst yy raus.
bei den beispielen get das recht gut hervor. und dann wärtest du halt dein interpoliertes datenmaterial aus und benutzt da als multiplikator halt den neuen zeitunterschied
Private Nachricht senden Benutzer-Profile anzeigen
 
Carmen_27
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2012, 17:39     Titel:
  Antworten mit Zitat      
Vielen Dank!
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.