Assigning Model Simulation parameters programmatically

1 visualización (últimos 30 días)
Omkar
Omkar el 6 de Jul. de 2023
Comentada: Omkar el 6 de Jul. de 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!

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Configure and View Diagnostics en Help Center y File Exchange.

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by