set simulink time step
Ältere Kommentare anzeigen
I want to simulate a dynamics system 'mdl' using sim('mdl',parameters), and I want to get the simulation output at some specific time points, instead of time points determined by the ode solver. Is there any way that I can specify the time step of the simulink ode solver?
Like when using ode45, I can use ode45(odefun,tspan,y0) with tspan=0:0.1:1, can I still get simulation output at time points 0:0.1:1 with simulink?
Akzeptierte Antwort
Weitere Antworten (2)
Fangjun Jiang
am 11 Jul. 2011
Yes, certainly you can! Why don't you try it and see the results.
Use the MATLAB supplied "f14" model as an example, you can specify a time vector with variable time step and then run simulation. open the model and make it to output the simulation time "tout" and "yout" at Simulation>Configuration Parameters...>Data Import/Export
t=[0:0.01:5,5.1:0.1:10]';
sim('f14',t);
all(t==tout)
ans =
1
>> size(tout)
ans =
551 1
>> size(yout)
ans =
551 2
3 Kommentare
Hongkai Dai
am 11 Jul. 2011
Kaustubha Govind
am 11 Jul. 2011
I don't think that is possible with fixed-step solvers. However, if what you want is to only get output signal values at specified time-steps, you can choose the least common divisor of your desired steps as the solver fixed-step and then extract the desired points from the logged outputs.
Fangjun Jiang
am 11 Jul. 2011
See my edited answer above. I added an example with time vector with variable time step.
Fangjun Jiang
am 11 Jul. 2011
0 Stimmen
I guess a short answer to your question is YES. Since you already know how to use ode45(odefun,tspan,y0) with tspan=0:0.1:1, you can do the same with sim, sim('YouModelName',tspan) with tspan=0:0.1:1.
1 Kommentar
Hongkai Dai
am 11 Jul. 2011
Kategorien
Mehr zu Programmatic Model Editing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!