start
Syntax
Description
start(
starts the simulation represented by
the s
)Simulation
object s
. If the simulation is not initialized, the
start
function initializes the simulation before starting it.
Once the simulation starts, the simulation status changes to
running
.
The MATLAB® command prompt is unavailable during initialization and becomes available once simulation execution starts.
Examples
Control Simulation Execution and Check Simulation Status
Open the model vdp
.
mdl = "vdp";
open_system(mdl)
Create a Simulation
object to represent a simulation of the model.
sm = simulation(mdl);
The model vdp
is small and simple and simulates very fast. Configure the simulation to run at a slower pace relative to real or wall clock time so the simulation runs long enough for you to interact with it. This code configures the simulation to run at a rate of approximately two simulation seconds per one second of real time.
sm = setModelParameter(sm,EnablePacing="on"); sm = setModelParameter(sm,PacingRate="2");
Configure the simulation to run to a stop time of 40 seconds.
sm = setModelParameter(sm,StopTime="40");
Check the simulation status by using the Status
property. Before you start or initialize the simulation, the simulation status is inactive
.
sm.Status
ans = "inactive"
You can initialize the simulation without starting it. Initializing the simulation compiles the model and sets up resources, such as memory, for running the simulation. After you initialize the simulation, the simulation status is initialized
. The Simulink® Editor locks to prevent modifications to the model or simulation by anything other than the Simulation
object that controls the simulation.
initialize(sm) sm.Status
ans = "initialized"
Start the simulation and check the simulation status. Once the simulation starts, the status is running
.
start(sm) sm.Status
ans = "running"
Because simulation execution does not block the MATLAB® command prompt, this example uses the MATLAB® pause
function to mimic an interactive workflow. This pause
command pauses the execution of the script to allow the simulation to run for five seconds.
pause(5) % pause script execution
Pause the simulation using the pause
function for the Simulation
object and check the simulation status. While paused, the simulation status is paused
.
pause(sm) % pause simulation
sm.Status
ans = "paused"
The plot in the Scope block updates during the simulation. Logged data also streams to the Simulation Data Inspector.
Check the simulation time. While the script was paused for five seconds, the simulation advanced to a simulation time of approximately 10 seconds. The Time
property value is not exactly 10 because:
The pacing rate of two simulation seconds per second of wall clock time is approximate.
The variable-step solver determines the major time hits in the simulation.
sm.Time
ans = 10.0521
Use the pause
function to pause a running simulation on demand. To pause the simulation at or after a specific simulation time, use the step
function with the PauseTime
argument.
For example, advance the simulation through a simulation time of 25 seconds.
step(sm,PauseTime=25);
Check the simulation time. The simulation pauses at the top of the first major time hit with a simulation time greater than or equal to the specified pause time.
sm.Time
ans = 25.4339
Because the simulation pauses at the top of the major time hit, output values are not available for the current simulation time. Check the time of the last value in the simulation outputs.
sm.SimulationOutput.yout{1}.Values.Time(end)
ans = 24.8081
The status bar in the Scope window and the status bar in the Simulink® Editor both indicate the simulation time of the last output calculation.
In the Simulink Editor, the asterisk next to the time indicates that the current simulation time is ahead of the time the status bar reports.
Advance the simulation through the current major time hit.
step(sm);
The output results are now available for the time hit.
sm.SimulationOutput.yout{1}.Values.Time(end)
ans = 25.4339
To continue the simulation, use the resume
function.
resume(sm)
Because simulation execution does not block the MATLAB® command prompt, this example uses the MATLAB® pause
function to mimic an interactive workflow. This pause
command pauses the execution of the script to allow the simulation to run for five seconds.
pause(5) % pause script execution
To stop the simulation before the simulation completes, use the stop
function.
out = stop(sm)
out = Simulink.SimulationOutput: tout: [97x1 double] yout: [1x1 Simulink.SimulationData.Dataset] SimulationMetadata: [1x1 Simulink.SimulationMetadata] ErrorMessage: [0x0 char]
Check the simulation status. Because the simulation did not enable fast restart, stopping the simulation also terminates the simulation. After stopping, the simulation status is inactive
.
sm.Status
ans = "inactive"
The stop
function returns the Simulink.SimulationOutput
object that contains the simulation results. You can also access the results from the SimulationOutput
property of the Simulation
object.
outprop = sm.SimulationOutput
outprop = Simulink.SimulationOutput: tout: [97x1 double] yout: [1x1 Simulink.SimulationData.Dataset] SimulationMetadata: [1x1 Simulink.SimulationMetadata] ErrorMessage: [0x0 char]
When you run another simulation using the Simulation
object sm
, the results from the current simulation overwrite the SimulationOutput
property.
Input Arguments
s
— Simulation to start
Simulation
object
Simulation to start, specified as a Simulation
object.
Version History
Introduced in R2024a
See Also
Objects
Functions
initialize
|pause
|resume
|setBlockParameter
|setModelParameter
|setVariable
|step
|stop
|terminate
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)