Model Checks for Japan MATLAB Automotive Advisory Board (JMAAB) Guideline Compliance

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

The JMAAB 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 Control Algorithm Modeling Guidelines (JMAAB), Version 5.1.

The table lists the JMAAB checks with the applicable JMAAB Control Algorithm Modeling guideline.

By Task > Modeling Standards for JMAAB subfolderModel Advisor CheckGuideline from the JMAAB Control Algorithm Modeling Guidelines, Version 5.1
Naming Conventions

Check file names

ar_0001: Usable characters for file names

Check folder names

ar_0002: Usable characters for folder names

Check subsystem names

jc_0201: Usable characters for Subsystem names

Check port block names

jc_0211: Usable characters for Inport block and Outport block

Check character usage in block names

jc_0231: Usable characters for block names

Check usable characters for signal names and bus names

jc_0222: Usable characters for signal/bus names

Check usable characters for parameter names

jc_0232: Usable characters for parameter names

Check length of model file name

jc_0241: Length restrictions for model file names

Check length of folder name at every level of model path

jc_0242: Length restrictions for folder names

Check length of subsystem names

jc_0243: Length restrictions for subsystem names

Check length of Inport and Outport names

jc_0244: Length restrictions for Inport and Outport names

Check length of signal and bus names

jc_0245: Length restrictions for signal and bus names

Check length of parameter names

jc_0246: Length restrictions for parameter names

Check length of block names

jc_0247: Length restrictions for block names

Model Architecture

Check for mixing basic blocks and subsystems

db_0143: Usage block types in model hierarchy

Model Configuration Options

Check Implement logic signals as Boolean data (vs. double)

jc_0011: Optimization parameters for Boolean data types

Check diagnostic settings for incorrect calculation resultsjc_0806: Detecting incorrect calculation results

Check for Simulink diagrams using nonstandard display attributes

na_0004: Simulink model appearance settings

Check font formatting

db_0043: Model font and font size

Check positioning and configuration of ports

db_0042: Usage of Inport and Outport blocks

Check whether block names appear below blocks

db_0142: Position of block names

Check the display attributes of block names

jc_0061: Display of block names

Check position of Trigger and Enable blocks

db_0146: Block layout in conditional subsystems

Check for nondefault block attributes

db_0140: Display of block parameters

Check trigger signal namesjc_0281: Trigger signal names

Check for unconnected ports and signal lines

db_0081: Unconnected signals / block

Check usage of Switch blocks

jc_0141: Use of the Switch block

Check usage of Relational Operator blocks

jc_0131: Usage of Relational Operators

Check for indexing in blocks

db_0112: Usage of index

Check usage of tunable parameters in blocks

db_0110: Guidelines for block parameters

Check signal line labels

jc_0008: Definition of Signal labels

Check for propagated signal labels

jc_0009: Signal name propagation
Check usage of Discrete-Time Integrator blockjc_0627: Guideline for using the Discrete-Time Integrator block
Check settings for data ports in Multiport Switch blocksjc_0630: Usage of Multiport Switch block
Check usage of fixed-point data type with non-zero biasjc_0643: Fixed-point setting
Check input and output datatype for Switch blocksjc_0650: Block input/output data type with switching function
Check signs of input signals in product blocksjc_0611: Input signal for multiplication and division blocks

Check Signed Integer Division Rounding mode

jc_0642: Integer rounding mode setting

Check type setting by data objects

jc_0644: Guideline for type setting

Check usage of the Saturation blocks

jc_0628: Guideline for using the Saturation Block

Check usage of Merge block

jc_0659: Usage restrictions of signal lines inputted to Merge block

Check usage of Memory and Unit Delay blocks

jc_0623: Use of continuous-time delay blocks and discrete-time blocks

Check block orientation

jc_0110: Direction of block

Check if blocks are shaded in the model

jc_0604: Block shading

Check operator order of Product blocks

jc_0610: Operator order for multiplication and division blocks

Check icon shape of Logical Operator blocks

jc_0621: Guideline for using the Logical Operator block

Check if tunable block parameters are defined as named constants

jc_0645: Parameter definition for calibration

Check default/else case in Switch Case blocks and If blocks

jc_0656: Usage of Conditional Control block

Check usage of Lookup Tables

jc_0626: Guideline for using the Lookup Table block

Check for parentheses in Fcn block expressions

jc_0622: Guideline for using the Fcn block

Check undefined initial output for conditional subsystems

jc_0640: Initial value settings for Outport blocks in conditional subsystems

Check for avoiding algebraic loops between subsystems

jc_0653: Delay block layout in feedback loops

