在处理器在环(PIL)模拟中,控制算法执行在目标硬件,但主机上的工厂模型运行。工厂模型通过使用串行通信接口模拟控制器和连通与所述控制器的输入和输出信号。此功能允许您使用PIL模拟,以确定在目标硬件上,然后你就可以与执行时间比较的主机上模拟模型的执行时间。
从PIL仿真获取的算法的执行时间或算法的性能度量有助于您检测目标硬件上的算法溢出。PIL Profiling Report显示目标硬件上算法的平均和最大执行时间。此示例解释了Texas Instruments™LaunchXL-F28379D硬件板上的PIL Profile。
这个例子使用了mcb_pmsm_foc_sim.slx
模型显示,PIL仿真代码验证。这个例子中示出了PIL分析信息模型中的电流控制子系统。该子系统包括磁场定向控制(FOC),电流缩放(每单位转换),速度测量,并且转子位置缩放(从编码器位置计数角度的计算)的算法。的PIL仿形报告显示控制算法的平均和最大执行时间在目标硬件。
这个例子包括以下任务:
通过使用PIL测试由该算法在模拟和目标硬件的操作模式进行比较验证代码执行。
通过测量目标硬件中的算法执行时间来执行PIL分析,并生成PIL Profiling Report。
嵌入式编码器®
嵌入式编码支持包德州仪器C20金宝app00™处理器
LAUNCHXL-F28379D控制器硬件板
打开mcb_pmsm_foc_sim.slx
模型。
open_system( 'mcb_pmsm_foc_sim.slx');
该模型模拟PMSM电机和用于闭环速度控制FOC算法。
在这一点硬件Simulink的工具金宝app条,点击选项卡硬件设置。
当配置参数对话框中,在硬件实现,设置硬件板场Ti Delfino F28379D Launchpad
。
在“配置参数”对话框中,选择以下配置设置硬件实现>硬件板设置>目标硬件资源>pil:
通信界面- 选择序列号
。
SCI模块- 选择SCI_A
。
Matlab首选项中的串口- 模型会自动检测已连接硬件的通信端口。此参数对于当前活动的MATLAB的其余部分保持不变®会议。点击刷新按钮再次检测通信端口。
打开mcb_pil_config_tim..m.
脚本文件来设置配置参数。
编辑( 'mcb_PIL_config_TI.m');
更新脚本中的模型名称和停止时间。
运行脚本以更新模拟模型的配置参数和PIL首选项。
用鼠标右键单击该电流控制子系统mcb_pmsm_foc_sim.slx
示例模型。根据C / C ++代码菜单,选择将此子系统部署到硬件。
系统显示构建子系统的代码对话框。设置存储类来内联
所有参数。
点击建设创建一个名为模型untitiled
其中包括称为当前控制的PIL子系统。
将当前控制子系统重命名为当前控制(PIL)。
复制电流控制(PIL)子系统和替换当前控制子系统mcb_pmsm_foc_sim.slx
示例模型。
在PIL模式中,系统将当前控制(PIL)子系统部署到目标并在目标硬件中执行子系统。
要比较主机模拟和PIL仿真中的算法执行,请将当前控制子系统平行连接到当前控制(PIL)子系统。此外,使能信号记录子系统输出。
在Simuli金宝appnk的工具条中,选择SIL / PIL Manager应用程序来自应用程序标签。
在这一点SIL / PILToolStrip,选择SIL / PIL辛只有
。
选择SIL / PIL模式中的模型块
当正在测试的系统领域。
点击运行SIL / PIL在这一点SIL / PIL工具条来构建电流控制(PIL)子系统,并将其部署到目标。
系统部署子系统后,当前控制(PIL)子系统在目标硬件处理器上执行,而工厂模型在主机上运行。
当PIL仿真结束时,系统会生成分析报告。
注意
PIL模拟花费的时间比基于主机的机器模拟更多的时间。这是因为串行通信(与输入和电流控制(PIL)子系统的输出)主机之间和子系统在目标硬件运行的。
此分析报告用于定点数据类型,显示了在目标硬件上运行的当前控制(PIL)子系统的最大和平均执行时间。
你可以使用数据检查纽约州模拟选项卡可以比较在基于主机基础的仿真和PIL模拟期间记录的信号(在目标上执行)。这有助于您验证基于主机的仿真和PIL模拟的准确性。
该曲线比较来自电流控制(PIL)和电流控制子系统的速度反馈信号。
如果执行时间超过预算时间的60%,则可以使用以下技术之一优化算法:
从RAM执行。
卸载某些功能,以CLA或其他CPU。
缩放算法在每个备用循环处运行。
将速度计算的速度计算更少移动到较慢的速率。
有关SIL / Pil代码验证的更多详细信息,请参阅: