测试集成代码
测试集成的 C 代码
如果您有一个将 C 代码与 C Caller 模块集成的模型,则可以使用测试管理器和测试框架来测试 C 代码。
C Caller 模块使用配置参数来定义自定义代码。如果更改配置参数,请同步测试框架和模型之间的参数。有关更多信息,请参阅同步测试框架和模型之间的更改和创建或导入测试框架并选择属性。
如果您更改测试框架配置参数,则可以将配置集推送至主模型。点击推送更改,或使用
sltest.harness.push
。如果您在主模型中更改了主模型配置参数,并且想要更新测试框架参数,则测试框架必须在重建时复制配置参数。您可以通过两种方式设置此属性:
创建测试框架时,选择重构时更新配置参数和模型工作区数据。您还可以选择打开时重新构建框架,它会在每次框架打开时重建。
对于现有的测试框架,框架预览中,选择 重新构建框架 > 打开时重新构建框架、或重新构建框架而不编译主模型和更新框架配置设置和模型工作区中的一个或多个。每次重建时,更新框架配置设置和模型工作区选项都会更新设置。
在 S-Function 模块中测试代码
此示例显示如何使用测试框架测试 S-Function 模块中的代码。本示例的主要模型是空调/热泵机组的控制器工厂模型。
请注意,他的示例仅适用于 64 位 Windows 平台。
S-Function 是用 MATLAB、C、C++ 或 Fortran 编写的 Simulink 模块的计算机语言描述。您可以使用测试框架来测试包装在 S-Function 中的代码。在 S-Function 中测试代码有助于对遗留代码进行回归测试以及在系统环境中测试您的代码。
打开模型
sltestHeatpumpSfunExample
在示例模型中:
控制器是一个接受室温和指定温度输入的 S-Function。
控制器输出是一条带有信号总线,可以控制风扇、热泵以及热泵的方向(加热或冷却)。
该工厂接受控制总线。热泵和风扇信号是布尔值,热泵方向以+1 表示冷却、-1 表示加热来指定。
温度条件状态
测试涵盖四种温度条件。每种条件对应一个运行状态,具有风扇、泵和泵方向信号输出。
创建测试用例
1.在 App 选项卡上的模型验证、确认和测试下,点击 Simulink Test。然后,在测试选项卡上,点击 Simulink 测试管理器。
2.在测试管理器工具栏中,点击新建>测试文件来创建测试文件。命名并保存测试文件。
3.在测试用例中,在在测系统下,点击 按钮,将当前模型加载到测试用例中。
创建测试框架
1.在模型中,右键点击 Controller_sfcn 子系统并选择测试框架 > 为 'Controller_sfcn' 创建。
2.设置框架属性。在基本属性选项卡中,设置测试框架属性。将名称设置为 test_harness_1
,并将信源和信宿设置为无和作用域。
3.点击确定以创建测试框架。
4.在测试管理器中突出显示新测试用例 1。在在测系统中,展开测试框架。刷新测试框架列表并为框架选择 test_harness_1
。
添加输入并设置仿真参数
在测试框架中创建输入,其中包含常数 Tset
和随时间变化的 Troom_in
。
1.在测试框架模型中,将 Constant 模块连接到 Tset
输入并将值设置为 75
。
2.框架模型中添加一个 Sine Wave 模块来仿真温度信号。将 Sine Wave 模块连接到转换子系统输入 Troom_in
。
3.双击 Sine Wave 模块并设置参数:
选择将向量参数解释为一维。然后点击确定。
最终得到的框架为:
4.在仿真工具条中,将停止时间设置为 3600
。
获取基线数据
1.在测试管理器测试用例的仿真输出中,点击添加。突出显示控制器 S-Function 的输出总线。
2.在连接弹出窗口中,选择 Controller_sfcn:1(all)
并点击 Click to update diagram
。然后,返回测试管理器并点击对话框中的完成。
3.在基线准则下,点击捕获以记录仿真测试框架的基线数据集。在捕获基线对话框中,输入 sfcn_baseline
作为 MAT 格式文件名称,然后点击捕获。基线信号出现在表中。
运行测试用例并查看结果
1.运行测试用例。测试结果出现在结果和工件窗格中。
2.展开结果以查看基线准则结果。基线测试通过,因为仿真输出与基线数据相同。