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

41 次查看(过去 30 天)
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.

采纳的回答

Arnaud Miege
Arnaud Miege 2011-6-2
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 General Applications 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by