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

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

3天内不再提示

ST联合MathWorks应对电机控制方案设计的四大挑战

荷叶塘 来源:电子发烧友网 作者:程文智 2023-06-28 20:06 次阅读

(文/程文智)随着高效节能概念深入人心,电机耗能越来越受到重视。而电机控制方案的开发是一个复杂的过程,特别是电机控制算法,如果要做好的话,电机控制算法还是挺复杂的。在5月12日的STM32中国峰会上ST联合其合作伙伴迈斯沃克软件(MathWorks)就电机控制解决方案所遇到的挑战,给出了他们的应对之策。

开发电机控制方案面临四大挑战

据迈斯沃克软件中国通信电子半导体行业市场经理陈晓挺介绍,他们很早就开始了合作,其合作内容主要有两块:

一是MathWorks的工具可以被ST的工程师所使用,包括研发工程师和应用工程师;
二是他们有很多的共同客户,在支持共同客户方面有不少合作。由于支持客户是他们的共同目标,因此最近两年开展了很多技术合作,比如相互培训,MathWorks培训ST的工程师,ST也培训MathWorks的工程师,让双方更加了解彼此的产品,同时也共同做一些市场活动,将双方最新的技术带给用户,另外,还合作录制了一些视频,帮助用户了解MathWorks的工具与ST的硬件

谈到双方合作,会给电机控制行业带来哪些好处时,陈晓挺表示,谈优势,先要了解电机控制本身的难度。在他看来,目前电机控制方案的开发主要有以下四个难点:
一是系统建模:电机控制系统需要进行精确的建模,以便进行仿真和控制算法的设计。建模的难点在于需要考虑到电机的物理特性、控制电路的特性、传感器的精度等多个因素,同时需要对系统进行多维度的建模,以便准确地预测系统的行为。
二是控制算法设计:电机控制系统需要设计出适用于特定应用场景的控制算法。算法设计的难点在于需要综合考虑系统的特性、控制要求,以及实际应用环境等多个因素,同时需要对算法进行多层次的优化和测试,以确保算法的稳定性和可靠性。
三是硬件设计:电机控制系统的硬件设计需要考虑到电路的复杂性、功率损耗、EMI等多个因素,同时需要保证硬件的可靠性和稳定性,以确保系统的长期运行。
四是调试和测试:电机控制系统的调试和测试需要进行多个环节的验证,包括模拟仿真、实验测试、系统集成等多个环节,需要投入大量的时间和精力,以确保系统的稳定性和性能。

ST与MathWorks合作应对电机控制方案设计挑战

在陈晓挺看来,采用MathWorks的工具软件MATLAB提供的基于模型设计(MBD)的电机控制工作流程能很好地应对电机控制方案设计时遇到的挑战。他表示,一般来说采用MBD电机控制工作流程主要有以下几个步骤:

  1. 校准相电流ADC偏移值,校准位置传感器与转子之间的角度偏移值;
  2. 估算电机本体参数
  3. 建立被控对象:逆变器和电机本体的模型;
  4. 开发完整的FOC控制模型,进行闭环仿真;
  5. 部署到硬件上做测试验证。


基于MBD的电机控制方案对开发工程师来说好处主要有四个:
一是提高开发效率:MBD可以帮助开发工程师更快速地进行电机控制算法的设计、仿真和测试,从而提高开发效率。通过使用基于模型的设计工具,开发工程师可以更加直观地设计和测试算法,减少开发周期和成本。
二是提高代码质量:MBD可以帮助开发工程师更好地管理代码,提高代码质量。通过使用模型验证和测试工具,开发工程师可以更好地检测算法中的错误和缺陷,从而提高代码质量和可靠性。
三是提高系统性能:MBD可以帮助开发工程师更优化地设计电机控制算法,从而提高系统性能。通过使用模型优化工具,开发工程师可以更好地优化算法参数和控制策略,从而提高系统响应速度和精度。
四是降低开发风险:通过使用模型验证和测试工具,开发工程师可以更好地识别 和解决潜在的问题和风险,从而降低开发风险和成本。

也就是说,MBD电机控制方案可以帮助开发工程师提高开发效率、提升代码质量和系统性能,同时还能降低开发风险和成本。

意法半导体中国区微控制器和数字IC产品部(MDG)总监曹锦东表示,目前MathWorks的MBD电机控制工作流程可以支持ST主流的MCU型号,比如STM32F4、STM32F7、STM32G4、STM32H7、STM32L4、STM32L5等产品系列。

