文档

高完整性系统建模检查

高完整性系统建模检查

高完整性系统建模检查有助于为应用程序设计和排除模型、子系统和相应的生成代码,以符合高完整性系统建模指南。

的签出金宝app®检查™许可证,当您运行高完整性系统建模检查。

高完整性系统建模检查分为以下几组:

金宝app

高完整性系统建模检查Simulink块和组件。金宝app

有关更多信息,请参见高完整性系统建模的模型检验

Stateflow

高完整性系统建模检查状态流图和组件。

有关更多信息,请参见高完整性系统建模的模型检验

MATLAB

高完整性系统建模检查MATLAB代码。

有关更多信息,请参见高完整性系统建模的模型检验

配置

高完整性系统建模检查配置设置。

有关更多信息,请参见高完整性系统建模的模型检验

命名

高完整性系统建模检查命名约定。

有关更多信息,请参见高完整性系统建模的模型检验

需求

高完整性系统建模检查Simulink需求可追溯性。金宝app

有关更多信息,请参见高完整性系统建模的模型检验

代码

高完整性系统建模检查生成的代码。

有关更多信息,请参见高完整性系统建模的模型检验

高完整性系统建模的分裂检查

从R2018b及以后开始,不建议使用以下检查。这些检查被分成多个检查,这些检查集中于单个操作或操作。有关更多信息,请参见下面的拆分和新建检查表。

旧支票标题 分割检查标题
检查Math Operations块的使用情况 检查Abs块的使用情况
检查Math Function块(rem和倒数函数)的使用情况
检查Math Function块(log和log10函数)的使用情况
检查分配块的使用情况
检查逻辑和位操作块的使用情况 检查等同于浮点类型的关系操作符块
检查关系运算符块的使用情况
检查逻辑运算符块的使用情况
检查端口和子系统块的使用情况 检查While Iterator块的使用情况
检查样本时间相关块
检查For Iterator块的使用情况
检查If块和If动作子系统块的使用情况
检查Switch Case块和Switch Case Action子系统块的使用情况
检查与安全相关的代码生成设置 检查与安全相关的代码生成设置以获得注释
检查与安全相关的代码生成接口设置
检查与安全相关的代码生成设置以获得代码样式
检查与安全相关的代码生成符号设置
检查状态流结构的使用情况 检查状态流结构的使用情况
查看状态流图,了解状态和转换的顺序
检查状态流调试选项
查看状态流图,查找唯一定义的数据对象
检查与安全相关的优化设置 检查逻辑信号的安全相关优化设置
检查安全相关的减块优化设置
检查与应用程序寿命相关的安全优化设置
检查数据初始化的安全相关优化设置
检查数据类型转换的安全相关优化设置
检查与安全相关的优化设置是否存在除法算术异常

检查不一致的向量索引方法

检查身份证mathworks.hism.hisl_0021

识别索引方法不一致的块。

描述

使用不一致的块索引方法会导致建模错误。您应该为所有块使用一致的向量索引方法。索引方法是基于零、基于一或用户指定的。

支持可配置索引的块:金宝app

只支持基于一个索引的块:金宝app

只支持从零开始索引的块:金宝app

  • C动作语言的状态流图

  • 真值表函数用C动作语言编写

可以使用金宝app仿真软件检查

此检查需要一个状态流®许可证。

结果及建议的行动

条件 建议的行动
模型或子系统包含索引方法不一致的块。索引方法是基于零、基于一或用户指定的。 修改模型以使用单一的一致索引方法。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查缺少属性的根导入

检查身份证mathworks.hism.hisl_0024

识别根模型轮廓尺寸缺少或继承样本时间、数据类型或端口维度的块。

描述

使用根模型轮廓尺寸没有定义采样时间、数据类型或端口尺寸的块可能导致不期望的模拟结果。金宝appSimulink从下游块反向传播维度、样本时间和数据类型,除非您显式地指定这些值。你可以指定轮廓尺寸带有块参数的块属性或显式解析到连接信号线的Simulink信号对象。金宝app在运行检查时,结果表提供了指向未通过的import块和信号对象的链接,以及触发警告的条件。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

缺少端口尺寸-模型包含继承端口维度的导入块。

对于列出的导入块和Simulink信号对象,请指定端口尺寸。金宝app

缺少信号数据类型-模型包含继承数据类型的导入块。

对于列出的导入块和Simulink信号对象,指定数据类型。金宝app

缺少端口采样时间-模型包含继承采样时间的导入块。

对于列出的导入块和Simulink信号对象,指定采样时间。金宝app具有总线类型的根导入的采样时间必须与总线对象的叶元素指定的采样时间匹配。

Simulink信号对象的隐式解析金宝app- Model包含隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象的导入块信号名称。金宝app

对于列出的Simulink信号金宝app对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象金宝app.要以编程方式设置此选项,请使用port参数MustResolveToSignalObject

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

提示

以下配置通过检查:

  • 配置参数> Solver >周期采样时间约束设置为确保采样时间无关

  • 对于导出函数模型,继承样本时间没有标记。

另请参阅

检查缺少范围定义的根导入

检查身份证mathworks.hism.hisl_0025

识别根级别导入丢失或错误的最小或最大范围值的块。

描述

检查识别根级导入块缺少或错误的最小或最大范围值。可以使用块参数或显式解析到连接信号线的Simulink信号对象指定导入块的最小值和最大值。金宝app结果表提供了指向未通过检查的import块和信号对象的链接,以及触发警告的条件。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

失踪的范围-模型包含有缺少范围参数(最小和/或最大)的数值数据类型的导入块。

对于列出的import块和Simulink信号对象,指定标量最小和金宝app最大参数。

缺少总线对象的范围-定义import块的总线对象有缺少范围的叶元素。

对于列出的叶元素,要指定模型接口范围,请提供标量最小和最大参数。

指定的范围将被忽略-总线数据类型不支持Inports或Simulink信号对象的最小或最大值。金宝app金宝app这些值在范围检查时被忽略。

要启用范围检查,请在定义数据类型的总线对象的叶元素上指定最小和最大信号值。

未指定数据类型-模型包含具有继承数据类型的导入块或Simulink信号对象。金宝app

指定一种支持的数据类型:金宝app

Simulink信号对象的隐式解析金宝app- Model包含隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象的导入块信号名称。金宝app

对于列出的Simulink信号金宝app对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象金宝app.要以编程方式设置此选项,请使用port参数MustResolveToSignalObject

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

另请参阅

检查缺少范围定义的根输出

检查身份证mathworks.hism.hisl_0026

识别缺少或错误的最小或最大范围值的根级输出端口块。

描述

该检查可以识别缺少或错误的最小或最大范围值的根级输出端口块。可以使用块参数或显式解析到连接信号线的Simulink信号对象指定输出端口块的最小值和最大值。金宝app结果表提供了指向未通过检查的Outport块的链接,以及触发警告的条件。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

失踪的范围-模型包含有缺少范围参数(最小和/或最大)的数值数据类型的输出端口块。

对于列出的输出端口块和Simulink信号对象,指定标量最小和最大参金宝app数。

缺少总线对象的范围-定义输出端口块的总线对象具有缺少范围的叶元素。

对于列出的叶元素,要指定模型接口范围,请提供标量最小和最大参数。

在输出端口指定的范围将被忽略总线数据类型不支持Outports或Simulink信号对象的最小或最大值。金宝app金宝app这些值在范围检查时被忽略。

要启用范围检查,请在定义数据类型的总线对象的叶元素上指定最小和最大信号值。

未指定总线数据类型-模型包含带有继承总线数据类型的输出端口块或Simulink信号对象金宝app。

对于输出端口块和Simulink信号对象,指定一种支持金宝app的数据类型:金宝app

Simulink信号对象的隐式解析金宝app-模型包含输出端口块信号名称,这些信号名称隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象。金宝app

对于列出的Simulink信号金宝app对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象金宝app.要以编程方式设置此选项,请使用port参数MustResolveToSignalObject

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

另请参阅

检查数据存储内存的安全相关诊断设置

检查身份证mathworks.hism.hisl_0013

检查模型配置,以了解应用于数据存储内存并可能影响安全性的诊断设置。

描述

此检查验证与数据存储内存相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最佳设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测模型是否试图从未在当前时间步中存储数据的数据存储中读取数据的诊断值被设置为启用所有错误.在写入数据之前读取数据可能会导致使用陈旧的数据或未初始化的数据。 先读后写检测(金宝appSimulink)在“配置参数”对话框中进行设置ReadBeforeWriteMsg启用所有错误
在先前以当前时间步骤从数据存储中读取数据之后,检测模型是否试图在数据存储中存储数据的诊断值被设置为启用所有错误.在读取数据后写入数据可能导致使用过时或不正确的数据。 检测读后写(金宝appSimulink)在“配置参数”对话框中进行设置WriteAfterReadMsg启用所有错误
检测模型是否在当前时间步中连续两次尝试在数据存储中存储数据的诊断值被设置为启用所有错误.在一个时间步中写入两次数据会导致不可预测的数据。 检测写后写(金宝appSimulink)在“配置参数”对话框中进行设置WriteAfterWriteMsg启用所有错误
一种诊断方法,用于检测一个任务何时从数据存储内存块,另一个任务将数据写入该块没有一个警告.在多任务模式下,不同任务之间的数据读写可能导致数据损坏或不可预测。 多任务数据存储(金宝appSimulink)在“配置参数”对话框中进行设置MultiTaskDSMMsg错误
诊断检测到该参数数据存储名称重复没有设置为错误 数据存储名称重复或在“配置参数”对话框中进行设置UniqueDataStoreMsg错误

行动的结果

点击修改设置配置应用于数据存储内存并可能影响安全性的模型诊断设置。

能力与限制

  • 此检查不检查跨模型和原子子系统边界发生的数据存储读写。

  • 此检查不会检查数据存储的使用情况,以不同的速率写入和读取数据。

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查用于调试的数据的安全相关诊断设置

检查身份证mathworks.hism.hisl_0305

检查模型配置,查看适用于用于调试的数据并可能影响安全性的诊断设置。

描述

此检查验证与调试相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
启用模型验证块的诊断设置为使用本地设置让所有.应该禁用这些块,因为它们是断言块,仅用于验证。模型开发人员不应该在嵌入式代码中使用断言。 2 .在“配置参数”对话框中设置模型验证块启用(金宝appSimulink)或设置参数AssertControl禁用所有

行动的结果

点击修改设置配置适用于用于调试的数据并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查安全相关的诊断设置参数

检查身份证mathworks.hism.hisl_0302

检查模型配置,以确定适用于可能影响安全性的参数的诊断设置。

描述

