Main Content
Check safety-related diagnostic settings for solvers
Check ID:
mathworks.hism.hisl_0043
Check model configuration for diagnostic settings that apply to solvers and that can impact safety.
Description
This check verifies that model diagnostic configuration parameters pertaining to solvers are set optimally for generating code for a safety-related application.
Available with Simulink® Check™.
Results and Recommended Actions
Condition | Recommended Action |
---|---|
The diagnostic for detecting automatic breakage of algebraic loops is
set to
none
or warning . The breaking of algebraic loops
can affect the predictability of
the order of block execution. For safety-related applications, a model
developer needs to know when such breaks occur. | Set Algebraic loop on the Diagnostics > Solver pane in the Configuration Parameters dialog box or set the
parameter AlgebraicLoopMsg to
error . Consider breaking such loops explicitly
with Unit Delay blocks so that the execution order is
predictable. At a minimum, verify that the results of loops breaking
automatically are acceptable. |
The diagnostic for detecting automatic breakage of algebraic loops
for Model blocks, atomic subsystems, and enabled
subsystems is set to
none
or warning . The breaking of algebraic loops
can affect the predictability of
the order of block execution. For safety-related applications, a model
developer needs to know when such breaks occur. | Set Minimize algebraic loop on the Diagnostics > Solver pane in the Configuration Parameters dialog box or set the
parameter ArtificialAlgebraicLoopMsg to
error . Consider breaking such loops explicitly
with Unit Delay blocks so that the execution order is
predictable. At a minimum, verify that the results of loops breaking
automatically are acceptable. |
The diagnostic for detecting potential conflict in block execution
order is set to
none
or warning . For safety-related applications,
block execution order must be predictable. A model developer needs to
know when conflicting block priorities exist. | Set Block priority violation on the Diagnostics > Solver pane in the Configuration Parameters dialog box or set the
parameter BlockPriorityViolationMsg to
error . |
The diagnostic for detecting whether the Simulink software automatically modifies the solver, step size, or
simulation stop time is set to
none
or warning . Such changes can
affect the operation of generated
code. For safety-related applications, it is better to detect such
changes so a model developer can explicitly set the parameters to known
values. | Set Automatic
solver parameter selection on the Diagnostics > Solver pane in the Configuration Parameters dialog box or set the
parameter SolverPrmCheckMsg to
error . |
The diagnostic for detecting when a name is used for more than one
state in the model is set to
none .
State names within a model should be unique. For safety-related
applications, it is better to detect name clashes so a model developer
can fix them. | Set State name clash on the Diagnostics > Solver pane in the Configuration Parameters dialog box or set the
parameter StateNameClashWarn to
warning . |
Action Results
Clicking Modify Settings configures model diagnostic settings that apply to solvers and that can impact safety.
Capabilities and Limitations
Does not run on library models.
Does not allow exclusions of blocks or charts.