当前位置:首页 > 单片机 > 小麦大叔
[导读]前言:刚开始玩电机的时候也不喜欢MATLAB,每次都是直接码代码,然后去转电机。效果不好就在代码里改来改去,晕晕乎乎调了一周进展也不大。这种情况就是陷入了调参数的怪圈,恶性循环进而打击自信,进步也很缓慢。后来学会了simulink,才明白学习FOC一定要配合MATLAB,进步快很...

前言

刚开始玩电机的时候也不喜欢MATLAB,每次都是直接码代码,然后去转电机。


效果不好就在代码里改来改去,晕晕乎乎调了一周进展也不大。这种情况就是陷入了调参数的怪圈,恶性循环进而打击自信,进步也很缓慢。


后来学会了simulink,才明白学习FOC一定要配合MATLAB,进步快很多。


正文:

1、理解离散系统


在FOC中经常涉及到上个开关周期的角度,电压,或者预测下个周期的角度,电流,一般都是通过延时模块实现。

图1 delay延时模块


为什么要使用这个模块呢?比如一般PWM比较值寄存器被改写后都是使能了预装载,采样后触发计算到比较值生效可以延时0.5个开关周期Ts,也可以延时1个开关周期Ts,或者1.5个Ts。不同的延时对于控制效果有什么区别呢?只需要在simulink定义延时时间即可,非常方便对比不同的方案下的区别。这种调试在实物上实现要复杂很多!


2、实现参数自整定:


把所有的环路参数放在m文件里,在运行工程前,修改电机参数,环路参数等等,先运行m文件,可以实现参数自整定。要修改参数也只用改m文件,类似宏定义一样,环路的参数自整定和这个也差不多了。

图2 m文件实现参数自整定


3、强大示波器功能:


simulink的示波器功能非常强大,可以不限制查看任意波形,这在实物调试中也很难做到,除非去开发上位机配合查看,但是也有通道和数据量的限制。一般ARM M0的平台也没有资源去开发上位机。

图3 相电压和相电流


尤其是现在比较通用的直流侧单电阻采样波形,可以清晰看到每个扇区对应的电流波形和单电阻波形的对应关系:

图4 单电阻采样波形



4、模块化的平台,缩短开发周期:


一般开发一种新的观测器,阅读文献之后,经过simulink验证。在搭建好平台之后,把观测器,速度环,电流环,转矩补偿等等封装成各自的模块。需要验证哪个模块,即进行对应的修改。经过simulink验证的方法,基本都可以在实物中实现。如果simulink仿真失败,基本就直接放弃了。一般一个新的观测器仿真需要一到两周,可以大大缩短开发周期。


在搭建了完整的仿真平台后,实物和仿真模型基本可以做到95%以上的对应,除了一些非线性相关的因素,因为在仿真中无法模拟,需要在实物中实现。对于有经验的开发人员,拿到了离散的仿真模型,基本就等于拿到了代码。


当然如果模型在连续域仿真,会以很大的计算量得出很好的波形,掩盖环路中实际存在的很多问题。毕竟控制系统实际是以离散的形式在计算和工作。


图5 多个模型集成到一个框图

图6 滑模模型,和公式一一对应


5、s函数代码级仿真:

如果有足够的精力,simulink是可以实现c语言代码级仿真的。用s函数替代离散模块,代码放在s函数里,完全可以实现跟实物对应的仿真。移植到实物中代码也可以快速调试通过。


s函数运行的指令是在命令窗口输入:”mex xx.c“,xx是s函数文件名。


图7 s函数框图


6、在线参数变化的仿真:


一般来,Ld和Lq会随着电流出现饱和特性,所以可以通过m文件编程,实现Ld和Lq在线根据电流查表确定电感值。但是实际的无感FOC控制依然使用固定值,电机模型使用的饱和模型,这样子可以评估无感FOC的控制方法对电感饱和是否敏感,或者对电感的敏感程度。

图8 Ld在线查表


提供一种方法作参考:


用如下文档里的代码生成电感表格:

https://ww2.mathworks.cn/help/physmod/sps/ref/elec_generateidealpmsmfluxdata.html


将表格导入如何可编辑的电机模型即可:

https://ww2.mathworks.cn/help/autoblks/ref/fluxbasedpmsm.html?requestedDomain=zh


表格需要自己对应代码整理一下。


7、模拟MCU的运行方式:


使用Simulink离散模块搭建的方式,可以模拟MCU的硬件执行的结构。一般MCU最重要的是主频和中断,分别对应Simulink的最上层执行时间和定时执行的中断部分。如下图:

图9 powergui模块设置仿真步长和类型


使用powergui模块设置成离散模式,设置仿真步长5e-7,相当于仿真最上层是2MHz的执行频率,这个2M就类似于MCU的主频,显示,电机模型本体响应的计算就以这个频率执行。


然后通过脉冲模块设置定时触发执行的控制模块,就相当于是定时执行的中断:

图10 Pulse Generator模块


使用Pulse Generator模块,执行周期1e-4,相当于中断频率10k,控制环路都放在中断里,就跟MCU的运行结构非常类似了。执行频率对于离散控制来说是核心参数,不同的执行频率仿真结果区别很大。


千万不要在powergui里设置成continous仿真模式,那样会通过很高的计算频率掩盖环路的问题,与实际产品中电机运行状态不符。


8、评估环路的阶跃响应:


在伺服中比较常见的测试电流环带宽,一般测试交流给定幅相曲线。


以阶跃响应为例,可以把电机角度固定成0,电流解耦角度和逆变角度都强制给0,然后电流环的Id给参考,测试Id环路的参考和反馈,即可得到节约响应。如下图:

图11 电流环阶跃响应


9、评估参数敏感性:


以磁链模型为例,当电机模型磁链跟计算使用磁链相等时,观测角度和误差如下:


图12 磁链准确时的观测误差


当温度上升,磁链降低到只有计算值的80%,再去比较估算角度和误差,就能判断控制方法对磁链的变化敏感程度。


图13 磁链下降时的观测误差


总结:

对于研究电机控制来说,前期的主要工作放在文献和仿真上,到了代码已经是很后期的工作了。这种工作并不是靠代码量来决定工作进展,也许研究了一个月就改了一行代码却能够解决大问题。


对于我来说,如果不让我使用simulink我觉得自己就基本失业了,工作也没有任何乐趣可言。转电机并不是无脑的去写代码做实验,而是通过simulink去打磨模型,通过模型的搭建深入理解了方法才去开始实物阶段的实验。要想深入理解FOC,使用MATLAB是必经之路,没有捷径可走。模型对电机的诠释是无法用实验来代替的。


到现在为止,MATLAB的功能也许我才用了不到1‰。如果单纯能把MATLAB玩得很溜,我觉得年薪百万也不是难题。至少我的工作离不开MATLAB。



往期文章:


基于磁链模型的非线性观测器


HFI高频注入代码解读


产品级IPMSM高频注入低速无传感器控制方法



作者简介:


虚怀若谷,热爱永存!

我是转子磁场定向,十年FOC开发经验,精通永磁同步电机和异步电机无感控制。

可提供长期技术顾问咨询或者项目开发,商务合作请加V: PMSM_RFO



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