由于ST的产品很多,每年会推出很多的新产品,而MathWorks的软件每年发布两个版本,每个版本有新的工具箱和新的功能加进去,那么如何做好新产品的适配呢?据陈晓挺介绍,目前对ST开发板的支持是通过ST自己的STM32CubeMX来支持外围的I/O配置,内核Arm是通过对Arm指令集的支持来支持的。因此,对于新产品是适配,如果新产品的I/O与原来适配过的产品差不多,那么原来的工具链是可以很快改过来的,如果新产品是一个多核异构产品,那么适配的难度就会比较大。当然,如果这款全新的架构很有市场前景,双方都会投入更多的资源去做开发,一般来说,会在拿到样片后一年左右推出软件的整个工具链。

曹锦东认为MathWorks通过STM32CubeMX来支持ST的产品是非常聪明的一个做法,因为STM32CubeMX不管从哪个MCU出来,CubeMX可以生成整个系统的配置软件,比如在使用STM32C0,在STM32CubeMX选一个封装,I/O口配置什么功能,点完以后就有一个示意图出来,包括封装、引脚。MathWorks的软件如果和STM32CubeMX有对接功能或者从可以从STM32CubeMX把芯片资源拿过来,对于ST来讲升级是非常快的,ST推出新的芯片出来之后,已经在STM32CubeMX有比如I/O口外设配置,同时可以兼容最新ARM内核指令级,对一个MCU的两方面,内核和外设,如果这两部分可以通过不同的方式抓取到配置文件,内核指令的兼容,对MathWorks来说升级就会很快。他相信MathWorks的软件越来越多地可以支持其STM32系列产品。

那么,如何将MATLAB设计的电机控制算法和AI算法部署到STM32等嵌入式处理器当中呢?陈晓挺解释称,MathWorks有几十年汽车和军工等行业产品应用历史的自动化代码生成能力,他们有一个独特的代码生成框架,可以在任何地方部署在MATLAB或Simulink中开发的模型。拿STM32来说,Embedded Coder能将MATLAB和Simulink算法转换成C/C++代码,并针对STM32的处理器优化代码,替换掉标准C代码。

他同时指出,MathWorks允许客户将模型导入MATLAB做AI训练,因为AI训练需要数据集,因此他们支持客户收集并预处理自己的数据集,然后利用AI模型做训练,训练好后的AI模型可以部署到STM32上,也可以部署到PC机的GPU上。因为深度学习网络参数很多,运算量很大,因此,在部署到嵌入式CPU之前,最重要的是选择一种最合适用户应用的尽量轻量化的AI模型,然后对已选择的AI算法做网络剪枝(修剪或移除深层神经网络突触和神经元),量化(对int8数据类型的激活、权重和偏差的量化),这些压缩AI模型的工作都可以通过MATLAB提供的易用工具来完成,以方便在资源受限的硬件上进行推断。也就是说,MathWorks支持从算法到落地的完整流程。

意法半导体微控制器市场经理丁晓磊补充称,STM32在AI上 有一个STM32 Cube.AI工具,该工具与MATLAB的一些功能配合后可以很好地做整个AI开发流程的连接,“STM32 Cube.AI做的是从已经被训练好的模型到如何更好地优化和部署到STM32 MCU上,因为我们对自己MCU的情况更了解,部署更优化,内存占用率更小,流代码开发效率更高,但是之前有各种主流的AI模型和框架,我们可以通过ONNX接口就可以转化为被训练好的模型,所以,在这里面跟MATLAB的合作,使得开发用户可以从前端模型数据收集模型的选择和训练,一直到能够生成ONNX格式的模型之后,再用ST的Cube.AI做后面的发布部署,这样就会形成更加优化的模型训练到优化、到部署,整个一套开发在AI就会更为顺畅、更能落地。”

“我们会越来越重视跟软件支持伙伴的合作,做芯片本身不是很困难,困难的是怎么提供和芯片相关的软件和特定应用化的系统让客户做开发。”曹锦东进一步指出。他同时强调,软件是非常关键的,与MathWorks这样的合作伙伴合作,可以帮助客户熟悉了解如何用MCU做特定应用,这是ST的生态系统中非常重要的环节。

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

    关注

    146

    文章

    16826

    浏览量

    349665
  • 电机控制
    +关注

    关注

    3522

    文章

    1843

    浏览量

    268035
  • ST
    ST
    +关注

    关注

    32

    文章

    1124

    浏览量

    128754
  • MathWorks
    +关注

    关注

    16

    文章

    71

    浏览量

    61148
