主要内容

测试模型实时

您可以在类似于应用程序的环境中测试系统。首先在开发计算机上进行模型仿真,然后使用软件在环(SIL)和处理器在环(PIL)仿真。实时测试在能够连接到物理系统的独立目标计算机上执行应用程序。实时测试可以包括时序、信号接口、系统响应和生产硬件的影响。

实时测试包括:

  • 快速原型设计,在连接到工厂硬件的独立目标上测试系统。您验证了针对要求和模型结果的实时测试。使用快速原型设计结果,您可以更改模型并更新您的要求,之后您在独立目标上重新测试。

  • 半(边境)使用金宝app®Real-time™,这测试了一个通过多个验证阶段的系统,通常是SIL和PIL仿真。

整体工作流程

此示例工作流描述了创建和执行实时测试的主要步骤:

  1. 创建验证模型以防止要求的测试用例。运行模型仿真测试并保存基线数据。

  2. 设置实时目标计算机。

  3. 为实时测试创建测试线束,或重用模型仿真测试线束。在测试序列要么测试评估块,验证陈述评估实时执行。在测试线束中,使用目标和主控范围在执行期间显示信号。

  4. 在测试管理器中,创建实时测试用例。

  5. 对于实时测试用例,配置目标设置,输入,回调和迭代。添加基线或等价标准。

  6. 执行实时测试。

  7. 分析测试管理器中的结果。报告结果。

实时测试注意事项

  • 基线或等效性比较可能因来自实时目标计算机的数据丢失或时间移位数据而失败。调查实时测试失败时,查找时间换档或缺少数据点。

  • 您无法覆盖从包含a的模型构建的应用程序的实时执行示例时间测试序列堵塞。为此生成的代码测试序列块包含硬编码的采样时间。覆盖目标计算机采样时间可以产生意外结果。

  • 您无法记录输出端口或状态。

  • 您的目标计算机必须具有要使用的文件系统验证语句和测试用例记录。

  • 您的目标计算机必须正在运行金宝appSimulink实时

完整的基本模型测试

实时测试通常比比较模型测试花费更长的时间,特别是当您执行一套覆盖多个场景的实时测试时。在执行实时测试之前,请使用桌面模拟完成基于需求的测试。使用桌面仿真结果:

  • 调试您的模型或进行满足要求的设计更改。

  • 调试您的测试序列。使用测试序列编辑器中的调试特性。看调试测试序列

  • 更新您的要求并添加相应的测试用例。

设置目标计算机

实时测试需要独立的目标计算机。金宝app仿真软件测试™只支持运行金宝app的目标计算机金宝appSimulink实时.有关更多信息,请参见:

配置模型或测试线束

实时应用需要特定的配置参数和信号属性。

代码生成

实时测试用例需要一个实时系统目标文件。在模型或线束配置参数中,在应用选项卡,在代码生成下,单击金宝app仿真软件编码器.在里面C代码选项卡,验证系统目标文件是slrealtime.tlc..如果按钮在输出部分是自定义的目标,单击该按钮并验证定制目标slrealtime.tlc..如果不是,请选择选择系统目标文件并选择slrealtime.tlc.生成系统目标代码。

如果您的模型需要不同的系统目标文件,则可以使用测试用例或测试套件回调来设置参数。实时测试执行后,将参数设置为其原始设置,使用清理回调。例如,这个回调打开了sltestProjectorController模型并将系统目标文件参数设置为slrealtime.tlc.

open_system ('sltestprojectorcontroller');set_param ('sltestprojectorcontroller'......“SystemTargetFile”'slrealtime.tlc');

数据导入/导出格式

模型必须使用除此之外的数据格式数据集.设置数据格式。

  1. 打开配置参数。

  2. 选择数据导入/导出窗格。

  3. 选择格式

从实时执行中的原始信号

配置您的兴趣信号进行实时测试:

  • 在数据导入/导出窗格中启用配置参数中的信号登录。

  • 连接信号范围块的金宝appSimulink实时块库。设置范围类型财产文件

  • 使用信号属性命名每个感兴趣的信号。可以为未命名的信号分配默认名称,其与基线或等价信号的名称不匹配。

在此示例测试线束中,记录信号:

  • 有明确的名称。

  • 使用文件范围向测试管理器返回信号数据。

  • 使用目标范围在目标计算机上显示数据。

在实时执行期间查看信号

要在实时执行期间显示目标计算机上的信号,请将目标范围添加到测试线束。显示信号金宝appSimulink实时资源管理器,添加主机范围。该测试线束包括用于信号可视化的目标和主机范围。看范围

添加测试用例进行实时测试

使用测试管理器创建实时测试用例。

  1. 在Simuli金宝appnk ToolStrip中,在应用标签在模型验证,验证和测试下,选择金宝app仿真软件测试

  2. 点击金宝appSimulink测试经理

  3. 在测试管理器中,选择新的>实时测试

测试类型

