Debug Run-Time Errors in a Chart
Create the Model and the Stateflow Chart
In this topic, you create a Simulink® model with a Stateflow® chart to debug. Follow these steps:
Create the following Simulink model:
Add the following states and transitions to your chart:
In your chart, add an event
Switchwith a scope of Input from Simulink and a Rising edge trigger.
Add a data
Shiftwith a scope of Input from Simulink.
The chart has two states at the highest level in the hierarchy,
Power_on. By default,
Power_off is active. The event
Switch toggles the
system between the
Power_on has three substates:
Third. By default, when
Power_on becomes active,
First also becomes active.
Shift equals 1, the system transitions from
First, for each occurrence of the event
Switch, and then the pattern repeats.
In the model, there is an event input and a data input. A Sine Wave block generates a
repeating input event that corresponds with the Stateflow event
Switch. The Step block generates a repeating pattern
of 1 and 0 that corresponds with the Stateflow data object
Shift. Ideally, the
event occurs at a frequency that allows at least one cycle through
Debug the Stateflow Chart
To debug the chart in Create the Model and the Stateflow Chart, follow these steps:
Right-click in the chart, and select Set Breakpoint on Chart Entry.
Start the simulation.
Because you specified a breakpoint on chart entry, execution stops at that point.
Click the Step In button, .
The Step In button executes the next step and stops.
Continue clicking the Step In button and watching the animating chart.
After each step, watch the chart animation to see the sequence of execution.
Single-stepping shows that the chart does not exhibit the desired behavior. The
Third inside the state
Power_on are not occurring
because the transition from
takes priority. The output display of code coverage also confirms this observation.
Correct the Run-Time Error
In Debug the Stateflow Chart, you step through a simulation of
a chart and find an error: the event
Switch drives the simulation but the
simulation time passes too quickly for the input data object
have an effect.
Correct this error as follows:
Stop the simulation so that you can edit the chart.
Add the condition
[t > 20.0]to the transition from
Now the transition from
Power_offdoes not occur until simulation time is greater than 20.0.
Begin simulation again.
Click the Step In button repeatedly to observe the new behavior.