第1章:基于反电动势的滑模观测器
各位同学,咱们今天正式进入滑模观测器的核心内容。说实话,我刚开始接触PMSM无位置传感器控制时,最头疼的就是反电动势的提取。你想想看,电机转起来之后,反电动势信号就藏在电压电流里,怎么把它干净地捞出来?这就是滑模观测器要干的事。
1.1 PMSM反电动势模型
先说说反电动势是怎么来的。永磁同步电机转起来后,转子上的永磁体切割定子绕组,自然就产生了反电动势。这个反电动势里,藏着转子位置和速度的信息。
我习惯用α-β坐标系下的数学模型。为啥用这个坐标系?因为咱们做无位置传感器控制,最终要的就是转子角度,而α-β系下的反电动势分量直接跟角度挂钩。
PMSM在α-β坐标系下的电压方程是这样的:
uα = Rs·iα + Ls·(diα/dt) - ωe·ψf·sinθe
uβ = Rs·iβ + Ls·(diβ/dt) + ωe·ψf·cosθe
其中,eα = -ωe·ψf·sinθe 和 eβ = ωe·ψf·cosθe 就是反电动势分量。你看,角度θe就藏在里面。
关键点:反电动势的幅值跟转速ωe成正比,跟磁链ψf成正比。转速越低,反电动势越弱。这就是为什么零速启动时,反电动势法基本失效。
我在项目中遇到过一个问题:电机低速运行时,反电动势信号被噪声淹没了。那时候我试了好多滤波方法,最后发现——嗯,单纯靠滤波解决不了根本问题,得从观测器结构上想办法。
1.2 滑模观测器设计
滑模观测器的思路其实很直接:构造一个电流观测器,让观测电流跟着实际电流跑。观测误差通过滑模控制律来修正,而滑模控制律的输出,就是反电动势的估计值。
说白了,就是利用电流误差来反推反电动势。我画个框图你们就明白了:
观测器的核心方程是这样的:
dîα/dt = (-Rs/Ls)·îα + (1/Ls)·uα - (k/Ls)·sign(îα - iα)
dîβ/dt = (-Rs/Ls)·îβ + (1/Ls)·uβ - (k/Ls)·sign(îβ - iβ)
其中k是滑模增益,sign()是符号函数。观测电流跟实际电流的误差,通过滑模控制律来修正。当观测器进入滑模面后,控制律的输出就等效于反电动势。
我的经验:滑模增益k的选择很关键。k太小,观测器进不了滑模面;k太大,抖振严重。我一般先按k > max(|eα|, |eβ|)来估算,再根据实际波形微调。
1.3 符号函数与饱和函数
符号函数sign(x)长这样:x>0时输出1,x<0时输出-1,x=0时输出0。这玩意儿有个毛病——不连续。在滑模控制里,这种不连续性会导致高频抖振。
抖振是什么?就是观测器输出在真实值附近来回跳。你想想看,符号函数在零点附近跳变,控制量也跟着跳,反映到反电动势估计值上就是毛刺。
怎么解决?用饱和函数代替符号函数。饱和函数在零点附近是一条斜线,不是跳变:
sat(x) =
-1, x < -Δ
x/Δ, -Δ ≤ x ≤ Δ
1, x > Δ
Δ是边界层厚度。Δ越小,饱和函数越接近符号函数;Δ越大,平滑效果越好,但等效反电动势的精度会下降。
注意:饱和函数虽然能抑制抖振,但会引入相位延迟。我在一个项目中把Δ设得太大,结果角度估算滞后了10度电角度,电机直接抖起来了。后来把Δ调小到0.01,效果才正常。
我曾经踩过一个坑:用符号函数时,观测器输出毛刺太大,低通滤波器都压不住。后来换成饱和函数,再配合合适的Δ值,波形干净多了。所以我的建议是——能用饱和函数就别用符号函数。
1.4 低通滤波器设计
滑模观测器输出的等效反电动势,高频分量很多。为啥?因为滑模控制本身就是高频切换。所以必须加低通滤波器。
我常用的是一阶低通滤波器,传递函数是:
H(s) = ωc / (s + ωc)
其中ωc是截止角频率。离散化之后,在代码里实现就是:
ê_filtered(k) = (1 - α)·ê_filtered(k-1) + α·ê_raw(k)
α = ωc·Ts,Ts是采样周期。α越小,滤波效果越强,但延迟也越大。
截止频率怎么选?我一般按电机额定转速的5-10倍来设。比如额定转速3000rpm,电频率150Hz,截止频率设在750-1500Hz之间。太低的话,角度估算延迟大;太高的话,滤不干净。
| 参数 | 推荐范围 | 我的经验值 |
|---|---|---|
| 滑模增益k | 10-100 | 30(针对200W电机) |
| 边界层Δ | 0.001-0.1 | 0.01 |
| 滤波器截止频率 | 500-2000Hz | 1000Hz |
| 采样频率 | 10-20kHz | 10kHz |
避坑指南:我曾经把低通滤波器的截止频率设得太低,结果角度估算延迟了30度,电机直接失步。后来我加了一个相位补偿环节,才把这个问题解决。具体做法是:根据滤波器在基频处的相移,对估算角度做前馈补偿。
最后说一句,低通滤波器和滑模观测器是一对冤家。滤波器压抖振,但引入延迟;滑模增益大,收敛快,但抖振大。你得在两者之间找平衡。我个人的习惯是:先调滑模增益让观测器稳定收敛,再调滤波器把毛刺压到可接受范围,最后检查角度延迟是否在5度电角度以内。
好了,这一章的内容就到这儿。反电动势模型是基础,滑模观测器是核心,符号函数和饱和函数是细节,低通滤波器是必备后处理。把这几个点串起来,你就能搭出一个能用的滑模观测器了。
公众号:蓝海资料掘金营,微信deep3321