How to simulate simulink model in a given set of time-points only?

I have a set of time-points in an array and I want the simulink model to run only in the given time-stamps.
The timestep is non-uniform.

Answers (1)

Yes, it is possible. Consider the attached Simulink model which contains a ramp block and its slope parameter is set as 5. Its stop time is 10. We expect to see the output of the ramp at t=0,1,6,9. Run the following code from command line:
t=[0 1 6 9];
y=sim('Rampout',t);
y.RampOut.Signals.Values
The last line will give you 0,5, 30 and 45 which shows that the model is ran at specified time values. You can adapt this to your application.

4 Comments

I attached a scope to the simulink model and ran the code in command line.
What I want to see is only values of 0 5 30 and 45 on the scope and the model to not simulate on any other time. That's what my question is.
But you are seeing those values in command line and don't you want to only see those values? Does it matter where you see those values?
t=[0 1 6 9];
y=sim('Rampout',t);
y.RampOut.Signals.Values
ans =
0
5
30
45
What I meant is that the simulation should happen only at those timestamps. At other time points I want it to hold the previous value.
Ok then. Try the following code with the attached modified Simulink model:
y=sim('Rampout','StartTime','0','StopTime','0')
y.Rampout.signals.values
y=sim('Rampout','StartTime','1','StopTime','1')
y.Rampout.signals.values
y=sim('Rampout','StartTime','6','StopTime','6')
y.Rampout.signals.values
y=sim('Rampout','StartTime','9','StopTime','9')
y.Rampout.signals.values
If you run each pair of line respectively, you will see the previous results that we obtained.

Sign in to comment.

Categories

Find more on Simulink in Help Center and File Exchange

Products

Release

R2019b

Asked:

on 23 Mar 2020

Edited:

on 23 Mar 2020

Community Treasure Hunt

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

Start Hunting!