主要内容

实时测试模型

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

请注意

本主题中的信息不适用于在使用ASAM XIL标准的第三方测试台架上进行测试。有关使用ASAM XIL执行测试的信息和示例,请参见安装和设置ASAM XIL标准的Simulin金宝appk测试支持包金宝app而且使用ASAM XIL标准的Simulink测试支持包进金宝app行实时测试金宝app

实时测试包括:

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

  • 硬件在环(HIL)的使用金宝app实时仿真软件它测试通过了几个验证阶段的系统,通常是SIL和PIL模拟。你可以用金宝app仿真软件测试™在Windows上®或Linux®用于运行实时测试用例的计算机金宝app实时仿真软件

总体工作流程

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

  1. 根据需求创建验证模型的测试用例。运行模型模拟测试并保存基线数据。

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

  3. 为实时测试创建测试工具,或者重用模型模拟测试工具。在测试序列测试评估块,验证语句评估实时执行。

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

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

  6. 执行实时测试。

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

实时测试注意事项

  • 基线或等价比较可能会因为缺少数据或来自实时目标计算机的时移数据而失败。在调查实时测试失败时,寻找时间偏移或丢失的数据点。

  • 类模型构建的应用程序无法覆盖实时执行样例时间测试序列块。生成的代码测试序列块包含硬编码的样本时间。重写目标计算机采样时间可能会产生意想不到的结果。

  • 不能记录状态,或者在某些平台上不能记录输出端口。

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

  • 您的目标计算机必须正在运行金宝app实时仿真软件

完成基本模型测试

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

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

  • 调试您的测试序列。使用测试序列编辑器中的调试功能。看到调试测试序列

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

设置目标计算机

实时测试需要目标计算机或外部硬件测试台架。金宝app仿真软件测试金宝app支持目标计算机运行金宝app实时仿真软件.欲了解更多信息,请参见:

配置模型或测试束

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

代码生成

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

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

openExample (“sltestProjectorController”);set_param (“sltestProjectorController”...“SystemTargetFile”“slrealtime.tlc”);

数据导入/导出格式

模型必须使用的数据格式不是数据集.设置数据格式。

  1. 打开配置参数。

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

  3. 选择格式

实时执行的日志信号

为实时测试配置感兴趣的信号:

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

  • 使用信号属性命名每个感兴趣的信号。未命名信号可以被分配一个与基线或等价信号的名称不匹配的默认名称。在这个示例测试工具中,记录的信号具有显式名称。

测试线束显示记录信号

为实时测试添加测试用例

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

  1. 在Simuli金宝appnk工具条中,在应用程序选项卡下的模型验证、验证和测试,选择金宝app仿真软件测试

  2. 点击金宝appSimulink测试管理器

  3. 在Test Manager中,选择>实时测试

测试类型

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

  • 基线—将从目标计算机返回的信号数据与测试用例中的基线进行比较。为了比较实时执行结果和模型模拟结果,将模型基线结果添加到实时测试用例中,并对信号应用可选的公差。

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

    • 选择目标模拟1

    • 清晰的目标模拟2

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

    比较两个实时测试是相似的,只是选择了目标上的两个模拟。在等价的标准部分,您可以从模拟中捕获日志信号,并应用公差进行通过/失败分析。

  • 模拟:只使用验证语句和实时执行。如果没有验证语句失败,执行实时测试,测试用例通过。

从加载应用程序

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

  • 模型——选择模型如果您是第一次运行实时测试,或者您的模型在上次实时执行后发生了变化。模型通常需要最长的时间,因为它包括模型构建和下载。模型从模型加载应用程序,构建实时应用程序,将其下载到目标计算机,并在目标计算机上执行它。

  • 目标应用程序——选择目标应用程序将目标应用程序从主机发送到目标计算机,并执行该应用程序。目标应用程序如果您希望将已构建的应用程序加载到多个目标上,这将非常有用。

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

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

测试用例执行步骤(从第一个到最后一个) 从加载应用程序
模型 目标应用程序 目标计算机
执行预加载回调 是的 是的 是的
Simuli金宝appnk模型 是的 没有 没有
执行加载后回调 是的 没有 没有
设置信号编辑器场景 是的 没有 没有
从模型构建实时应用程序 是的 没有 没有
下载实时应用程序到目标计算机 是的 是的 没有
设置运行时参数 是的 是的 是的
运行测试序列场景 是的 没有 没有
执行预启动实时回调 是的 是的 是的
执行实时应用程序 是的 是的 是的
执行清理回调 是的 是的 是的

模型

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

测试工具

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

模拟设置覆盖

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

回调

实时测试提供了预启动实时应用程序回调函数,它在应用程序在目标计算机上执行之前执行命令。实时测试回调与模型加载、构建、下载和执行步骤一起按顺序执行。回调和步骤执行取决于测试用例如何加载应用程序。

序列

加载应用程序从:

模型

加载应用程序从:

目标应用程序

加载应用程序从:

目标计算机

第一次执行

预加载回调

预加载回调

预加载回调

Post-load回调

- - - - - - - - - - - -

预启动实时回调

预启动实时回调

预启动实时回调

执行最后一个

清理回调

清理回调

清理回调

迭代

您可以在实时测试中执行迭代。迭代对于执行扫描参数值或信号编辑器场景的实时测试非常方便。结果按迭代分组。有关设置迭代的更多信息,请参见测试迭代.您可以创建:

  • 中定义几个参数集的表迭代参数将覆盖测试用例的部分。下迭代>表迭代,点击自动生成并选择参数集

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

  • 来自测试序列场景的表迭代——如果您的测试工具使用测试序列块场景,您可以在测试管理器中为每个场景创建迭代。以下迭代表,点击自动生成并选择测试顺序场景.如果您使用Test Sequence场景,请从模型加载应用程序。

  • 脚本迭代——使用脚本使用模型变量或参数进行迭代。例如,假设您正在测试一个振荡器系统,并使用测试序列块使用该参数创建方波测试信号频率

    测试序列场景

    在测试文件中,您可以使用实时测试脚本迭代来覆盖从5hz到35hz的频率扫描。的值进行迭代频率测试序列块。

    遍历频率以确定最佳振荡器设置%创建参数集Freq = 5.0:1.0:35.0;I_iter = 1:长度(频率)%创建迭代对象testr = sltestteration ();%设置参数setVariable (testItr“名字”“频率”“源”...测试序列的“价值”频率(i_iter));%寄存器迭代addIteration (sltest_testCase testItr);结束

评估实时执行使用验证语句

除了基线和等价信号比较之外,您还可以使用验证语句。一个验证语句计算逻辑表达式并将结果返回给测试管理器。使用验证在一个测试序列测试评估块或,如果你有一个状态流®许可证,在状态流图中。看到使用verify语句评估模型仿真

测试验证语句的结果

相关的话题