Main Content

本页采用了机器翻译。点击此处可查看英文原文。

使用自动桩件处理不兼容性

什么是自动桩件?

自动桩件让您可以分析包含 Simulink® Design Verifier™ 不支持的对象的模型。

当您启用自动桩件选项(默认启用)时,软件仅考虑不受支持的对象的接口,而不考虑它们的实际行为。该技术使得软件能够完成分析。但是,如果任何不受支持的模型元素影响仿真结果,则分析可能只能获得部分结果。

自动桩件的工作原理

如果启用自动桩件,当 Simulink Design Verifier 分析遇到不受支持的模块时,软件就会“桩件”该模块。分析忽略了模块的行为,因此模块输出可以取任意值。

桩件 Trigonometric Function 模块

Simulink Design Verifier函数 参数设置为 acos 时不支持 Trigonometric Function 模块,如下图所示。

Trigonometric Function block for acos. The input goes through acos and output signal is viewed on the Scope

在分析期间对该模块进行桩件时,out_signal 可以取任意值,并产生以下结果。

分析模型删除 out_signal 的结果

设计错误检测

  • 如果依赖于out_signal的设计错误目标被证明有效,则该目标对所有仿真都有效。在这种情况下,桩件不会影响分析结果。

  • 如果依赖于 out_signal 的设计错误目标被证伪,则分析无法创建测试用例。分析无法确定桩件模块的哪个输入会产生与目标不符的输出。

测试用例生成

  • 如果依赖于 out_signal 的值的测试目标得到满足,则分析无法创建测试用例。分析无法确定桩件模块的哪个输入会产生满足目标的输出。

  • 如果依赖于 out_signal 的值的测试目标无法满足,则不存在可以满足该目标的仿真。在这种情况下,桩件不会影响分析结果。

属性证明

  • 如果依赖于out_signal的证明目标被证明有效,则该目标对所有仿真都有效。在这种情况下,桩件不会影响分析结果。

  • 如果依赖于out_signal的证明目标被证伪,则分析无法创建反例。分析无法确定桩件模块的哪个输入会产生与目标不符的输出。

包含函数调用触发器的桩件 S-Function 模块

Simulink示例模型sfcndemo_sfun_fcncall有一个S-Function模块。S-Functionsfun_fcncall 触发在第一个输出端口的第一个和第二个元素上执行函数调用子系统 f1 subsys1 和 f2 subsys2。

Example model that shows S-Function block.

如果您未在 Simulink Design Verifier 中启用对S-Function的支持,并且启用了自动桩件,则分析将忽略S-Function的行为。结果,触发两个函数调用子系统的代码被忽略,从而导致两个无法满足的目标。由于忽略了函数调用,这些子系统的内容实际上就从分析中消除了。

要启用 Simulink Design Verifier 中的S-Function支持,请参阅 S-Function 和 C/C++ 代码的支持限制和注意事项

使用自动桩件分析模型

本节以简单的 Simulink模型作为示例,描述了使用自动桩件的工作流程。

以下模型包含 Discrete State-Space模块,它与 Simulink Design Verifier 不兼容。

Model containing a Discrete State-Space block and a saturation block.

检查模型兼容性

从 Simulink 编辑器中,有两种方法可以检查模型是否与 Simulink Design Verifier 兼容:通过 Simulink Design Verifier 兼容性检查或运行 Simulink Design Verifier 分析。

要运行 Simulink Design Verifier 兼容性检查:

  • Design Verifier 选项卡上,点击检查兼容性

    Simulink Design Verifier Results summary window showing the analysis.

  • 选择您想要执行的分析。

    要运行 Simulink Design Verifier 分析,请在 Design Verifier 选项卡的 模式 部分中选择以下任一选项:

    • 选择设计错误检测,然后点击检测设计错误

    • 选择测试生成,然后点击生成测试

    • 选择属性证明,然后点击证明属性

    该软件首先检查模型的兼容性。如果模型本身不兼容,例如,如果它使用可变步长求解器,则分析无法继续。

    如果在模型中发现不兼容的元素,软件将分析该模型,并且默认删除不兼容的元素。诊断查看器也会打开,列出不兼容性。

    Diagnostic Viewer showing the SLDV compatibility analysis.

    注意

    有关更多信息,请参阅 对错误和警告进行系统化诊断

开启自动桩件

默认情况下启用自动桩件。要更改自动桩件设置,请在配置参数对话框的主 Design Verifier窗格中选择 Automatic stubbing of unsupported block and functions 。当你运行分析时,软件会告诉您桩件已打开,并且分析将继续。

审查结果

如果您在启用自动桩件的情况下运行分析,请务必检查结果。在此报告中,您测试用例看到软件遇到的不受支持的模块的表格。

不支持的模块

示例模型生成的分析报告显示,由于桩件的原因,目标尚未确定。该软件无法生成测试用例,因为它不了解Discrete State-Space模块的操作。

由于桩件问题,目标未定

取得完整的成果

如果您的分析由于桩件而未获得完整的结果,您可以定义自定义模块替换,以对不受支持的模块进行更精确的定义。有关更多信息,请按照不支持的模块的模块替换中的步骤操作。