您可以选择基线,等价或模拟实时测试。用于仿真测试类型,验证声明作为测试结果中的通过/失败标准。对于等价和基线测试类型,等价或基线标准也可以作为通过/失败标准。

  • 基线- 将从目标计算机返回的信号数据与测试用例中的基线进行比较。要将实时执行结果与模型仿真结果进行比较,请将型号基线结果添加到实时测试用例,并将可选的公差应用于信号。

  • 等价—比较模拟和实时测试(或两个实时测试)的信号数据。在目标计算机上运行实时测试,然后将结果与模型仿真进行比较:

    • 选择仿真1对目标

    • 清除仿真2在目标上

    测试用例显示了两个模拟部分,模拟1模拟2

    比较两个实时测试是相似的,除了您选择对目标的模拟。在里面等价标准部分,您可以从模拟中捕获已记录的信号并应用通行/失败分析的公差。

  • 模拟:仅使用测试结果进行评估验证陈述和实时执行。如果不验证语句失败,实时测试执行,测试用例通过。

加载应用程序

使用此选项,指定您希望如何加载实时应用程序。实时应用程序是从您的模型或测试工具构建的。你可以从:

  • 模型——选择模型如果您首次运行实时测试,或者自上次实时执行以来您的模型更改。模型通常需要最长,因为它包括模型构建和下载。模型从模型中加载应用程序,构建实时应用程序,将其下载到目标计算机,并在目标计算机上执行它。

  • 目标应用程序——选择目标应用程序将目标应用程序从主机发送到目标计算机,并执行该应用程序。目标应用程序如果要在多个目标上加载已构建的应用程序,可以很有用。

  • 目标计算机-该选项执行已经在实时目标计算机上加载的应用程序。您可以更新测试用例中的参数并使用目标计算机

该表总结了每个选项执行的步骤和回调。

测试案例执行步骤(首先) 加载应用程序
模型 目标应用程序 目标计算机
执行预加载回调 是的 是的 是的
加载仿真软件金宝app模型 是的
执行后加载后回调 是的
信号编辑器场景 是的
从模型构建实时应用程序 是的
将实时应用程序下载到目标计算机 是的 是的
设置运行时参数 是的 是的 是的
运行测试序列方案 是的
执行预启动实时回调 是的 是的 是的
执行实时应用程序 是的 是的 是的
执行清理回调 是的 是的 是的

模型

选择用于生成实时应用程序的模型。

测试工具

如果您使用测试工具生成实时应用程序,请选择测试工具。

仿真设置覆盖

对于实时测试,可以覆盖模拟停止时间,这在调试实时测试失败时很有用。考虑一个60秒的测试,它返回一个验证由于模型中的错误,在15秒内发生陈述。调试模型后,您执行实时测试以验证修复程序。您可以覆盖停止时间以在20秒时终止执行,这减少了验证修复所需的时间。

回调

实时测试提供了一个预启动实时应用在应用程序在目标计算机上执行之前执行命令的回调。实时测试回调以序列执行,以及模型加载,构建,下载和执行步骤。回调和步骤执行取决于测试用例如何加载应用程序。

序列

加载应用程序:

模型

加载应用程序:

目标应用程序

加载应用程序:

目标计算机

首先执行

预加载回调

预加载回调

预加载回调

后加载后回调

- -

开始实时回调

开始实时回调

开始实时回调

执行上次执行

清理回调

清理回调

清理回调

迭代

您可以在实时测试中执行迭代。迭代方便执行扫描通过参数值或信号编辑器方案的实时测试。结果通过迭代进行分组。有关设置迭代的更多信息,请参阅测试迭代.您可以创建:

  • 从参数集中的图表迭代 - 定义多个参数集参数将覆盖测试案例的部分。在下面迭代>表迭代,点击自动生成并选择参数集

  • 来自信号编辑器场景的表式迭代—如果您的模型或测试工具使用信号编辑器输入,则在迭代表迭代表,点击自动生成并选择信号编辑器场景.如果使用信号编辑器方案,请从模型中加载应用程序。

  • 从测试序列方案中提取的迭代 - 如果您的测试线束使用测试序列块方案,则可以为测试管理器中的每个方案创建迭代。以下迭代表,点击自动生成并选择测试序列的场景.如果使用测试序列方案,请从模型中加载应用程序。

  • 脚本迭代 - 使用脚本使用模型变量或参数来迭代。例如,在模型中sltestrealtimeoscillatortestestexample., 这SettlingTest.利用使用测试序列块使用该参数为振荡器系统创建方波测试信号频率

    在测试文件中SettlingTestCases,实时测试脚本迭代覆盖从5hz到35hz的频率扫描。该脚本迭代的值频率测试序列堵塞。

    %%迭代频率以确定最佳振荡器设置创建参数集FREQ = 5.0:1.0:35.0;为了i_iter = 1:长度(频率)%创建迭代对象testitr = sltesteration();%设置参数setVariable (testItr'名称''频率'“源”......测试序列的'价值',freq(i_iter));%注册迭代addIteration (sltest_testCase testItr);结尾

使用实时执行使用验证陈述

除了基线和等价信号比较,您还可以使用验证陈述。一种验证语句评估逻辑表达式并将结果返回到测试管理器。采用验证在A内测试序列要么测试评估块,或者如果你有一个statflow®许可证,在StateFlow图表中。看使用验证语句评估模型仿真

相关话题