Main Content

Model Advisor Checks for MAB Modeling Guidelines

This table identifies the Model Advisor checks that you can use to verify compliance of your model with MathWorks® Advisor Board (MAB) modeling guidelines.

In the Model Advisor, to access the MAB checks, select:

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

  • By Task > Modeling Standards for MAB

You need Simulink® Check™ to execute these checks.


Some guidelines do not have corresponding Model Advisor checks:

  • 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

(Version 5.0)

Model Advisor CheckCheck ID

ar_0001: Usable characters for file names

Check file namesmathworks.jmaab.ar_0001
ar_0002: Usable characters for folder namesCheck folder namesmathworks.jmaab.ar_0002
db_0032: Signal line connectionsCheck signal line connectionsmathworks.jmaab.db_0032
db_0042: Usage of Inport and Outport blocksCheck position of Inport and Outport blocksmathworks.jmaab.db_0042
db_0043: Model font and font sizeCheck model font settingsmathworks.jmaab.db_0043
db_0081: Unconnected signals and blocksCheck for unconnected signal lines and blocksmathworks.jmaab.db_0081
db_0097: Position of labels for signals and busesCheck position of signal labelsmathworks.jmaab.db_0097
db_0110: Block parametersCheck usage of tunable parameters in blocksmathworks.maab.db_0110
db_0112: Usage of indexCheck Indexing Modemathworks.jmaab.db_0112

db_0123: Stateflow port names

Check for names of Stateflow ports and associated signalsmathworks.maab.db_0123
db_0125: Stateflow local dataCheck definition of Stateflow datamathworks.jmaab.db_0125
db_0126: Defining Stateflow eventsCheck definition of Stateflow eventsmathworks.jmaab.db_0126
db_0127: Limitation on MATLAB commands in Stateflow blocksCheck for MATLAB expressions in Stateflow chartsmathworks.jmaab.db_0127
db_0129: Stateflow transition appearanceCheck for Stateflow transition appearancemathworks.jmaab.db_0129
db_0132: Transitions in flow chartsCheck transitions in Stateflow Flow chartsmathworks.jmaab.db_0132
db_0137: States in state machinesCheck for state in state machinesmathworks.jmaab.db_0137

db_0140: Display of block parameters

Check for nondefault block attributesmathworks.maab.db_0140
db_0141: Signal flow in Simulink modelsCheck signal flow in modelmathworks.jmaab.db_0141
db_0142: Position of block namesCheck whether block names appear below blocksmathworks.maab.db_0142
db_0143: Usable block types in model hierarchyCheck for mixing basic blocks and subsystemsmathworks.maab.db_0143
db_0144: Use of subsystemsNot checkable
db_0146: Block layout in conditional subsystemsCheck position of conditional blocks and iterator blocksmathworks.jmaab.db_0146

hd_0001: Prohibited Simulink sinks

Check for prohibited sink blocksmathworks.maab.hd_0001
jc_0008: Definition of signal namesCheck definition of signal labelsmathworks.jmaab.jc_0008
jc_0009: Signal name propagationCheck signal name propagationmathworks.jmaab.jc_0009
jc_0011: Optimization parameters for Boolean data typesCheck Implement logic signals as Boolean data (vs. double)mathworks.maab.jc_0011

jc_0021: Model diagnostic settings

