Mode Chart Modeling
About Mode Charts
Mode charts provide an intuitive way to model components characterized by a discrete set
of distinct operating modes. A car clutch is a good example of such a component. It has
several operating modes, with each mode being defined by a different set of equations. It
also has a transition logic, with a set of predicate conditions defining when the clutch
transitions from one mode to another. It is possible to model this component using primitive
constructs, such as event variables and edge
operators, but this way of
modeling lacks readability. For more complex components, the file becomes cumbersome and
unwieldy. Every time you model a component with multiple operating modes and transitions,
this component is a good candidate for a mode chart implementation.
These constructs in Simscape™ language let you perform mode chart modeling:
modecharts
— A top-level section in a component file. It can contain one or moremodechart
constructs.modechart
— A named construct that contains a textual representation of the mode chart: modes, transitions, and an optional initial mode specification.modes
— A section in a mode chart that describes all the operating modes. It can contain one or moremode
constructs.mode
— A named construct that corresponds to a distinct operating mode of the component, defined by a set of equations.transitions
— A section in a mode chart that describes transitions between the operating modes, based on predicate conditions.initial
— An optional section in a mode chart that specifies the initial operating mode, based on a predicate condition. If the predicate is not true, or if theinitial
section is missing, then the first mode listed in themodes
section is active at the start of simulation. If one of the other predicate conditions is true at initialization time, then the simulation can start in a different mode, as described in Transition Precedence and Execution Rules.entry
— An optional section inside amode
construct in a mode chart that lets you specify the actions to be performed upon entering the mode.
Mode Chart Syntax
In its simplest form, the hierarchical structure of a modecharts
section can look like this:
modecharts (ExternalAccess = observe) mc1 = modechart modes mode m1 equations ... end end mode m2 equations ... end end end transitions m1->m2 : p1; end initial m2 : p2; end end end
It contains one mode chart, mc1
, with two modes,
m1
and m2
.
The system transitions from mode m1
to mode m2
when the predicate condition p1
is true.
If the predicate condition p2
is true, the simulation starts in mode
m2
, otherwise in mode m1
.
In this example, the transitions
section does not define a transition
from mode m2
to mode m1
. Therefore, according to this
mode chart, once the system reaches mode m2
, it never goes back to mode
m1
.
Mode Chart Example
Use this simple example to understand how the mode charts work. For a more detailed example, see Switch with Hysteresis.
component ExampleChart inputs u1 = 0; end outputs y = 0; end parameters p = 1; end modecharts(ExternalAccess = observe) mc1 = modechart modes mode m1 equations y==1; end end mode m2 equations y==2; end end mode m3 equations y==3; end end end transitions m1->m2 : u1<0; m2->m3 : u1>0; end initial m2 : p<0; end end end end
The component implements a simple chart with three operating modes:
In the first mode, the output signal equals 1.
In the second mode, the output signal equals 2.
In the third mode, the output signal equals 3.
The component transitions from the first to the second mode when the input signal is negative, and from the second to the third mode when the input signal is positive.
The initial mode depends on the block parameter value: if parameter p
is negative, simulation starts with the block in the second mode, otherwise — in the
first mode.
See Also
modecharts
| modes
| transitions
| initial
| entry