Azzera filtri
Azzera filtri

Is there a way to abort Simulink simulation programatically if it takes a long time?

32 visualizzazioni (ultimi 30 giorni)
I have a model that, depending on some variable values sometimes runs very slowly. Typically I try out many different variable values in a loop, i.e. I start the simulation from a MATLAB script. Is there a way to abort the simulation without breaking the loop if the simulation takes too long?

Risposta accettata

Rob Graessle
Rob Graessle il 25 Gen 2011
Walter is correct about using a timer object that is configured to fire at the end of the wait period. In the timer callback you can use the following command to stop the simulation:
set_param('ModelName', 'SimulationCommand', 'stop')
where ModelName is the name of the model you are simulating.
For more information, check out Running a Simulation Programmatically.

Più risposte (2)

R
R il 26 Gen 2011
The way I solved was basically like this.
myTimer = timer('StartDelay',10, 'TimerFcn','set_param(''ModelName'',''SimulationCommand'',''stop'')');
for KpGain = 1:10
start(myTimer);
sim('ModelName');
stop(myTimer);
end
delete(myTimer);
I guess that in a parfor loop you would have to be a little more careful of having different timers for different workers, right?

Walter Roberson
Walter Roberson il 25 Gen 2011
In the MATLAB routine you could start a timer that would fire at the end of your wait. In the timer callback, you would instruct the simulation to stop.
I do not know the details at all, as I have not used simulink. It might involve setting a parameter and using a STOP block; see a recent cssm post
There appears to be some other useful information in this cssm post

Categorie

Scopri di più su Programmatic Model Editing in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by