使用自动桩件处理不兼容性
什么是自动桩件?
自动桩件让您可以分析包含 Simulink® Design Verifier™ 不支持的对象的模型。
当您启用自动桩件选项(默认启用)时,软件仅考虑不受支持的对象的接口,而不考虑它们的实际行为。该技术使得软件能够完成分析。但是,如果任何不受支持的模型元素影响仿真结果,则分析可能只能获得部分结果。
自动桩件的工作原理
如果启用自动桩件,当 Simulink Design Verifier 分析遇到不受支持的模块时,软件就会“桩件”该模块。分析忽略了模块的行为,因此模块输出可以取任意值。
桩件 Trigonometric Function 模块
Simulink Design Verifier 在 函数 参数设置为 acos 时不支持 Trigonometric Function 模块,如下图所示。
在分析期间对该模块进行桩件时,out_signal
可以取任意值,并产生以下结果。
分析模型 | 删除 out_signal 的结果 |
---|---|
设计错误检测 |
|
测试用例生成 |
|
属性证明 |
|
包含函数调用触发器的桩件 S-Function 模块
Simulink示例模型sfcndemo_sfun_fcncall
有一个S-Function模块。S-Functionsfun_fcncall
触发在第一个输出端口的第一个和第二个元素上执行函数调用子系统 f1 subsys1 和 f2 subsys2。
如果您未在 Simulink Design Verifier 中启用对S-Function的支持,并且启用了自动桩件,则分析将忽略S-Function的行为。结果,触发两个函数调用子系统的代码被忽略,从而导致两个无法满足的目标。由于忽略了函数调用,这些子系统的内容实际上就从分析中消除了。
要启用 Simulink Design Verifier 中的S-Function支持,请参阅 S-Function 和 C/C++ 代码的支持限制和注意事项
使用自动桩件分析模型
本节以简单的 Simulink模型作为示例,描述了使用自动桩件的工作流程。
以下模型包含 Discrete State-Space模块,它与 Simulink Design Verifier 不兼容。
检查模型兼容性
从 Simulink 编辑器中,有两种方法可以检查模型是否与 Simulink Design Verifier 兼容:通过 Simulink Design Verifier 兼容性检查或运行 Simulink Design Verifier 分析。
要运行 Simulink Design Verifier 兼容性检查:
在 Design Verifier 选项卡上,点击检查兼容性 。
选择您想要执行的分析。
要运行 Simulink Design Verifier 分析,请在 Design Verifier 选项卡的 模式 部分中选择以下任一选项:
选择设计错误检测,然后点击检测设计错误。
选择测试生成,然后点击生成测试。
选择属性证明,然后点击证明属性。
该软件首先检查模型的兼容性。如果模型本身不兼容,例如,如果它使用可变步长求解器,则分析无法继续。
如果在模型中发现不兼容的元素,软件将分析该模型,并且默认删除不兼容的元素。诊断查看器也会打开,列出不兼容性。
注意
有关更多信息,请参阅 对错误和警告进行系统化诊断 。
开启自动桩件
默认情况下启用自动桩件。要更改自动桩件设置,请在配置参数对话框的主 Design Verifier窗格中选择 Automatic stubbing of unsupported block and functions 。当你运行分析时,软件会告诉您桩件已打开,并且分析将继续。
审查结果
如果您在启用自动桩件的情况下运行分析,请务必检查结果。在此报告中,您测试用例看到软件遇到的不受支持的模块的表格。
不支持的模块
示例模型生成的分析报告显示,由于桩件的原因,目标尚未确定。该软件无法生成测试用例,因为它不了解Discrete State-Space模块的操作。
由于桩件问题,目标未定
取得完整的成果
如果您的分析由于桩件而未获得完整的结果,您可以定义自定义模块替换,以对不受支持的模块进行更精确的定义。有关更多信息,请按照不支持的模块的模块替换中的步骤操作。