how to make a loop for a simulation?
2 ビュー (過去 30 日間)
古いコメントを表示
I've made a simulink model and I want the simulaltion after starting it to go into a loop that will pause (plot) and then continue the simulation. Can anybody help me with this?
set_param('modelZaGui1','SimulationCommand','start');
go into loop----------
set_param('modelZaGui1','SimulationCommand','pause'); % pause after 10 seconds
plot ( )
set_param('modelZaGui1','SimulationCommand','continue');
set_param('modelZaGui1','SimulationCommand','pause'); % pause after 10 seconds
plot ( )
and to go like this to the end of the simulation. Simulation time is 1000 and it should pause and plot after ever 10 seconds.
0 件のコメント
回答 (3 件)
A Jenkins
2014 年 6 月 24 日
1) This is kind of awkward. Is there a reason you can't use the built in "Scope" block to accomplish this?
2) If you must do it this way, I suppose you could use the "Assertion" block to pause the simulation as described in the help for Controlling Execution of a Simulation. Add a modulus calculation to get "every 10 seconds". (Example model attached.)
____
Your main loop could then just wait for the simulation to pause, then call plot, etc, until the simulation is stopped.
%init so they have some value at t==0
ScopeData.time=[];
ScopeData.signals.values=[];
set_param(bdroot,'SimulationCommand','start')
% outer loop for the full simulation
while ~strcmp(get_param(bdroot,'SimulationStatus'),'stopped')
pause(.001) % give the plot a chance to update
if strcmp(get_param(bdroot,'SimulationStatus'),'paused')
plot(ScopeData.time,ScopeData.signals.values);
set_param(bdroot,'SimulationCommand','continue')
end
end
2 件のコメント
A Jenkins
2014 年 6 月 24 日
Please clarify why this doesn't help? This runs the model and updates the plot every 10 seconds per your specifications.
Kaustubha Govind
2014 年 6 月 27 日
It seems like you can achieve the same result by using a Scope block with a Decimation factor of 10. Is there a reason you want to use PLOT instead?
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!