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

ConditionRecommended 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.

See Also