Comparing floating point types in Simulinkjc_0800: Comparing floating-point types in Simulink
Check duplication of Simulink data namesjc_0791: Duplicate definition data names
Check unused data in Simulink Modeljc_0792: Unused data
Check output data type of operation blocksjc_0651: Guideline for implementing a type conversion
Check Model Descriptionjc_0603: Model description
Check for consistency in model element namesjc_0602: Consistency in model element names
Check for sample time settingjc_0641: Sample time setting

Check transition orientations in flow charts

db_0132: Transitions in Flow Charts

Check return value assignments in Stateflow graphical functions

jc_0511: Setting the return value from a graphical function

Check default transition placement in Stateflow chartsjc_0531: Default transition

Check for Strong Data Typing with Simulink I/O

db_0122: Stateflow and Simulink interface signals and parameters

Check Stateflow data objects with local scope

db_0125: Stateflow local data

Check for MATLAB expressions in Stateflow charts

db_0127: Limitation on MATLAB commands in Stateflow blocks

Check for pointers in Stateflow charts

jm_0011: Pointers in Stateflow

Check for event broadcasts in Stateflow charts

jm_0012: Usage restrictions of events and broadcasting events

Check for bitwise operations in Stateflow charts

na_0001: Standard usage of Stateflow operators

Check for unary minus operations on unsigned integers in Stateflow charts

jc_0451: Use of unary minus on unsigned integers

Check usage of Stateflow comments

jc_0738: Usage of Stateflow comments

Check prohibited comparison operation of logical type signals

jc_0655: Prohibition of logical value comparison in Stateflow

Check usage of internal transitions in Stateflow states

jc_0763: Usage of multiple internal transitions

Check usage of transition conditions in Stateflow transitions

jc_0772: Execution order and transition conditions of transition lines

Check uniqueness of Stateflow State and Data namesjc_0732: Distinction between state names, data names, and event names

Check uniqueness of State names

jc_0730: Unique state name in Stateflow blocks

Check usage of parentheses in Stateflow transitions

jc_0752: Format of condition action in transition label

Check prohibited combination of state action and flow chart

jc_0762: Prohibited of state action and flow chart combination

Check condition actions and transition actions in Stateflow

jc_0753: Condition actions and transition actions in Stateflow

Check usable number for first index

jc_0701: Usable number for first index

Check usage of State names

jc_0731: State name format

Check execution timing for default transition path

jc_0712: Execution timing for default transition path

Check repetition of Action types

jc_0734: Number of state action types

Check for unused data in Stateflow Charts

jc_0700: Unused data in Stateflow block

Check updates to variables used in state transition conditions

jc_0741: Timing to update data used in state chart transition conditions

Check starting point of internal transition in Stateflow

jc_0760: Starting point of internal transition

Check for parallel Stateflow state used for grouping

jc_0721: Usage of parallel states

Check scope of data in parallel states

jc_0722: Local data definition in parallel states

Check indentation of code in Stateflow states

jc_0736: Uniform indentations in Stateflow blocks

Check for usage of text inside statesjc_0739: Guidelines for describing texts inside states

Check for unexpected backtracking in state transitions

jc_0751 : Backtracking prevention in state transition

Check for unconnected objects in Stateflow Charts

jc_0797: Unconnected transition lines / states / connective junctions

Check placement of Label String in Transitionsjc_0770: Transition label layout
Check Stateflow chart action language

jc_0790: Chart action language

Check usable characters for Stateflow data names

jc_0795: Usable characters for Stateflow data names

Check length of Stateflow data name

jc_0796: Length restriction for Stateflow data names

Check usage of transitions to external statesjc_0723: Prohibited direct transition from external state to child state
Check order of state action typesjc_0733: Order of state action types
Check usage of numeric literals in Stateflowjc_0702: Use of named Stateflow parameters/constants
Check position of comments in transition labelsjc_0771: Comment position in transition labels
Check terminal junctions in Stateflowjc_0775: Terminating junctions in Flow Charts
Check for implicit type casting in Stateflowjc_0802: Prohibited use of implicit type casting in Stateflow
Check if state action type 'exit' is used in the modeljc_0740: Limitation on use of exit state action
Check for use of C-style comment symbolsjc_0801: Prohibited use of the /* and */ comment symbols
Check usage of unconditional transitions in flow chartsjc_0773: Unconditional transition of a flow chart
Check for comments in unconditional transitionsjc_0774: Comments for through transition
MATLAB Functions

Check input and output settings of MATLAB Functions

na_0034: MATLAB Function block input/output settings

Check MATLAB code for global variables

na_0024: Shared data in MATLAB functions

Related Topics