Numerical error in simulink
Ältere Kommentare anzeigen

Often, I've encountered errors like the one above when using Simulink's add or product block.
When I check each signal, I don't see any division by 0. Sometimes it's just a matter of replacing the + with a -. What is the problem?
Akzeptierte Antwort
Weitere Antworten (1)
Walter Roberson
am 20 Nov. 2023
Bearbeitet: Walter Roberson
am 20 Nov. 2023
0 Stimmen
When the error is at time 0, as is the case in your example, then the problem is almost always incorrect initial values.
Consider for example if you have a derivative block. At time 0, no time has elapsed so far so the "natural" outcome right at time 0 is either 0 change divided by 0 seconds (0/0 giving NaN) or else some finite change divided by 0 seconds (giving +/- infinity). So for derivative blocks and similar it is crucial that you define the initial conditions.
Likewise if you have any calculation in your model that divides something by clock time, the calculation is in trouble at time 0.
1 Kommentar
Paul
am 20 Nov. 2023
The error occurred at T = 0.128, not T = 0, so it's not an issue with initial conditions at the start of the simulation.
Also, the Derivative Block does not work that way; it always outputs 0 as its initial output. As far as I know, the Derivative block doesn't have an initial condition to specify.
Kategorien
Mehr zu Sources finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!