主要内容

使用PIL测试进行代码验证和分析

在处理器在环(PIL)仿真中,控制算法在目标硬件中执行,但工厂模型在主机上运行。植物模型模拟控制器的输入输出信号,并通过串行通信接口与控制器通信。此功能允许您使用PIL模拟来确定目标硬件上的执行时间,然后您可以将其与在主机上模拟模型的执行时间进行比较。

从PIL仿真中获得的算法的执行时间或性能度量可以帮助您检测目标硬件上的算法溢出。PIL分析报告显示算法在目标硬件上的平均和最大执行时间。这个例子解释了德州仪器™LAUNCHXL-F28379D硬件板上的PIL剖析。

本例使用mcb_pmsm_foc_sim.slx模型在PIL仿真中进行代码验证。这个例子展示了模型中Current Control子系统的PIL剖析。该子系统包括面向场控制(FOC)、电流缩放(单位转换)、速度测量和转子位置缩放(从编码器位置计数计算角度)算法。PIL分析报告显示了控制算法在目标硬件中的平均和最大执行时间。

这个例子包含以下任务:

  • 通过在模拟和目标硬件运行模式下比较算法,使用PIL测试验证代码执行。

  • 通过测量算法在目标硬件中的执行时间来执行PIL剖析,并生成PIL剖析报告。

要求MathWorks下载188bet金宝搏

  • 嵌入式编码器®

  • 德州仪器C2000处理器的嵌入金宝app式编码器支持包

金宝app支持的硬件

  • LAUNCHXL-F28379D控制器硬件板

准备PIL模型

  1. 打开mcb_pmsm_foc_sim.slx模型。

    open_system(“mcb_pmsm_foc_sim.slx”);

    该模型模拟了永磁同步电动机和FOC算法的闭环速度控制。

  2. 硬件在“Simulink”金宝app工具条的页签中,单击硬件设置

  3. 配置参数对话框,在硬件实现,设置硬件板字段TI Delfino F28379D发射台

使用PIL验证代码

  1. 在“配置参数”对话框中,选择下面的这些配置设置硬件实现>硬件板设置>目标硬件资源>公益诉讼

    1. 通信接口——选择串行

    2. SCI模块——选择SCI_A

    3. 串口在MATLAB首选项—型号自动检测硬件所连接的通信端口。对于当前活动的MATLAB的其余部分,该参数保持不变®会话。单击刷新按钮,重新检测通信端口。

  2. 打开mcb_PIL_config_TI.m脚本文件,设置配置参数。

    编辑(“mcb_PIL_config_TI.m”);
  3. 更新脚本中的模型名称和停止时间。

  4. 运行脚本以更新模拟模型的配置参数和PIL首选项。

  5. 控件中的当前控制子系统mcb_pmsm_foc_sim.slx模型的例子。下C / c++代码菜单中,选择将该子系统部署到硬件

    系统显示为子系统构建代码对话框。设置存储类为内联对于所有参数。

  6. 点击构建来创建一个名为untitiled它包括一个叫做电流控制的PIL子系统。

  7. 将Current Control子系统重命名为Current Control (PIL)。

  8. 复制当前控制(PIL)子系统,并替换当前控制子系统mcb_pmsm_foc_sim.slx模型的例子。

    在PIL模式下,系统将Current Control (PIL)子系统部署到目标,并在目标硬件中执行该子系统。

  9. 要比较主机仿真和PIL仿真中的算法执行情况,请将Current Control子系统与Current Control (PIL)子系统并行连接。此外,在子系统输出中启用信号记录。

  10. 在Simuli金宝appnk工具条上,选择银/公益诉讼经理应用程序应用程序选项卡。

  11. 银/公益诉讼将来发布,选择SIL/PIL Sim Only

  12. 选择模型块在SIL/PIL模式测试中的系统字段。

  13. 点击运行银/公益诉讼银/公益诉讼工具条构建Current Control (PIL)子系统并将其部署到目标。

    系统部署子系统后,Current Control (PIL)子系统在目标硬件处理器上执行,而工厂模型在主机上运行。

分析PIL剖析结果

PIL仿真结束后,系统生成剖析报告。

请注意

PIL仿真比基于主机的仿真花费更多的时间。这是因为主机和运行在目标硬件上的子系统之间的串行通信(与Current Control (PIL)子系统的输入和输出有关)。

这个分析报告是针对定点数据类型的,它显示了在目标硬件上运行的Current Control (PIL)子系统的最大和平均执行时间。

您可以使用数据检查按钮。模拟tab,比较基于主机的仿真和PIL仿真(在目标上执行)中记录的信号。这可以帮助您验证基于主机的仿真和PIL仿真的准确性。

该图比较了电流控制(PIL)和电流控制子系统的速度反馈信号。

如果执行时间超过预算时间的60%,您可以使用以下技术之一优化算法:

  • 从RAM执行。

  • 将一些功能卸载到CLA或其他cpu。

  • 扩展算法以在每个交替周期中运行。

  • 将不太重要的功能(如速度计算)移到较慢的速率。

有关SIL/PIL代码验证的详细信息,请参见: