How to set the Simulink runtime and time steps from the workspace

69 views (last 30 days)
I'm trying to perform sensitivity analysis on a model I developed in Simulink.
I establish all the constants in an m-file and use a for loop to call the Simulink model to run. Upon completion of each run, the results (time and variables) are stored in an array. I'm using the ode45 solver and the variable time step option.
The problem is that for each Simulink run the time-steps, and therefore the number of data points, are different. This presents a dimension mismatch in the array I'm saving all the values to.
An easy fix would be to chose a fixed-step option. However, when I do this, I run into a singularity issue with a few of my integrations.
Is there a way to use the time output from my initial Simulink run as the basis for all other subsequent runs? That would mean, saving the time output from the initial run in the workspace and then feeding it back to Simulink.
Alternatively, is there a way to set my time so that the data collected from Simulink model (even though it is running at variable time-step) matches the time steps I choose? For example, if I set my time from t = 0:1:50, I'll get 51 data points corresponding to those time steps.

Accepted Answer

Arnaud Miege
Arnaud Miege on 2 Jun 2011
I would advise you to set the output options (Simulation -> Configuration parameters, Data import/export tab) to "produce specified output only". That allows you to have data logged with a fixed time step even though you are still using a variable-step solver.
HTH,
Arnaud
  2 Comments
Robson Ferreira de Arruda
Robson Ferreira de Arruda on 11 Oct 2019
Sorry but it don't work .
The interval that you need to avoid is not erased .
Can you help with another way to do this ?
Thanks !

Sign in to comment.

More Answers (0)

Categories

Find more on General Applications in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!