How to determine the moment (time) at which the signal exceeded the set value in simulink?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
If I have a signal defined by exponential function (for example): 2e^t. How do I determine time when the value of this function will be more then (for example) 5?
0 Kommentare
Antworten (2)
Jonas
am 15 Feb. 2021
Put an integrator block with input 1 inside an enabled subsystem. Use a relational operator to see if your exponential function value is above 5 and use it for the enable port of the enabled subsystem. The output of the integrator will give you the time.
4 Kommentare
Tiago Moraes
am 2 Aug. 2022
Explaing the example:
Inside subsystem we have an integrator. Simulation time: 12s.It's generated a pulse with period 4s and pulse width 22%. So, per clicle, the pulse is high during 0,88s. In 12s, we have 3 cycles. So, the integrator result is 2,64s (3 x 0,88s). It works!
Fangjun Jiang
am 15 Feb. 2021
Assume you build your model correctly, your signal varies as time goes. Compare your signal with the Constant value, its output will be a true or false signal. Use this signal to trig a tiggered subsystem, which contains a Clock block inside. Play with it and you should be able to get what you want.
2 Kommentare
Fangjun Jiang
am 16 Feb. 2021
I can see that it can be done using a MATLAB Function block, but no need to use FOR or WHILE loop. Keep in mind that the MATLAB Function block is executed at every simulation step.
Did you try the method I suggested? That is a more straightforward method.
Siehe auch
Kategorien
Mehr zu Sources finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!