Main Content

Model Checks for MAB and JMAAB Compliance

You can use the Model Advisor to verify that your model or subsystem complies with the MathWorks® Advisory Board (MAB) and Japan MATLAB® Automotive Advisory Board modeling (JMAAB) guidelines.

Accessing the MAB and JMAAB Model Advisor Checks

To open the Model Advisor, in the Simulink® editor, click the Modeling tab and select Model Advisor. A System Selector ― Model Advisor dialog box opens. Select the model or system that you want to review and click OK.

The MAB checks are available from these Model Advisor folders:

  • By Product > Simulink Check > Modeling Standards > MAB Checks

  • By Task > Modeling Standards for MAB

The JMAAB checks are available from these Model Advisor folders:

  • By Product > Simulink Check > Modeling Standards > JMAAB Checks

  • By Task > Modeling Standards for JMAAB

For information on using the Model Advisor, see Run Model Advisor Checks and Review Results.

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 namesmathworks.jmaab.ar_0001

ar_0001: Usable characters for file names

ar_0001
Check folder namesmathworks.jmaab.ar_0002ar_0002: Usable characters for folder names

ar_0002

Check length of model file namemathworks.jmaab.jc_0241jc_0241: Length restriction for model file names

jc_0241

Check length of folder name at every level of model pathmathworks.jmaab.jc_0242jc_0242: Length restriction for folder names

jc_0242

Check Subsystem namesmathworks.jmaab.jc_0201jc_0201: Usable characters for subsystem names

jc_0201

Check character usage in block namesmathworks.jmaab.jc_0231jc_0231: Usable characters for block names

jc_0231

Check port block namesmathworks.jmaab.jc_0211jc_0211: Usable characters for Inport blocks and Outport block

jc_0211

Check length of subsystem namesmathworks.jmaab.jc_0243jc_0243: Length restriction for subsystem names

jc_0243

Check length of block namesmathworks.jmaab.jc_0247jc_0247: Length restriction for block names

jc_0247

Check length of Inport and Outport namesmathworks.jmaab.jc_0244jc_0244: Length restriction for Inport and Outport names

jc_0244

Check usable characters for signal names and bus namesmathworks.jmaab.jc_0222jc_0222: Usable characters for signal and bus names

jc_0222

Check usable characters for parameter namesmathworks.jmaab.jc_0232jc_0232: Usable characters for parameter names

jc_0232

Check length of signal and bus namesmathworks.jmaab.jc_0245jc_0245: Length restriction for signal and bus names

jc_0245

Check length of parameter namesmathworks.jmaab.jc_0246jc_0246: Length restriction for parameter name

jc_0246

Check usable characters for Stateflow data namesmathworks.jmaab.jc_0795jc_0795: Usable characters for Stateflow data names

jc_0795

Check length of Stateflow data namemathworks.jmaab.jc_0796jc_0796: Length restriction for Stateflow data names

jc_0796

Check duplication of Simulink data namesmathworks.jmaab.jc_0791jc_0791: Duplicate data name definitions

jc_0791

Check unused data in Simulink Modelmathworks.jmaab.jc_0792jc_0792: Unused Data

jc_0792

Check for unused data in Stateflow Chartsmathworks.jmaab.jc_0700jc_0700: Unused data in Stateflow block

jc_0700

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

jc_0011

Check Signed Integer Division Rounding modemathworks.jmaab.jc_0642jc_0642: Integer rounding mode setting

jc_0642

Check diagnostic settings for incorrect calculation resultsmathworks.jmaab.jc_0806jc_0806: Detecting incorrect calculation results

jc_0806

Check model diagnostic parametersmathworks.maab.jc_0021

jc_0021: Model diagnostic settings

No corresponding JMAAB guideline
Check for Simulink diagrams using nonstandard display attributesmathworks.maab.na_0004

na_0004: Simulink model appearance settings

na_0004

Check Model font settingsmathworks.jmaab.db_0043db_0043: Model font and font size

db_0043

No checkN/Ajm_0002: Block resizingjm_0002
Check whether block names appear below blocksmathworks.maab.db_0142db_0142: Position of block names

db_0142

Check the display attributes of block namesmathworks.maab.jc_0061jc_0061: Display of block names

jc_0061

Check for nondefault block attributesmathworks.maab.db_0140

db_0140: Display of block parameters

db_0140

Check Model Descriptionmathworks.jmaab.jc_0603jc_0603: Model description

jc_0603

Check if blocks are shaded in the modelmathworks.jmaab.jc_0604jc_0604: Using block shadow

jc_0604

