选择 SIL 或 PIL 方法
假设有一个由组件 A
、B
、C
和 D
组成的顶层模型:
A
和B
是现有组件,之前已为其生成并测试代码。引用模型
C
和子系统D
是新组件。
通过软件在环 (SIL) 和处理器在环 (PIL) 仿真,您可以使用以下方法进行数值等效性测试:
对于某些形式的测试,您需要一个测试框架模型。该测试框架模型:
生成会馈送到在测模块的测试向量或激励输入。
使您能够观测或捕获模块的输出。
以下示例展示一个简单的测试框架模型。
在测模块是一个 Model 模块。Sine Wave 模块为 Model 模块生成输入。通过 Scope 模块,您可以观测 Model 模块的输出。有关创建和使用测试框架的信息,请参阅Create or Import Test Harnesses and Select Properties (Simulink Test)和Code Generation Verification Workflow with Simulink Test (Simulink Test)。
测试顶层模型代码
要一起测试从顶层模型组件(A
、B
、C
和 D
)生成的代码,可以使用顶层模型 SIL/PIL 或 Model 模块 SIL/PIL。
顶层模型 SIL/PIL:
在 MATLAB 工作区中创建测试向量或激励输入。
在普通、SIL 和 PIL 仿真模式下运行顶层模型。软件从 MATLAB® 工作区加载测试向量或激励输入。
对于每种仿真模式,观测或捕获输出。
通过将正常输出与 SIL 和 PIL 输出进行比较,验证数值等效性。
Model 模块 SIL/PIL:
创建一个包含顶层模型组件的 Model 模块。
将 Model 模块插入一个仿真模型中,例如测试框架模型。
运行仿真,在普通、SIL 和 PIL 模式之间切换 Model 模块。对于 SIL 和 PIL 仿真模式,将代码接口 Model 模块参数设置为顶层模型。
通过将正常输出与 SIL 和 PIL 输出进行比较,验证数值等效性。
有关详细信息,请参阅使用顶层模型进行仿真和 SIL/PIL Manager Verification Workflow。
测试引用模型代码
要将从组件 C
生成的代码作为模型引用层次结构的一部分进行测试,请使用 Model 模块 SIL/PIL 方法:
将 Model 模块
C
插入一个仿真模型中,例如测试框架模型。运行仿真,在普通、SIL 和 PIL 模式之间切换 Model 模块。对于 SIL 和 PIL 仿真模式,将代码接口 Model 模块参数设置为模型引用。
通过将正常输出与 SIL 和 PIL 输出进行比较,验证数值等效性。
有关详细信息,请参阅使用 Model 模块进行仿真和 SIL/PIL Manager Verification Workflow。
测试子系统代码
要测试从子系统 D
生成的代码,请使用以下工作流之一。
工作流 | 描述 |
---|---|
已设置 SIL/PIL 管理器的 Simulink Test 框架 | 对作为从父模型生成的代码的一部分的子系统代码执行单元测试。
有关详细信息,请参阅Unit Test Subsystem Code with SIL/PIL Manager。 如果此工作流不支持该子系统,请使用 SIL 或 PIL 模块工作流。有关不支持的子系统和其他限制的详细信息,请参阅Atomic Subsystem Workflow Limitations。 |
SIL 或 PIL 模块 | 从子系统中生成并测试新独立代码。
有关详细信息,请参阅SIL 或 PIL 模块仿真。 |
摘要
用于生成代码的组件 | 仿真用途 | 步骤 | 生成的代码接口 | 测试信号源 |
---|---|---|---|---|
顶层模型 | 顶层模型 SIL/PIL | 在 SIL/PIL 管理器中:
| 独立 | MATLAB 工作区 |
Model 模块引用的模型 | Model 模块 SIL/PIL |
| 由 Model 模块参数代码接口确定 - 独立或模型引用。 | 仿真模型,例如测试框架模型 |
子系统 | Simulink Test 框架和 SIL/PIL 管理器 |
| 由生成的父模型代码确定 - 独立或模型引用。 | Simulink® Test™ 框架 |
子系统 | SIL 或 PIL 模块 | 手动模块代换 | 独立 | 仿真模型,例如测试框架模型。 |