选择 SIL 或 PIL 方法
假设有一个由组件 A
、B
、C
和 D
组成的顶层模型:
A
和B
是现有组件,之前已为其生成并测试代码。引用模型
C
和子系统D
是新组件。
通过软件在环 (SIL) 和处理器在环 (PIL) 仿真,您可以使用以下方法进行数值等效性测试:
对于某些形式的测试,您需要一个测试框架模型。该测试框架模型:
生成会馈送到在测模块的测试向量或激励输入。
使您能够观测或捕获模块的输出。
以下示例展示一个简单的测试框架模型。
在测模块是一个 Model 模块。Sine Wave 模块为 Model 模块生成输入。通过 Scope 模块,您可以观测 Model 模块的输出。有关创建和使用测试框架的信息,请参阅创建或导入测试框架并选择属性 (Simulink Test)和使用 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 框架 | 对作为从父模型生成的代码的一部分的子系统代码执行单元测试。
有关详细信息,请参阅使用 SIL/PIL 管理器的单元测试子系统代码。 如果此工作流不支持该子系统,请使用 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 模块 | 手动模块代换 | 独立 | 仿真模型,例如测试框架模型。 |