Model Checks for MathWorks Automotive Advisory Board (MAAB) Guideline Compliance

You can check that your model or subsystem complies with MathWorks® Automotive Advisory Board (MAAB) Guidelines by running the Model Advisor. Navigate to By Task > Modeling Standards for MAAB and run the checks.

The MAAB involves major automotive OEMs and suppliers in the process of evolving MathWorks controls, simulation, and code generation products, including Simulink®, Stateflow®, and Simulink Coder™. An important result of this collaboration has been the MAAB Control Algorithm Modeling Guidelines.

The table lists the MAAB checks with the applicable MAAB Control Algorithm Modeling guideline. For JMAAB checks, see Model Checks for Japan MATLAB Automotive Advisory Board (JMAAB) Guideline Compliance.

By Task > Modeling Standards for MAAB subfolderModel Advisor CheckGuideline from the MAAB Control Algorithm Modeling Guidelines, Version 3.0

Naming Conventions

Check file namesar_0001: Filenames
Check folder namesar_0002: Directory names
Check subsystem namesjc_0201: Usable characters for Subsystem names
Check port block namesjc_0211: Usable characters for Inport blocks and Outport blocks
Check character usage in signal labelsjc_0221: Usable characters for signal line names
Check character usage in block namesjc_0231: Usable characters for block names
Check Simulink bus signal namesna_0030: Usable characters for Simulink Bus names
Model ArchitectureCheck for mixing basic blocks and subsystemsdb_0143: Similar block types on the model levels
Check unused ports in Variant Subsystemsna_0020: Number of inputs to variant subsystems

Check use of default variants

na_0036: Default variant
Check use of single variable variant conditionalsna_0037: Use of single variable variant conditionals
Model Configuration OptionsCheck Implement logic signals as Boolean data (vs. double)jc_0011: Optimization parameters for Boolean data types
Check model diagnostic parametersjc_0021: Model diagnostic settings
SimulinkCheck for Simulink diagrams using nonstandard display attributesna_0004: Simulink model appearance
Check font formattingdb_0043: Simulink font and font size
Check positioning and configuration of portsdb_0042: Port block in Simulink models
Check visibility of block port namesna_0005: Port block name visibility in Simulink models
Check display for port blocksjc_0081: Icon display for Port block
Check whether block names appear below blocksdb_0142: Position of block names
Check the display attributes of block namesjc_0061: Display of block names
Check position of Trigger and Enable blocksdb_0146: Triggered, enabled, conditional Subsystems
Check for nondefault block attributesdb_0140: Display of basic block parameters
Check for matching port and signal namesjm_0010: Port block names in Simulink models
Check Trigger and Enable block namesjc_0281: Naming of Trigger Port block and Enable Port block
Check signal line labelsna_0008: Display of labels on signals
Check for propagated signal labelsna_0009: Entry versus propagation of signal labels
Check for unconnected ports and signal linesdb_0081: Unconnected signals, block inputs and block outputs
Check for prohibited blocks in discrete controllersjm_0001: Prohibited Simulink standard blocks inside controllers
Check for prohibited sink blockshd_0001: Prohibited Simulink sinks
Check scope of From and Goto blocksna_0011: Scope of Goto and From blocks
Check usage of Switch blocksjc_0141: Use of the Switch block
Check usage of Relational Operator blocksjc_0131: Use of Relational Operator block
Check for indexing in blocksdb_0112: Indexing
Check usage of buses and Mux blocksna_0010: Grouping data flows into signals
Check usage of tunable parameters in blocksdb_0110: Tunable parameters in basic blocks
Check orientation of Subsystem blocksjc_0111: Direction of Subsystem
Check fundamental logical and numerical operationsna_0002: Appropriate implementation of fundamental logical and numerical operations
Check usage of merge blocksna_0032: Use of merge blocks
Check logical expressions in 'If' blocksna_0003: Simple logical expressions in If Condition block
Check Simulink signal appearancedb_0032: Simulink signal appearancedb_0032: Simulink signal appearance
Check usage of enumerated valuesna_0031: Definition of default enumerated valuena_0031: Definition of default enumerated value
Check usage of Goto and From blocks between Subsystemsjc_0171: Maintaining signal flow when using Goto and From blocks
Check usage of non-compliant blocksna_0027: Use of only standard library blocks
StateflowCheck usage of exclusive and default states in state machinesdb_0137: States in state machines
Check transition orientations in flow chartsdb_0132: Transitions in flow charts
Check entry formatting in State blocks in Stateflow chartsjc_0501: Format of entries in a State block
Check return value assignments in Stateflow graphical functionsjc_0511: Setting the return value from a graphical function
Check default transition placement in Stateflow chartsjc_0531: Placement of the default transition
Check for Strong Data Typing with Simulink I/Odb_0122: Stateflow and Simulink interface signals and parameters
Check Stateflow data objects with local scopedb_0125: Scope of internal signals and local auxiliary variables
Check usage of return values from Stateflow graphical functionsjc_0521: Use of the return value from graphical functions
Check for MATLAB expressions in Stateflow chartsdb_0127: MATLAB commands in Stateflow
Check for pointers in Stateflow chartsjm_0011: Pointers in Stateflow
Check for event broadcasts in Stateflow chartsjm_0012: Event broadcasts
Check transition actions in Stateflow chartsdb_0151: State machine patterns for transition actions
Check for bitwise operations in Stateflow chartsna_0001: Bitwise Stateflow operators
Check usage of unary minus operations in Stateflow chartsjc_0451: Use of unary minus on unsigned integers in Stateflow
Check for comparison operations in Stateflow chartsna_0013: Comparison operation in Stateflow
Check usage of floating-point expressions in Stateflow chartsjc_0481: Use of hard equality comparisons for floating point numbers in Stateflow
Check for names of Stateflow ports and associated signalsdb_0123: Stateflow port names
Check nested states in Stateflow chartsna_0038: Levels in Stateflow charts
Check use of Simulink in Stateflow chartsna_0039: Use of Simulink in Stateflow charts
Check number of Stateflow states per containerna_0040: Number of states per container
Check for Stateflow transition appearancedb_0129: Stateflow transition appearance
Check reuse of Variables within a Stateflow scopejc_0491: Reuse of variables within a single Stateflow scope
MATLAB Functions and CodeCheck input and output settings of MATLAB Functionsna_0034: MATLAB Function block input/output settings
Check MATLAB Function metrics

na_0016: Source lines of MATLAB Functions

na_0018: Number of nested if/else and case statement

Check MATLAB code for global variablesna_0024: Global Variables
Check the number of function calls in MATLAB Function blocksna_0017: Number of called function levels
Check usage of restricted variable namesna_0019: Restricted Variable Names
Check usage of character vector inside MATLAB Function blockna_0021: Strings
Check usage of recommended patterns for Switch/Case statementsna_0022: Recommended patterns for Switch/Case statements

Related Topics