Main Content

Model Advisor Checks for MAB and JMAAB Guidelines

This table identifies the Model Advisor checks that you can use to verify compliance of your model with MathWorks® Advisor Board (MAB) guidelines and the corresponding Japan MathWorks Automotive Advisor Board (JMAAB) guidelines. Information in the tables includes:

  • Model Advisor Check — Provides links to the Model Advisor check that is used to verify compliance to the modeling guideline.

    When applicable, this column clarifies why a guideline does not have a corresponding check:

    • No check — Indicates that the guideline can be checked by using a Model Advisor check, however, the check does not currently exist.

    • Not checkable — Indicates that it is not possible to verify compliance to this guideline by using a Model Advisor check.

  • MAB Modeling Guideline — Links to the MathWorks Advisory Board (MAB) guideline.

  • Corresponding JMAAB Modeling Guideline — Identifies the JMAAB modelling guideline that corresponds to the MAB guideline. To review the guideline, see Control Algorithm Modeling Guidelines Using MATLAB, Simulink, and Stateflow on the MathWorks website.

Note

You need Simulink® Check™ to execute these checks.

Model Advisor CheckCheck ID

MAB Modeling Guideline

(Version 5.0)

Corresponding JMAAB Modeling Guideline

(Version 5.1)

Check file names (Simulink Check)mathworks.jmaab.ar_0001

ar_0001: Usable characters for file names

ar_0001
Check folder names (Simulink Check)mathworks.jmaab.ar_0002ar_0002: Usable characters for folder names

ar_0002

Check length of model file name (Simulink Check)mathworks.jmaab.jc_0241jc_0241: Length restriction for model file names

jc_0241

Check length of folder name at every level of model path (Simulink Check)mathworks.jmaab.jc_0242jc_0242: Length restriction for folder names

jc_0242

Check Subsystem names (Simulink Check)mathworks.jmaab.jc_0201jc_0201: Usable characters for subsystem names

jc_0201

Check character usage in block names (Simulink Check)mathworks.jmaab.jc_0231jc_0231: Usable characters for block names

jc_0231

Check port block names (Simulink Check)mathworks.jmaab.jc_0211jc_0211: Usable characters for Inport blocks and Outport block

jc_0211

Check length of subsystem names (Simulink Check)mathworks.jmaab.jc_0243jc_0243: Length restriction for subsystem names

jc_0243

Check length of block names (Simulink Check)mathworks.jmaab.jc_0247jc_0247: Length restriction for block names

jc_0247

Check length of Inport and Outport names (Simulink Check)mathworks.jmaab.jc_0244jc_0244: Length restriction for Inport and Outport names

jc_0244

Check usable characters for signal names and bus names (Simulink Check)mathworks.jmaab.jc_0222jc_0222: Usable characters for signal and bus names

jc_0222

Check usable characters for parameter names (Simulink Check)mathworks.jmaab.jc_0232jc_0232: Usable characters for parameter names

jc_0232

Check length of signal and bus names (Simulink Check)mathworks.jmaab.jc_0245jc_0245: Length restriction for signal and bus names

jc_0245

Check length of parameter names (Simulink Check)mathworks.jmaab.jc_0246jc_0246: Length restriction for parameter name

jc_0246

Check usable characters for Stateflow data names (Simulink Check)mathworks.jmaab.jc_0795jc_0795: Usable characters for Stateflow data names

jc_0795

Check length of Stateflow data name (Simulink Check)mathworks.jmaab.jc_0796jc_0796: Length restriction for Stateflow data names

jc_0796

Check duplication of Simulink data names (Simulink Check)mathworks.jmaab.jc_0791jc_0791: Duplicate data name definitions

jc_0791

Check unused data in Simulink Model (Simulink Check)mathworks.jmaab.jc_0792jc_0792: Unused Data

jc_0792