此检查验证与参数相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
将检测何时发生参数向下转换的诊断设置为没有一个警告.向下转换到较低的信号范围可能导致参数的数值溢出,从而导致意外行为。 检测沮丧(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterDowncastMsg错误
将检测何时发生参数下溢的诊断设置为没有一个警告.当参数的数据类型没有足够的分辨率时,参数值为0,而不是指定的值。这可能导致生成的代码操作不正确。 检测下溢(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterUnderflowMsg错误
将检测何时发生参数溢出的诊断设置为没有一个警告.数值溢出会导致意外的应用程序行为,应该在与安全相关的应用程序中进行检测和修复。 检测溢出(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterOverflowMsg错误
将检测参数何时失去精度的诊断设置为没有一个警告.未检测到此类错误可能导致在生成的代码中将参数设置为不正确的值。 检测精度损失(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterPrecisionLossMsg错误
将检测带有可调变量的表达式何时简化为其数值等效的诊断设置为没有一个警告.这可能导致可调参数在生成的代码中不可调。 检测可调性的损失(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterTunabilityLossMsg错误

行动的结果

点击修改设置配置应用于参数并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的求解器设置以获得求解器选项

检查身份证mathworks.hism.hisl_0041

检查适用于求解器并可能影响安全性的模型配置中的求解器设置。

描述

此检查验证与求解器相关的模型求解器配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

指定要模拟模型的求解器类型的求解器设置已设置为变步

2 .在“配置参数”对话框中设置类型(金宝appSimulink)或设置参数SolverType固定步

用于指定在模拟或代码生成期间计算模型状态的求解器的求解器设置设置为离散(无连续状态)

2 .在“配置参数”对话框中设置解算器(金宝app模型)离散(无连续状态)或者设置参数解算器FixedStepDiscrete

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查安全相关的求解器设置的任务和采样时间

检查身份证mathworks.hism.hisl_0042

检查模型配置中的求解器设置,这些设置适用于周期性采样时间约束,并可能影响安全性。

描述

此检查验证模型配置参数的设置是否最优,以确保模型在与安全相关的应用程序的特定优先级周期采样时间集上运行。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
配置参数自动处理数据传输的速率转换被选中。 清晰的自动处理数据传输的速率转换“配置参数”对话框或“设置参数”AutoInsertRateTranBlk

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查Stateflow数据的移位操作的使用情况

检查身份证mathworks.hism.hisf_0064

确定可能影响安全的状态流数据的移位操作的使用。

描述

此检查检查移位操作数值大于输入或输出类型的位宽或移位操作数值为负值的移位操作。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

右移操作大于输入类型的位宽。

显式修改位移位操作的值,使其小于shift操作数。

左移操作大于输出类型的位宽。

显式修改位移位操作的值,使其小于shift操作数。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 不支持将移位大小定金宝app义为Simulink信号或变量的移位操作。金宝app

  • 不支持由运行时决定金宝app的移位大小组成的移位操作。

  • 用C编写并嵌入到Stateflow中的外部函数将不能使用此检查。

另请参阅

检查信号路由块的使用情况

检查身份证mathworks.hism.hisl_0034

确定用法信号路由可能影响安全的障碍物。

描述

此检查标识模型或子系统开关可能在包含浮点变量或常数的表达式中生成带有不等操作(~=)的代码的块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个开关块,该块可能在表达式中生成带有不等式操作(~=)的代码,其中表达式的至少一侧包含浮点变量或常数。的开关块可能会在生成的代码中导致浮点不等式比较。

对于已识别的块,执行以下操作之一:

  • 对于控件输入块,更改数据类型参数设置。

  • 改变开关传递第一个输入的标准参数设置。这可能会改变算法。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查状态流图的状态机类型

检查身份证mathworks.hism.hisf_0001

识别其状态机类型与模型顾问配置编辑器中设置的类型不同的状态流图。

描述

将所有状态流图的状态机类型与在输入参数中指定的类型进行比较。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

输入参数

经典

检查所有图表是否都是经典图表。

粉状的

检查所有图表是否都是Mealy图表。

摩尔

检查是否所有图表都是摩尔图表。

结果及建议的行动

条件 建议的行动
输入参数设置为经典模型中的图表使用其他状态机类型。 对于每个图表,在“图表属性”对话框中指定状态机类型经典
输入参数设置为摩尔模型中的图表使用其他状态机类型。 对于每个图表,在“图表属性”对话框中指定状态机类型摩尔
输入参数设置为粉状的模型中的图表使用其他状态机类型。 对于每个图表,在“图表属性”对话框中指定状态机类型粉状的

能力与限制

  • 在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

查看状态流图,了解状态和转换的顺序

检查身份证mathworks.hism.hisf_0002

确定具有的状态流图用户指定的状态/转换执行顺序清除。

描述

确定具有的状态流图用户指定的状态/转换执行顺序已清除,因此不使用并行状态和转换的显式排序。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图有用户指定的状态/转换执行顺序清除。

对于指定的图表,在“图表属性”对话框中选择用户指定的状态/转换执行顺序

能力与限制

  • 在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

行动的结果

点击修改选择用户指定的状态/转换执行顺序查看指定的图表。

另请参阅

检查状态流图以获得强数据类型

检查身份证mathworks.hism.hisf_0015

在Stateflow对象中标识具有不同数据类型的表达式中的变量和参数。

描述

为了方便强数据类型,该检查在Stateflow状态和转换中标识具有不同数据类型的表达式中的变量和参数。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
Stateflow对象在具有不同数据类型的表达式中具有变量和参数。

显式地将表达式中的变量和参数转换为相同的数据类型。更多信息请参见,

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 不分析状态流对象中表达式中的字面量类型。显式地将字面量类型转换为预期的数据类型。

  • 不标记带有true和false关键字的表达式。有关更多信息,请参见为代码生成保留关键字(嵌入式编码)。

  • 用C编写并嵌入到Stateflow中的外部函数将不能使用此检查。

另请参阅

检查状态流图中的一元运算符

检查身份证mathworks.hism.hisf_0211

在状态流图中标识一元运算符。

描述

此检查标识状态流图中无符号数据类型上的一元减运算符。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图由无符号数据类型上的一元减运算符组成。 显式修改无符号数据类型上的一元运算符。有关更多信息,请参见一元操作和动作(Stateflow)。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 不标记带有位运算符和算术运算符的表达式。例如,——(u1、u2)没有标记。

另请参阅

查看状态流图,查找唯一定义的数据对象

检查身份证mathworks.hism.hisl_0061

识别包含非唯一定义的数据对象的状态流图。

描述

此检查在模型中搜索状态流图中没有唯一定义的本地数据。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图包含在两个或多个作用域中定义的数据对象标识符。

对于识别的图表,请执行以下其中一项操作:

  • 在每个范围内创建唯一的数据对象标识符。

  • 在图表的父级创建一个惟一的数据对象标识符。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查状态流调试选项

检查身份证mathworks.hism.hisf_0011

检查Stateflow调试设置。

描述

验证以下调试设置。

  • 包装溢出

  • 仿真范围检查

  • 检测周期

  • 未指定

  • Overspecified

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

下列任何一项:

  • 包装溢出没有设置为错误

  • 仿真范围检查没有设置为错误

  • 检测周期清除。

在“配置参数”对话框中设置:

在模型窗口中,选择:

  • 调试>诊断>检测周期性行为

能力与限制

  • 在这个检查中不分析真值表。

  • 不能在库模型上运行。

  • 不分析库链接块的内容。

  • 允许排除块和图表。

行动的结果

点击修改选择指定的调试选项。

另请参阅

检查查找表块的使用情况

检查身份证mathworks.hism.hisl_0033

检查查找表块是否不生成超出范围的检查代码。

描述

此检查验证以下块是否生成了代码,以防止落入有效断点值范围之外的输入:

这个检查也验证了这一点使用预查找的插值块生成代码以防止落入有效索引值范围之外的输入。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

查找表块不会生成超出范围的检查代码。

更改块对话框上的设置,以便生成超出范围的检查代码。

  • 一维查找表二维查找表n-D查找表,Prelookup方块,清除复选框在生成的代码中删除对超出范围输入的保护

  • 使用预查找的插值块,清除复选框删除对生成代码中超出范围索引的保护

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

行动的结果

点击修改验证查找表块是否设置为生成超出范围的检查代码。

另请参阅

检查激活“生成预处理器条件”的变量块

检查身份证mathworks.hism.hisl_0023

检查变量块参数,以确定可能导致代码无法跟踪到需求的设置。

描述

此检查验证代码生成的变量块参数是否设置为跟踪需求。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
在模型中的一个或多个变量块中选择生成预处理器条件的选项。 为了简化代码到需求的跟踪,考虑清除在变量块中生成预处理器条件的选项。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的诊断设置以检查信号连通性

检查身份证mathworks.hism.hisl_0306

检查模型配置,查看适用于信号连通性并可能影响安全性的诊断设置。

描述

此检查验证与信号连接相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
将检测具有相同源信号但不同标签的虚拟信号的诊断设置为没有一个警告.这种诊断只适用于虚拟信号,对生成的代码没有影响。然而,信号标签不匹配会导致模型评审过程中的混乱。 信号标签不匹配(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置SignalLabelMismatchMsg错误
检测模型何时包含带有未连接输入信号的块的诊断设置为没有一个警告.必须检测到这一点,因为没有为未连接的块输入生成代码。 未连接的块输入端口(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedInputMsg错误
检测模型何时包含带有未连接输出信号的块的诊断设置为没有一个警告.必须检测到这一点,因为未连接的块输出信号可能导致死代码。 未连接的块输出端口(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedOutputMsg错误
检测未连接信号线和未匹配信号线的诊断转到Blocks被设置为没有一个警告.必须检测到此错误,因为没有为未连接的行生成代码。 未连接的线(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedLineMsg错误

行动的结果

点击修改设置配置适用于信号连通性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与总线连接相关的安全诊断设置

检查身份证mathworks.hism.hisl_0307

检查适用于总线连接并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与总线连接相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测a是否存在的诊断模型块的根外港块连接到总线,但没有指定要设置的总线对象没有一个警告.为了使总线信号跨越模型边界,必须将该信号定义为总线对象,以便与使用模型作为参考模型的更高级别模型兼容。 未指定的总线对象位于根输出端口块(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置RootOutportRequireBusObject错误
检测总线元素名称是否与相应总线对象指定的名称匹配的诊断设置为没有一个警告.这种诊断可以防止在具有总线能力的块中使用不兼容的总线,从而导致输出名称不一致。 元素名称不匹配(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置BusObjectLabelMismatch错误
当某些块将信号视为mux/向量,而其他块将信号视为总线时,该诊断将被设置为没有一个警告.当Simulink金宝app软件自动将muxed信号转换为总线时,可能会发生意外操作或不可预知的行为。

总线信号作为矢量处理(金宝appSimulink)上诊断>连接窗格中的“配置参数”对话框中的错误,或参数StrictBusMsgErrorOnBusTreatedAsVector

诊断检测到该参数非总线信号视为总线信号没有设置为错误

非总线信号视为总线信号诊断>连接“配置参数”对话框中的窗格或该参数NonBusSignalsTreatedAsBus错误

诊断检测到该参数维修总线的选择没有设置为警告和修复

维修总线的选择诊断>连接“配置参数”对话框中的窗格或该参数BusNameAdapt警告和修复

行动的结果

点击修改设置配置适用于总线连接并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查应用于函数调用连通性的与安全相关的诊断设置

检查身份证mathworks.hism.hisl_0308

检查模型配置,查看适用于函数调用连通性并可能影响安全性的诊断设置。

描述

此检查验证与函数调用连通性相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测函数调用子系统的错误使用的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 无效的函数调用连接(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置InvalidFcnCallConnMsg错误
指定Simulink软件在执行子系统时必须直接或间接计算函数调用子系统的输入的诊断设金宝app置为使用本地设置禁用所有.此诊断检测生成代码中函数调用子系统和子系统输入之间不可预测的数据耦合。 上下文相关的输入(金宝appSimulink)上诊断>连接或在“配置参数”对话框中设置FcnCallInpInsideContextMsg错误

行动的结果

点击修改设置配置适用于函数调用连通性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全性相关的诊断设置以获得兼容性

检查身份证mathworks.hism.hisl_0301

检查模型配置,查看影响兼容性和可能影响安全性的诊断设置。

描述

此检查验证与兼容性相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测块何时没有升级到使用当前版本的功能的诊断设置为没有一个警告.为早期版本编写的s函数可能与当前版本不兼容,生成的代码可能操作不正确。 需要升级s功能(金宝appSimulink)上诊断>兼容性或在“配置参数”对话框中设置SFcnCompatibilityMsg错误

行动的结果

点击修改设置配置影响兼容性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与模型初始化相关的安全诊断设置

检查身份证mathworks.hism.hisl_0304

在模型配置中,检查影响模型初始化和可能影响安全性的诊断设置。

描述

此检查验证用于初始化的模型诊断配置参数是否最佳设置,以生成与安全相关的应用程序的代码。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

在“配置参数”对话框中,可以看到未指定的初始化检测(金宝appSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。金宝app的检查未定义的子系统初始输出(金宝appSimulink)诊断清除。此诊断指定如果模型包含有条件执行的子系统,则Simulink是否显示金宝app警告,其中具有指定初始条件的块驱动一个外港块,初始条件未定义。有条件执行的子系统可能具有未初始化的输出。如果没有检测到,这种情况会产生不确定性的行为。

做以下任何一件事:

在“配置参数”对话框中,可以看到未指定的初始化检测(金宝appSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。金宝app此诊断检测与早期版本之间潜在的初始输出差异。有条件执行的子系统可能具有未初始化的输出。如果没有检测到,这种情况会产生不确定性的行为。

做以下任何一件事:

在“配置参数”对话框中,可以看到未指定的初始化检测(金宝appSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。金宝app的检查执行上下文的运行时输出(金宝appSimulink)诊断清除。此诊断检测与早期版本的潜在输出差异。有条件执行的子系统可以有一个未初始化的输出,并将其输入到具有可调参数的块中。如果未检测到,此条件会导致下游块的行为不确定。

做以下任何一件事:

行动的结果

若要配置影响模型初始化并可能影响安全性的诊断设置,请单击修改设置

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的诊断设置以进行保存

检查身份证mathworks.hism.hisl_0036

检查适用于保存模型文件的诊断设置的模型配置

描述

此检查验证模型配置参数是否为保存与安全相关的应用程序的模型而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
在保存模型之前检测模型是否包含禁用的库链接的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 框图包含禁用的库链接(金宝appSimulink)在“配置参数”对话框或设置参数SaveWithDisabledLinkMsg错误
在保存模型之前,检测模型是否包含使用掩码之外的参数的库链接的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 框图包含参数化的库链接(金宝appSimulink)在“配置参数”对话框或设置参数SaveWithParameterizedLinkMsg错误

行动的结果

点击修改设置配置应用于保存模型文件的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查MATLAB代码分析器消息

检查身份证mathworks.hism.himl_0004

检查MATLAB®功能% # codegen指令、MATLAB代码分析器消息和验证消息id。

描述

验证% # codegen指令、MATLAB代码分析器消息和对齐消息id:

  • MATLAB函数块中的MATLAB代码

  • 在状态流图中定义的MATLAB函数

  • 叫做MATLAB函数

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

对于MATLAB函数块中的MATLAB代码,请选择以下任何一种:

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

对于在状态流图中定义的MATLAB函数,可以使用以下任一方法:

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

对于所谓的MATLAB函数:

  • 代码没有% # codegen指令。

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 插入% # codegen指令。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查合并块的安全相关诊断设置

检查身份证mathworks.hism.hisl_0303

检查应用于合并块的诊断设置的模型配置

描述

此检查验证模型配置参数是否为与安全相关的应用程序的Merge块设置为最优。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测模型是否包含Merge块,且多个驱动块同时执行step的诊断设置为没有一个警告.在“配置参数”对话框中,可以看到未指定的初始化检测(金宝appSimulink)的诊断设置为经典

2 .在“配置参数”对话框中设置检测多个驱动块在同一时间执行步骤(金宝appSimulink)或设置参数MergeDetectMultiDrivingBlocksExec错误

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查状态流的安全相关诊断设置

检查身份证mathworks.hism.hisl_0311

检查状态流的安全相关诊断设置

描述

此检查验证模型配置参数是否为与安全相关的应用程序的Stateflow设置为最优。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测图表配置是否在模拟过程中导致不必要的回溯的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置意想不到的回溯(金宝appSimulink)或设置参数SFUnexpectedBacktrackingDiag错误

检测图表配置是否具有连接到图表输入端口的块,这些块在初始化期间不初始化其输出的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置图表初始化时输入数据访问无效(金宝appSimulink)或设置参数SFInvalidInputDataAccessInChartInitDiag错误

检测图表是否具有无条件默认转换到状态或连接的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置没有无条件的默认转换(金宝appSimulink)或设置参数SFNoUnconditionalDefaultTransitionDiag错误

检测图表是否包含在父状态或结之外循环的转换的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置母体外的过渡(金宝appSimulink)或设置参数SFTransitionOutsideNaturalParentDiag错误

检测图表是否在有效的执行路径上构造的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置执行路径不可达(金宝appSimulink)或设置参数SFUnreachableExecutionPathDiag错误

诊断检测到该参数无定向事件广播没有设置为没有一个警告 无定向事件广播或在“配置参数”对话框中进行设置SFUndirectedBroadcastEventsDiag错误
诊断检测到该参数在条件操作之前指定的转换操作没有设置为没有一个警告 在条件操作之前指定的转换操作或在“配置参数”对话框中进行设置SFTransitionActionBeforeConditionDiag错误

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

使用Simulink I/O检查强数据类型金宝app

检查身份证mathworks.hism.hisf_0009

确定可能影响安全性的状态流结构的使用。

描述

这种检查标识使用强数据类型的Stateflow软件实例,这些实例可能会影响应用程序的安全。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

状态流图没有配置为在Simulink模型和状态流图之间的边界上进行强数据类型。金宝app

在“图表属性”对话框中,选择在Simulink I/O中使用强数据类型金宝app查看状态流图。当您选中此复选框时,状态流图接受Simulink模型支持的任何数据类型的输入信号,只要输入信号的类型与相应的状态流输入数据对象的类型相匹配。金宝app金宝app

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。排除将不适用于库链接图表。

另请参阅

检查带有继承属性的MATLAB函数接口

检查身份证mathworks.hism.himl_0002

识别具有继承复杂性或数据类型属性的输入、输出或参数的MATLAB函数。

描述

该检查标识具有继承复杂性或数据类型属性的MATLAB函数。结果表提供了未通过检查的MATLAB函数的链接,以及触发警告的条件。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
MATLAB函数具有继承的接口。

显式定义输入、输出和结果中确定的MATLAB函数的参数的复杂度和数据类型属性。

如果适用,使用MATLAB函数块编辑器(金宝appSimulink),在端口和数据管理器(金宝app模型):

  • 改变复杂性继承了

  • 改变类型继承:和Simulink一样金宝app到显式类型。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查Abs块的使用情况

检查身份证mathworks.hism.hisl_0001

确定用法数学操作可能影响安全的障碍物。

描述

这个检查检查Abs块的使用情况。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

模型或子系统包含绝对值正在操作以下之一的块:

  • 布尔或无符号输入数据类型。这种情况会导致通过模型的模拟路径不可达,并可能导致代码不可达

  • 的带符号整数值整数溢出时饱和复选框未选中。对于有符号数据类型,最负值的绝对值是有问题的,因为它不能用数据类型表示。这种情况会导致生成的代码溢出。

如果被识别绝对值块正在对布尔或无符号数据类型进行操作,请执行以下操作之一:

  • 的输入绝对值块转换为有符号输入类型。

  • 删除绝对值从模型块。

如果被识别绝对值块正在对有符号数据类型进行操作>信号属性对话框,选择整数溢出时饱和

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查Math Function块(rem和倒数函数)的使用情况

检查身份证mathworks.hism.hisl_0002

确定用法数学操作可能影响安全的障碍物。

描述

这个检查检查除法和倒数后有余数的Math Function块的使用情况。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含数学函数-分割后的剩余(rem)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。金宝app

当使用数学函数快速眼动函数,保护块的第二个输入不等于零。否则输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统包含数学函数——互惠(倒数)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。金宝app

当使用数学函数互惠函数,保护块的输入不等于零。否则输出会产生一个并在生成的代码中导致运行时错误。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查Math Function块(log和log10函数)的使用情况

检查身份证mathworks.hism.hisl_0004

确定用法数学操作可能影响安全的障碍物。

描述

这个检查检查具有自然对数和公共(以10为基数)对数的Math Function块的使用情况。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含数学函数-自然对数(日志)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。金宝app

当使用数学函数日志函数,保护块的输入不小于或等于零。否则,输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统包含数学函数-普通(基数为10)(以10为底的对数)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。金宝app

当使用数学函数log10函数,保护块的输入不小于或等于零。否则,输出会产生一个并在生成的代码中导致运行时错误。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查分配块的使用情况

检查身份证mathworks.hism.hisl_0029

确定用法数学操作可能影响安全的障碍物。

描述

这个检查检查分配块的使用情况。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统可能包含赋值数组初始化不完全的块(不在迭代器子系统)没有块参数操作,如果没有分配任何输出元素设置为错误警告

设置块参数操作,如果没有分配任何输出元素到推荐值之一:

  • 错误

  • 警告

模型或子系统可能包含赋值块中的迭代器子系统与参数操作,如果没有分配任何输出元素没有设置为错误 设置块参数操作,如果没有分配任何输出元素错误

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查数据类型转换的安全相关优化设置

检查身份证mathworks.hism.hisl_0053

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
禁止生成由包装范围外值的浮点到整数转换产生的代码的优化被清除。必须避免安全相关代码的溢出。当此优化被关闭且您的模型包含禁用溢位饱和参数时,代码生成器将包装这些块的超出范围的值。这可能会导致不可访问和不可测试的代码。 如果你有金宝app仿真软件编码器™license,选择“配置参数”从包装超出范围值的浮点到整数转换中删除代码(金宝appSimulink Coder)或设置参数EfficientFloat2IntCast

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查数据初始化的安全相关优化设置

检查身份证mathworks.hism.hisl_0052

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
选择抑制为设置为零的根级导入和输出端口生成初始化代码的优化。对于与安全相关的代码,应该显式初始化所有变量。 如果你有嵌入式编码器®license和正在使用一个基于ert的系统目标文件,清除配置参数删除根级I/O零初始化(金宝appSimulink Coder)或设置参数ZeroExternalMemoryAtStartup.或者,确认编译器是符合标准的,因为大多数现代C编译器都会将全局数据初始化为零。或者,集成外部手写代码,显式地将所有I/O变量初始化为零。
选择抑制内部工作结构(如设置为零的块状态和块输出)的初始化代码生成的优化。对于与安全相关的代码,应该显式初始化每个变量。 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”删除内部数据零初始化(金宝appSimulink Coder)或设置参数ZeroInternalMemoryAtStartup.或者,确认编译器是符合标准的,因为大多数现代C编译器都会将全局数据初始化为零。或者,集成外部手写代码,显式地将每个状态变量初始化为零。

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与应用程序寿命相关的安全优化设置

检查身份证mathworks.hism.hisl_0048

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
该模型包含依赖于运行时间或绝对时间的块,并配置为最小化分配给计时器的内存量。这样的配置限制了发生计时器溢出之前应用程序可以执行的天数。许多航空航天产品都是连续通电的下载188bet金宝搏,计时器的使用寿命不应受到限制。 设置配置参数应用程序寿命(天)(金宝appSimulink)或设置参数寿命

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查安全相关的减块优化设置

检查身份证mathworks.hism.hisl_0046

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
选择减块优化。这种优化可以从生成的代码中删除块,导致没有相关代码的需求和对可追溯性需求的违反。 清除配置参数块减少(金宝appSimulink)或设置参数BlockReduction

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查逻辑信号的安全相关优化设置

检查身份证mathworks.hism.hisl_0045

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
清除逻辑信号作为布尔数据的实现。对于与安全相关的代码,建议使用强数据类型。 选择配置参数将逻辑信号实现为布尔数据(vs. double)(金宝appSimulink)或设置参数BooleanDataType

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的优化设置是否存在除法算术异常

检查身份证mathworks.hism.hisl_0054

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
选择抑制生成防止定点数据除零的代码的优化。您必须避免在与安全相关的代码中出现按零除的异常。 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”删除防止除法运算异常的代码(金宝appSimulink Coder)或设置参数NoFixptDivByZeroProtection

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查逻辑运算符块的使用情况

检查身份证mathworks.hism.hisl_0018

确定用法逻辑运算符可能影响安全的障碍物。

描述

的使用情况逻辑运算符块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个逻辑运算符块的输入或输出不是布尔值的输入或输出。该块可能在生成的代码中导致浮点相等或不相等比较。
  • 修改逻辑运算符块,以便所有输入和输出都是布尔值。在>信号属性窗格,请考虑选择要求所有输入具有相同的数据类型和设置输出数据类型布尔

  • 在“配置参数”对话框中,请考虑选择将逻辑信号实现为布尔数据(vs. double)

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查等同于浮点类型的关系操作符块

检查身份证mathworks.hism.hisl_0016

描述

此检查检查以下用法:

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
该模型或子系统包含一个块,计算一个使用==或~=运算符比较浮点信号的关系运算符。由于浮点精度问题,在浮点信号上使用这些操作符是不可靠和不可预测的。这些操作符可能在生成的代码中导致不可预知的结果。

对于已识别的块,执行以下操作之一:

  • 更改信号数据类型。

  • 重做模型以消除在浮点信号上使用==或~=运算符。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查关系运算符块的使用情况

检查身份证mathworks.hism.hisl_0017

描述

该检查检查计算关系运算符的块的使用情况,包括关系操作符与常量比较与零比较而且,检测变化块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个块,计算在不同数据类型上操作的关系运算符。这种情况会在生成的代码中导致不可预知的结果。 对于标识的块,使用公共数据类型作为输入。你可以用数据类型转换块来更改输入数据类型。
模型或子系统包含一个块,计算一个没有布尔输出的关系运算符。这种情况会在生成的代码中导致不可预知的结果。 对于指定的块,在>信号属性窗格中,设置输出数据类型布尔

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查Switch Case块和Switch Case Action Subsystem块的使用情况

检查身份证mathworks.hism.hisl_0011

描述

的使用情况开关情况

检查标志开关情况不使用整数数据类型或枚举值作为输入的块。遵守hisil_0011: Switch Case块和Action子系统块的使用(金宝appSimulink) - C,使用整数数据类型或枚举值作为输入开关情况块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含开关情况块,没有默认情况。 开关情况块的参数对话框,选择显示默认情况.将得到的默认输出端口连接到开关案例动作子系统块。
模型或子系统包含一个开关情况块的输出端口没有连接到开关案例动作子系统块。 的输出端口开关情况块连接到开关案例动作子系统块。
模型或子系统包含开关情况块使用非整数或非enum输入端口数据类型。 确保Switch Case块的输入数据类型为整数或enum。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查If块和If动作子系统块的使用情况

检查身份证mathworks.hism.hisl_0010

描述

的使用情况如果块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含如果块使用没有Else条件的Elseif表达式。 如果块的参数对话框,选择显示其他条件.将结果的Else输出端口连接到If动作子系统块。
模型或子系统包含如果块的输出端口没有连接到If动作子系统块。 的输出端口如果阻塞连接到If动作子系统块。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查For Iterator块的使用情况

检查身份证mathworks.hism.hisl_0008

描述

的使用情况对迭代器块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个对迭代器具有变量迭代的块。这种情况可能导致不可预测的执行时间或生成的代码中出现无限循环。

对于被识别的人对迭代器block,执行以下任一操作:

  • 设置迭代极限源参数内部

  • 如果迭代极限源参数必须为外部,使用常数探针,或宽度块作为源。

  • 接下来清除SetI(迭代变量)对外复选框。

  • 考虑选择显示迭代变量复选框,并在模拟过程中观察迭代值。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查For和While Iterator子系统的使用情况

检查身份证mathworks.hism.hisl_0007

描述

该检查检查类中依赖时间的块的使用情况对迭代器而迭代器子系统。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

模型或子系统中包含以下与时间相关的块之一对迭代器而迭代器子系统:

  • 离散状态空间

  • 离散时间积分器

  • 离散FIR滤波器

  • 离散滤波器

  • 离散转移Fcn

  • 离散Zero-Pole

  • 一级转移Fcn

  • 转移Fnc实零

  • 转移Fcn领先或滞后

  • 具有初始输出的离散传递函数

  • 具有初始状态的离散传递函数

  • 具有初始输出的离散零极

  • 具有初始状态的离散零极

  • 离散微分

在模型或子系统中,考虑删除与时间相关的块。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查While Iterator块的使用情况

检查身份证mathworks.hism.hisl_0006

描述

的使用情况而迭代器块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个而迭代器有无限迭代的块。这种情况会导致生成的代码出现无限循环。莫

对于被识别的人而迭代器块:

  • 设置最大迭代次数(-1表示无限)参数设置为正整数值。

  • 考虑选择显示迭代数端口复选框,并在模拟过程中观察迭代值。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查与安全相关的代码生成设置以获得注释

检查身份证mathworks.hism.hisl_0038

检查可能影响安全性的代码生成设置的模型配置。

描述

此检查验证代码生成的模型配置参数是否为与安全相关的应用程序进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
清除在生成的代码中包含注释的选项。注释在代码和模型之间提供了良好的可跟踪性。 选择包括评论(金宝appSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置GenerateComments
清除包含描述块代码的注释的选项。注释在代码和模型之间提供了良好的可跟踪性。 选择金宝appSimulink块注释(金宝appSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置金宝appSimulinkBlockComments
清除了包含描述从模型中删除的块的代码的注释的选项。注释在代码和模型之间提供了良好的可跟踪性。 选择显示删除的块(金宝appSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置ShowEliminatedStatement
中的模型参数结构声明中作为注释包含参数变量和源块的名称的选项模型_prm.h清除。注释在代码和模型之间提供了良好的可跟踪性。 选择'Model default'存储类的详细注释(金宝appSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置ForceParamTrailComments
清除将分配给Simulink块的需求描述作为注释的选项。金宝app注释在代码和模型之间提供了良好的可跟踪性。 选择块注释中的需求(金宝appSimulink Coder)上的代码生成>自定义注释或在“配置参数”对话框中设置ReqsInCode

行动的结果

点击修改设置配置可能影响安全性的模型代码生成设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的代码生成接口设置

检查身份证mathworks.hism.hisl_0039

检查可能影响安全性的代码生成设置的模型配置。

描述

此检查验证代码生成的模型配置参数是否为与安全相关的应用程序进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
选择生成非有限数据和操作的选项。金宝app对非有限数的支持不适用于实时嵌入式系统。 清晰的金宝app支持:非有限数字(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置金宝appSupportNonFinite
选择为绝对时间和运行时间生成和维护整数计数器的选项。金宝app对绝对时间的支持不适用于与实时安全相关的系统。 清晰的金宝app支持:绝对时间(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置金宝appSupportAbsoluteTime
选择为使用连续时间的块生成代码的选项。金宝app对连续时间的支持不适用于与实时安全相关的系统。 清晰的金宝app支持:连续时间(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置金宝appSupportContinuousTime
选择为非内联s函数生成代码的选项。这个选项需要非有限数字的支持,这对于实时安金宝app全相关的系统是不合适的。 清晰的金宝app支持:非内联s函数(金宝appSimulink Coder)在“配置参数”对话框中进行设置金宝appSupportNonInlinedSFcns
选择生成与pre-R2012a GRT目标的主程序模块兼容的模型函数调用的选项。此选项不适用于与实时安全相关的系统。 清晰的经典的呼叫呼叫接口(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置GRTInterface
的选项来生成模型_update功能被清除。对输出和更新函数的单一调用简化了与实时操作系统(RTOS)的接口,并简化了对生成代码的验证。 选择单输出/更新功能(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置CombineOutputUpdateFcns
的选项来生成模型_terminate函数已选中。该功能释放动态内存,不适用于实时安全相关系统。 清晰的终止函数(金宝appSimulink Coder)上的代码生成或在“配置参数”对话框中设置IncludeMdlTerminateFcn
清除记录或监视错误状态的选项。如果不选择此选项,则金宝app仿真软件编码器产品生成测试可能无法访问的额外代码。 选择删除实时模型数据结构中的错误状态字段(金宝appSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置SuppressErrorStatus
选择mat文件日志记录。该选项为将测试点记录到mat文件添加了额外的代码,嵌入式目标不支持这一点。金宝app只在测试工具中使用此选项。 清晰的MAT-file日志(金宝appSimulink Coder)在“配置参数”对话框中进行设置MatFileLogging

行动的结果

点击修改设置配置可能影响安全性的模型代码生成设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的代码生成设置以获得代码样式

检查身份证mathworks.hism.hisl_0047

检查可能影响安全性的代码生成设置的模型配置。

描述

此检查验证代码生成的模型配置参数是否为与安全相关的应用程序进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
指定圆括号使用的样式的选项被设置为最小(依赖于C/ c++操作符优先级)标称(优化可读性).对于与安全相关的应用程序,用圆括号显式指定优先级。 设置参数ParenthesesLevel最大值(用括号指定优先级)
清除指定是否保留操作数顺序的选项。这个选项增加了生成代码的可跟踪性。 设置参数PreserveExpressionOrder

行动的结果

点击修改设置配置可能影响安全性的模型代码生成设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的代码生成标识符设置

检查身份证mathworks.hism.hisl_0049

检查可能影响安全性的代码生成设置的模型配置。

描述

此检查验证代码生成的模型配置参数是否为与安全相关的应用程序进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
为生成name mangling字符串指定的最小字符数小于4。您可以使用此选项将参数和信号名称在代码生成过程中随模型更改而更改的可能性降至最低。使用此选项有助于最小化文件版本之间的代码差异,减少执行代码审查的工作量。 最小轧包长度(金宝appSimulink Coder)上的代码生成>标识符“配置参数”对话框中的MangleLength到4或更大的值。

行动的结果

点击修改设置配置可能影响安全性的模型代码生成设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与模型引用相关的安全诊断设置

检查身份证mathworks.hism.hisl_0310

检查模型配置,查看适用于模型引用并可能影响安全性的诊断设置。

描述

此检查验证与模型引用相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
对象的模型版本之间不匹配的诊断模型块,引用模型的当前版本设置为错误警告.检测发生在加载和更新操作期间。当您从软件配置管理系统获得引用模型的最新版本,而不是在以前的模拟中使用的旧版本时,如果该诊断设置为错误时,模拟终止。如果诊断设置为警告时,系统将发出警告消息。要解决这个问题,用户必须重新保存被模拟的模型,这可能不是想要的操作。 模型块版本不匹配(金宝appSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceVersionMismatchMessage没有一个
在模型加载和更新期间检测端口和参数不匹配的诊断设置为没有一个警告.如果未检测到,这种不匹配可能导致不正确的模拟结果,因为父模型和引用模型具有不同的接口。 端口和参数不匹配(金宝appSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceIOMismatchMessage错误
检测到当前模型根级别的无效内部连接的诊断轮廓尺寸而且外港Blocks被设置为没有一个警告.当检测到这种情况时,Simulink软件可能会自动在模型中插入隐藏块来修复金宝app这种情况。隐藏的块可能导致生成的代码没有可跟踪的需求。将诊断设置为错误强制模型开发人员手动修复引用的模型。 无效的根导入/输出端口块连接(金宝appSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceIOMessage错误
检测是否到工作空间范围块记录引用模型中的数据没有一个警告.不支持数据日志记录金宝app到工作空间而且范围引用模型中的块。 不支金宝app持的数据日志记录(金宝appSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceDataLoggingMessage错误
要记录数据,请删除块并记录引用的模型信号。有关更多信息,请参见测井参考模型信号(金宝app模型)。

行动的结果

点击修改设置配置适用于模型引用并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查取样时间的安全相关诊断设置

检查身份证mathworks.hism.hisl_0044

检查模型配置,以确定适用于采样时间并可能影响安全性的诊断设置。

描述

此检查验证与采样时间相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
用于检测源块时的诊断正弦波块,继承设置的样本时间(指定为-1)没有一个警告.对源块使用继承的样本时间可能会导致源块及其连接块的不可预测的执行速率。对于与安全相关的应用程序,源块应该有明确的采样时间,以防止不正确的执行顺序。 源块指定-1采样时间(金宝appSimulink)上诊断>样品时间或在“配置参数”对话框中设置InheritedTslnSrcMsg错误
用于检测在多任务模式下运行的两个块之间的无效速率转换的诊断设置为没有一个警告.这种速率转换不应该用于嵌入式实时代码。 多任务速率转换(金宝appSimulink)上诊断>样品时间或在“配置参数”对话框中设置MultiTaskRateTransMsg错误
用于检测可能导致数据损坏或不确定行为的子系统的诊断设置为没有一个警告.此诊断检测有条件执行的多速率子系统(启用的、触发的或函数调用子系统)是否在多任务模式下运行。在允许抢占的实时环境中,这样的子系统会破坏数据并表现出不可预测的行为。 多任务有条件执行的子系统(金宝appSimulink)上诊断>样品时间或在“配置参数”对话框中设置MultiTaskCondExecSysMsg错误
检测样品时间一致性的诊断方法信号规范块和连接的目标块设置为没有一个警告.过度指定的采样时间可能导致不可预测的执行速率。 强制信号规范块指定的采样时间(金宝appSimulink)上诊断>样品时间或在“配置参数”对话框中设置SigSpecEnsureSampleTimeMsg错误
诊断检测到该参数单任务速率转换没有设置为错误 单任务速率转换或在“配置参数”对话框中进行设置SingleTaskRateTransMsg错误
诊断检测到该参数具有同等优先级的任务没有设置为错误 具有同等优先级的任务或在“配置参数”对话框中进行设置TasksWithSamePriorityMsg错误
用于检测模型是否包含未显式指定继承采样时间的s函数的诊断设置为没有一个警告.这些设置可能导致不可预测的行为。模型开发人员需要知道模型中何时存在这样的s函数,以便对其进行修改以产生可预测的行为。 未指定的样本时间继承性(金宝appSimulink)在“配置参数”对话框或设置参数UnknownTsInhSupMsg错误

行动的结果

点击修改设置配置适用于采样时间并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查MATLAB函数指标

检查身份证mathworks.hism.himl_0003

显示MATLAB函数的复杂度和代码度量。报告指标违规情况。

描述

这个检查为MATLAB函数提供了复杂度和代码度量。检查报告了两类指标违反:

  • 基于块的度量-用于MATLAB函数块整体代码的度量

  • 基于功能的度量——块中每个功能的度量,分别给出

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

输入参数

您可以使用Model Advisor配置编辑器来定义这些复杂性参数的容忍度:

  • 每个函数的最大有效代码行数—有效行不包括空行、注释行或带有函数的行结束关键字。默认值为60

  • 评论的最小密度-密度是注释行与代码总行数的比率。默认值为0.2

  • 每个函数的最大圈复杂度-圈复杂度是通过源代码的线性无关路径的数量。默认值为15

结果及建议的行动

条件 建议的行动
MATLAB函数违反了输入参数的复杂性。

对于MATLAB函数:

  • 如果有效代码行数过高,则进一步划分MATLAB函数。

  • 如果注释密度过低,则添加注释行。

  • 如果每个函数的圈复杂度过高,则进一步划分MATLAB函数。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查与类型转换相关的安全诊断设置

检查身份证mathworks.hism.hisl_0309

检查模型配置,查看适用于类型转换并可能影响安全性的诊断设置。

描述

此检查验证与类型转换相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
检测到的诊断数据类型转换当类型转换设置为时,将阻塞没有一个.Simu金宝applink软件可能会删除不必要的数据类型转换块生成的代码,这可能导致没有相应代码的需求。需要对这些块的删除进行标识,以便模型开发人员可以显式地删除不必要的块。 设置不必要的类型转换(金宝appSimulink)配置参数UnnecessaryDatatypeConvMsg参数警告
在块输入处检测向量到矩阵或矩阵到向量转换的诊断设置为没有一个警告.当Simulink金宝app软件自动在向量和矩阵维度之间转换时,可能会发生意外操作或不可预知的行为。 设置向量/矩阵块输入转换(金宝appSimulink)配置参数VectorMatrixConversionMsg参数错误
检测32位整数值何时转换为浮点值的诊断设置为没有一个.这种类型的转换可能会由于截断大整数值的最低有效位而导致精度损失。 设置32位整数到单精度浮点数转换(金宝appSimulink)配置参数Int32ToFloatConvMsg参数警告

行动的结果

点击修改设置配置适用于类型转换并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查模拟时间的安全相关求解器设置

检查身份证mathworks.hism.hisl_0040

检查模型配置中适用于模拟时间并可能影响安全的求解器设置。

描述

此检查验证与模拟时间相关的模型求解器配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

用于指定模拟或生成代码的开始时间的求解器设置被设置为0.0

2 .在“配置参数”对话框中设置开始时间(金宝appSimulink)或设置参数开始时间0.0

用于指定模拟或生成代码的停止时间的求解器设置被设置为大于的值的负值或正值应用程序寿命(天)(金宝app模型)。默认情况下,应用程序寿命(天)(金宝app模型)汽车.如果不更改此设置,则为的任何正值停止时间(金宝appSimulink)有效。

2 .在“配置参数”对话框中设置停止时间(金宝appSimulink)或设置参数StopTime的正数值,小于的值应用程序寿命(天)(金宝app模型)。

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查求解器的安全相关诊断设置

检查身份证mathworks.hism.hisl_0043

检查适用于求解器并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与求解器相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
将检测代数循环自动断裂的诊断设置为没有一个警告.代数循环的打破会影响块执行顺序的可预测性。对于与安全相关的应用程序,模型开发人员需要知道这种中断何时发生。 代数循环(金宝appSimulink)上诊断>解算器或在“配置参数”对话框中设置AlgebraicLoopMsg错误.考虑明确地打破这种循环单位延迟块,以便执行顺序是可预测的。至少要验证循环自动中断的结果是否可以接受。
代数回路自动断裂的诊断模型块、原子子系统和启用的子系统设置为没有一个警告.代数循环的打破会影响块执行顺序的可预测性。对于与安全相关的应用程序,模型开发人员需要知道这种中断何时发生。 最小化代数循环(金宝appSimulink)上诊断>解算器或在“配置参数”对话框中设置ArtificialAlgebraicLoopMsg错误.考虑明确地打破这种循环单位延迟块,以便执行顺序是可预测的。至少要验证循环自动中断的结果是否可以接受。
在块执行顺序中检测潜在冲突的诊断设置为没有一个警告.对于与安全相关的应用程序,块执行顺序必须是可预测的。模型开发人员需要知道什么时候存在冲突的块优先级。 阻塞优先级违反(金宝appSimulink)上诊断>解算器或在“配置参数”对话框中设置BlockPriorityViolationMsg错误
用于检测Simulink软件是否自动修改求解器、步长或仿真停止时间的诊断设置为金宝app没有一个警告.这样的更改会影响生成代码的操作。对于与安全相关的应用程序,最好检测此类更改,以便模型开发人员可以显式地将参数设置为已知值。 自动求解参数选择(金宝appSimulink)上诊断>解算器或在“配置参数”对话框中设置SolverPrmCheckMsg错误
将用于检测名称是否用于模型中的多个状态的诊断设置为没有一个.模型中的状态名应该是唯一的。对于与安全相关的应用程序,最好检测名称冲突,以便模型开发人员能够修复它们。 州名冲突(金宝appSimulink)上诊断>解算器或在“配置参数”对话框中设置StateNameClashWarn警告

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的模型引用设置

检查身份证mathworks.hism.hisl_0037

检查模型配置,查看可能影响安全性的模型引用设置。

描述

此检查验证用于模型引用的模型配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
被引用的模型被配置为每当您更新、模拟或为模型生成代码时,或者当Simulink软件检测到已知依赖项中的更改时,都会重新构建它的目标。金宝app这些配置设置可能导致不必要的代码再生,导致只更改文件的日期,并在使用模型引用时减慢构建过程。 重建(金宝appSimulink)上模型参考或在“配置参数”对话框中设置UpdateModelReferenceTargets从来没有如果检测到任何更改
将检测目标是否需要重新构建的诊断设置为没有一个警告如果目标需要重建.对于与安全相关的应用程序,错误应该提醒模型开发人员父模型和引用模型不一致。此诊断参数仅在以下情况下可用重建设置为从来没有 设置配置参数不要重新构建诊断(金宝appSimulink)上模型参考或在“配置参数”对话框中设置CheckModelReferenceTargetMessage错误
关闭了按值传递标量根输入的功能。该功能应该关闭,因为标量值可能在时间步中发生变化,并导致不可预测的数据。该参数仅在配置参数时有效每个顶级模型允许的实例总数设置为一个多个ModelReferenceNumInstancesAllowed). 为生成代码,按值传递固定大小的标量根输入(金宝appSimulink)上模型参考或在“配置参数”对话框中设置ModelReferencePassRootInputsByReference
该模型被配置为最小化代数循环的出现。的推荐设置与此配置不兼容单输出/更新功能用于嵌入式系统代码。 2 .在“配置参数”对话框中设置最小化代数循环的出现(金宝appSimulink)或设置参数ModelReferenceMinAlgLoopOccurrences

行动的结果

点击修改设置配置可能影响安全的模型引用设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查状态流图,查找跨越平行状态边界的转换路径

检查身份证mathworks.hism.hisf_0013

在状态流图中确定跨越并行状态边界的转换路径。

描述

在状态流图中确定跨越并行状态边界的转换路径。此检查标识状态流图中跨越并行状态边界的转换路径。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图具有跨越平行状态边界的转换路径。 修改状态流图,使转换不会跨越平行的状态边界。更多信息请参见,运行模式转换(Stateflow)。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

  • 分析所有被屏蔽子系统中的内容。

另请参阅

检查状态流图中的赋值操作

检查身份证mathworks.hism.hisf_0065

在状态流对象中标识赋值操作。

描述

此检查标识Stateflow对象中的赋值操作,这些操作隐式地将整数和定点算术计算转换为比输入数据类型更广泛的数据类型。

这种检查只识别带有算术运算的赋值。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
Stateflow对象由赋值操作组成,这些操作将整数和定点计算转换为比输入数据类型更广泛的数据类型。 在Stateflow对象中显式地将赋值操作符(=)替换为:=操作符。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 用C编写并嵌入到Stateflow中的外部函数将不能使用此检查。

另请参阅

检查位操作块的使用情况

检查身份证mathworks.hism.hisl_0019

标识以有符号数据类型作为输入的位操作块

描述

此检查标识输入和输出数据类型使用的按位操作。检查还会检查其他位操作块,如下所示:

  • 一些明确的

  • 位设置

  • 按位运算符

  • 提取部分

  • 转变Arithmentic

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
对签名数据类型不使用位操作。 对按位操作使用签名数据类型。

能力与限制

  • 允许排除块和图表。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

另请参阅

检查带有索引信号的块的数据类型

检查身份证mathworks.hism.hisl_0022

描述

此检查标识具有索引信号的块,其数据类型不是整数或enum,并且在索引值的范围内。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
模型中的一个或多个Sim金宝appulink块具有数据类型不是整数或enum的索引信号。 将块索引信号的数据类型更改为覆盖索引值范围的整数或enum数据类型。
一个或多个MATLAB函数块具有数据类型不适当的索引变量。 将索引变量的数据类型更改为覆盖索引值范围的整数或enum数据类型。
模型中的一个或多个状态流图具有数据类型不是整数或enum的索引变量。 将块的索引信号的数据类型更改为覆盖索引值范围的整数或enum数据类型。

能力与限制

  • 此检查不支持对话框集索引。金宝app

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为图形化的

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查模型文件名

检查身份证mathworks.hism.hisl_0031

描述

该检查检查模型文件名,以确保文件名符合推荐的指导方针。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
文件名包含非法字符。 重命名文件。允许的字符包括a-z、a-z、0-9和下划线。
文件名以数字开头。 确保文件名不是以数字开头的。
文件名以下划线(“_”)开头。 确保文件名不是以下划线(“_”)开头。
文件名以下划线(“_”)结尾。 确保文件名不以下划线(“_”)结尾。
文件扩展名包含一个或多个下划线。 更改文件扩展名。
文件名中有连续的下划线。 重命名文件以消除尾随下划线'。
文件名包含多个点(“。”)。 确保文件名的点号不超过一个(".")。
文件名是C/ c++或MATLAB关键字或内置函数 重命名文件。

能力与限制

  • 在库模型上运行。

另请参阅

检查MATLAB函数块中的if/elseif/else模式

检查身份证mathworks.hism.himl_0006

描述

该检查在嵌入的MATLAB代码中识别if/elseif/else模式,但没有适当的else条件。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
嵌入式MATLAB代码中出现了不适当的if/elseif/else模式。 对于每个if/elseif/else模式,添加至少包含一个有意义的注释的else语句。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

另请参阅

检查MATLAB函数块中的开关语句

检查身份证mathworks.hism.himl_0007

描述

这个检查在嵌入的MATLAB代码中识别没有适当条件的switch/case/ else语句。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
Switch语句没有任何其他条件。 确保switch语句有一个else条件。
否则,语句将为空,没有注释。 确保else语句至少有一个有意义的注释。
Switch语句只有一个case语句。 确保switch语句至少有两个case语句。

能力与限制

  • 这张支票不包括单人支票情况下语句中包含两个或多个元素的单元格数组。

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 在库模型上运行。

  • 您可以使用输入参数将检查配置为在引用的MATLAB文件上运行检查模型中引用的.m文件在配置编辑器中。默认情况下,该参数被选中。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查图形函数中的全局变量

检查身份证mathworks.hism.hisl_0062

描述

此检查标识读写状态流中相同全局数据的表达式。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
一个或多个表达式作用于图形函数和图形函数中使用的全局变量。 重构表达式,使函数和全局变量不在同一个表达式中使用。

能力与限制

  • 在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查用户定义的对象名称的长度

检查身份证mathworks.hism.hisl_0063

描述

该检查根据配置设置中的最大标识符长度参数检查这些用户定义对象的名称的长度:

  • 函数名称选项设置为用户指定的子系统。

  • 指南中描述的数据对象。

  • 信号和参数对象。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
子系统中函数名的长度大于设置的阈值。 更改子系统块中的函数名,使其长度小于设置的阈值。
数据对象名称的长度大于阈值。 更改子系统块中的函数名,使其长度小于设置的阈值。

能力与限制

  • 此检查不标记不能解析为对象的信号。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

另请参阅

检查Merge块的使用情况

检查身份证mathworks.hism.hisl_0015

描述

此支票识别合并不直接连接到有条件执行的子系统并具有允许不相等的端口宽度参数设置为on。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
合并块没有直接连接到有条件执行的子系统。 重构以便Merge块直接连接到有条件执行的子系统。
Merge块参数允许不相等的端口宽度设置为 设置合并块参数允许不相等的端口宽度
在有条件执行的子系统中,多个子系统在一个时间步中执行。 指定有条件执行的子系统的执行,以便在一个时间步骤中只执行一个子系统。
外港块参数禁用时的输出没有设置为举行对于模型中任何有条件执行的子系统。 设置外港块参数禁用时的输出举行对于每个被合并的有条件执行的子系统。

能力与限制

  • 不能在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

另请参阅

检查有条件执行的子系统的使用情况

检查身份证mathworks.hism.hisl_0012

描述

该检查在有条件执行的子系统和异步执行的依赖于采样时间的块中识别具有错误采样时间的块。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

块的采样时间未设置为-1在有条件执行的子系统中:

  • 如果行动

  • 开关案例动作

  • 函数调用

  • 触发

  • 启用

更改块的采样时间为-1

该模型包含异步执行的样本时间相关块:

  • 离散状态空间

  • 离散时间积分器

  • 离散FIR滤波器

  • 离散滤波器

  • 离散转移Fcn

  • 离散Zero-Pole

  • 一级转移Fcn

  • 转移Fnc实零

  • 转移Fcn领先或滞后

  • 具有初始输出的离散传递函数

  • 具有初始状态的离散传递函数

  • 具有初始输出的离散零极

  • 具有初始状态的离散零极

  • 离散微分

重构以删除与采样时间相关的块。

能力与限制

  • 异步执行的依赖于采样时间的块只有在触发而且函数调用块存在。

  • 不能在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

另请参阅

检查标准化的MATLAB函数头的使用情况

检查身份证mathworks.hism.himl_0001

描述

该检查检查模型中的所有MATLAB函数、局部函数和参考的MATLAB文件中的标准化函数头,并检查以下细节:

  • 函数名

  • 功能描述

  • 输入变量的描述

  • 输出变量描述

下面是一个如何定义函数头文件的例子:

> -函数的描述

%<输入变量1> -输入变量1的描述

%<输入变量2> -输入变量2的描述

%<输出变量1> -输出变量1的描述

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
MATLAB函数使用非标准函数头。

考虑根据以下原则为函数添加函数头:

  • 必须是有效的MATLAB注释。

  • 必须立即遵循函数签名。

  • 必须有“功能描述”部分。

  • 必须有“输入说明”部分。

  • 必须有“输出描述”部分。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 您可以使用输入参数将检查配置为在引用的MATLAB文件上运行检查模型中引用的.m文件在配置编辑器中。默认情况下,该参数被选中。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查MATLAB函数块中关系运算符的使用

检查身份证mathworks.hism.himl_0008

描述

该检查检查模型中的所有MATLAB函数、局部函数和引用的MATLAB文件中对不同数据类型的操作数进行操作的关系操作符语句。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
对不同数据类型的操作数进行操作的函数块中的关系操作符。 将操作数类型转换为相同的数据类型。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 不能在库模型上运行。

  • 您可以使用输入参数将检查配置为在引用的MATLAB文件上运行检查模型中引用的.m文件在配置编辑器中。默认情况下,该参数被选中。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查MATLAB函数块中相等运算符的使用

检查身份证mathworks.hism.himl_0009

描述

这个检查检查在MATLAB函数块中使用浮点操作数的相等操作符。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
一个或多个MATLAB函数具有具有浮点操作数的相等操作符。 考虑比较范围而不是直接比较。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 不能在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 您可以使用输入参数将检查配置为在引用的MATLAB文件上运行检查模型中引用的.m文件在配置编辑器中。默认情况下,该参数被选中。

  • 允许排除块和图表。

另请参阅

检查MATLAB函数块中逻辑运算符和函数的使用情况

检查身份证mathworks.hism.himl_0010

描述

此检查标识对数值数据类型的操作数进行操作的逻辑操作符和函数MATLAB函数块。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
用于数值数据类型的操作数的逻辑运算符或函数。 将操作数类型转换为逻辑数据类型。

能力与限制

  • 此检查只分析由Simulink模型直接引用的函数。金宝app

  • 不能在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 您可以使用输入参数将检查配置为在引用的MATLAB文件上运行检查模型中引用的.m文件在配置编辑器中。默认情况下,该参数被选中。

  • 允许排除块和图表。

另请参阅

检查条件表达式的类型和大小

检查身份证mathworks.hism.himl_0011

描述

该检查对模型进行计算,以检查以下条件表达式是否使用了逻辑标量:

  • 如果表达式

  • elseif表达式

  • 表达式

  • 状态流转换的条件表达式

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

如果表达式不是逻辑标量。

将表达式更改为逻辑标量。

elseif表达式不是逻辑标量。

将表达式更改为逻辑标量。

表达式不是逻辑标量。

将表达式更改为逻辑标量。

状态流转换表达式的条件表达式不是逻辑标量。

将表达式更改为逻辑标量。

行动的结果

结果表标识包含非逻辑标量表达式的每个表达式。要检查这个问题,请从结果表中选择相应的函数链接。Model Advisor打开并突出显示相应的函数定义,或者,对于Stateflow,打开图表并突出显示问题发生的状态。

手动将条件表达式更改为逻辑标量。保存模型并重新运行检查。

能力与限制

  • 当使用C作为Stateflow操作语言时,不会检查Stateflow转换和状态操作的条件。

  • 此检查不会在库模型上运行。

  • 不可达的不变条件和代码片段可能不会被分析。

另请参阅

检查状态流图中的端口命名

检查身份证mathworks.hism.hisf_0016

描述

此检查标识Stateflow端口名称和相关信号之间的不匹配。可重用的Stateflow块可以具有不同的端口名称。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图的输入和输出端口的名称与连接的信号的名称不相同。 确保状态流图的输入和输出端口名称与连接的信号名称相同。

能力与限制

  • 此检查不分析状态流真值表或状态流状态转换表的端口名称。

  • 此检查将可重用的状态流图视为库链接图,并且不进行标记。

  • 此检查不标记没有名称的信号。

  • 不分析库链接块的内容。

  • 不分析被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查Stateflow数据对象的作用域

检查身份证mathworks.hism.hisf_0017

描述

此检查标识具有本地作用域但不在图表级别或更低级别作用域的Stateflow数据对象。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
一个或多个具有局部作用域的Stateflow数据对象没有在图表级别或更低级别定义。 确保在图表级别或更低级别定义所有具有局部作用域的Stateflow数据对象。

能力与限制

  • 不分析库链接块的内容。

  • 不分析被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查增益块的使用情况

检查身份证mathworks.hism.hisl_0066

描述

此支票识别获得块的值解析为1,一个单位矩阵,或1的矩阵。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
一个或多个获得模型中的块解析为1或单位矩阵。 重构增益块,使增益值不解析为1,即单位矩阵或1的矩阵。

能力与限制

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除块和图表。

另请参阅

检查循环控制变量的数据类型

检查身份证mathworks.hism.hisl_0102

描述

此检查使用以下非整数数据类型识别循环控制变量:

  • 对于迭代器块。

  • For循环在MATLAB函数块。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
一个或多个For Iterator块使用非整数数据类型For循环控制计数器变量。 将循环控制计数器变量的数据类型设置为整数数据类型。
一个或多个For循环在MATLAB函数块中使用非整数数据类型的For循环控制计数器变量。 将循环控制计数器变量的数据类型设置为整数数据类型。

能力与限制

  • 此检查不查看状态流图中的循环控制变量。

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 允许排除块和图表。

另请参阅

检查过渡路径的不适当使用

检查身份证mathworks.hism.hisf_0014

描述

该检查检查状态内连接的使用情况,并确定进入和离开状态的路径上的连接。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
模型中的一个或多个转换路径遍历状态而不终止于子状态。 对连接进行重构,以避免进入或离开某个状态而不以子状态结束的转换路径。

能力与限制

  • 在库模型上运行。

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 允许排除图表。不能直接排除Stateflow元素。

另请参阅

检查状态流图中按位操作的使用情况

检查身份证mathworks.hism.hisf_0003

描述

在使用C动作语言的状态流图中标识有符号整数操作数对位操作符的使用。

可以使用金宝app仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
模型中的一个或多个Stateflow对象使用带符号整数操作数和位操作符。 确保不使用带符号整数操作数和位操作符。

能力与限制

  • 下面的MATLAB位操作不会用这个检查标记

    • swapbytes

    • bitset

    • bitget

    • bitcmp

  • 不能在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为所有

  • 分析所有被屏蔽子系统中的内容。

另请参阅

检查与信号数据相关的安全诊断设置

检查身份证mathworks.hism.hisl_0314

检查适用于信号数据并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与信号数据相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
指定Simulink软件如何解析与。相关的信号的诊断金宝app金宝app仿真软件。信号对象设置为显性和隐性显式和警告隐式.对于与安全相关的应用程序,应该要求模型开发人员显式地定义信号分辨率。(参见DO-331, MB.6.3.3节。b -软件架构一致。)

信号的分辨率(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalResolutionControl明确的只.通过要求用户定义必须解析到的每个信号和块设置,这提供了可预测的操作金宝app仿真软件。信号工作区中的对象。

或禁用的使用金宝app仿真软件。信号对象,将配置参数设置为没有一个

产品将在矩阵乘法模式中对奇异矩阵的一个输入求逆时检测奇异矩阵的块诊断设置为没有一个警告.在执行生成的代码时,除以奇异矩阵可能会导致数值异常。这在与安全相关的系统中是不可接受的。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 除以奇异矩阵(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置CheckMatrixSingularityMsg错误
将检测Simulink软件在数据类型传播过程中何时不能推断信号的数据类型的金宝app诊断设置为没有一个警告.对于与安全相关的应用程序,模型开发人员必须验证信号的数据类型。(参见DO-331, MB.6.3.1节。e -高级要求符合标准和DO-331, MB.6.3.2节。e -低层次需求符合标准。) 未指定的数据类型(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置UnderSpecifiedDataTypeMsg错误
检测信号的值是否过大而无法由信号数据类型表示的诊断设置为没有一个警告.未检测到的数值溢出可能导致意外的应用程序行为。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 包装溢出(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置IntegerOverflowMsg错误
检测信号的值是否过大而无法由信号数据类型表示,从而导致饱和的诊断设置为没有一个警告.未检测到的数值溢出可能导致意外的应用程序行为。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 溢位饱和(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置IntegerSaturationMsg错误
检测块输出信号值为的诊断在当前时间步长设置为没有一个警告.当这种类型的块输出信号条件发生时,会导致数值异常,而数值异常在与安全相关的应用程序中是不可接受的。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) Inf或NaN块输出(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalInfNanChecking错误
用于检测以。开头的Simulink对象名称的诊断金宝apprt设置为没有一个警告.此诊断可防止与生成的信号名称发生冲突rt前缀。(参见DO-331, MB.6.3.1节。e -高级要求符合标准和DO-331, MB.6.3.2节。e -低层次需求符合标准。) 标识符前缀“rt”(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置RTPrefix错误
检测模拟范围检查的诊断设置为没有一个警告.该诊断在模拟过程中检测信号何时超过其指定的范围。金宝appSimulink将块输出的信号值与指定的范围和块数据类型进行比较。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 仿真范围检查(金宝appSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalRangeChecking错误

行动的结果

点击修改设置配置适用于信号数据并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查没有链接到需求的模型元素

检查身份证mathworks.hism.hisl_0070

检查Simulink模型元素金宝app是否链接到需求文档。

描述

此检查验证模型对象是否链接到包含可追溯性工程需求的文档。

可以使用金宝app仿真软件检查

这张支票需要金宝app仿真软件需求™许可证。

结果及建议的行动

条件 建议的行动
块不链接到需求文档。 链接到需求文档。

能力与限制

  • 在库模型上运行。

  • 分析库链接块的内容。缺省情况下,为输入参数链接设置为

  • 分析没有工作区和对话框的屏蔽子系统中的内容。缺省情况下,为输入参数戴着面具看设置为图形化的

  • 允许排除块和图表。

  • 不允许排除状态流元素。

提示

从您想要检查的顶级模型或子系统运行此检查。

另请参阅

  • hisl_0070:在模型中放置需求链接

  • hisl_0070:在模型中放置需求链接

  • Simulink中的需求可追溯性金宝app(金宝app模型)

  • 需求跟踪(金宝app仿真软件需求)

  • 在Simulink模型中查找模型元素金宝app(金宝app模型)

  • DO-331, MB.6.3.1节。f -高级需求追溯到系统需求

  • DO-331, MB.6.3.2节。f -低级需求追溯到高级需求

  • IEC 61508-3,表A.2(12) -计算机辅助规范和设计工具,表A.2(9) -软件安全要求规范和软件架构之间的前向溯源,表A.2(10) -软件安全要求规范和软件架构之间的后向溯源,表A.4(8) -软件安全要求规范和软件设计之间的前向溯源,表A.8(1) -影响分析

  • IEC 62304, 5.2 -软件需求分析,7.4.2 -分析软件变更对现有风险控制措施的影响

  • ISO 26262-6,表8 (1a)——用自然语言编写的软件单元设计文档,ISO 26262-6: 7.4.2。a -软件架构设计的可验证性,ISO 26262-8: 8.4.3变更请求分析

  • EN 50128,表A.3(23) -计算机辅助设计和规范工具支持的建模金宝app,表D.58 -可追溯性,表A.10(1) -影响分析

检查“环路展开阈值”的安全相关优化设置

检查身份证mathworks.hism.hisl_0051

检查模型配置中适用于循环展开阈值并可能影响安全的优化设置。

描述

此检查验证模型优化配置参数与a所对应的最小信号或参数宽度为为与安全相关的应用程序生成代码而设置的最优循环。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

优化设置以指定最小信号或参数宽度循环值设置为小于2

2 .在“配置参数”对话框中设置环路展开阈值或者设置参数RollThreshold大于等于或大于2

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查与安全相关的优化设置,查看指定的最小值和最大值

检查身份证mathworks.hism.hisl_0056

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
选择使用指定的信号和参数的最小和最大值来优化生成的代码的优化。这可能会导致没有可跟踪代码的需求。(参见DO-331 MB.6.3.4节。e -源代码可追踪到底层需求。) 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”使用指定的最小值和最大值进行优化(金宝appSimulink Coder)或参数UseSpecifiedMinMax

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查模型对象名称

检查身份证mathworks.hism.hisl_0032

检查模型对象名称。

描述

此检查验证以下模型对象名称是否符合您自己的建模指南或高完整性建模指南。该检查还验证模型对象是否使用保留名称。

  • 信号

  • 参数

  • 公共汽车

  • Stateflow对象

保留的名字:

  • MATLAB的关键词

  • 为C、c++和代码生成保留关键字。有关完整列表,请参见保留关键字(金宝app仿真软件编码器)

  • int8uint8

  • int16uint16

  • int32uint32

  • 每股收益

  • intminintmax

  • 最小正浮点数最大浮点数

  • π

请注意

在某些情况下,Model Advisor会在该检查的多个子检查中报告一个问题。

可以使用金宝app仿真软件检查

输入参数

要指定检查标记的命名标准和模型对象名称,请使用model Advisor Configuration Editor。

  1. 打开模型配置编辑器并导航到检查模型对象名称.在输入参数窗格中,对于每个模型对象,选择以下选项之一:

    • MAAB使用MAAB命名标准。当您选择MAAB,检查使用正则表达式(^。{32岁}$)| ([^ a-zA-Z_0-9]) | (^ \ d )|(^ )|(__)|(^_)|(_$)要验证名称:

      • 使用这些字符:无所不包的无所不包的0 - 9,下划线(_)

      • 不要以数字开头。

      • 不要在字符串的开头或结尾使用下划线。

      • 不要使用多个连续下划线。

      • 使用小于32个字符的字符串。

    • 自定义使用您自己的命名标准。当您选择自定义,你可以输入你自己的禁止的正则表达式<模型对象>的名字.例如,如果您希望允许多个连续下划线,请输入(^。{32岁}$)| ([^ a-zA-Z_0-9]) | (^ \ d )|(^ )|(^_)|(_$)

    • 没有一个如果您不希望检查来验证模型对象名称

  2. 点击应用

  3. 保存配置。当您使用此配置运行检查时,检查将使用您指定的输入参数。

结果及建议的行动

条件 建议的行动
模型对象名称不符合输入参数中指定的命名标准。 更新模型对象名称以符合您自己的指导方针或高完整性指导方针。

能力与限制

  • 不能在库模型上运行。

  • 不分析库链接块的内容。

  • 不分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查不推荐用于C/ c++生产代码部署的块

检查身份证mathworks.hism.hisl_0020

确定代码生成不支持或不推荐用于C/ c+金宝app+生产代码部署的块。

描述

该检查部分地标识不推荐用于C/ c++生产代码生成的模型构造金宝appSimulink块支持金宝app(金宝appSimulink Coder)表金宝app仿真软件编码器和嵌入式编码器。

在某些情况下,该检查会标记代码生成所支持的块。金宝app对于这些块,您应该检查支持说明中提供的脚注信息,并坚持Model Advisor提供的建议操作。金宝app

可以使用金宝app仿真软件检查和嵌入式编码器。

结果及建议的行动

条件 建议的行动
模型或子系统包含不应用于生产代码部署的块。 考虑替换结果中列出的块。单击可疑项列表中的一个元素以定位条件。
Model Advisor标记代码生成所支持的块金宝app 审查支持说明,并遵循模金宝app型顾问提供的建议操作。

能力与限制

  • 在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查MISRA C:2012的配置参数

检查身份证mathworks.misra.CodeGenSettings

识别可能影响MISRA C:2012兼容代码生成的配置参数。

描述

遵循此检查的建议可以增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性。

可与嵌入式编码器和金宝app仿真软件检查

结果及建议的行动

条件 建议的行动
数学和数据类型
配置参数定点净斜率计算采用除法没有设置为只对整数的倒数使用除法 定点净斜率计算采用除法只对整数的倒数使用除法

配置参数Inf或NaN块输出设置为没有一个错误而且金宝app支持非有限数设置为

配置参数Inf或NaN块输出设置为没有一个而且金宝app支持非有限数设置为

金宝app支持非有限数是:

  • ,设置Inf或NaN块输出警告

  • ,设置Inf或NaN块输出警告错误

配置参数模型验证块启用设置为使用本地设置让所有 模型验证块启用禁用所有
配置参数无定向事件广播设置为没有一个警告 无定向事件广播错误
配置参数包装溢出设置为没有一个 设置配置参数包装溢出警告错误
硬件实现
配置参数生产硬件有符号整数除法舍入到设置为未定义的 生产硬件有符号整数除法舍入到地板上
配置参数对有符号整数右移为算术移位被选中。 清晰的对有符号整数右移为算术移位
模拟目标
配置参数MATLAB函数的编译时递归极限设置为除0 MATLAB函数的编译时递归极限0
配置参数MATLAB函数中的动态内存分配被选中。 清晰的MATLAB函数中的动态内存分配
配置参数为MATLAB函数启用运行时递归被选中。 清晰的为MATLAB函数启用运行时递归
代码生成

配置参数位字段声明器类型说明符设置为uchar_T当选择以下任何一个参数时:

  • 将布尔数据打包到位字段中

  • 使用bitset存储状态配置

  • 使用bitset存储布尔数据

位字段声明器类型说明符uint_T
配置参数铸造模式没有设置为标准兼容 铸造模式标准兼容
配置参数代码替换库没有设置为没有一个AUTOSAR 4.0

代码替换库没有一个AUTOSAR 4.0

配置参数外部模式被选中。 清晰的外部模式
配置参数生成共享常量被选中。 清晰的生成共享常量

配置参数包括评论清除。

选择包括评论
配置参数MAT-file日志被选中。

清晰的MAT-file日志

对于基于ert的目标系统,配置参数MATLAB用户评论清除。 选择MATLAB用户评论
配置参数的值最大标识符长度没有提供。 将该值设置为与实现相关的限制。默认为31
配置参数括号的水平没有设置为最大值(用括号指定优先级) 括号水平最大值(用括号指定优先级)

对于基于ert的目标系统,配置参数在函数声明中保留静态关键字清除时文件打包格式设置为紧凑的紧凑型(有单独的数据文件)

选择在函数声明中保留静态关键字
配置参数用带符号的位移替换2的幂的乘法被选中。 清晰的用带符号的位移替换2的幂的乘法
配置参数共享代码放置设置为汽车

共享代码放置共享位置

对于基于ert的目标系统,配置参数金宝app支持连续时间被选中 清晰的金宝app支持连续时间
对于基于ert的目标系统,配置参数金宝app支持非内联s函数被选中 清晰的金宝app支持非内联s函数
配置参数系统生成的标识符设置为经典 系统生成的标识符缩短
配置参数系统目标文件设置为基于grt的目标。 系统目标文件到基于ert的目标。
配置参数对模型初始化使用动态内存分配选中时代码接口封装设置为可重用的功能

清晰的对模型初始化使用动态内存分配

请注意

仅在以下情况下选择代码接口封装设置为可重用的功能

行动的结果

点击修改所有将参数值修改为推荐值。

请注意

当你点击修改所有对于基于grt的目标的模型,模型顾问不更新系统目标文件配置参数到基于ert的系统。

参数子检查取决于用标记的参数的结果D在结果表中。当结果是D-Warning,当前值列的状态前提约束不满足对于子检查。修改参数后,请重新执行检查。

请注意

有些子检查特定于基于ert的系统的配置参数。单击时不会更新这些参数修改所有除非你把模型改成基于ert的系统。

能力与限制

此检查不检查引用的模型。

另请参阅

检查MISRA C:2012不推荐的块

检查身份证mathworks.misra.Blk金宝appSupport

识别MISRA C:2012兼容代码生成不支持或不推荐的块金宝app。

描述

遵循此检查的建议可以增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性。

可与嵌入式编码器和金宝app仿真软件检查

结果及建议的行动

条件 建议的行动

查找表块使用三次样条插值或外推方法在模型或子系统中找到。具体区块有:

考虑查找表块的其他插值和外推方法。

已弃用的查找表块在模型或子系统中找到。具体区块有:

  • 查找表

  • 查找表(2-D)

考虑替换已弃用的查找表块。
s函数生成器在模型或子系统中找到块。 考虑用推荐用于生产的块替换S-Function Builder块。
从工作空间在模型或子系统中找到块 考虑用推荐用于生产的块替换From Workspace块。

在模型或子系统中找到字符串块。具体区块有:

考虑将String块替换为推荐用于生产的块。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 分析库链接块的内容。

  • 分析屏蔽子系统中的内容。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

编辑时间检查。编辑时检查支持此检查。金宝app

另请参阅