收藏 人收藏

    评论

    相关推荐

    PLM制造业解决方案应对挑战,提升效率与竞争力

    在当今竞争激烈的制造业环境中,企业面临着多重挑战,包括信息不对称、成本控制困难、创新能力不足、供应链管理薄弱等问题。为了应对这些挑战,制造业企业纷纷寻求有效的解决
    的头像 发表于 10-25 14:50 140次阅读
    PLM制造业解决<b class='flag-5'>方案</b>:<b class='flag-5'>应对</b><b class='flag-5'>挑战</b>,提升效率与竞争力

    海外HTTP安全挑战应对策略

    海外HTTP安全挑战应对策略是确保跨国网络通信稳定、安全的关键。
    的头像 发表于 10-18 07:33 145次阅读

    电机控制方案开发流程

    电机控制应用广泛,电机控制软件方案核心是MCU,功率器件、驱动器件;本文介绍电机
    的头像 发表于 10-12 16:36 552次阅读
    <b class='flag-5'>电机</b><b class='flag-5'>控制</b><b class='flag-5'>方案</b>开发流程

    无刷电机控制方案设计合作

    无刷电机控制应用包含:电动工具风机,水泵,家电变频电机,自动化设备领域等。无刷电机控制方案代开发
    发表于 09-26 11:46 22次下载

    st-link仿真电机控制时出现干扰的原因?怎么解决?

    我用stm32做电机控制的调试,调试工具用st-link,但是发现仿真时一接上st-link,对电机的运行明显有干扰,显示的数据也不正确。求
    发表于 05-17 07:52

    多核架构高性能电机控制芯片

    基于传统单核架构的电机控制芯片已无法应对新出现的严峻挑战,多核架构的控制芯片应运而生。双核架构芯片已在许多领域成功应用,并显示出其独特的优势
    的头像 发表于 04-19 14:46 8135次阅读
    多核架构高性能<b class='flag-5'>电机</b><b class='flag-5'>控制</b>芯片

    MES实施的四大疑惑

    电子发烧友网站提供《MES实施的四大疑惑.docx》资料免费下载
    发表于 03-01 15:35 0次下载

    如何应对永磁同步电机空载状态?

    面对永磁同步电机空载状态时,我们应该采取相应的措施来解决这些问题。本文将详细介绍如何应对永磁同步电机空载状态。 首先,为了解决振荡问题,我们可以采取以下措施。首先,可以通过增加电机
    的头像 发表于 12-19 10:24 763次阅读

    如何简化电源管理方案设计

    电源管理是现代电子设备中非常重要的一个环节,它涉及到电能的转换、分配和控制等方面。随着电子设备的不断发展和复杂化,电源管理方案的设计也变得越来越复杂。为了简化电源管理方案设计,本文将从以下几个方面进行探讨。
    的头像 发表于 11-24 17:08 644次阅读

    ECG子系统设计主要挑战应对方案

    电子发烧友网站提供《ECG子系统设计主要挑战应对方案.pdf》资料免费下载
    发表于 11-23 10:43 0次下载
    ECG子系统设计主要<b class='flag-5'>挑战</b>及<b class='flag-5'>应对方案</b>

    LED驱动电路方案设计

    电子发烧友网站提供《LED驱动电路方案设计.rar》资料免费下载
    发表于 11-20 11:36 1次下载
    LED驱动电路<b class='flag-5'>方案设计</b>

    压控振荡电路的方案设计

    电子发烧友网站提供《压控振荡电路的方案设计.pdf》资料免费下载
    发表于 11-20 09:59 2次下载
    压控振荡电路的<b class='flag-5'>方案设计</b>

    汽车应用模拟解决方案设计指南

    电子发烧友网站提供《汽车应用模拟解决方案设计指南.pdf》资料免费下载
    发表于 11-17 10:39 0次下载
    汽车应用模拟解决<b class='flag-5'>方案设计</b>指南

    压电驱动电源系统的方案设计

    电子发烧友网站提供《压电驱动电源系统的方案设计.pdf》资料免费下载
    发表于 11-14 09:39 6次下载
    压电驱动电源系统的<b class='flag-5'>方案设计</b>

    防爆电器采取四大措施积极应对挑战

    电子发烧友网站提供《防爆电器采取四大措施积极应对挑战.pdf》资料免费下载
    发表于 11-03 09:13 1次下载
    防爆电器采取<b class='flag-5'>四大</b>措施积极<b class='flag-5'>应对</b><b class='flag-5'>挑战</b>