|
|
|
|
|
|
|
|
Model Advisor Report - FCC_Sys_New.slx | |
Simulink version: 10.1 | Model version: 1.85 |
System: FCC_Sys_New | Current run: 08-Jul-2020 12:43:55 |
|
|
Treat as Referenced Model: off |
Pass | Fail | Warning | Not Run | Total |
---|---|---|---|---|
|
|
|
|
141 |
Check the model file name to ensure that the name complies with the recommended guidelines.
Passed
All files have correct names.
Underscore at the beginning
Warning
The following folders have underscores at the beginning of the folder name:
Check length of model file name
Passed
Model name is valid.
Identify subsystem names with incorrect characters.
Passed
All the subsystem names use correct characters.
Identify Inport or Outport block names with incorrect characters.
Passed
All the Inport or Outport block names use correct characters.
Identify block names with incorrect characters.
Passed
All the block names use correct characters.
Check length of subsystem names
Passed
All subsystem names are valid.
Check length of block names
Passed
All block names are valid.
Check length of Inport and Outport names
Passed
All Inport and Outport names are valid.
Identify invalid characters in signal and bus names
Passed
No invalid characters are used in signal and bus names.
Identify invalid characters in parameter names
Passed
No invalid characters are used in parameter names.
Check length of signal and bus names
Passed
All signal and bus names are valid.
Check length of parameter names
Passed
All parameter names are valid.
Identify invalid characters in Stateflow data names.
Passed
No invalid characters are used in Stateflow data names.
Check if the length of Stateflow data names are within limit.
Passed
All Stateflow data names are valid.
Simulink Data names should be unique across base workspace, model workspace and data dictionary.
Passed
All Simulink Data names are unique.
Check for unused data in Data Dictionary
Warning
The following data variables in the data dictionary are unused:
Data Objects | Source |
---|---|
ActCmd | HeliSystemDD_New.sldd |
Pilot | HeliSystemDD_New.sldd |
Checks if the model parameter 'Unused data, events, messages and functions' is not set to 'none'.
Passed
All constraints on model configuration parameters have been met.
Status | Parameter | Current Value | Recommended Values |
---|---|---|---|
Pass | Unused data, events, messages and functions (SFUnusedDataAndEventsDiag) | warning | error, warning |
Identify whether Implement logic signals as Boolean data (vs. double) is selected.
Passed
Implement logic signals as Boolean data (vs. double) is selected.
jc_0642: Integer rounding mode setting
Identifies blocks with block parameter 'Integer Rounding Mode' set to 'Simplest' when the configuration parameter 'Signed integer division rounds to' is set to 'Undefined'.
Passed
Configuration parameter 'Signed integer division rounds to' is not set to 'Undefined'.
Identify data validity diagnostic settings which detect incorrect calculation results.
Passed
All constraints on model configuration parameters have been met.
Status | Parameter | Current Value | Recommended Values |
---|---|---|---|
Pass | Division by singular matrix (CheckMatrixSingularityMsg) | error | error |
Pass | Inf or NaN block output (SignalInfNanChecking) | error | error |
Pass | Wrap on overflow (IntegerOverflowMsg) | error | error |
Pass | Saturate on overflow (IntegerSaturationMsg) | error | error |
Identify nonstandard display attributes in Simulink diagrams.
_________________________________________________________________________________________
Check format settings
Identify incorrect model-level format options.
Warning
The following format display options are incorrect.
Display Attribute | Recommended Value | Actual Value |
---|---|---|
Debug > Information Overlays > Nonscalar Signals | on | off |
Debug > Information Overlays > Execution Context | off | on |
Debug > Information Overlays > Colors | none | disabled |
Check block colors
Identify blocks using nonstandard colors.
Warning
The following blocks use nonstandard colors:
Check canvas colors
Identify canvases that are not white.
Passed
All diagrams use a white canvas.
_________________________________________________________________________________________
Check diagram zoom
Identify diagrams that do not have zoom factor set to 100 %.
Note: Zoom factors can differ for each instance of a model diagram opened in Simulink Editor
Warning
The following diagrams do not have zoom factor set to 100 percent:
Identify blocks and charts with different font settings from input parameters.
Passed
Font settings of the blocks and charts and input parameters are same.
Identify blocks where the name is not displayed below the block.
Passed
All blocks have names displayed below the block.
Identify whether to display block names.
Check for non-descriptive displayed block names
Identify block names that are displayed but should be hidden due to a lack of a descriptive name.
Passed
All displayed names provide descriptive information.
Check for missing block names
Identify block names that are hidden but should be displayed to show a descriptive name.
Passed
All displayed names provide descriptive information.
Check for blocks with hidden names and obvious function
Identify block names that are displayed but can be hidden due to obvious behavior.
Warning
The following block names can be hidden:
Identify blocks that use and fail to display nondefault values.
Passed
Model displays all block parameter values that are not default values.
Identify layers in the model having inconsistent description format.
Warning
Following layers do not have model descriptions:
Check if blocks are shaded in the model
Passed
Blocks in the model are not shaded.
Identify unconnected block input ports, output ports, and signal lines.
Passed
All lines and ports in the model are connected.
Identify intersections and overlaps of signals in a model
Passed
No signal intersections or overlaps found.
Identify subsystems which do not have a signal flow from left to right.
Passed
No subsystems found with inappropriate signal flow.
Identify tunable parameters used to specify expressions, data type conversions, or indexing operations.
Passed
Tunable parameters are not used in the model.
Identify connections between structural subsystems.
Passed
All connections to structural subsystems adhere to the guideline.
Check if model elements connected to a signal are following consistent naming.
Passed
Model elements connected to a signal are following consistent names.
Identify trigger blocks where the origin of the trigger signal and the destination have dissimilar names.
Passed
No violation of the guideline for use of trigger signal names.
Identify levels in the model that include basic blocks and subsystems. Each level of a model must be designed with blocks of the same level (for example, only subsystems or only basic blocks).
Passed
The model does not mix basic blocks and subsystems at the same level.
Identify mixed usages of vector and bus signals.
Passed
No mixing of vector and bus signals found in the system.
Identify blocks that require labeled signals. A subset of source and destination blocks require labeled signals.
Check source block labels
Warning
The following signals have no label:
Identify blocks that require labeled signals. A subset of source and destination blocks require labeled signals.
Check destination block labels
Warning
The following signals have no label:
Identify propagated labels on signal lines.
Passed
All inputs and outputs to the subsystems and blocks have labels and display propagated signals.
Identify inappropriately placed signal labels.
Passed
No signals found with inappropriately placed labels.
Identify blocks that require labeled signals. A subset of source and destination blocks require labeled signals.
Check source block labels
Warning
The following signals have no label:
Identify blocks that require labeled signals. A subset of source and destination blocks require labeled signals.
Check destination block labels
Warning
The following signals have no label:
Identify blocks and charts with inconsistent Indexing mode.
Passed
No inconsistent Indexing mode used in the model.
Identify blocks which are rotated or reversed
Passed
No blocks found with rotated or reversed orientation
Check if tunable block parameters are defined as named constants
Passed
All tunable block parameters are defined as named constants
Check if sample time property of a block is set to -1 (inherited).
Passed
All permitted blocks have sample time set to -1 (inherited).
Identify conditional and iterative blocks that are positioned inconsistently in the model.
Passed
The conditional and iterative blocks are correctly placed in the model.
Check undefined initial output for Outports/Merge blocks in conditional subsystems
Passed
The initial output setting for all Conditional Subsystems are valid.
jc_0659: Usage restrictions of signal lines inputted to Merge block
There must not be any block between a Conditional Subsystem block and a Merge block.
Passed
No Merge block found.
Identify the usage of logical and numerical operations.
Passed
No numerical operation blocks found with boolean inputs.
No logical operation blocks found with non-boolean inputs.
Identify inappropriate usages of Sum block.
Passed
No violations of the guideline found with the usage of the Sum block.
Operator order for Product blocks.
Passed
All Product blocks have valid operator order.
jc_0611: Input signal sign during product block division
Identify blocks that perform division whose inputs have different sign bit.
Passed
No product block with division of different sign bits found.
jc_0622: Guideline for using the Fcn block
Passed
All Fcn blocks use parentheses to mark operator precedence.
Icon shape of Logical Operator blocks
Passed
All Logical Operator blocks have consistent icon shape.
Identify Relational Operator blocks that connect to constants with the first (upper) input value.
Passed
This model does not contain Relational Operator blocks.
jc_0800: Comparing floating point types in Simulink
Equivalence comparison should not be used for floating point numbers.
Passed
No Equivalence comparison done on floating point numbers.
jc_0626: Guideline for using the Lookup Table system block
Checks for the recommended parameter settings in Lookup Tables to prevent unexpected results.
Passed
All the Lookup Tables pass the check.
Identify Memory blocks not using a continuous sample time
Passed
No Memory blocks found with inappropriate sample time
_________________________________________________________________________________________
Identify Unit Delay blocks with non-discrete sample time
Passed
No Unit Delay blocks found with non-discrete sample time
Identify cascaded and tapped pattern of Unit Delay blocks.
Passed
No cascaded Unit Delay blocks found that can be changed to Tapped Delay/Delay block.
jc_0627: Identify Discrete-Time Integrator blocks that violate saturation limit settings
Passed
No Discrete-Time Integrator blocks found that violate JMAAB guideline jc_0627
Identify inappropriately placed Inport and Outport blocks.
Passed
No Inport or Outport blocks found which are inappropriately placed.
Identify Inport and Outport blocks that do not specify Port number for the Icon display block parameter.
Passed
All port blocks display the port number.
Identify incorrect scoping of From and Goto blocks. For signal flows, From and Goto blocks must use local scope. Control flow can use global scope.
Passed
All From and Goto blocks are used correctly.
Identify the usage of Data Store Memory blocks.
Passed
Usage of Data Store Memory blocks is correct.
Identify Switch blocks that do not use Boolean inputs for the switch condition (input 2), and do not use u2 ~= 0 for the Criteria for passing first input block parameter.
_________________________________________________________________________________________
Check Switch block parameters
Identify Switch blocks with the parameter Criteria for passing first input not set to u2 ~= 0.
Passed
The block parameter Criteria for passing first input is correctly configured.
_________________________________________________________________________________________
Check for Boolean switch condition
Identify blocks that do not use Boolean signal switch conditions (input 2).
Passed
The switch condition is a Boolean signal.
jc_0650: Identify Switch blocks with mismatched input and output data types
Passed
No Switch blocks found with mismatched input and output data types
Identify Multiport Switch blocks that violate data port settings.
Passed
No Multiport Switch blocks found with inappropriate data port settings.
Check for number of inputs/outputs to a Variant Subsystem.
Passed
No Variant Subsystems found having different number of inputs/outputs in the Variant Subsystem choices.
Check whether labeled input and output signals are strongly typed.
Passed
No Stateflow charts have Use Strong Data Typing with Simulink I/O cleared.
Identify mismatches between names of Stateflow ports and the associated signals.
Passed
No Stateflow charts were found.
'Execute (enter) Chart At Initialization' should be set to OFF.
Passed
All Stateflow Charts pass the check.
Identify the Scope value set on Stateflow data defined at machine level.
Passed
All Stateflow data at machine level has been defined as per guideline.
Identify usage of first index of Stateflow data.
Passed
All Stateflow data first index values are uniform.
Identify dangling transitions and unconnected Stateflow States and Junctions in Stateflow Charts.
Passed
No unconnected transitions, states or junctions found in Stateflow Charts.
Identify Stateflow charts and substates that incorrectly use or define exclusive and default states.
_________________________________________________________________________________________
Check Stateflow charts for exclusive states
Identify Stateflow charts that have singular exclusive (OR) states.
Passed
The Stateflow charts do not have singular exclusive (OR) states.
_________________________________________________________________________________________
Check Stateflow charts for undefined default states
Identify Stateflow charts that do not define default states.
Passed
Each Stateflow chart defines a default state.
_________________________________________________________________________________________
Check for multiple states assigned as the default state
At the root level in the Stateflow hierarchy only one state should be assigned as the default.
Passed
The root level of the chart has only one default state assigned.
_________________________________________________________________________________________
Check for substates with singular OR states
States configured as OR should always be part of a group of states.
Passed
No singular OR states were detected.
_________________________________________________________________________________________
Check for substates without default states defined
At every level in the Stateflow hierarchy a default state should be assigned.
Passed
All substates have default states assigned.
_________________________________________________________________________________________
Check for substates with multiple default states defined
At every level in the Stateflow hierarchy only one state should be assigned as the default.
Passed
All levels of the chart have only one default state assigned.
jc_0721: Guidelines for using parallel states
Identify parallel Stateflow States used for grouping.
Passed
No Stateflow charts were found.
Identify Stateflow transitions visually overlapping other Stateflow objects.
Passed
No transition violates the guidelines for Stateflow transition appearance.
jc_0531: Placement of default transition.
Passed
No Stateflow transitions and states found that violate the guidelines for default transition placement in Stateflow charts.
Identify transitions ending on external child states.
Passed
No direct transitions found from external state to child state.
Identify configuration parameter settings which identify unexpected backtracking in state transitions.
Passed
All constraints on model configuration parameters have been met.
Status | Parameter | Current Value | Recommended Values |
---|---|---|---|
Pass | Unexpected backtracking (SFUnexpectedBacktrackingDiag) | error | error |
jc_0760: In all state charts and flow charts, internal transitions from state boundaries must start from the left edge of the state.
Passed
No Stateflow transitions found that violate the guidelines for starting point of internal transition in Stateflow.
Identify Stateflow states using multiple internal transitions.
Passed
No Stateflow states found with multiple internal transitions
jc_0762: State actions within states and flow chart statements should not be used in combination.
Passed
No Stateflow states found that combine state action and flow chart.
Identify transitions in Stateflow flow charts that are drawn incorrectly.
_________________________________________________________________________________________
Check for conditions drawn horizontally
Condition expressions should be drawn on the horizontal segments of flow charts.
Passed
All condition expressions were drawn horizontally.
_________________________________________________________________________________________
Check for action transitions drawn vertically
Transitions with condition actions should be drawn on the vertical segments of flow charts.
Passed
All transitions with condition actions were drawn vertically.
_________________________________________________________________________________________
Check for transition actions in flow chart
Transition actions should not be used in flow charts.
Passed
No transition actions are used in flow charts.
_________________________________________________________________________________________
Check for junctions for default transitions
All Junctions in a flow chart should have a default exit transition.
Passed
All Junctions have a default exit transition.
_________________________________________________________________________________________
Check for transitions that combine condition and action
Flow charts should not combine condition evaluations and action expressions in a single transition.
Passed
No combined expressions were found in the chart.
Identify unconditional transitions in flow charts.
Passed
All unconditional transitions adhere to the guideline.
Check if the action language of Stateflow charts is set to 'C'.
Passed
All Stateflow Charts have action language set to 'C'.
Identify use of numeric literals in Stateflow states and transitions.
Passed
No numeric literals found in Stateflow charts.
Identify pointer operations on custom code variables.
Note: This check applies only to Stateflow charts that use C as the action language.
Passed
No pointer operations were found.
Identify undirected event broadcasts in Stateflow
Passed
No instances of undirected event broadcast were found.
Identify out of order state action types in Stateflow states.
Passed
No Stateflow states found with out of order state action types
jc_0734: Number of state action types
Identifies repeated action types in a Stateflow State.
Passed
No Stateflow States were found.
Check if state action type 'exit' is used in the model.
Passed
State action type 'exit' is not used in the model.
jc_0741: Variables used in state transition conditions must not perform an update by "during" state action type.
Passed
No Stateflow states found that violate the guidelines for updating the variables used in state transition conditions.
jc_0772: Identify unconditional Stateflow transitions with higher priority than conditional transitions
Passed
No unconditional Stateflow transitions found with higher priority than conditional transitions
Identify usage of transition actions in Stateflow.
Passed
No Stateflow charts have transition actions.
Identify MATLAB expressions that are not suitable for code generation in Stateflow blocks.
Passed
No Stateflow objects found using MATLAB expressions unsuitable for code generation.
Identify equal to operations (==) in expressions where at least one side of the expression is a floating-point variable or constant.
Passed
No equal to operations in expressions where at least one side of the expression is a floating-point variable or constant were found.
Identify the usage of operators in Stateflow.
Passed
No Stateflow blocks found with incorrect operator usage.
Identify boolean variables in Stateflow charts using comparison operations.
Passed
No boolean variables use comparison operations of logical type in the model.
jc_0732: Distinction between state name and data item name
Identify Stateflow State and Stateflow Data that have identical names in a given chart.
Passed
No Stateflow charts were found.
jc_0730: Independence of state name in charts
Identifies identical State names within a Stateflow Chart.
Passed
No Stateflow charts were found.
jc_0731: Slash (/) in the state name
Identify state names with '/' at its end.
Passed
No Stateflow states were found.
Identify missing line breaks between entry action (en), during action (du), and exit action (ex) entries in states. Identify missing line breaks after semicolons (;) in statements.
Passed
No Stateflow charts were found.
Identify non-uniform indentation in Stateflow blocks.
Passed
All Stateflow blocks have uniform indentation.
Identify Stateflow states with text exceeding the boundary of the state
Passed
No Stateflow states found with text exceeding the boundary of the state.
Identify placement of label string in Stateflow transition.
Passed
All Stateflow transitions are placed uniformly.
Identify comments in transition labels that are not positioned uniformly.
Passed
Comments in transition labels are positioned uniformly.
Identify graphical functions with multiple assignments of return values in Stateflow charts.
Passed
No Stateflow charts were found.
jc_0732: Distinction between state name and data item name
Identify Stateflow State and Stateflow Data that have identical names in a given chart.
Passed
No Stateflow charts were found.
Check for global variables in MATLAB code
_________________________________________________________________________________________
Check for global variables in MATLAB code used in MATLAB Function blocks
Passed
No MATLAB Function blocks found
_________________________________________________________________________________________
Check for global variables in MATLAB functions defined in Stateflow charts
Passed
No MATLAB functions defined in Stateflow charts found
_________________________________________________________________________________________
Check for global variables in called MATLAB functions
Passed
No external MATLAB functions found
_________________________________________________________________________________________
Identify MATLAB Functions that violate complexity limits.
Passed
No MATLAB Function with metrics violations were found.
The following metrics were determined for the model or subsystem.
Legend:
Name | Value |
---|---|
Maximum effective lines of code per function | 60 |
Minimum density of comments | 0.2 |
Maximum cyclomatic complexity per function | 15 |
Checks whether number of function calls in MATLAB Function blocks is less than 3.
Passed
Number of function calls in MATLAB Function blocks is less than 3.
Checks whether character vectors are being used inside MATLAB Function blocks
Passed
No character vectors found in MATLAB Function block