
基于改进SMO滑模观测器的转子磁链模型在PMSM无传感器矢量控制中的应用
搞无感FOC最头疼的就是低速抖动和转向切换时角度跳变。去年调传统滑模观测器(SMO)的时候,经
常遇到电机带载后转速表像抽风似的乱抖,特别是转速低于200转那会儿,角度估算误差能飙到±15度。直
到试了基于转子磁链的改进方案,这些问题才算找到解药。
传统SMO的软肋在反电动势观测环节。用α-β坐标系下的反电动势做反正切计算角度时,低速下反电
势幅值跟噪声都快分不清了。这里有个典型代码段:
```c
// 传统SMO角度计算
e_alpha = cur_alpha_obs - cur_alpha_meas;
e_beta = cur_beta_obs - cur_beta_meas;
theta = atan2(-e_beta, e_alpha);
```
当电机突然加载,电流突变会导致观测器增益跟不上的时候,滑模面直接开启震动模式,角度输出
就像被门夹过的正弦波。
改进版的核心是把观测对象从反电动势换成转子磁链。磁链ψ由电流和反电动势积分得到:
```c
// 磁链观测器实现
psi_alpha += (v_alpha - Rs*i_alpha + Ls*di_alpha/dt) * Ts;
psi_beta += (v_beta - Rs*i_beta + Ls*di_beta/dt) * Ts;
```
积分特性自带低通滤波效果,实测在50转时磁链幅值还能保持0.3Wb以上,比反电势靠谱多了。滑模
面的设计也得跟着改:
```matlab
% 滑模面切换函数
if psi_error > hysteresis
sliding_surface = K_slide;
elseif psi_error < -hysteresis
sliding_surface = -K_slide;
else
sliding_surface = psi_error * K_slide / hysteresis;