Check model diagnostic parametersmathworks.maab.jc_0021
jc_0061: Display of block namesCheck the display attributes of block namesmathworks.maab.jc_0061
jc_0081: Inport and Outport block icon displayCheck display for port blocksmathworks.maab.jc_0081
jc_0110: Direction of blockCheck block orientationmathworks.jmaab.jc_0110
jc_0121: Usage of add and subtraction blocksCheck usage of Sum blocksmathworks.jmaab.jc_0121
jc_0131: Usage of Relational Operator blocksCheck usage of Relational Operator blocksmathworks.maab.jc_0131
jc_0141: Usage of the Switch blocksCheck usage of Switch blocksmathworks.maab.jc_0141
jc_0161: Definition of Data Store Memory blocksCheck for usage of Data Store Memory blocksmathworks.jmaab.jc_0161
jc_0171: Clarification of connections between structural subsystemsCheck connections between structural subsystemsmathworks.jmaab.jc_0171
jc_0201: Usable characters for subsystem namesCheck subsystem namesmathworks.jmaab.jc_0201
jc_0211: Usable characters for Inport blocks and Outport blockCheck port block namesmathworks.jmaab.jc_0211
jc_0222: Usable characters for signal and bus namesCheck usable characters for signal names and bus namesmathworks.jmaab.jc_0222
jc_0231: Usable characters for block namesCheck character usage in block namesmathworks.jmaab.jc_0231
jc_0232: Usable characters for parameter namesCheck usable characters for parameter namesmathworks.jmaab.jc_0232
jc_0241: Length restriction for model file namesCheck length of model file namemathworks.jmaab.jc_0241
jc_0242: Length restriction for folder namesCheck length of folder name at every level of model pathmathworks.jmaab.jc_0242
jc_0243: Length restriction for subsystem namesCheck length of subsystem namesmathworks.jmaab.jc_0243
jc_0244: Length restriction for Inport and Outport namesCheck length of Inport and Outport namesmathworks.jmaab.jc_0244
jc_0245: Length restriction for signal and bus namesCheck length of signal and bus namesmathworks.jmaab.jc_0245
jc_0246: Length restriction for parameter nameCheck length of parameter namesmathworks.jmaab.jc_0246
jc_0247: Length restriction for block namesCheck length of block namesmathworks.jmaab.jc_0247
jc_0281: Trigger signal namesCheck trigger signal namesmathworks.jmaab.jc_0281
jc_0451: Use of unary minus on unsigned integersCheck usage of unary minus operations in Stateflow chartsmathworks.jmaab.jc_0451
jc_0481: Use of hard equality comparisons for floating point numbers in StateflowCheck usage of floating-point expressions in Stateflow chartsmathworks.maab.jc_0481
jc_0491: Reuse of Stateflow dataNot checkable
jc_0501: Format of entries in a State blockCheck entry formatting in State blocks in Stateflow chartsmathworks.jmaab.jc_0501
jc_0511: Return values from a graphical functionCheck return value assignments in Stateflow graphical functionsmathworks.maab.jc_0511
jc_0531: Default transitionCheck default transition placement in Stateflow chartsmathworks.jmaab.jc_0531
jc_0602: Consistency in model element namesCheck for consistency in model element namesmathworks.jmaab.jc_0602
jc_0603: Model descriptionCheck Model Descriptionmathworks.jmaab.jc_0603
jc_0604: Using block shadowCheck if blocks are shaded in the modelmathworks.jmaab.jc_0604
jc_0610: Operator order for multiplication and division blockCheck operator order of Product blocksmathworks.jmaab.jc_0610
jc_0611: Input sign for multiplication and division blocksCheck signs of input signals in product blocksmathworks.jmaab.jc_0611
jc_0621: Usage of Logical Operator blocksCheck icon shape of Logical Operator blocksmathworks.jmaab.jc_0621
jc_0622: Usage of Fcn blocks Check for parentheses in Fcn block expressionsmathworks.jmaab.jc_0622
jc_0623: Usage of continuous-time Delay blocks and discrete-time Delay blocksCheck usage of Memory and Unit Delay blocksmathworks.jmaab.jc_0623
jc_0624: Usage of Tapped Delay blocks/Delay blocksCheck for cascaded Unit Delay blocksmathworks.jmaab.jc_0624
jc_0626: Usage of Lookup Table blocksCheck usage of Lookup Tablesmathworks.jmaab.jc_0626
jc_0627: Usage of Discrete-Time Integrator blocksCheck usage of Discrete-Time Integrator blockmathworks.jmaab.jc_0627
jc_0628: Usage of Saturation blocksCheck usage of the Saturation blocksmathworks.jmaab.jc_0628
jc_0630: Usage of Multiport Switch blocksCheck settings for data ports in Multiport Switch blocksmathworks.jmaab.jc_0630
jc_0640: Initial value settings for Outport blocks in conditional subsystemsCheck undefined initial output for conditional subsystemsmathworks.jmaab.jc_0640
jc_0641: Sample time settingCheck for sample time settingmathworks.jmaab.jc_0641
jc_0642: Integer rounding mode settingCheck Signed Integer Division Rounding modemathworks.jmaab.jc_0642
jc_0643: Fixed-point settingCheck usage of fixed-point data type with non-zero biasmathworks.jmaab.jc_0643
jc_0644: Type settingCheck type setting by data objectsmathworks.jmaab.jc_0644
jc_0645: Parameter definition for calibrationCheck if tunable block parameters are defined as named constantsmathworks.jmaab.jc_0645
jc_0650: Block input/output data type with switching functionCheck input and output datatype for Switch blocksmathworks.jmaab.jc_0650
jc_0651: Implementing a type conversionCheck output data type of operation blocksmathworks.jmaab.jc_0651
jc_0653: Delay block layout in feedback loopsCheck for avoiding algebraic loops between subsystemsmathworks.jmaab.jc_0653
jc_0655: Prohibition of logical value comparison in StateflowCheck prohibited comparison operation of logical type signalsmathworks.jmaab.jc_0655
jc_0656: Usage of Conditional Control blocksCheck default/else case in Switch Case blocks and If blocksmathworks.jmaab.jc_0656
jc_0657: Retention of output value based on conditional control flow blocks and Merge blocksNot checkable
jc_0659: Usage restrictions of signal lines input to Merge blocksCheck usage of Merge blockmathworks.jmaab.jc_0659
jc_0700: Unused data in Stateflow blockCheck for unused data in Stateflow Chartsmathworks.jmaab.jc_0700
jc_0701: Usable number for first indexCheck usable number for first indexmathworks.jmaab.jc_0701
jc_0702: Use of named Stateflow parameters and constantsCheck usage of numeric literals in Stateflowmathworks.jmaab.jc_0702
jc_0711: Division in StateflowNot checkable
jc_0712: Execution timing for default transition pathCheck execution timing for default transition pathmathworks.jmaab.jc_0712
jc_0721: Usage of parallel statesCheck usage of parallel statesmathworks.jmaab.jc_0721
jc_0722: Local data definition in parallel statesCheck scope of data in parallel statesmathworks.jmaab.jc_0722
jc_0723: Prohibited direct transition from external state to child stateCheck usage of transitions to external statesmathworks.jmaab.jc_0723
jc_0730: Unique state name in Stateflow blocksCheck uniqueness of State namesmathworks.jmaab.jc_0730
jc_0731: State name formatCheck usage of State namesmathworks.jmaab.jc_0731
jc_0732: Distinction between state names, data names, and event namesCheck uniqueness of Stateflow state, data and event namesmathworks.jmaab.jc_0732
jc_0733: Order of state action typesCheck order of state action typesmathworks.jmaab.jc_0733
jc_0734: Number of state action typesCheck repetition of action typesmathworks.jmaab.jc_0734
jc_0736: Uniform indentations in Stateflow blocksCheck indentation of code in Stateflow statesmathworks.jmaab.jc_0736
jc_0738: Usage of Stateflow commentsCheck usage of Stateflow commentsmathworks.jmaab.jc_0738
jc_0739: Describing text inside statesCheck for usage of text inside statesmathworks.jmaab.jc_0739
jc_0740: Limitation on use of exit state actionCheck if state action type 'exit' is used in the modelmathworks.jmaab.jc_0740
jc_0741: Timing to update data used in state chart transition conditionsCheck updates to variables used in state transition conditionsmathworks.jmaab.jc_0741
jc_0751: Backtracking prevention in state transitionCheck for unexpected backtracking in state transitionsmathworks.jmaab.jc_0751
jc_0752: Condition action in transition labelCheck usage of parentheses in Stateflow transitionsmathworks.jmaab.jc_0752
jc_0753: Condition actions and transition actions in StateflowCheck condition actions and transition actions in Stateflowmathworks.jmaab.jc_0753
jc_0760: Starting point of internal transitionCheck starting point of internal transition in Stateflowmathworks.jmaab.jc_0760
jc_0762: Prohibition of state action and flow chart combinationCheck prohibited combination of state action and flow chartmathworks.jmaab.jc_0762
jc_0763: Usage of multiple internal transitionsCheck usage of internal transitions in Stateflow statesmathworks.jmaab.jc_0763
jc_0770: Position of transition labelCheck placement of Label String in Transitionsmathworks.jmaab.jc_0770
jc_0771: Comment position in transition labelsCheck position of comments in transition labelsmathworks.jmaab.jc_0771
jc_0772: Execution order and transition conditions of transition linesCheck usage of transition conditions in Stateflow transitionsmathworks.jmaab.jc_0772
jc_0773: Unconditional transition of a flow chartCheck usage of unconditional transitions in flow chartsmathworks.jmaab.jc_0773
jc_0774: Comments for through transitionCheck for comments in unconditional transitionsmathworks.jmaab.jc_0774
jc_0775: Terminating junctions in flow chartsCheck terminal junctions in Stateflowmathworks.jmaab.jc_0775
jc_0790: Action language of Chart blockCheck Stateflow chart action languagemathworks.jmaab.jc_0790
jc_0791: Duplicate data name definitionsCheck duplication of Simulink data namesmathworks.jmaab.jc_0791
jc_0792: Unused DataCheck unused data in Simulink Modelmathworks.jmaab.jc_0792
jc_0794: Division in SimulinkCheck for division by zero in Simulinkmathworks.jmaab.jc_0794
jc_0795: Usable characters for Stateflow data namesCheck usable characters for Stateflow data namesmathworks.jmaab.jc_0795
jc_0796: Length restriction for Stateflow data namesCheck length of Stateflow data namemathworks.jmaab.jc_0796
jc_0797: Unconnected transitions / states / connective junctionsCheck for unconnected objects in Stateflow Chartsmathworks.jmaab.jc_0797
jc_0800: Comparing floating-point types in SimulinkCheck comparison of floating point types in Simulinkmathworks.jmaab.jc_0800
jc_0801: Prohibited use of the /* and */ comment symbolsCheck for use of C-style comment symbolsmathworks.jmaab.jc_0801
jc_0802: Prohibited use of implicit type casting in StateflowCheck for implicit type casting in Stateflowmathworks.jmaab.jc_0802
jc_0803: Passing values to library functionsNot checkable
jc_0804: Prohibited use of recursive calls with graphical functionsCheck usage of graphical functions in Stateflowmathworks.jmaab.jc_0804
jc_0805: Numerical operation block inputsNo check
jc_0806: Detecting incorrect calculation resultsCheck diagnostic settings for incorrect calculation resultsmathworks.jmaab.jc_0806
jm_0002: Block resizingNo check
jm_0011: Pointers in StateflowCheck for pointers in Stateflow chartsmathworks.maab.jm_0011
jm_0012: Usage restrictions of events and broadcasting eventsCheck for usage of events in Stateflow chartsmathworks.jmaab.jm_0012
na_0001: Standard usage of Stateflow operatorsCheck Stateflow operatorsmathworks.jmaab.na_0001
na_0002: Appropriate usage of basic logical and numerical operationsCheck fundamental logical and numerical operationsmathworks.jmaab.na_0002
na_0003: Usage of If blocksCheck logical expressions in If blocksmathworks.maab.na_0003

