Forum: Digitale Signalverarbeitung / DSP / Machine Learning Simulink: Wert auslesen


von jel (Gast)


Angehängte Dateien:

Lesenswert?

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

von Jan K. (jan_k)


Lesenswert?

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
Noch kein Account? Hier anmelden.