ST电机库5.0完全开源对电机控制软件工程师有何影响?
安装了ST的MC_SDK后,生成工程比较麻烦,跟安装的版本,插件都有关系,这样子就很难读到开源的代码。
机缘巧合之下,发现可以直接在安装路径下看到源码,路径是:D:\Program Files (x86)\STMicroelectronics\MC_SDK_5.3.2\Middlewares\ST\MotorControl\MCSDK\MCLib\Any\Src
一般我是把这类软件装在D盘。原厂的源码还是值得初学者学习的,祝大家好运,早日年薪百万!
另外安装5.3.2的版本,源码反而比较少,安装5.0.1版本,代码丰富一些,还有高频注入的源文件:
现在ST的Motor Profiler都更新到5.3.2了,听同事说起过,ST的开源代码效果一般,自己没用过。
看到有些朋友在为"老工程师"担忧,这个见仁见智,谈下个人的看法。
据我所知,认识的变频器或者伺服行业的“老工程师”,这些ST的代码对他们来说意义并不大。比如汇川和英威腾最早做开发的一批人,早在,汇川就有了1140VAC三相永磁同步电机的FOC控制,支持双机主从控制驱动皮带机这类启动力矩要求极高的负载,并且要求双机同步驱动。因为负载太大,一台电机拖不动,需要两台机输出同样的力矩分担负载。
英威腾在左右就有了1140VAC三相交流异步电机的FOC控制,虽然性能不是特别稳定,但是在那个年代基本是最早的破冰者。
1140VAC电机的FOC能做,220VAC/380VAC/36VDC驱动,只是一个移植的问题吧。
以我有限的经历来看,确实有些老工程师不愿意交流,毕竟电气传动行业都是源于艾默生开枝散叶,裂变的各个公司在开发文化上就要求尽量做到内部保密,这些也可以理解。但是要说ST把代码开源对他们造成很大冲击,那就没必要了~~
以ST为例,基本没有HFI的驱动能力。国产公司里已经有不少开发出了基于方波高频注入,脉振高频注入的控制方法和初始位置辨识方法,这类方法主要用在IPM,ST主要面向家电和工具市场,很少涉猎IPM的驱动。
SPM的低速带载能力,ST基本没有,包括很多芯片厂家,清一色的If+SMO,复杂一点就是If+Luenberger,基本只有中高速能带载。在通用电控行业,无传感器PMSM都要求做到20:1的调速范围,即5%的额定速度必须输出额定力矩,速度精度满足+/-0.5%,转矩精度+/-5%。用到的方法有电流模型、磁链模型、可以动态补偿的If(对于阶跃负载不适用)。
到了高速范围,SMO因为速度精度难以达标,基本没有使用在通用电控行业,模型参考自适应因为低速比较差,对参数敏感在工业界鲜有使用。常见的是基于旋转坐标系的拓展反电势法或者磁链模型、电流模型,后两者在全速度范围内都可以使用,不需要切换。以上都是比较常见的方法,还有更多衍生的方法就不列举了。
这些方法老工程师们参与了很多。
再说到环路,接触的大多数芯片方案,比如峰岹Fortior或者技领Active-semi,速度环和电流环,弱磁,基本都是一个手动调试PI参数的方法,即使要求输入电机参数,也没有考虑建立数学模型进行参数自整定。离线自整定没有,更不用说在线自整定了。电流环也没有考虑过加前馈,更不用说考虑深度弱磁需要的复矢量电流环。转动惯量没辨识过,速度环增益完全靠调试。
以上都是一些基本的FOC环路,更加复杂的就包括:低速带载对定子电阻的敏感性问题,在线参数辨识,自适应的死区补偿,弱磁快速退饱和等等。
在伺服或者CNC机床、主轴行业,对于在线惯量和负载辨识、smoothing卷积、在线自适应滤波,芯片厂家就更加没有积累了。
ST的代码开源对于初学者帮助很大,可以快速上手,建立对FOC的总体认识,间接促进了这个行业的整体发展。但是开源的代码距离稳定的产品还是有很大距离,通过开源代码上手了以后,长征才刚刚开始,仍需结合实际的项目同时补充理论基础,继续努力。
毕竟电控不是以代码量取胜,除非汽车行业,还是以手写代码为主,MBD比较少。各种具体控制算法和源码,是无穷无尽的。真正重要的是开发和解决问题的方法和思路,加上经验的积累,这是电控的核心,也是无法开源的,只能靠时间孤独的积累。
如果我有幸能遇到老工程师,我会诚心向他们请教学习,也希望朋友们多多交流。