na_0004: Simulink model appearance settings

Check for Simulink diagrams using nonstandard display attributesmathworks.maab.na_0004

na_0008: Display of labels on signals

Check signal line labelsmathworks.maab.na_0008

na_0009: Entry versus propagation of signal labels

Check for propagated signal labelsmathworks.maab.na_0009
na_0010: Usage of vector and bus signalsCheck usage of vector and bus signalsmathworks.jmaab.na_0010
na_0011: Scope of Goto and From blocksCheck scope of From and Goto blocksmathworks.maab.na_0011

na_0016: Source lines of MATLAB Functions

Check lines of code in MATLAB Functionsmathworks.jmaab.na_0016

na_0017: Number of called function levels

Check the number of function calls in MATLAB Function blocksmathworks.jmaab.na_0017

na_0018: Number of nested if/else and case statement

Check nested conditions in MATLAB Functionsmathworks.jmaab.na_0018
na_0019: Restricted variable namesCheck usage of restricted variable namesmathworks.maab.na_0019
na_0020: Number of inputs to variant subsystemsCheck for missing ports in Variant Subsystemsmathworks.jmaab.na_0020
na_0021: Strings in MATLAB functionsCheck usage of character vector inside MATLAB Function blockmathworks.maab.na_0021

na_0022: Recommended patterns for Switch/Case statements

Check usage of recommended patterns for Switch/Case statementsmathworks.maab.na_0022
na_0024: Shared data in MATLAB functionsCheck MATLAB code for global variablesmathworks.maab.na_0024

na_0025: MATLAB Function header

No check
na_0031: Definition of default enumerated valueCheck usage of enumerated valuesmathworks.maab.na_0031
na_0034: MATLAB Function block input/output settingsCheck input and output settings of MATLAB Functionsmathworks.maab.na_0034
na_0036: Default variantCheck use of default variantsmathworks.maab.na_0036
na_0037: Use of single variable for variant conditionCheck use of single variable variant conditionalsmathworks.maab.na_0037
na_0039: Limitation on Simulink functions in Chart blocksCheck use of Simulink in Stateflow chartsmathworks.maab.na_0039
na_0042: Usage of Simulink functionsCheck usage of Simulink function in Stateflowmathworks.jmaab.na_0042