Check for unconnected signal lines and blocksmathworks.jmaab.db_0081db_0081: Unconnected signals and blocks

db_0081

Check signal line connectionsmathworks.jmaab.db_0032db_0032: Signal line connections

db_0032

Check signal flow in model Check position of signal labelsmathworks.jmaab.db_0097db_0141: Signal flow in Simulink models

db_0141

Check block orientationmathworks.jmaab.jc_0110jc_0110: Direction of block

jc_0110

Check connections between structural subsystemsmathworks.jmaab.jc_0171jc_0171: Clarification of connections between structural subsystems

jc_0171

Check for consistency in model element namesmathworks.jmaab.jc_0602jc_0602: Consistency in model element names

jc_0602

Check trigger signal namesmathworks.jmaab.jc_0281jc_0281: Trigger signal names

jc_0281

Check for mixing basic blocks and subsystemsmathworks.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 subsystemsmathworks.jmaab.jc_0653jc_0653: Delay block layout in feedback loopsjc_0653
Check for prohibited sink blocksmathworks.maab.hd_0001

hd_0001: Prohibited Simulink sinks

No corresponding JMAAB guideline
Check usage of vector and bus signalsmathworks.jmaab.na_0010na_0010: Usage of vector and bus signals

na_0010

Check signal line labelsmathworks.jmaab.jc_0008jc_0008: Definition of signal names

jc_0008

Check for propagated signal labelsmathworks.jmaab.jc_0009jc_0009: Signal name propagation

jc_0009

Check signal flow in model Check position of signal labelsmathworks.jmaab.db_0097db_0097: Position of labels for signals and buses

db_0097

Check signal line labelsmathworks.maab.na_0008

na_0008: Display of labels on signals

No corresponding JMAAB guideline
Check for propagated signal labelsmathworks.maab.na_0009

na_0009: Entry versus propagation of signal labels

No corresponding JMAAB guideline
Check usage of tunable parameters in blocksmathworks.maab.db_0110db_0110: Block parameters

db_0110

Check Indexing Modemathworks.jmaab.db_0112db_0112: Usage of index

db_0112

Check if tunable block parameters are defined as named constantsmathworks.jmaab.jc_0645jc_0645: Parameter definition for calibration

jc_0645

Check for sample time settingmathworks.jmaab.jc_0641jc_0641: Sample time setting

jc_0641

Check usage of fixed-point data type with non-zero biasmathworks.jmaab.jc_0643jc_0643: Fixed-point setting

jc_0643

Check type setting by data objectsmathworks.jmaab.jc_0644jc_0644: Type setting

jc_0644

Check position of conditional blocks and iterator blocksmathworks.jmaab.db_0146db_0146: Block layout in conditional subsystems

db_0146

Check undefined initial output for conditional subsystemsmathworks.jmaab.jc_0640jc_0640: Initial value settings for Outport blocks in conditional subsystems

jc_0640

Check usage of Merge blockmathworks.jmaab.jc_0659jc_0659: Usage restrictions of signal lines input to Merge blocks

jc_0659

Check logical expressions in If blocksmathworks.maab.na_0003na_0003: Usage of If blocks

na_0003

Check default/else case in Switch Case blocks and If blocksmathworks.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 operationsmathworks.jmaab.na_0002na_0002: Appropriate usage of basic logical and numerical operations

na_0002

Check usage of Sum blocksmathworks.jmaab.jc_0121jc_0121: Usage of add and subtraction blocks

jc_0121

Check operator order of Product blocksmathworks.jmaab.jc_0610jc_0610: Operator order for multiplication and division block

jc_0610

Check signs of input signals in product blocksmathworks.jmaab.jc_0611jc_0611: Input sign for multiplication and division blocks

jc_0611

Check for division by zero in Simulinkmathworks.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 expressionsmathworks.jmaab.jc_0622jc_0622: Usage of Fcn blocks

jc_0622

Check icon shape of Logical Operator blocksmathworks.jmaab.jc_0621jc_0621: Usage of Logical Operator blocks

jc_0621

Check usage of Relational Operator blocksmathworks.maab.jc_0131jc_0131: Usage of Relational Operator blocks

jc_0131

Comparing floating point types in Simulinkmathworks.jmaab.jc_0800jc_0800: Comparing floating-point types in Simulink

jc_0800

Check usage of Lookup Tablesmathworks.jmaab.jc_0626jc_0626: Usage of Lookup Table blocks

jc_0626

Check usage of Memory and Unit Delay blocksmathworks.jmaab.jc_0623jc_0623: Usage of continuous-time Delay blocks and discrete-time Delay blocks

jc_0623

