Assigning Model Simulation parameters programmatically

9 vues (au cours des 30 derniers jours)
Omkar
Omkar le 6 Juil 2023
Commenté : Omkar le 6 Juil 2023
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!

Réponse acceptée

Rahul
Rahul le 6 Juil 2023
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 commentaire
Omkar
Omkar le 6 Juil 2023
Thanks, that works but what if I want to have time step value set to auto for some cases?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Manual Performance Optimization dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by