0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

让PIL仿真更接近实际的Simscope

冬至子 来源:autoMBD 作者:autoMBD 2023-07-14 11:02 次阅读

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

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

图片

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

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

  • FOC_Ctrl_CodeModel .slx
    集成式MBD开发中,用于生成模型代码,包括状态机和FOC核心算法使用的即为该模型。
  • FOC_Ctrl_MBD .slx
    所“建”即所得的最新模型,除了算法状态机和FOC核心算法,还包括底层驱动、外设初始化和中断管理等,该模型对所讲的模型进行了更新和优化。
  • 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算法和电路硬件,都进行了验证和测试。

Tips :DEVKIT驱动板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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27033

    浏览量

    201407
  • 电机控制
    +关注

    关注

    3465

    文章

    1704

    浏览量

    264423
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27166
  • simulink仿真
    +关注

    关注

    0

    文章

    75

    浏览量

    8457
  • FOC控制
    +关注

    关注

    0

    文章

    42

    浏览量

    2692
收藏 人收藏

    评论

    相关推荐

    STM32F429做的PIL仿真速度非常慢的原因?

    各位大神好, 本人用MATLAB/SIMULINK搭建了小型直流电力系统。系统包含三个直流转换器。相关三个控制器被载入STM32F429中,从而与SIMULINK构成PIL仿真仿真运行一切正常
    发表于 04-11 07:28

    怎么使用PIL读取热电偶传感器的温度?

    和DsPIC33EP502MC512。我有一个与Sabir类似的问题:“COM端口不设置用于PIL仿真”。[见线程http://www. McCys.com /论坛/ FindPost / 864044 ]我试图
    发表于 09-23 14:02

    如何边缘计算安全?

    边缘计算中的安全挑战如何边缘计算安全?可扩展的边缘安全方案
    发表于 02-26 06:36

    LS1046A是否有任何特定工具可以安全隧道接近线速并支持数据包分段?

    使用 DPAA,并在 DPDK 中看到了一些使用 ipsec-secgw 的有前途的例子。是否有任何特定工具可以安全隧道接近线速并支持数据包分段?ipsec-secgw 是我们应该调查的路径吗?
    发表于 03-28 07:18

    如何为所有JTAG管脚数设置外部模式和PIL吗?

    我目前正在设计一块新板,并希望从 simulink 模块组进行 PIL 测试,但有多个版本的 JTAG 引脚。我需要有特定的配置吗?我使用的是 S32K144,其评估板显示的是 10 针版本,而
    发表于 04-10 08:04

    尝试运行集成模型时出现PIL编译错误怎么解决?

    我正在使用 S32K144 和 MBDT 工具箱。我已经成功地在单个 Simulink 模型上执行 PIL,但是当拥有多个模型时,我会遇到一些我不清楚如何解决的问题。它是基于配置的还是执行 PIL 时需要考虑任何架构限制?
    发表于 04-20 06:41

    NXPs32k144 evb上的PIL仿真问题如何解决?

    我遇到具体化 PIL 程序的问题。 我在simulink中遇到以下错误 无法为“Esempio_0”执行 PIL 模拟。更新配置参数或创建支持的连接配置。有关详细信息,请参阅帮助中心。 我
    发表于 05-19 07:50

    为什么无法为“State_Machine”执行处理器在环 (PIL) 仿真

    使用测试框架启动模型的 PIL 测试时,出现以下错误: 无法为“State_Machine”执行处理器在环 (PIL) 仿真。修复此错误,更新配置参数或创建支持的连接配置。请参阅产品帮助中的配置
    发表于 05-22 07:44

    如何设置PIL模拟的环境以及在哪里包含我的C代码项目?

    我看到 MBDT 用于生成基于 Simulink 模块的 C代码,以减少原型设计过程。就我而言,我想 在 Simulink 中的 PIL(处理器在环)仿真中测试我自己的 C 代码项目。我想
    发表于 06-08 08:47

    Power Partners推出恒压LED模块PIL300U

    Power Partners推出恒压LED模块PIL300U-V Power Partners推出300W输出的恒压LED模块PIL300U-V,PIL300U-V系列恒压LED模块能从90~305Vac输入范围输出300W功
    发表于 04-01 13:51 944次阅读
    Power Partners推出恒压LED模块<b class='flag-5'>PIL</b>300U

    PiL测试实战(上)| 单元级代码的PiL测试

    作者:酷兔本兔小编:吃不饱对于嵌入式代码,为了测试软件能否在目标芯片上实现预期的功能,通常需要进行PiL测试(Processor-in-the-Loop-Testing)。目前市面上较为常见的嵌入式
    的头像 发表于 11-22 10:19 599次阅读
    <b class='flag-5'>PiL</b>测试实战(上)| 单元级代码的<b class='flag-5'>PiL</b>测试

    PiL测试实战(下)| PiL阶段的闭环测试

    作者:酷兔本兔小编:吃不饱上篇我们介绍了单元级软件的PiL测试,对于集成级的PiL测试,其流程和单元阶段基本一致。然而,对于一些带有反馈控制逻辑的集成测试(如电机控制器MCU),PiL阶段会将控制
    的头像 发表于 12-15 10:31 479次阅读
    <b class='flag-5'>PiL</b>测试实战(下)| <b class='flag-5'>PiL</b>阶段的闭环测试

    TPT19新特性之在虚拟环境中执行PiL测试

    使用TPT 19,您可以获得一些PiL测试(处理器在循环测试)的新特性。在C平台上,您现在可以直接为您的PiL构建目标代码,并在目标板上或仿真环境中执行它。
    的头像 发表于 05-05 15:54 351次阅读
    TPT19新特性之在虚拟环境中执行<b class='flag-5'>PiL</b>测试

    如何安装Python图像处理PIL

    安装PIL库 要使用PIL库,我们首先需要安装它。有两种方法可以安装PIL库: 方法一:使用pip命令,在终端或命令行中输入以下代码: pip install Pillow 方法二:从官网下
    的头像 发表于 09-12 17:15 1341次阅读
    如何安装Python图像处理<b class='flag-5'>PIL</b>库

    如何实现PIL和OpenCV之间图像数据的转换呢?

    PIL图像数据格式转换成OpenCV图像数据格式
    的头像 发表于 02-25 13:43 494次阅读