Check for cascaded Unit Delay blocksmathworks.jmaab.jc_0624jc_0624: Usage of Tapped Delay blocks/Delay blocks

jc_0624

Check usage of Discrete-Time Integrator blockmathworks.jmaab.jc_0627jc_0627: Usage of Discrete-Time Integrator blocks

jc_0627

Check usage of the Saturation blocksmathworks.jmaab.jc_0628jc_0628: Usage of Saturation blocks

jc_0628

Check output data type of operation blocksmathworks.jmaab.jc_0651jc_0651: Implementing a type conversion

jc_0651

Check position of Inport and Outport blocksmathworks.jmaab.db_0042db_0042: Usage of Inport and Outport blocks

db_0042

Check display for port blocksmathworks.maab.jc_0081jc_0081: Inport and Outport block icon display

jc_0081

Check scope of From and Goto blocksmathworks.maab.na_0011na_0011: Scope of Goto and From blocks

na_0011

Check for usage of Data Store Memory blocksmathworks.jmaab.jc_0161jc_0161: Definition of Data Store Memory blocks

jc_0161

Check usage of Switch blocksmathworks.maab.jc_0141jc_0141: Usage of the Switch blocks

jc_0141

Check input and output datatype for Switch blocksmathworks.jmaab.jc_0650jc_0650: Block input/output data type with switching function

jc_0650

Check settings for data ports in Multiport Switch blocksmathworks.jmaab.jc_0630jc_0630: Usage of Multiport Switch blocks

jc_0630

Check for missing ports in Variant Subsystemsmathworks.jmaab.na_0020na_0020: Number of inputs to variant subsystems

na_0020

Check use of default variantsmathworks.maab.na_0036na_0036: Default variantna_0036
Check use of single variable variant conditionalsmathworks.maab.na_0037na_0037: Use of single variable for variant condition

na_0037

Check for names of Stateflow ports and associated signalsmathworks.maab.db_0123

db_0123: Stateflow port names

No corresponding JMAAB guideline
Check definition of Stateflow datamathworks.jmaab.db_0125db_0125: Stateflow local data

db_0125

Check definition of Stateflow eventsmathworks.jmaab.db_0126db_0126: Defining Stateflow events

db_0126

Check usable number for first indexmathworks.jmaab.jc_0701jc_0701: Usable number for first indexjc_0701
Check execution timing for default transition pathmathworks.jmaab.jc_0712jc_0712: Execution timing for default transition path

jc_0712

Check scope of data in parallel statesmathworks.jmaab.jc_0722jc_0722: Local data definition in parallel states

jc_0722

Check for unconnected objects in Stateflow Chartsmathworks.jmaab.jc_0797jc_0797: Unconnected transitions / states / connective junctions

jc_0797

Check for state in state machinesmathworks.jmaab.db_0137db_0137: States in state machines

db_0137

Check usage of parallel statesmathworks.jmaab.jc_0721jc_0721: Usage of parallel states

jc_0721

Check for Stateflow transition appearancemathworks.jmaab.db_0129db_0129: Stateflow transition appearance

db_0129

Check default transition placement in Stateflow chartsmathworks.jmaab.jc_0531jc_0531: Default transition

jc_0531

Check usage of transitions to external statesmathworks.jmaab.jc_0723jc_0723: Prohibited direct transition from external state to child state

jc_0723

Check for unexpected backtracking in state transitionsmathworks.jmaab.jc_0751jc_0751: Backtracking prevention in state transition

jc_0751

Check starting point of internal transition in Stateflowmathworks.jmaab.jc_0760jc_0760: Starting point of internal transition

jc_0760

Check usage of internal transitions in Stateflow statesmathworks.jmaab.jc_0763jc_0763: Usage of multiple internal transitions

jc_0763

Check prohibited combination of state action and flow chartmathworks.jmaab.jc_0762jc_0762: Prohibition of state action and flow chart combination

jc_0762

Check transitions in Stateflow Flow chartsmathworks.jmaab.db_0132db_0132: Transitions in flow charts

db_0132

Check usage of unconditional transitions in flow chartsmathworks.jmaab.jc_0773jc_0773: Unconditional transition of a flow chart

jc_0773

Check terminal junctions in Stateflowmathworks.jmaab.jc_0775jc_0775: Terminating junctions in flow charts

jc_0775

Check usage of Stateflow commentsmathworks.jmaab.jc_0738jc_0738: Usage of Stateflow comments

jc_0738

Check Stateflow chart action languagemathworks.jmaab.jc_0790jc_0790: Action language of Chart block

jc_0790

Check usage of numeric literals in Stateflowmathworks.jmaab.jc_0702jc_0702: Use of named Stateflow parameters and constants

