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

工业控制

1115人已加入

描述

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

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

据 MathWorks 中国通信、电子和半导体行业市场经理陈晓挺博士介绍,MathWorks 与 ST 很早就开始了合作,其合作内容主要有两块:一是 MathWorks 的工具可以被ST的工程师所使用,包括研发工程师和应用工程师;二是双方有很多的共同客户,在支持共同客户方面有不少合作。由于支持客户是双方的共同目标,因此最近两年开展了很多技术合作,比如相互培训,MathWorks 培训 ST 的工程师,ST 也培训 MathWorks 的工程师,让双方更加了解彼此的产品,同时也共同做一些市场活动,将双方最新的技术带给用户,另外,还合作录制了一些视频,帮助用户了解 MathWorks 的工具与 ST 的硬件。

STM32

基于 STM32 的 MathWorks 电机控制方案谈到双方合作,会给电机控制行业带来哪些好处时,陈晓挺表示,谈优势,先要了解电机控制本身的难度。在他看来,目前电机控制方案的开发主要有以下四个难点:

一、系统建模:电机控制系统需要进行精确的建模,以便进行仿真和控制算法的设计。建模的难点在于需要考虑到电机的物理特性、控制电路的特性、传感器的精度等多个因素,同时需要对系统进行多维度的建模,以便准确地预测系统的行为。

二、控制算法设计:电机控制系统需要设计出适用于特定应用场景的控制算法。算法设计的难点在于需要综合考虑系统的特性、控制要求,以及实际应用环境等多个因素,同时需要对算法进行多层次的优化和测试,以确保算法的稳定性和可靠性。

三、硬件设计:电机控制系统的硬件设计需要考虑到电路的复杂性、功率损耗、EMI等多个因素,同时需要保证硬件的可靠性和稳定性,以确保系统的长期运行。

四、调试和测试:电机控制系统的调试和测试需要进行多个环节的验证,包括模拟仿真、实验测试、系统集成等多个环节,需要投入大量的时间和精力,以确保系统的稳定性和性能。

MathWorks 与 ST 合作应对

电机控制方案设计挑战

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

校准相电流的ADC偏移值,校准位置传感器与转子之间的角度偏移值;

估算电机本体参数;

建立被控对象:逆变器和电机本体的模型;

开发完整的 FOC 控制模型,进行闭环仿真;

部署到硬件上做测试验证。

基于 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 的生态系统中非常重要的环节。

编辑:黄飞

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分