您可以在类似于应用程序的环境中测试系统。您从开发计算机上的模型仿真开始,然后使用软件在环(SIL)和处理器在环(PIL)仿真。实时测试在可以连接到物理系统的独立目标计算机上执行应用程序。实时测试可以包括时序、信号接口、系统响应和生产硬件的影响。
实时测试包括:
快速原型,在连接到工厂硬件的独立目标上测试系统。您根据需求和模型结果验证实时测试。使用快速原型结果,您可以更改您的模型并更新您的需求,之后您可以在独立目标上重新测试。
使用硬件在环(HIL)金宝app®实时™,它测试一个系统已经通过了几个阶段的验证,通常是SIL和PIL模拟。
这个工作流示例描述了创建和执行实时测试的主要步骤:
创建测试用例,根据需求验证模型。运行模型模拟测试并保存基线数据。
设置实时目标计算机。
为实时测试创建测试工具,或者重用模型模拟测试工具。在测试序列或测试评估块,验证
语句评估实时执行。
在测试管理器中,创建实时测试用例。
对于实时测试用例,配置目标设置、输入、回调和迭代。添加基线或等价标准。
执行实时测试。
在Test Manager中分析结果。报告结果。
基线或等价比较可能会因为缺少数据或来自实时目标计算机的时移数据而失败。当调查实时测试失败时,寻找时间变化或丢失的数据点。
的模型构建的应用程序的实时执行采样时间不能覆盖测试序列块。生成的代码测试序列块包含硬编码的采样时间。覆盖目标计算机采样时间可能会产生意想不到的结果。
不能记录输出端口或状态。
目标计算机必须有文件系统才能使用验证
语句和测试用例日志记录。
您的目标计算机必须正在运行金宝app实时仿真软件.
实时测试通常比比较模型测试花费更长的时间,特别是当您执行一套覆盖多个场景的实时测试时。在执行实时测试之前,请使用桌面模拟完成基于需求的测试。使用桌面模拟结果:
调试您的模型或进行符合需求的设计更改。
调试测试序列。使用测试序列编辑器中的调试特性。看到调试测试序列.
更新您的需求并添加相应的测试用例。
实时测试需要一台独立的目标计算机。金宝app仿真软件测试™仅支持目标金宝app计算机运行金宝app实时仿真软件.有关更多信息,请参见:
目标计算机设置(金宝app实时仿真软件)
在Simulink实时故障排除金宝app(金宝app实时仿真软件)
实时应用需要特定的配置参数和信号属性。
实时测试用例需要一个实时系统目标文件。在模型或线束配置参数中,在应用程序选项卡,在代码生成下,单击金宝app仿真软件编码器.在C代码选项卡,验证系统目标文件为slrealtime.tlc
.如果按钮在输出部分是自定义的目标,点击该按钮,并验证自定义的目标是slrealtime.tlc
.如果不是,选择选择系统目标文件并选择slrealtime.tlc
生成系统目标代码。
如果您的模型需要不同的系统目标文件,您可以使用测试用例或测试套件回调设置参数。在实时测试执行之后,使用清理回调将参数设置为原始设置。例如,此回调将打开sltestProjectorController
建模并将系统目标文件参数设置为slrealtime.tlc
.
openExample (“sltestProjectorController”);set_param (“sltestProjectorController”,...“SystemTargetFile”,“slrealtime.tlc”);
模型必须使用其他的数据格式数据集
.设置数据格式。
打开配置参数。
选择数据导入/导出窗格。
选择格式.
为实时测试配置您感兴趣的信号:
在“数据导入/导出”窗格中的“配置参数”中启用信号记录。
使用信号属性为每个感兴趣的信号命名。未命名信号可以被分配一个与基线信号或等价信号的名称不匹配的默认名称。在这个测试工具的示例中,记录的信号具有显式的名称。
使用测试管理器来创建实时测试用例。
的工具条上金宝app应用程序选项卡下的模型验证,验证和测试,选择金宝app仿真软件测试.
点击金宝appSimulink测试管理器.
在Test Manager中,选择新>实时测试.
您可以选择基线测试、等效测试或模拟实时测试。对于模拟测试类型,验证
语句在测试结果中充当通过/失败的标准。对于等价性和基线测试类型,等价性或基线标准也可以作为通过/失败的标准。
基线—将从目标计算机返回的信号数据与测试用例中的基线进行比较。为了比较实时执行结果和模型仿真结果,将模型基线结果添加到实时测试用例中,并对信号应用可选的公差。
等价-比较模拟和实时测试或两个实时测试的信号数据。要在目标计算机上运行实时测试,然后将结果与模型模拟进行比较:
选择目标模拟1.
清晰的目标模拟2.
测试用例显示了两个模拟部分,模拟1而且模拟2.
比较两个实时测试类似,不同之处在于您选择了目标上的两个模拟。在等价的标准节中,您可以从模拟中捕获记录的信号,并为通过/失败分析应用公差。
模拟:仅对测试结果进行评估验证
语句和实时执行。如果没有验证
语句失败,实时测试执行,测试用例通过。
使用此选项,指定要如何加载实时应用程序。实时应用程序是根据您的模型或测试工具构建的。你可以从下面加载应用程序:
模型——选择模型
如果您是第一次运行实时测试,或者您的模型在上次实时执行后发生了变化。模型
通常需要最长的时间,因为它包括模型构建和下载。模型
从模型加载应用程序,构建实时应用程序,将其下载到目标计算机,并在目标计算机上执行。
目标应用程序——选择目标应用程序
将目标应用程序从主机发送到目标计算机并执行该应用程序。目标应用程序
如果您想在多个目标上加载一个已经构建的应用程序,这可能很有用。
目标计算机—此选项执行实时目标计算机上已经加载的应用程序。您可以更新测试用例中的参数并执行using目标计算机
.
这个表总结了每个选项执行的步骤和回调。
测试用例执行步骤(从第一到最后) | 负载申请 | ||
---|---|---|---|
模型 | 目标应用程序 | 目标计算机 | |
执行预加载回调 | 是的 | 是的 | 是的 |
负载Simu金宝applink模型 | 是的 | 没有 | 没有 |
执行加载后回调 | 是的 | 没有 | 没有 |
设置信号编辑器场景 | 是的 | 没有 | 没有 |
从模型构建实时应用程序 | 是的 | 没有 | 没有 |
下载实时应用程序到目标计算机 | 是的 | 是的 | 没有 |
设置运行时参数 | 是的 | 是的 | 是的 |
运行测试序列场景 | 是的 | 没有 | 没有 |
执行预启动实时回调 | 是的 | 是的 | 是的 |
执行实时应用程序 | 是的 | 是的 | 是的 |
执行清理回调 | 是的 | 是的 | 是的 |
选择从中生成实时应用程序的模型。
如果您使用测试工具来生成实时应用程序,请选择测试工具。
对于实时测试,可以覆盖模拟停止时间,这在调试实时测试失败时非常有用。考虑一个60秒的测试,返回一个验证
由于模型中的错误,语句在15秒时失败。在调试模型之后,执行实时测试以验证修复。您可以覆盖停止时间以在20秒时终止执行,这将减少验证修复程序所需的时间。
实时测试提供了预启动实时应用程序回调函数,它在应用程序在目标计算机上执行之前执行命令。实时测试回调与模型加载、构建、下载和执行步骤一起按顺序执行。回调和步骤执行取决于测试用例如何加载应用程序。
序列 | 加载应用程序从: 模型 |
加载应用程序从: 目标应用程序 |
加载应用程序从: 目标计算机 |
---|---|---|---|
第一次执行 | 预加载回调 |
预加载回调 |
预加载回调 |
Post-load回调 |
- - - - - - | - - - - - - | |
预启动实时回调 |
预启动实时回调 |
预启动实时回调 |
|
执行最后一个 | 清理回调 |
清理回调 |
清理回调 |
您可以在实时测试中执行迭代。迭代可以方便地执行遍历参数值或信号编辑器场景的实时测试。结果按迭代分组。有关设置迭代的更多信息,请参见测试迭代.您可以创建:
参数集的表迭代-在参数将覆盖部分的测试用例。下迭代>表迭代,点击自动生成并选择参数集.
来自信号编辑器场景的表格迭代——如果您的模型或测试装置使用信号编辑器输入,则在迭代表迭代表,点击自动生成并选择信号编辑器场景.如果使用Signal Editor场景,则从模型加载应用程序。
来自Test Sequence场景的表式迭代——如果您的测试工具使用Test Sequence块场景,您可以在Test Manager中为每个场景创建迭代。以下迭代表,点击自动生成并选择测试顺序场景.如果您使用Test Sequence场景,请从模型加载应用程序。
脚本迭代——使用脚本使用模型变量或参数进行迭代。例如,假设您正在测试一个振荡器系统,并使用测试序列块创建方波测试信号使用的参数频率
.
在测试文件中,您可以使用实时测试脚本迭代来覆盖从5hz到35hz的频率扫描。的值进行迭代频率
在测试序列块。
遍历频率以确定最佳振荡器设置创建参数集频率= 5.0:1.0:35.0;为I_iter = 1:长度(频率)创建迭代对象testtr = sltesteration ();设置参数setVariable (testItr“名字”,“频率”,“源”,...测试序列的,“价值”频率(i_iter));寄存器迭代addIteration (sltest_testCase testItr);结束
验证
语句除了基线和等价信号比较之外,您还可以使用验证
语句。一个验证
语句计算逻辑表达式并将结果返回给Test Manager。使用验证
在一个测试序列或测试评估block或,如果你有一个状态流®许可证,在一个状态流程图。看到使用验证语句评估模型仿真.