Assigning Model Simulation parameters programmatically

1 回表示 (過去 30 日間)
Omkar
Omkar 2023 年 7 月 6 日
コメント済み: Omkar 2023 年 7 月 6 日
I am trying to simulate a simulink model, where I want to have different Solver Step Sizes (Fixed) and simulation durations (start/stop time) for different simulations, and it would be helpful if the same could be done using a matlab code.
Following are the matlab arrays for various simulations:
simTime = [10 20 40 60 100]
stepSize = [1e-6 2e-6 4e-6 6e-6 10e-6]
It would be really helpful, if someone can provide an easy way for the above using the sim function, thanks!

採用された回答

Rahul
Rahul 2023 年 7 月 6 日
Hey Omkar,
Assuming that you are using the latest release r2023a and that your specified parameter values are in seconds, you can specify parameter names as well as their string values in the sim function in input arguments, using the num2str function, as follows:
simTime = [10 20 40 60 100];
stepSize = [1e-6 2e-6 4e-6 6e-6 10e-6];
% Size of simulation parameter array
elements = numel(simTime);
for idx = 1:elements
% Insert actual model name instead of 'modelName'
sim('modelName', 'StartTime', '0', 'StopTime', num2str(simTime(idx)), 'FixedStep', num2str(stepSize(idx)));
end
For reference, you can check out the sim function documentation or even right-click any parameter in the Solver Setting under Model Settings, and get a what's this' pop-up to know more about interacting with the parameter.
Hope that helps!
  1 件のコメント
Omkar
Omkar 2023 年 7 月 6 日
Thanks, that works but what if I want to have time step value set to auto for some cases?

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeManual Performance Optimization についてさらに検索

製品


リリース

R2023a

Translated by