MATLAB Answers

Run a simulink model for a certain amount of time and pause

조회 수: 164(최근 30일)
Lucas
Lucas 1 Aug 2012
댓글: X W 6 Aug 2017
If there any way that you can run a simulink model from the command line for a certain amount of time, and then pause the model? I tried:
set_param(modelName,'SimulationCommand','Start');
But it runs the model for whatever times in the model EndTime dialog box (set to 10 seconds), before it leaves that line of code. If my time step is 250 m/s, is there anyway to tell the model to run for 1 second or 4 cycles and to pause? I know about:
set_param(modelName,'SimulationCommand','pause');
set_param(modelName,'SimulationCommand','continue');
But I can't get 'start' to do anything other than to run the full amount of time. Thanks.
EDIT -
Is there anyway to load/open a simulink model in into a paused state?

  댓글 수: 1

Azzi Abdelmalek
Azzi Abdelmalek 1 Aug 2012
why do you want to pause it?

Sign in to comment.

채택된 답변

Teja Muppirala
Teja Muppirala 2 Aug 2012
If you know the times that you want to stop and restart it at, could you maybe use the SimState to resume the simulation, something like this?
open('sldemo_bounce');
mdl = bdroot;
set_param(mdl, 'SaveFinalState', 'on', 'FinalStateName',...
[mdl 'SimState'],'SaveCompleteFinalSimState', 'on')
[t1, Y1] = sim(mdl, [0 15]);
plot(t1,Y1,'b');
set_param(mdl, 'LoadInitialState', 'on', 'InitialState',...
[mdl 'SimState']);
[t2, Y2] = sim(mdl, [15 25]);
hold on; plot(t2,Y2,'r');
set_param(mdl, 'LoadInitialState', 'off');

  댓글 수: 0

Sign in to comment.

추가 답변(1개)

Kaustubha Govind
Kaustubha Govind 1 Aug 2012
편집: John Kelly 2 Mar 2015
The easiest way to do this is to configure the Assertion block to function as a Pause block and place it in your model - the snapshot on that page shows how you can use the Clock block to pause simulation at a a certain time.

  댓글 수: 2

Kaustubha Govind
Kaustubha Govind 2 Aug 2012
Then Teja's suggestion is the way to go!
X W
X W 6 Aug 2017
Where is the "Continue" block? "You can resume the simulation using Continue as you can for any paused simulation." - I don't want to type in or manually clock "Continue", I want the simulation to pause for x amount of time and then continue on with the signal flow out of the block automatically. I want to do this because I want to wait for a heater to cool in real life. No, I can not use Simulink dekstop real time. Is there an update to this as of 2017?

Sign in to comment.


Translated by