主要内容

配置并运行PIL模拟

有三种运行SIL和PIL模拟的方法。你可以使用:

  • 顶级模特。

  • 块模型。

  • 您从子系统中创建的SIL和PIL块。

用顶层模型进行仿真

配置和运行顶级模型SIL或PIL模拟:

  1. 在Simuli金宝appnk中®编辑器,打开您的模型。

  2. 应用程序选项卡上,单击银/公益诉讼经理

  3. 模式部分中,选择SIL/PIL模拟

  4. 准备节中,设置被测系统顶级模特

  5. 银/公益诉讼模式字段,选择Software-in-the-Loop(银)Processor-in-the-Loop(公益诉讼).该选项只支持ERT、G金宝appRT或AUTOSAR系统目标文件。看到模型配置参数:代码生成而且配置AUTOSAR代码生成(AUTOSAR Blockset)查看配置信息。

  6. 监视组件信号和状态数据,并比较模型和SIL或PIL模拟的值:

    1. 对于每个你想记录的信号:

      1. 在Simuli金宝appnk编辑器中,选择信号。

      2. 银/公益诉讼选项卡上,单击监控信号.从图库中,选择以下选项:

        • 日志选择信号

        • 选择信号测试点

        • 信号记录

    2. 来记录状态数据监控信号画廊,选择状态日志

    3. 如果语言配置参数为c++,在“配置参数”对话框中设置内部数据可见性公共

  7. 如果正在配置SIL模拟,请指定可移植字大小选项。然后可以在SIL和PIL模式之间无缝切换。在“配置参数”对话框中,选择启用可移植的单词大小复选框。

  8. 如果需要,配置:

  9. 运行部分,在停止时间字段,指定模拟时间。

  10. 点击运行银/公益诉讼

  11. 在模拟结束时,在结果部分中,点击数据检查查询仿真结果。

请注意

在Windows上®操作系统,Windows防火墙可能会阻止SIL或PIL模拟。若要允许模拟,请使用“Windows安全警报”对话框。例如,在Windows 7,点击允许访问

你不能:

  • 在运行模拟时关闭模型。要中断模拟,在命令窗口中,按Ctrl + C

  • 在模拟过程中更改模型。只要不改变模型的行为,您就可以移动块和行。

