本文将通过一个PMSM在Simulink下的FOC仿真,来对比PI速度环和滑模速度环的效果。结果显示未经优化的滑模速度环和PI速度环在动态性能上差不多。如果想要更好的性能就需要改进滑模算法,包括减小抖振、减小过冲、加快过冲恢复时间。
模型取自教材《现代永磁同步电机控制原理及Matlab仿真》的图3-8,如下:
Iq电流环在速度环里面,为了使电流全用于输出转矩,所以还有一个Id=0的电流环。
电机以1000rpm恒定转速工作,在0.2s是加载TL=10Nm,得到输出转矩、三相电流、转速如下图:
可以看到因为有PI速度环的存在,在加载后速度也可以很快恢复到1000rpm。
电机参数确定、PI参数也调好了以后,系统是具有一定的抗扰动能力和比较好的动态能的。
PI控制方法对电机内部参数比较敏感,当电机内部参数发生变化或系统受到外界扰动的影响时,简单的PI控制方法并不能满足实际的要求。
使用“滑模控制”方法,把PI控制的“把速度的差(speed_ref-speed_feedback)尽快趋近零”的思想变为“把速度的差和差的变化率尽快趋近零,使系统稳住”。
“滑模控制是变结构控制系统的一种控制策略。这种控制策略与常规控制的根本区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。这种特性可以使系统在一定条件下沿规定的状态轨迹做小幅、高频率的上下运动,这就是所谓的“滑动模态”。这种滑动模态是可以设计的,并且与系统的参数和扰动无关。因此,处于滑动模态的系统具有很好的鲁棒性。”
——《现代永磁同步电机控制原理及Matlab仿真》袁雷 等
0.1s处速度从1000rpm提高到1500rpm、0.3s处加载TL=10Nm,得到SMC仿真波形对比PI控制器:
可以看到SMC在输出转矩上的过冲比PI要小一些;相电流和转速上的过冲两者都很接近,SMC的恢复比PI要慢一些。
下面说说SMC控制的原理。
滑模控制中存在一个“滑模面”,用来表示系统状态(以下简称“状态”)的“理想情况”。于此同时状态存在一个“实际情况”,就是利用传感器实测或物理原理上得到的那些物理量,转换出来的“实际状态”——“状态”不一定就是这些物理量本身,很可能是一些误差量、导数之类的,状态(变量)的选择取决于哪些东西便于计算、而且下次计算也要继续用到的。“滑模面”之所以称为“面”,是因为包含了一个“分界”的概念——如果“实际状态”>“理想状态”,则执行控制函数A;如果“实际状态”<“理想状态”,则执行控制函数B——这也是所谓“变结构控制”的意思。
滑模控制的目的不像PI控制器那样“希望某一个量尽快稳定到期望值(误差趋近零)”,而是“希望这些系统状态的组合一起尽快稳定到期望值”。
这么说应该比较懵,直接上图:
上图蓝色直线是理想系统状态:右下角端点是它的起点,也是电机启动瞬间、SMC控制器“就希望它能达到的状态”(然而实际电机的状态还处在右上方[105,0]的位置);中间的[0,0]坐标是蓝色直线的终点。
上图红色曲线是电机在运行过程中的实际状态:它从图像右边开始趋向蓝线,并以“到达蓝线终点[0,0]”为目的。曲线上存在两段斜率近似无穷大的点(超出绘图界面),分别对应“0.1s转速从1000提到1500”和“0.3s加载10Nm”两个情况。
如果没有上述两个改变输入的情况,电机从一开始就运行在“1000rpm、加载10Nm”下,得到相轨迹如图:
插句题外话:此时看电机的输出,SMC对比PI有明显的性能提升,包括输出转矩的波动减小、相电流更稳定,但是转速收敛慢于PI控制:
好了,回到SMC。
相轨迹图的坐标轴分别是“滑模面”的两个分量。这个例子中系统状态函数(书中把这个定义为“滑模面函数”,但我觉得不好理解,暂且称为“系统状态函数”吧!)s = c * x1 + x2,c是可调参数,x1是速度差(speed_ref-speed_feedback),x2是速度差的导数(diff(speed_ref-speed_feedback))。
令s=0,得到滑模面x2 = -c * x1,即相轨迹图中蓝色直线,它穿过原点,斜率为-c。
看回相轨迹图,红色曲线在0.4s的过程中,貌似在靠近蓝线的曲折过程中就耗费了大量时间,所以——SMC真的能使系统响应及时吗?
为此我特地测了两个输入突变点以及对应的时刻,发现系统在输入突变后分别0.013ms和0.117ms的短时间内开始趋近滑模面。
所以相轨迹图上即使轨迹很绕很长,但它并不能反映系统进入稳态的时间长短,只能反映系统趋近滑模面后还会不会逃逸、抖振严不严重。
从相轨迹图看到,系统状态远离滑模面时,它的趋近过程会比较平滑且直接;当靠近滑模面后会不断在它的两侧来回振荡——这个是滑模控制的“抖振问题”。
“…总之, 抖振产生的原因在于: 当系统的轨迹到达切换面时,其速度是有限大, 惯性使运动点穿越切换面, 从而最终形成抖振, 叠加在理想的滑动模态上。对于实际的计算机采样系统而言, 计算机的高速逻辑转换以及高精度的数值运算使得切换开关本身的时间及空间滞后影响几乎不存在, 因此, 开关的切换动作所造成控制的不连续性是抖振发生的本质原因。在实际系统中, 由于时间滞后开关、空间滞后开关、系统惯性、系统延迟及测量误差等因素, 使变结构控制在滑动模态下伴随着高频振动, 抖振不仅影响控制的精确性、增加能量消耗, 而且系统中的高频未建模动态很容易被激发起来, 破坏系统的性能, 甚至使系统产生振荡或失稳, 损坏控制器部件. 因此。关于控制信号抖振消除的研究成为变结构控制研究的首要工作。”
——《滑模变结构控制理论及其算法研究与进展》刘金琨、孙富春
这里有篇文章讲述了一种减小电机控制中的抖振:
“为了提高永磁同步电动机调速系统的动态品质,在分析常规指数趋近律滑模变结构控制基础上,提出了一种新型指数趋近律。该趋近律引入系统状态量的幂函数,使趋近速度与系统状态变化相关联,解决了常规指数趋近律切换带为带状,系统状态趋近于原点的一个抖振的问题(理想状态为趋近于原点),有效抑制了滑模的固有抖振问题,提高了趋近速度。”
—— 《永磁同步电机滑模变结构调速系统动态品质控制》张晓光 等
这个思想类似拉氏变换相对于傅里叶变换的改进:“随着时间推移,会有一个越来越小的系数把变量变得无穷小。”
如下,改进后的SMC输出在积分项的后面两项加上了|x1|的指数幂,而x1为速度差。
我按照该思想尝试修改SMC模型,遇到几个问题: