Run Simulink repeatedly from Matlab

13 ビュー (過去 30 日間)
Audrow Nash
Audrow Nash 2017 年 7 月 18 日
コメント済み: Audrow Nash 2017 年 7 月 19 日
I am going to be running a simulation repeatedly varying a few parameters.
I will have to do hundreds of iterations. I do not want to compile every time. My Simulink contains external calls. Currently, the parameters that I will vary are put in the workspace by an initialization script.
What is the best practice for running simulations using Simulink repeatedly when modifying parameters from Matlab?

採用された回答

Sebastian Castro
Sebastian Castro 2017 年 7 月 18 日
The best approach is to use Fast Restart simulation: https://www.mathworks.com/help/simulink/ug/fast-restart-workflow.html
Fast restart will let you run simulations repeatedly without recompiling, as long as the variables you're changing do not affect the model in any way. For example, you can change tunable parameters, inputs, etc. but not structural things such as sample times, data types, dimensions, etc.
To do this from the command line, you can just do:
for idx = 1:100
myParams = externalFunction(idx);
simout = sim('modelName','FastRestart','on');
end
- Sebastian
  2 件のコメント
Audrow Nash
Audrow Nash 2017 年 7 月 19 日
Thank you.
Audrow Nash
Audrow Nash 2017 年 7 月 19 日
How does Fast Restart work with SimState?
The second step in your link says to save a SimState. When I try to save a SimState, I get the following error:
The following parameters are not supported by the sim command when Fast Restart is enabled: 'SaveFinalState, FinalStateName, SaveCompleteFinalSimState'
Here is a snippet of my code:
set_param(simulation,'FastRestart','on')
% Create a SimState at the final time of 0
% (as soon as the simulator starts)
simOut = sim(simulation,'StopTime','0',...
'SaveFinalState', 'on',...
'FinalStateName','xFinal',...
'SaveFormat','Structure');
% Adjust simulator over iterations
for i = 1:100
% Adjust parameters in the workspace
simOut1 = sim(simulation,'StartTime', ...
'0', 'StopTime', '5',...
'SaveFinalState', 'off', ...
'LoadInitialState', 'on', ...
'InitialState', 'xFinal');
end

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEvent Functions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by