检查针对求解器的安全相关诊断设置
mathworks.hism.hisl_0043
依赖关系: Simulink® Check™
用法: 高完整性系统建模
说明
此检查验证模型配置是否使用与求解器诊断相关的最佳参数设置,以便为安全相关应用程序生成代码。
建议的行动和结果
查看检查中标记出的违规行为以及建议的修复措施。应用更改后,保存模型并重新运行检查分析。
如果您认为标记的违规行为与您的设计无关或不可行,请使用申述按钮提供理由,说明为什么该违规行为与您的设计无关或不可行。
您可以使用修复按钮,让模型顾问修复所有标记的违规行为。本次检查中,模型顾问会配置可能影响安全性的模型代码生成设置。
| 建模条件 | 建议的操作 |
|---|---|
| Simulink 在模型中自动打破代数循环时不会发出错误。打破代数循环可能会影响模块执行顺序的可预测性。对于与安全相关的应用,模型开发人员需要知道何时会发生此类故障。 | 在“配置参数”对话框的 诊断 > 求解器窗格中,将 代数环 设置为 error,或者将参数 AlgebraicLoopMsg 设置为 'error'。考虑使用 Unit Delay 模块显式地打破此类循环,以便执行顺序可预测。至少要验证循环自动中断的结果是否可接受。 |
| 当 Simulink 在 Model 块、原子子系统或已启用子系统中自动打破代数循环时,不会发出错误。打破代数循环可能会影响模块执行顺序的可预测性。对于与安全相关的应用,模型开发人员需要知道何时会发生此类故障。 | 在“配置参数”对话框的 诊断 > 求解器窗格中,将 Artificial algebraic loop occurrences not eliminated 设置为 error,或者将参数 ArtificialAlgebraicLoopMsg 设置为 'error'。考虑使用 Unit Delay 模块显式地打破此类循环,以便执行顺序可预测。至少要验证循环自动中断的结果是否可接受。 |
| 当检测到模块执行顺序可能存在冲突时,Simulink 不会发出错误。对于安全相关的应用,模块的执行顺序必须是可预测的。模型开发者需要知道何时存在相互冲突的模块优先级。 | 在“配置参数”对话框的 诊断 > 求解器窗格中,将 模块优先级违规 设置为 error,或者将参数 BlockPriorityViolationMsg 设置为 'error'。 |
| Simulink 在自动修改求解器、步长或仿真停止时间时不会发出错误。这些更改可能会影响所生成代码的运行。对于与安全相关的应用,最好能够检测到此类变化,以便模型开发人员可以明确地将参数设置为已知值。 | 在“配置参数”对话框的 诊断 > 求解器窗格中,将 自动求解器参数选择 设置为 error,或者将参数 SolverPrmCheckMsg 设置为 'error'。 |
| 当模型中多个状态使用同一个名称时,Simulink 不会发出警告。对于与安全相关的应用,最好能检测到名称冲突,以便模型开发者可以修复它们。 | 在“配置参数”对话框的 诊断 > 求解器窗格中,将 状态名称冲突 设置为 warning,或者将参数 StateNameClashWarn 设置为 'warning'。 |
功能和限制
无需模型编译
无法在库模型上运行。
不允许排除模块或图。
版本历史记录
在 R2020a 中推出