主要内容

代码验证和性能分析使用PIL测试

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

执行时间,或性能指标的算法,你从PIL模拟获得的,帮助您检测目标硬件算法溢出。该PIL剖析报告显示算法的平均和最大执行时间上的目标硬件。这个例子说明了PIL德州仪器™LAUNCHXL-F28379D硬件板卡剖析。

此示例使用mcb_pmsm_foc_sim.slx模型在PIL仿真中显示代码验证。这个例子显示了模型中当前控制子系统的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. 硬件选项卡,单击金宝app硬件设置

  3. 配置参数对话框,在硬件实现,设置硬板字段TI德尔菲诺F28379D的LaunchPad

使用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模式下,系统部署电流控制(PIL)子系统到目标,并且执行在所述目标硬件的子系统。

  9. 为了比较在主机机器仿真和在PIL模拟的算法执行,并行地连接电流控制子系统到电流控制(PIL)子系统。另外,使在子系统输出信号记录。

  10. 在Simuli金宝appnk工具条上,选择SIL / PIL经理应用从应用标签。

  11. 银/公益诉讼ToolStrip,选择银/公益诉讼Sim卡

  12. 选择在SIL / PIL模式模型块在测试系统场地。

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

    该系统部署子系统之后,电流控制(PIL)在目标硬件处理器子系统执行,而植物模型主机上运行。

分析PIL Profiling结果

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

笔记

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

此概要分析报告,其是用于定点数据类型,表示最大和在目标硬件运行电流控制(PIL)子系统的平均执行时间。

你可以使用数据检查按钮在模拟标签比较信号基于主机的机器仿真和PIL仿真(在目标上执行)过程中记录。这可以帮助您验证基于主机的机器仿真和PIL模拟的精度。

此图对从电流控制(PIL)和电流控制子系统的速度反馈信号。

如果执行时间超过了预算的60%的时间,你可以使用这些技术中的一种优化算法:

  • 从RAM中执行。

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

  • 缩放算法来运行在每个交替周期。

  • 像移动速度计算不太重要的功能,以更慢的速率。

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