Check for unused data in Stateflow Charts (Simulink Check)mathworks.jmaab.jc_0700jc_0700: Unused data in Stateflow block

jc_0700

Check usage of restricted variable names (Simulink Check)mathworks.maab.na_0019na_0019: Restricted variable namesNo corresponding JMAAB guideline
Check Implement logic signals as Boolean data (vs. double) (Simulink Check)mathworks.maab.jc_0011jc_0011: Optimization parameters for Boolean data types

jc_0011

Check Signed Integer Division Rounding mode (Simulink Check)mathworks.jmaab.jc_0642jc_0642: Integer rounding mode setting

jc_0642

Check diagnostic settings for incorrect calculation results (Simulink Check)mathworks.jmaab.jc_0806jc_0806: Detecting incorrect calculation results

jc_0806

Check model diagnostic parameters (Simulink Check)mathworks.maab.jc_0021

jc_0021: Model diagnostic settings

No corresponding JMAAB guideline
Check for Simulink diagrams using nonstandard display attributes (Simulink Check)mathworks.maab.na_0004

na_0004: Simulink model appearance settings

na_0004

Check Model font settings (Simulink Check)mathworks.jmaab.db_0043db_0043: Model font and font size

db_0043

No checkN/Ajm_0002: Block resizingjm_0002
Check whether block names appear below blocks (Simulink Check)mathworks.maab.db_0142db_0142: Position of block names

db_0142

Check the display attributes of block names (Simulink Check)mathworks.maab.jc_0061jc_0061: Display of block names

jc_0061

Check for nondefault block attributes (Simulink Check)mathworks.maab.db_0140

db_0140: Display of block parameters

db_0140

Check Model Description (Simulink Check)mathworks.jmaab.jc_0603jc_0603: Model description

jc_0603

Check if blocks are shaded in the model (Simulink Check)mathworks.jmaab.jc_0604jc_0604: Using block shadow

jc_0604

Check for unconnected signal lines and blocks (Simulink Check)mathworks.jmaab.db_0081db_0081: Unconnected signals and blocks

db_0081

Check signal line connections (Simulink Check)mathworks.jmaab.db_0032db_0032: Signal line connections

db_0032

Check signal flow in model (Simulink Check)mathworks.jmaab.db_0141db_0141: Signal flow in Simulink models

db_0141

Check block orientation (Simulink Check)mathworks.jmaab.jc_0110jc_0110: Direction of block

jc_0110

Check connections between structural subsystems (Simulink Check)mathworks.jmaab.jc_0171jc_0171: Clarification of connections between structural subsystems

jc_0171

Check for consistency in model element names (Simulink Check)mathworks.jmaab.jc_0602jc_0602: Consistency in model element names

jc_0602

Check trigger signal names (Simulink Check)mathworks.jmaab.jc_0281jc_0281: Trigger signal names

jc_0281

Check for mixing basic blocks and subsystems (Simulink Check)mathworks.maab.db_0143db_0143: Usable block types in model hierarchy

db_0143

Not checkableN/Adb_0144: Use of subsystems

db_0144

Check for avoiding algebraic loops between subsystems (Simulink Check)mathworks.jmaab.jc_0653jc_0653: Delay block layout in feedback loopsjc_0653
Check for prohibited sink blocks (Simulink Check)mathworks.maab.hd_0001

hd_0001: Prohibited Simulink sinks

No corresponding JMAAB guideline
Check usage of vector and bus signals (Simulink Check)mathworks.jmaab.na_0010na_0010: Usage of vector and bus signals

na_0010

Check signal line labels (Simulink Check)mathworks.jmaab.jc_0008jc_0008: Definition of signal names

jc_0008

Check for propagated signal labels (Simulink Check)mathworks.jmaab.jc_0009jc_0009: Signal name propagation

jc_0009

Check position of signal labels (Simulink Check)mathworks.jmaab.db_0097db_0097: Position of labels for signals and buses

db_0097

