基于PLL的SMO滑模观测器算法,永磁同步电机无传感器矢量控 制,跟基于反正切的SMO做对比,可以有效消除转速的抖动。

永磁同步电机无传感器控制领域有个挺有意思的现象:工程师们和滑模观测器(SMO)的关系就像老友记里的Ross和Rachel——分分合合又爱又恨。这玩意儿抗干扰能力确实强,但那个祖传的转速抖动问题让多少人在实验室熬成了熊猫眼。今天我们聊点实战技巧:如何用PLL给滑模观测器做个"心脏搭桥"。

先看传统基于反正切的SMO实现,核心代码大概长这样:

// 反电动势观测
emf_alpha = Lq * (i_alpha_hat - i_alpha) / Ts;
emf_beta = Lq * (i_beta_hat - i_beta) / Ts;

// 反正切法求角度
theta_est = atan2(-emf_beta, emf_alpha);

这种方法的转速估计就像坐过山车,特别是在低速区。问题出在微分环节——直接把反电动势微分相当于给高频噪声开了VIP通道。某次实测中,当转速指令设为200rpm时,实际波形抖得跟心电监护仪似的,峰峰值能达到±30rpm。

换成PLL版本的SMO后,画风突变。核心改动在角度追踪环节:

// PLL参数
float Kp = 0.5;
float Ki = 100.0;

// 相位检测器
float phase_error = emf_beta * cos(theta_est) - emf_alpha * sin(theta_est);

// 积分分离式PI
if(fabs(phase_error) < 0.1) {
    integral += Ki * phase_error * Ts;
}
omega_est = Kp * phase_error + integral;

// 角度积分
theta_est += omega_est * Ts;

这个结构妙在把角度和转速估计解耦了。PLL本质上是个带通滤波器,它的积分环节对高频噪声有天然抵抗力。就像给观测器装了个机械飞轮,转速估计变得平滑许多。同样的200rpm工况下,抖动直接缩水到±5rpm以内。

基于PLL的SMO滑模观测器算法,永磁同步电机无传感器矢量控 制,跟基于反正切的SMO做对比,可以有效消除转速的抖动。

实际调试时有个坑要注意:PLL带宽别设太高。曾经有个哥们把Ki调到500,结果PLL比观测器本身还敏感,转速波形开始跳机械舞。一般建议让PLL带宽比控制系统带宽低一个数量级,比如速度环是100Hz的话,PLL设在10Hz左右比较安全。

在风机水泵这类对成本敏感的应用中,这种改进方案性价比很高。不需要增加硬件传感器,只需在原有SMO算法上改动几十行代码。某水泵厂实测数据显示,改进后低速段的电流THD从8.7%降到了4.2%,电机温升降低了11℃——这对24小时运行的设备来说,电费单都能好看不少。

不过也别把PLL当万能药,遇到突加减载工况时响应速度会稍慢。这时候可以配合自适应滑模增益,或者做个负载观测器前馈补偿。控制算法就像做菜,火候到了自然香。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