主要内容

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

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

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

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

这个例子包括以下任务:

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

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

要求MathWorks下载188bet金宝搏

  • 嵌入式编码器®

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

金宝app支持的硬件

  • LAUNCHXL-F28379D控制器硬件板

准备公益诉讼模式

  1. 打开mcb_pmsm_foc_sim.slx模型。

    open_system(“mcb_pmsm_foc_sim.slx”);

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

  2. 硬件选项卡,单击金宝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. 控件中右键单击Current Control子系统mcb_pmsm_foc_sim.slx模型的例子。下C / c++代码菜单中,选择将这个子系统部署到硬件

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

  6. 点击构建要创建一个名为untitiled其中包括一个名为“当前控制”的PIL子系统。

  7. 将当前控制子系统重命名为当前控制(PIL)。

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

    在PIL模式下,系统将当前控制子系统部署到目标上,并在目标硬件上执行该子系统。

  9. 为了比较在主机模拟和在PIL模拟中的算法执行情况,将当前控制子系统与当前控制(PIL)子系统并行连接。此外,在子系统输出中启用信号记录功能。

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

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

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

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

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

分析PIL Profiling结果

当PIL模拟结束时,系统生成一个分析报告。

请注意

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

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

你可以使用数据检查按钮模拟选项卡比较基于主机的模拟和PIL模拟(在目标上执行)期间记录的信号。这有助于验证基于主机的模拟和PIL模拟的准确性。

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

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

  • 执行从RAM。

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

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

  • 将较不重要的功能,如速度计算,移动到较慢的速度。

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