Check signal line labels (Simulink Check)mathworks.maab.na_0008

na_0008: Display of labels on signals

No corresponding JMAAB guideline
Check for propagated signal labels (Simulink Check)mathworks.maab.na_0009

na_0009: Entry versus propagation of signal labels

No corresponding JMAAB guideline
Check usage of tunable parameters in blocks (Simulink Check)mathworks.maab.db_0110db_0110: Block parameters

db_0110

Check Indexing Mode (Simulink Check)mathworks.jmaab.db_0112db_0112: Usage of index

db_0112

Check if tunable block parameters are defined as named constants (Simulink Check)mathworks.jmaab.jc_0645jc_0645: Parameter definition for calibration

jc_0645

Check for sample time setting (Simulink Check)mathworks.jmaab.jc_0641jc_0641: Sample time setting

jc_0641

Check usage of fixed-point data type with non-zero bias (Simulink Check)mathworks.jmaab.jc_0643jc_0643: Fixed-point setting

jc_0643

Check type setting by data objects (Simulink Check)mathworks.jmaab.jc_0644jc_0644: Type setting

jc_0644

Check position of conditional blocks and iterator blocks (Simulink Check)mathworks.jmaab.db_0146db_0146: Block layout in conditional subsystems

db_0146

Check undefined initial output for conditional subsystems (Simulink Check)mathworks.jmaab.jc_0640jc_0640: Initial value settings for Outport blocks in conditional subsystems

jc_0640

Check usage of Merge block (Simulink Check)mathworks.jmaab.jc_0659jc_0659: Usage restrictions of signal lines input to Merge blocks

jc_0659

Check logical expressions in If blocks (Simulink Check)mathworks.maab.na_0003na_0003: Usage of If blocks

na_0003

Check default/else case in Switch Case blocks and If blocks (Simulink Check)mathworks.jmaab.jc_0656jc_0656: Usage of Conditional Control blocks

jc_0656

Not checkableN/Ajc_0657: Retention of output value based on conditional control flow blocks and Merge blocks

jc_0657

Check fundamental logical and numerical operations (Simulink Check)mathworks.jmaab.na_0002na_0002: Appropriate usage of basic logical and numerical operations

na_0002

Check usage of Sum blocks (Simulink Check)mathworks.jmaab.jc_0121jc_0121: Usage of add and subtraction blocks

jc_0121

Check operator order of Product blocks (Simulink Check)mathworks.jmaab.jc_0610jc_0610: Operator order for multiplication and division block

jc_0610

Check signs of input signals in product blocks (Simulink Check)mathworks.jmaab.jc_0611jc_0611: Input sign for multiplication and division blocks

jc_0611

Check for division by zero in Simulink (Simulink Check)mathworks.jmaab.jc_0794jc_0794: Division in Simulink

jc_0794

No checkN/Ajc_0805: Numerical operation block inputs

jc_0805

Check for parentheses in Fcn block expressions (Simulink Check)mathworks.jmaab.jc_0622jc_0622: Usage of Fcn blocks

jc_0622

Check icon shape of Logical Operator blocks (Simulink Check)mathworks.jmaab.jc_0621jc_0621: Usage of Logical Operator blocks

jc_0621

Check usage of Relational Operator blocks (Simulink Check)mathworks.maab.jc_0131jc_0131: Usage of Relational Operator blocks

jc_0131

Comparing floating point types in Simulink (Simulink Check)mathworks.jmaab.jc_0800jc_0800: Comparing floating-point types in Simulink

jc_0800

Check usage of Lookup Tables (Simulink Check)mathworks.jmaab.jc_0626jc_0626: Usage of Lookup Table blocks

jc_0626

Check usage of Memory and Unit Delay blocks (Simulink Check)mathworks.jmaab.jc_0623jc_0623: Usage of continuous-time Delay blocks and discrete-time Delay blocks

jc_0623