您可以使用该命令运行顶级模型SIL或PIL模拟sim卡(模型.该软件支持金宝appsim卡命令选项SrcWorkspace对于值“基地”

对于PIL模拟,您可以通过连接性配置来控制代码在目标环境中编译和执行的方式。

用模型块进行仿真

配置模型SIL或PIL模拟块:

  1. 在Simuli金宝appnk编辑器中,打开模型,例如,rtwdemo_sil_modelblock

  2. 右击你的模型例如,Block,对抗.在上下文菜单中,选择块参数(ModelReference),打开“功能块参数”对话框。

  3. 模拟模式下拉列表,选择所需的模式,例如:Software-in-the-loop(银)

  4. 代码接口下拉列表,指定要测试的代码,例如,模型参考

  5. 点击好吧.软件以块标签的形式显示模拟模式。

    如果您选择顶级模特,软件显示块标签(SIL:顶部)

  6. 如果正在配置SIL模拟,请指定可移植字大小选项。然后可以在SIL和PIL模式之间无缝切换。在“配置参数”对话框中,选择启用可移植的单词大小复选框。

  7. 应用程序选项卡上,单击银/公益诉讼经理

  8. 模式部分中,选择SIL/PIL模拟

  9. 准备节中,设置被测系统在SIL/PIL模式下建模块

  10. 顶级模特模式字段,选择正常的加速器

  11. 如果需要,配置:

  12. 运行部分:

    • 停止时间字段,指定模拟时间。

    • 如果希望避免在初始构建之后重新构建代码,请单击快速启动.看到防止在多次模拟中更改代码

    • 点击运行银/公益诉讼

  13. 在模拟结束时,在结果节中,单击“数据检查器”查看模拟结果。

请注意

在Windows操作系统上,Windows Firewall可能会阻止SIL或PIL模拟。若要允许模拟,请使用“Windows安全警报”对话框。例如,在Windows 7,点击允许访问

对于PIL模拟,您可以通过连接性配置来控制代码在目标环境中编译和执行的方式。

用子系统的块进行模拟

要从子系统创建SIL或PIL块,并使用该块测试从子系统生成的代码:

  1. 配置参数>代码生成>验证>先进的参数>创建块下拉列表,选择其中之一公益诉讼

  2. 如果需要,配置代码执行分析。

  3. 点击好吧

  4. 在您的模型窗口中,右键单击您想要模拟的子系统。

  5. 选择C / c++代码>构建这个子系统

  6. 点击构建,它启动子系统构建过程,为生成的子系统代码创建SIL或PIL块。

  7. 将生成的块添加到提供测试向量或刺激输入的环境或测试工具模型中。

  8. 使用环境或测试工具模型运行模拟。

请注意

在Windows操作系统上,Windows Firewall可能会阻止SIL或PIL模拟。若要允许模拟,请使用“Windows安全警报”对话框。例如,在Windows 7,点击允许访问

如果你做了以下任何一种,你就不能创建SIL或PIL块:

  • 禁用CreateSILPILBlock财产。

  • 选择一个代码覆盖工具。

创建块似乎暗了下来。

对于PIL模拟,您可以通过连接性配置来控制代码在目标环境中编译和执行的方式。

部件日志信号

SIL和PIL组件输出可与其他仿真模式输出进行观察和比较。如果要检查内部信号,可以为顶级模型或启用内部信号日志记录模型阻塞SIL或PIL。使用信号日志记录,您可以:

  • 在SIL/PIL模拟过程中收集信号日志输出,例如,logsout

  • 记录SIL/PIL组件的内部信号和根级输出。

  • 使用Simulink信号日志选择器管理SIL/PIL信号日志设置。金宝app

  • 使用模拟数据检查器来:

    • 在正常、SIL和PIL模拟中观察流信号。

    • 比较来自正常、SIL和PIL模拟的日志信号。

使信号记录到MATLAB®在SIL或PIL仿真期间,工作空间和信号流到仿真数据检查器:

  1. 对于您想要监视的每个信号:

    1. 在Simuli金宝appnk编辑器中,选择信号。

    2. 银/公益诉讼选项卡上,单击监控信号.从图库中,选择以下选项:

      • 日志选择信号

      • 选择信号测试点

      • 信号记录

  2. 如果语言配置参数为c++,在“配置参数”对话框中设置内部数据可见性公共

您可以使用其他方法检查SIL或PIL组件的内部信号:

  • 手动将信号路由到顶层。

  • 使用全局数据存储访问内部信号:

    1. 在组件内部,连接一个数据存储写阻塞到所需的信号。

    2. 在组件外部,使用数据存储读块访问信号值。

  • 使用mat文件日志记录。注意:

    • mat文件日志不支持信号日志。金宝app如果启用了信号日志记录,logsout生成但不存储在mat文件中。

    • 对于PIL,目标环境必须支持mat文件日志记录。金宝app

欲了解更多信息,请参见:

防止在多次模拟中更改代码

使用模型块SIL/PIL或SIL/PIL块快速重启,当你想运行多个SIL或PIL模拟:

  • 变化测试向量(参数集和输入数据)。

  • 未更改生成的代码,也就是说,在初始构建之后,没有模拟重新生成或重新构建代码。例如,您希望避免初始值更改可能触发的增量代码生成。

模型块SIL/PIL,你也可以使用以下方法之一:

  • 在您的测试工具模型中,在“配置参数”对话框中,设置重建从来没有.如果模型代码接口参数是模型参考,该软件不重建引用的模型代码。(如果代码接口参数是顶级模特,软件忽略重建设置)。

  • 创建一个受保护的模型并生成源代码或二进制代码。然后,将受保护的模型插入到测试束模型中。使用此方法,您可以验证顶级模型代码(使用独立代码接口)或模型参考代码。

对于其他的跑步方法模型块SIL/PIL,下表总结了初始构建后的代码生成行为。

SIL和PIL方法 初始构建后的代码生成行为
模型 重建测试线束模型的配置参数设置为从来没有
  1. 初始构建中的组件(算法)代码不会重新生成。

  2. 未调用组件代码makefile。

  3. 初始构建中的SIL/PIL应用程序文件不会重新生成。

  4. 调用SIL/PIL应用程序makefile。

模型块(受保护的模型) 受保护模型的源代码。 除了特性2之外,您可以观察到相同的行为。在这种情况下,运行组件代码makefile。组件代码被重新编译并链接以生成新的目标代码。
来自受保护模型的二进制代码。 你观察特征1-4。

欲了解更多信息,请参见:

加速测试

如果您的模型有SIL/PIL块或模型块在SIL/PIL模式,您可以通过以下方法加快SIL/PIL测试:

  • 运行顶层模型模拟加速器模式.这种模式加速了不处于SIL或PIL模式的模型组件的仿真。

  • 打开快速启动.在第一次模拟之后,您可以调优参数并重新运行模拟,而无需重新编译模型。SIL/PIL经理提供一个快速启动按钮。

请注意

SIL和PIL仿真模式并不是为了减少模型仿真时间而设计的。如果您想加速模型的模拟,请使用快速加速模式。有关更多信息,请参见什么是加速度?

函数调用模拟

使用金宝app仿真软件的功能块和函数调用者当你想阻塞时:

  • 生成调用外部代码(例如,驱动程序或遗留代码)的函数代码。

  • 提供一个行为类似于正常、SIL或PIL模拟中的外部代码的子系统。

这个例子配置对AUTOSAR NVRAM Manager服务的调用(AUTOSAR Blockset)展示了如何从AUTOSAR软件组件配置客户端调用到基本软件(BSW) NVRAM Manager (NvM)服务接口。在模拟中,Simulink通过实现金宝appBSW NvM调用金宝app仿真软件的功能和预配置函数调用者块。对于最终的系统,您将函数调用存根与在AUTOSAR运行时环境(RTE)中运行的外部BSW函数代码链接起来。

有关更多信息,请参见金宝appSimulink函数块和代码生成

相关的话题