Main Content

选择 SIL 或 PIL 方法

假设有一个由组件 ABCD 组成的顶层模型:

  • AB 是现有组件,之前已为其生成并测试代码。

  • 引用模型 C 和子系统 D 是新组件。

Diagram of top model with components A, B, C, and D.

通过软件在环 (SIL) 和处理器在环 (PIL) 仿真,您可以使用以下方法进行数值等效性测试:

对于某些形式的测试,您需要一个测试框架模型。该测试框架模型:

  • 生成会馈送到在测模块的测试向量或激励输入。

  • 使您能够观测或捕获模块的输出。

以下示例展示一个简单的测试框架模型。

Simple test harness model comprises a Sine Wave Function block, a Model block, and a Scope block.

在测模块是一个 Model 模块。Sine Wave 模块为 Model 模块生成输入。通过 Scope 模块,您可以观测 Model 模块的输出。有关创建和使用测试框架的信息,请参阅创建或导入测试框架并选择属性 (Simulink Test)使用 Simulink Test 的代码生成验证工作流程 (Simulink Test)

测试顶层模型代码

要一起测试从顶层模型组件(ABCD)生成的代码,可以使用顶层模型 SIL/PIL 或 Model 模块 SIL/PIL。

  • 顶层模型 SIL/PIL:

    1. MATLAB 工作区中创建测试向量或激励输入。

    2. 在普通、SIL 和 PIL 仿真模式下运行顶层模型。软件从 MATLAB® 工作区加载测试向量或激励输入。

    3. 对于每种仿真模式,观测或捕获输出。

    4. 通过将正常输出与 SIL 和 PIL 输出进行比较,验证数值等效性。

  • Model 模块 SIL/PIL:

    1. 创建一个包含顶层模型组件的 Model 模块。

    2. Model 模块插入一个仿真模型中,例如测试框架模型。

    3. 运行仿真,在普通、SIL 和 PIL 模式之间切换 Model 模块。对于 SIL 和 PIL 仿真模式,将代码接口 Model 模块参数设置为顶层模型

    4. 通过将正常输出与 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 框架

对作为从父模型生成的代码的一部分的子系统代码执行单元测试。

  1. 通过运行 slbuild(model)slbuild(model, 'RTWModelReferenceTargetOnly'),为包含子系统的模型生成代码。

  2. 在模型中,右键点击子系统,然后为子系统创建一个测试框架。

  3. 打开 SIL/PIL 管理器。如果需要,启用代码覆盖率分析。然后运行背靠背模型和 SIL 或 PIL 仿真。

  4. 如果需要,导出等效性测试用例。

有关详细信息,请参阅使用 SIL/PIL 管理器的单元测试子系统代码

如果此工作流不支持该子系统,请使用 SIL 或 PIL 模块工作流。有关不支持的子系统和其他限制的详细信息,请参阅Atomic Subsystem Workflow Limitations

SIL 或 PIL 模块

从子系统中生成并测试新独立代码。

  1. 将子系统插入一个仿真模型中,例如测试框架模型。

  2. 运行普通模式仿真以捕获输出。

  3. 从该子系统创建一个 SIL 或 PIL 模块。

  4. 在模型中,用 SIL 或 PIL 模块替换该子系统。

  5. 运行模型的仿真以捕获输出。

  6. 通过将普通模式子系统输出与 SIL 或 PIL 模块输出进行比较,验证数值等效性。

有关详细信息,请参阅SIL 或 PIL 模块仿真

摘要

用于生成代码的组件 仿真用途步骤生成的代码接口测试信号源
顶层模型顶层模型 SIL/PIL

在 SIL/PIL 管理器中:

  1. 选择仅 SIL/PIL 仿真模式。

  2. 在测系统中,选择顶层模型

独立MATLAB 工作区
Model 模块引用的模型Model 模块 SIL/PIL

  1. 在 SIL/PIL 管理器中:

    1. 选择仅 SIL/PIL 仿真模式。

    2. 在测系统中,选择 SIL/PIL 模式下的 Model 模块

  2. Model 模块中,将仿真模式设置为软件在环(SIL)处理器在环(PIL)

Model 模块参数代码接口确定 - 独立或模型引用。仿真模型,例如测试框架模型
子系统Simulink Test 框架和 SIL/PIL 管理器

  1. 为包含原子子系统的模型生成代码。

  2. 为子系统创建一个测试框架。

  3. 从 SIL/PIL 管理器中,运行背靠背模型和 SIL 或 PIL 仿真。

  4. 如果需要,导出等效性测试用例。

由生成的父模型代码确定 - 独立或模型引用。 Simulink® Test™ 框架
子系统SIL 或 PIL 模块手动模块代换独立仿真模型,例如测试框架模型。

相关主题