Check for cascaded Unit Delay blocks (Simulink Check)mathworks.jmaab.jc_0624jc_0624: Usage of Tapped Delay blocks/Delay blocks

jc_0624

Check usage of Discrete-Time Integrator block (Simulink Check)mathworks.jmaab.jc_0627jc_0627: Usage of Discrete-Time Integrator blocks

jc_0627

Check usage of the Saturation blocks (Simulink Check)mathworks.jmaab.jc_0628jc_0628: Usage of Saturation blocks

jc_0628

Check output data type of operation blocks (Simulink Check)mathworks.jmaab.jc_0651jc_0651: Implementing a type conversion

jc_0651

Check position of Inport and Outport blocks (Simulink Check)mathworks.jmaab.db_0042db_0042: Usage of Inport and Outport blocks

db_0042

Check display for port blocks (Simulink Check)mathworks.maab.jc_0081jc_0081: Inport and Outport block icon display

jc_0081

Check scope of From and Goto blocks (Simulink Check)mathworks.maab.na_0011na_0011: Scope of Goto and From blocks

na_0011

Check for usage of Data Store Memory blocks (Simulink Check)mathworks.jmaab.jc_0161jc_0161: Definition of Data Store Memory blocks

jc_0161

Check usage of Switch blocks (Simulink Check)mathworks.maab.jc_0141jc_0141: Usage of the Switch blocks

jc_0141

Check input and output datatype for Switch blocks (Simulink Check)mathworks.jmaab.jc_0650jc_0650: Block input/output data type with switching function

jc_0650

Check settings for data ports in Multiport Switch blocks (Simulink Check)mathworks.jmaab.jc_0630jc_0630: Usage of Multiport Switch blocks

jc_0630

Check for missing ports in Variant Subsystems (Simulink Check)mathworks.jmaab.na_0020na_0020: Number of inputs to variant subsystems

na_0020

Check use of default variants (Simulink Check)mathworks.maab.na_0036na_0036: Default variantna_0036
Check use of single variable variant conditionals (Simulink Check)mathworks.maab.na_0037na_0037: Use of single variable for variant condition

na_0037

Check for names of Stateflow ports and associated signals (Simulink Check)mathworks.maab.db_0123

db_0123: Stateflow port names

No corresponding JMAAB guideline
Check definition of Stateflow data (Simulink Check)mathworks.jmaab.db_0125db_0125: Stateflow local data

db_0125

Check definition of Stateflow events (Simulink Check)mathworks.jmaab.db_0126db_0126: Defining Stateflow events

db_0126

Check usable number for first index (Simulink Check)mathworks.jmaab.jc_0701jc_0701: Usable number for first indexjc_0701
Check execution timing for default transition path (Simulink Check)mathworks.jmaab.jc_0712jc_0712: Execution timing for default transition path

jc_0712

Check scope of data in parallel states (Simulink Check)mathworks.jmaab.jc_0722jc_0722: Local data definition in parallel states

jc_0722

Check for unconnected objects in Stateflow Charts (Simulink Check)mathworks.jmaab.jc_0797jc_0797: Unconnected transitions / states / connective junctions

jc_0797

Check for state in state machines (Simulink Check)mathworks.jmaab.db_0137db_0137: States in state machines

db_0137

Check usage of parallel states (Simulink Check)mathworks.jmaab.jc_0721jc_0721: Usage of parallel states

jc_0721

Check for Stateflow transition appearance (Simulink Check)mathworks.jmaab.db_0129db_0129: Stateflow transition appearance

db_0129

Check default transition placement in Stateflow charts (Simulink Check)mathworks.jmaab.jc_0531jc_0531: Default transition

jc_0531

Check usage of transitions to external states (Simulink Check)mathworks.jmaab.jc_0723jc_0723: Prohibited direct transition from external state to child state

jc_0723

