(文/程文智)随着高效节能概念深入人心,电机耗能越来越受到重视。而电机控制方案的开发是一个复杂的过程,特别是电机控制算法,如果要做好的话,电机控制算法还是挺复杂的。在5月12日的STM32中国峰会上ST联合其合作伙伴迈斯沃克软件(MathWorks)就电机控制解决方案所遇到的挑战,给出了他们的应对之策。
开发电机控制方案面临四大挑战
据迈斯沃克软件中国通信、电子和半导体行业市场经理陈晓挺介绍,他们很早就开始了合作,其合作内容主要有两块:
一是MathWorks的工具可以被ST的工程师所使用,包括研发工程师和应用工程师;
二是他们有很多的共同客户,在支持共同客户方面有不少合作。由于支持客户是他们的共同目标,因此最近两年开展了很多技术合作,比如相互培训,MathWorks培训ST的工程师,ST也培训MathWorks的工程师,让双方更加了解彼此的产品,同时也共同做一些市场活动,将双方最新的技术带给用户,另外,还合作录制了一些视频,帮助用户了解MathWorks的工具与ST的硬件。
谈到双方合作,会给电机控制行业带来哪些好处时,陈晓挺表示,谈优势,先要了解电机控制本身的难度。在他看来,目前电机控制方案的开发主要有以下四个难点:
一是系统建模:电机控制系统需要进行精确的建模,以便进行仿真和控制算法的设计。建模的难点在于需要考虑到电机的物理特性、控制电路的特性、传感器的精度等多个因素,同时需要对系统进行多维度的建模,以便准确地预测系统的行为。
二是控制算法设计:电机控制系统需要设计出适用于特定应用场景的控制算法。算法设计的难点在于需要综合考虑系统的特性、控制要求,以及实际应用环境等多个因素,同时需要对算法进行多层次的优化和测试,以确保算法的稳定性和可靠性。
三是硬件设计:电机控制系统的硬件设计需要考虑到电路的复杂性、功率损耗、EMI等多个因素,同时需要保证硬件的可靠性和稳定性,以确保系统的长期运行。
四是调试和测试:电机控制系统的调试和测试需要进行多个环节的验证,包括模拟仿真、实验测试、系统集成等多个环节,需要投入大量的时间和精力,以确保系统的稳定性和性能。
ST与MathWorks合作应对电机控制方案设计挑战
在陈晓挺看来,采用MathWorks的工具软件MATLAB提供的基于模型设计(MBD)的电机控制工作流程能很好地应对电机控制方案设计时遇到的挑战。他表示,一般来说采用MBD电机控制工作流程主要有以下几个步骤:
基于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
+关注
关注
146文章
16826浏览量
349665 -
电机控制
+关注
关注
3522文章
1843浏览量
268035 -
ST
+关注
关注
32文章
1124浏览量
128754 -
MathWorks
+关注
关注
16文章
71浏览量
61148
发布评论请先 登录
相关推荐
评论