Hallo, Im Anhang findet man ein Bild. Wie kann man den X_Achse-Wert(Zeit) in Simulink auslesen,wenn der größte Y_Achse-Wert auftritt? Also, interessiere mich den blauen Punkt im Diagram.Zu dieser Zeit ist der Y-Wert max. Gibt's einen Block in Simulink, der das tut? Danke im Voraus. JEL
Hi, soll das eine Echtzeit Simulation werden, oder simulierst du so schnell wie möglicht? Kannst du das Simulierte speichern (z.B. mit dem scope oder dem to workspace block)? Wenn ja ist das doch einfach nur das Maximum. Die Zeit steht sogar automatisch mit in dem gespeicherten Vektor. Wenn du nicht speichern kannst, musst du eine embedded matlab function oder sowas benutzen und immer den aktuellen Wert mit dem davor vergleichen. Ist der aktuelle größer, könnte dies das Maximum sein. Sonst nicht. Es gibt eine Uhr (clock, guck bei sources), die gibt dir die aktuelle Simulationszeit an. Damit könntest du dir was zusammen basteln. Ganz vielleicht so grob:
1 | function [maxValOut, maxTimeOut] = calcMax(currentVal,currentTime) |
2 | persistent maxVal |
3 | persistent maxTime |
4 | |
5 | if(isempty(lastVal)) |
6 | maxVal = -inf; |
7 | maxTime = 0; |
8 | end |
9 | |
10 | if(val > maxVal) % aktueller messwert ist größer, als alles andere bisher, könnte also das maximum sein |
11 | maxVal = currentVal; |
12 | maxTime = currentTime; |
13 | end |
14 | |
15 | maxValOut = maxVal; % zuweisen, weil es glaub' ich nicht geht, persistente Variablen zurückzugeben |
16 | maxTimeOut = maxTime |
17 | end |
edit: du kannst natürlich auch alles nur mit "fertigen" Blöcken bauen. Es gibt einen max block und es gibt triggered subsystems und logische Verknüpfungen, damit kann man auch fix was zusammen klicken
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.