Check for unexpected backtracking in state transitions (Simulink Check)mathworks.jmaab.jc_0751jc_0751: Backtracking prevention in state transition

jc_0751

Check starting point of internal transition in Stateflow (Simulink Check)mathworks.jmaab.jc_0760jc_0760: Starting point of internal transition

jc_0760

Check usage of internal transitions in Stateflow states (Simulink Check)mathworks.jmaab.jc_0763jc_0763: Usage of multiple internal transitions

jc_0763

Check prohibited combination of state action and flow chart (Simulink Check)mathworks.jmaab.jc_0762jc_0762: Prohibition of state action and flow chart combination

jc_0762

Check transitions in Stateflow Flow charts (Simulink Check)mathworks.jmaab.db_0132db_0132: Transitions in flow charts

db_0132

Check usage of unconditional transitions in flow charts (Simulink Check)mathworks.jmaab.jc_0773jc_0773: Unconditional transition of a flow chart

jc_0773

Check terminal junctions in Stateflow (Simulink Check)mathworks.jmaab.jc_0775jc_0775: Terminating junctions in flow charts

jc_0775

Check usage of Stateflow comments (Simulink Check)mathworks.jmaab.jc_0738jc_0738: Usage of Stateflow comments

jc_0738

Check Stateflow chart action language (Simulink Check)mathworks.jmaab.jc_0790jc_0790: Action language of Chart block

jc_0790

Check usage of numeric literals in Stateflow (Simulink Check)mathworks.jmaab.jc_0702jc_0702: Use of named Stateflow parameters and constants

jc_0702

Check for pointers in Stateflow charts (Simulink Check)mathworks.maab.jm_0011jm_0011: Pointers in Stateflow

jm_0011

Not checkableN/Ajc_0491: Reuse of Stateflow data

jc_0491

Check for usage of events and broadcasting events in Stateflow charts (Simulink Check)mathworks.jmaab.jm_0012jm_0012: Usage restrictions of events and broadcasting events

jm_0012

Check order of state action types (Simulink Check)mathworks.jmaab.jc_0733jc_0733: Order of state action types

jc_0733

Check repetition of Action types (Simulink Check)mathworks.jmaab.jc_0734jc_0734: Number of state action types

jc_0734

Check if state action type 'exit' is used in the model (Simulink Check)mathworks.jmaab.jc_0740jc_0740: Limitation on use of exit state action

jc_0740

Check updates to variables used in state transition conditions (Simulink Check)mathworks.jmaab.jc_0741jc_0741: Timing to update data used in state chart transition conditions

jc_0741

Check usage of transition conditions in Stateflow transitions (Simulink Check)mathworks.jmaab.jc_0772jc_0772: Execution order and transition conditions of transition lines

jc_0772

Check condition actions and transition actions in Stateflow (Simulink Check)mathworks.jmaab.jc_0753jc_0753: Condition actions and transition actions in Stateflow

jc_0753

Not checkableN/Ajc_0711: Division in Stateflow

jc_0711

Check for MATLAB expressions in Stateflow charts (Simulink Check)mathworks.jmaab.db_0127db_0127: Limitation on MATLAB commands in Stateflow blocks

db_0127

Check usage of floating-point expressions in Stateflow charts (Simulink Check)mathworks.maab.jc_0481jc_0481: Use of hard equality comparisons for floating point numbers in Stateflow

jc_0481

Check Stateflow operators (Simulink Check)mathworks.jmaab.na_0001na_0001: Standard usage of Stateflow operators

na_0001

Check prohibited comparison operation of logical type signals (Simulink Check)mathworks.jmaab.jc_0655jc_0655: Prohibition of logical value comparison in Stateflow

jc_0655

Check usage of unary minus operations in Stateflow charts (Simulink Check)mathworks.jmaab.jc_0655jc_0451: Use of unary minus on unsigned integers

jc_0451

