Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

changing the simulation time in simulink through script

Asked by Arun Badigannavar on 11 Dec 2012
Latest activity Commented on by David on 5 Jun 2014

I am controlling my simulink models through MATLAB Script ,and am updating stop time through script,,,The problem here am getting is if i change any parameters value of the simulink while simulink is running,,the simulation calculation is con sidering the changed values from the initial step of the simulation,,,but rather i want my simulation to consider the new parameter value value from the step i chanf=ged while simulation is running

9 Comments

Walter Roberson on 11 Dec 2012

Arun wants to run for a while with one set of parameters, then adjust the parameters by code, then resume running from that point but with the new set of parameters and without having the simulation restart.

Vishal Rane on 11 Dec 2012

I guess this is want Arun is trying to say:

He wants to and is able to update certain parameters while the simulation is in progress, suppose at T=500.

But the simulation result indicates that Simulink ran the entire simulation based on the updated parameters only, while he expected both the previous (T=0 to 500) and the updated parameters (T=500 to end) to have a bearing on the result.

Arun Badigannavar on 11 Dec 2012

Yes both Mr Walter and Mr Vishal are right,,,do u have any idea?

Arun Badigannavar

Tags

Products

1 Answer

Answer by TAB on 11 Dec 2012
Edited by TAB on 11 Dec 2012
Accepted answer

I am not sure how you are managing to change the simulation time during simulation.

But for your parameter value problem :

Simulink evaluates all the parameters values before the start of simulation. See first step of Model compilation.

If you change any parameter during simulation, simulink will not notice it. To tell the simulink to re-calculate the parameters/interfaces, you have to give update command.

After you change the parameter value from scrip, give command

set_param('YourModel', 'SimulationCommand', 'update')

5 Comments

Arun Badigannavar on 11 Dec 2012

for i=1:1:inf set_param('course_speed_position','StopTime', sprintf('%d',i)); set_param('course_speed_position1','StopTime',sprintf('%d',i)); simOut = sim('model1.mdl'); simOut1 = sim('model2.mdl'); end ,,,,this is the code wher am calling tow models to simulate,, and after some time i have to pause the simulation and am changing some values in workspace,,,those changed value will be taken by my simulink models,,bu wen these models take value they are giving me response from in initial time,,not the time wher i have changed the values of blocks end

TAB on 11 Dec 2012
for i=1:1:inf 
    set_param('course_speed_position','StopTime', sprintf('%d',i)); 
    set_param('course_speed_position1','StopTime',sprintf('%d',i)); 
    simOut = sim('model1.mdl'); 
    simOut1 = sim('model2.mdl'); 
end

This loop will run forever and will never return. Then how will you run other command to pause the model, update parameter etc ???

David on 5 Jun 2014

For more on changing parameters, see Tunable Parameters Documentation

TAB

Contact us