jc_0702

Check for pointers in Stateflow chartsmathworks.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 chartsmathworks.jmaab.jm_0012jm_0012: Usage restrictions of events and broadcasting events

jm_0012

Check order of state action typesmathworks.jmaab.jc_0733jc_0733: Order of state action types

jc_0733

Check repetition of Action typesmathworks.jmaab.jc_0734jc_0734: Number of state action types

jc_0734

Check if state action type 'exit' is used in the modelmathworks.jmaab.jc_0740jc_0740: Limitation on use of exit state action

jc_0740

Check updates to variables used in state transition conditionsmathworks.jmaab.jc_0741jc_0741: Timing to update data used in state chart transition conditions

jc_0741

Check usage of transition conditions in Stateflow transitionsmathworks.jmaab.jc_0772jc_0772: Execution order and transition conditions of transition lines

jc_0772

Check condition actions and transition actions in Stateflowmathworks.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 chartsmathworks.jmaab.db_0127db_0127: Limitation on MATLAB commands in Stateflow blocks

db_0127

Check usage of floating-point expressions in Stateflow chartsmathworks.maab.jc_0481jc_0481: Use of hard equality comparisons for floating point numbers in Stateflow

jc_0481

Check Stateflow operatorsmathworks.jmaab.na_0001na_0001: Standard usage of Stateflow operators

na_0001

Check prohibited comparison operation of logical type signalsmathworks.jmaab.jc_0655jc_0655: Prohibition of logical value comparison in Stateflow

jc_0655

Check usage of unary minus operations in Stateflow chartsmathworks.jmaab.jc_0655jc_0451: Use of unary minus on unsigned integers

jc_0451

Check for implicit type casting in Stateflowmathworks.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 namesmathworks.jmaab.jc_0732jc_0732: Distinction between state names, data names, and event names

jc_0732

Check uniqueness of State namesmathworks.jmaab.jc_0730jc_0730: Unique state name in Stateflow blocks

jc_0730

Check usage of State namesmathworks.jmaab.jc_0731jc_0731: State name format

jc_0731

Check entry formatting in State blocks in Stateflow chartsmathworks.jmaab.jc_0501jc_0501: Format of entries in a State block

jc_0501

Check indentation of code in Stateflow statesmathworks.jmaab.jc_0736jc_0736: Uniform indentations in Stateflow blocks

jc_0736

Check for usage of text inside statesmathworks.jmaab.jc_0739jc_0739: Describing text inside states

jc_0739

Check placement of Label String in Transitionsmathworks.jmaab.jc_0770jc_0770: Position of transition label

jc_0770

Check position of comments in transition labelsmathworks.jmaab.jc_0771jc_0771: Comment position in transition labels

jc_0771

Check usage of parentheses in Stateflow transitionsmathworks.jmaab.jc_0752jc_0752: Condition action in transition label

jc_0752

Check for comments in unconditional transitionsmathworks.jmaab.jc_0774jc_0774: Comments for through transition

jc_0774

Check return value assignments in Stateflow graphical functionsmathworks.maab.jc_0511jc_0511: Return values from a graphical function

jc_0511

Check usage of graphical functions in Stateflowmathworks.jmaab.jc_0804jc_0804: Prohibited use of recursive calls with graphical functions

jc_0804

Check usage of Simulink function in Stateflowmathworks.jmaab.na_0042na_0042: Usage of Simulink functions

na_0042

Check use of Simulink in Stateflow chartsmathworks.maab.na_0039na_0039: Limitation on Simulink functions in Chart blocks

na_0039

Check nested conditions in MATLAB Functionsmathworks.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 variablesmathworks.maab.na_0024na_0024: Shared data in MATLAB functions

na_0024

Check usage of enumerated valuesmathworks.maab.na_0031na_0031: Definition of default enumerated value

na_0031

Check input and output settings of MATLAB Functionsmathworks.maab.na_0034na_0034: MATLAB Function block input/output settings

na_0034

Check lines of code in MATLAB Functionsmathworks.jmaab.na_0016

na_0016: Source lines of MATLAB Functions

No corresponding JMAAB guideline
Check the number of function calls in MATLAB Function blocksmathworks.jmaab.na_0016

na_0017: Number of called function levels

No corresponding JMAAB guideline
Check usage of character vector inside MATLAB Function blockmathworks.maab.na_0021na_0021: Strings in MATLAB functions

na_0021

Check usage of recommended patterns for Switch/Case statementsmathworks.maab.na_0022

na_0022: Recommended patterns for Switch/Case statements

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

jc_0801

See Also