Check for implicit type casting in Stateflow (Simulink Check)mathworks.jmaab.jc_0802jc_0802: Prohibited use of implicit type casting in Stateflow

jc_0802

Not checkableN/Ajc_0803: Passing values to library functions

jc_0803

Check uniqueness of Stateflow State and Data names (Simulink Check)mathworks.jmaab.jc_0732jc_0732: Distinction between state names, data names, and event names

jc_0732

Check uniqueness of State names (Simulink Check)mathworks.jmaab.jc_0730jc_0730: Unique state name in Stateflow blocks

jc_0730

Check usage of State names (Simulink Check)mathworks.jmaab.jc_0731jc_0731: State name format

jc_0731

Check entry formatting in State blocks in Stateflow charts (Simulink Check)mathworks.jmaab.jc_0501jc_0501: Format of entries in a State block

jc_0501

Check indentation of code in Stateflow states (Simulink Check)mathworks.jmaab.jc_0736jc_0736: Uniform indentations in Stateflow blocks

jc_0736

Check for usage of text inside states (Simulink Check)mathworks.jmaab.jc_0739jc_0739: Describing text inside states

jc_0739

Check placement of Label String in Transitions (Simulink Check)mathworks.jmaab.jc_0770jc_0770: Position of transition label

jc_0770

Check position of comments in transition labels (Simulink Check)mathworks.jmaab.jc_0771jc_0771: Comment position in transition labels

jc_0771

Check usage of parentheses in Stateflow transitions (Simulink Check)mathworks.jmaab.jc_0752jc_0752: Condition action in transition label

jc_0752

Check for comments in unconditional transitions (Simulink Check)mathworks.jmaab.jc_0774jc_0774: Comments for through transition

jc_0774

Check return value assignments in Stateflow graphical functions (Simulink Check)mathworks.maab.jc_0511jc_0511: Return values from a graphical function

jc_0511

Check usage of graphical functions in Stateflow (Simulink Check)mathworks.jmaab.jc_0804jc_0804: Prohibited use of recursive calls with graphical functions

jc_0804

Check usage of Simulink function in Stateflow (Simulink Check)mathworks.jmaab.na_0042na_0042: Usage of Simulink functions

na_0042

Check use of Simulink in Stateflow charts (Simulink Check)mathworks.maab.na_0039na_0039: Limitation on Simulink functions in Chart blocks

na_0039

Check nested conditions in MATLAB Functions (Simulink Check)mathworks.jmaab.na_0018

na_0018: Number of nested if/else and case statement

No corresponding JMAAB guideline
No checkN/A

na_0025: MATLAB Function header

No corresponding JMAAB guideline
Check MATLAB code for global variables (Simulink Check)mathworks.maab.na_0024na_0024: Shared data in MATLAB functions

na_0024

Check usage of enumerated values (Simulink Check)mathworks.maab.na_0031na_0031: Definition of default enumerated value

na_0031

Check input and output settings of MATLAB Functions (Simulink Check)mathworks.maab.na_0034na_0034: MATLAB Function block input/output settings

na_0034

Check lines of code in MATLAB Functions (Simulink Check)mathworks.jmaab.na_0016

na_0016: Source lines of MATLAB Functions

No corresponding JMAAB guideline
Check the number of function calls in MATLAB Function blocks (Simulink Check)mathworks.jmaab.na_0016

na_0017: Number of called function levels

No corresponding JMAAB guideline
Check usage of character vector inside MATLAB Function block (Simulink Check)mathworks.maab.na_0021na_0021: Strings in MATLAB functions

na_0021

Check usage of recommended patterns for Switch/Case statements (Simulink Check)mathworks.maab.na_0022

na_0022: Recommended patterns for Switch/Case statements

No corresponding JMAAB guideline
Check for use of C-style comment symbols (Simulink Check)mathworks.jmaab.jc_0801jc_0801: Prohibited use of the /* and */ comment symbols

jc_0801

See Also