分享

第05期补充内容:让PIL仿真更接近实际的Simscope

 伊伊爸 2022-08-20 发布于湖北

全文约2240字,你将看到以下内容:

  • 使用Simscape进行PIL测试

  • 投票

这么快又见面了,没想到2021年还能再发一期图片

在上一期《MBD实战之电机控制 第05期:把模型嵌入代码》中,遗漏了一个比较重要的内容,非常有必要补充一下,即关于使用Simscape模型使PIL(Processor In the Loop)测试更接近实际情况的内容。

Tips:Simscape是Simulink中强大的物理模拟库,它可以搭建力学、电学、磁场、流体等多种物理场景,以物理量的方式进行仿真,可用于机器人、无人机、汽车的仿真。

相关的模型在上期更新时就已经在GitHub做好了的,只不过上期文章中忘了讲了。GitHub仓库位置如下:

GitHub仓库:autoMBD电机控制项目
https://github.com/TkungAI/autoMBD_Motor_Control

如果已经在仓库中下载最新模型的读者应该能发现,最新的模型对FOC核心算法算法状态机分别都进行了PIL测试。仓库中最新的模型如下图所示:

图片

仓库中最新的FOC电机控制模型 - From autoMBD

Tips关于如何在NXP芯片上如何利用MBDT进行PIL测试,可以参考作者的往期文章《MBD实战之MBDT 第3.5期:MBDT实现PIL测试》(该文章是有视频展示的哦)。PIL测试模型的位置:autombd_motor_control / MBD_Models / FOC_Ctrl_MBD /

分别介绍一下上图中这些模型的作用:

  • FOC_PIL_Algth_model.slx & FOC_PIL_Algth_top.slx

    对FOC核心算法进行PIL测试的model模型和top模型。

  • FOC_PIL_StateMch_model.slx & FOC_PIL_StateMch_top.slx

    对电机控制状态机进行PIL测试的model模型和top模型。

  • FOC_Sub_CoreAlgoithm.slx

    FOC核心算法,为Subsystem模型。

  • FOC_Sub_StateMch.slx

    电机控制状态机模型,为Subsystem模型,且包含了FOC核心算法。

需要注意的是,原来的MIL(Model In the Loop)模型被移除了,该模型可以用PIL测试的top模型代替,只需要将Model Reference的仿真模式修改为Normal即可,如下图所示:

图片

PIL和MIL的切换 - From autoMBD

两个PIL测试的目的是不一样的:

  • FOC核心算法PIL测试

    测试FOC算法是否能正常运行,控制性能是否满足要求,控制参数是否合理,以及开展不同工况的测试。

  • 电机控制状态机PIL测试

    测试状态切换是否正确,电机控制的功能和逻辑是否正确,验证FOC核心算法的调度是否正常,是电机控制的完整测试。

对这两个模型分开测试是有必要的,在不同的阶段检测不同的工作,同时也将算法和功能进行了隔离。

分别打开FOC核心算法模型和电机控制状态机模型的PIL top 模型,可以做一个对比:

图片

FOC算法的PIL top模型 - From autoMBD

图片

电机控制状态机的PIL top模型 - From autoMBD

可以发现,两个测试的电机模型是不一样的:前者使用的是连续、理想的逆变器和电机模型;而后者使用的是Simcope模型搭建的逆变器和电机模型。这就是本次补充的重点,使用Simscape模型可以更加贴近实际情况进行PIL测试

那么更加贴近实际情况具体体现在哪里呢?我总结有以下三点:

1. 根据实际MOSFET电路,搭建实现逆变器模型

图片

Simcope逆变器 - From autoMBD

2. 实际电路设计,搭建实现ADC采样电路,采样电阻的布置见上图

图片

Simscape 运放和ADC采样电路 - From autoMBD

3. 根据芯片外设FTM的工作原理,搭建中心对齐PWM发生器

图片

中心对齐PWM发生器(A相) - From autoMBD

上述三点的实现,均根据实际的电路设计(即DEVKIT驱动板PCB原理图)和芯片外设(FTM,FlexTimer Module)的工作原理进行搭建的,保证了最大限度的和实际情况一致,可以提高PIL的参考价值:此时的PIL除了底层驱动以外,其他所有的部分,包括状态机、FOC算法和电路硬件,都进行了验证和测试。

TipsDEVKIT驱动板PCB原理图和S32K3手册均能在autoMBD的资源库中找到,私信回复关键词“资源”即可收到链接信息。

使用Simscape搭建硬件电路的模型,这样做是有意义的。在以前的文章中提到过,我追求的是尽可能减小MBD的模型和代码之间的沟壑,Simscape至少能实现一部分。

把格局再打开一下,如果利用第三方软件与Simulink进行联合仿真,仿真环境会进一步逼近实际情况。

图片

这种联合仿真有着广泛的实际案例,很多开发车道线保持、自适应巡航算法的工程师,首先会在电脑的虚拟环境中搭建汽车模型和道路模型(甚至还可以包括行人、路灯),然后通过Simulink联合仿真来验证算法。还有其他诸如机器人、无人机等场景。

这些实际场景中,只需要搭建好算法和状态机,都能能实现PIL测试,从而同时或分别验证软件逻辑、功能、算法和电路硬件

上述的验证过程,如果把复杂的受控对象放在实时机中运算,而不是在电脑中,这个过程就变成了HIL(Hardware In the Loop)。PIL和HIL相比,就是缺少了实时性。

虽然PIL不是实时运算,但实时性的验证可以通过PIL的软件运算耗时来评估,这一点在PIL是可以实现的。这样就可以最大限度的降低成本(通常实时仿真机价格几万到几十万不等),同时提高验证的可信度,最大限度挖掘PIL的作用。

还需要提的一点是,为了保证PWM的分辨率,算法状态机的PIL测试,其步长设置为:

Ts_simscape = 1/40000000

Tips关于PWM分辨率的对仿真精度的影响,可以参考《MBD实战之电机控制 第01期:永磁无刷电机基础》。

由于步长小,再加上Simscape的运算量比普通模块更大,这使得算法状态机的PIL测试会很慢。我现在用来搭模型的笔记本是8年前的老古董了图片,跑这个4秒的PIL模型要两天才能跑完(实际上我只运行了一天,看了一半的结果就停止仿真了)

补充的内容就这些了吧。有问题欢迎和我私信讨论哦。

华丽的分割线



公众号的关注人数越来越多了,这代表了大家对我的认可,在这里衷心感谢大家对我的支持,希望大家能在我的公众号里有所收获。图片

图片

我希望能对关注者有进一步的了解,以供对我的文章方向给予参考,这里有两个问题希望读者能帮忙选一下,谢谢!

图片

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多