核心内容摘要
当保守遇上奔放:一场意想不到的情感与身体的双重奏
前言我们为什么要用滑模观测器想象一下你想精确控制一个永磁同步电机就像控制一辆高性能赛车。
你需要知道它的转速和转子位置相当于赛车的速度和方向盘角度才能给出正确的控制指令油门和转向。
有感控制 给电机装上“传感器”如编码器。
这就像给赛车装了高精度GPS和陀螺仪直接读取数据简单准确。
但传感器会增加成本、体积并可能出故障。
无感控制 不给电机装传感器。
这就像让你蒙着眼睛开车只能通过感受车身的震动电流、听发动机的声音电压来推测当前的车速和方向盘角度。
滑模观测器就是一种非常强大的“推测”算法。
滑模观测器的核心优势强悍鲁棒性 即使电机的参数如电阻、电感发生较大变化它依然能稳定工作。
计算量小 相比其他无感算法如卡尔曼滤波它更简单对硬件要求低。
实现简单 其核心思想直观在软件中易于实现。
本文的目标是让你不仅知道怎么用更明白为什么这么用出了问题知道从哪里下手。
预备知识你需要知道什么在“上车”之前请确保你了解以下基础知识就像学开车要先知道油门和刹车PMSM电机基本原理 知道定子、转子、永磁体是什么。
坐标变换 理解 Clark 变换将三相系统变为两相和 Park 变换将静止坐标系变为旋转坐标系。
FOC矢量控制框架 了解下图中最基本的无感FOC控制回路。
我们的滑模观测器就是用来替代图中“位置和速度估计器”这个模块的。
滑模观测器核心原理一场“你追我赶”的游戏
目标找到反电动势电机的反电动势里包含了转子的位置和速度信息。
我们的终极目标就是把它“提取”出来。
电机在定子坐标系下的电压方程可以简写为U R*I L*dI/dt E其中E就是反电动势它包含了我们梦寐以求的转子角度信息。
设计观测器创造一个“虚拟电机”我们无法直接测量E但我们可以用软件创建一个“虚拟电机”它的模型和真实电机一模一样。
这个虚拟电机的方程是Û R*Î L*dÎ/dt ν注意两点Î是观测器估计出的电流不同于真实测量的电流I。
ν是我们额外加入的一个控制信号它是滑模观测器的“灵魂”。
“你追我赶”的游戏开始现在我们让虚拟电机和真实电机接受相同的电压U。
然后我们比较谁输出的电流更准即计算电流误差Ĩ Î - I。
滑模观测器的核心规则超级重要我们这样来设计控制信号νν -h * sign(Ĩ)sign()是符号函数Ĩ为正时输出 1为负时输出 -1。
h是一个很大的正数叫做滑模增益。
这个规则就像一场追逐游戏情景A 如果估计电流Î比实际电流I大了Ĩ 0那么ν就会是一个很大的负值。
这个负值会作为一项“惩罚”加到虚拟电机的方程里迫使Î快速减小向I靠拢。
情景B 如果估计电流Î比实际电流I小了Ĩ 0那么ν就会是一个很大的正值。
这个正值会迫使Î快速增大向I靠拢。
最终结果 在ν的强大控制下估计电流Î会被“逼迫”得紧紧跟随实际电流I两者之间的误差Ĩ非常小。
胜利的果实提取反电动势当游戏达到稳定状态即Î紧紧跟住I时我们可以证明一个美妙的结论此时那个强大的控制信号ν就近似等于我们想要的反电动势E即E ≈ ν -h * sign(Ĩ)这样我们就不需要传感器而是通过软件算法间接地“观测”到了反电动势E
关键细节与参数设计告别“瞎调”
滑模增益h怎么选精确计算告别玄学h不能随便选。
选小了Î追不上I观测器失效。
选大了Î会在I附近剧烈抖动估计出的E噪音很大。
通过李雅普诺夫稳定性理论别怕就是个数学工具我们可以精确计算出h必须满足的条件h max( |E| )也就是说滑模增益h必须大于反电动势E可能出现的最大绝对值。
在实际中我们可以根据电机的最大转速来估算E的最大值从而科学地确定h。
如何从反电动势E得到角度和速度锁相环PLL提取出E后它仍然是一个高频抖动的交流信号。
我们需要一个“解码器”来读出里面的角度和速度信息。
这个解码器就是锁相环。
锁相环的工作原理可以简单理解为我们根据当前估计的角度θ̂生成一个正弦信号sin(θ̂)和一个余弦信号-cos(θ̂)。
将估计出的反电动势Eα和Eβ分别与这两个信号相乘后相加得到一个误差信号Error Eα * (-cosθ̂) Eβ * sinθ̂。
可以证明这个误差信号近似正比于真实角度θ和估计角度θ̂的差值即Error ≈ K * (θ - θ̂)。
将这个误差信号送入一个PI控制器PI控制器的输出就是估计的转速ω̂再将ω̂积分就得到了估计的角度θ̂。
这样就形成了一个闭环系统不断调整θ̂直到θ̂紧紧跟踪住真实的θ。
锁相环PI参数设计 将整个系统看作一个标准的二阶系统其带宽和阻尼系数决定了响应速度和平稳性。
我们可以根据期望的系统性能例如希望它多快能跟上速度变化来计算出PI参数。
如何减小抖动—— 饱和函数直接使用sign()函数会导致严重抖动。
一个有效的改进是用饱和函数 代替它。
饱和函数在误差Ĩ很小时输出值也按比例变小而不是直接跳变到±h。
这就像从“非黑即白”变成了“有灰度过渡”能有效平滑信号大幅减小抖动。
实施步骤与
注意事项
在Simulink中建模步骤1 搭建一个有传感器的FOC模型确保电机控制本身是正确的。
步骤2 参照文中的公式建立滑模观测器模块和锁相环模块。
步骤3 在有传感器模式下运行模型此时你能获得真实的角度和速度。
利用这些真实数据来调试和确定滑模增益h、锁相环PI参数、以及低通滤波器的截止频率。
这是最关键的调参步骤步骤4 参数调好后将控制回路切换为使用滑模观测器估计的角度和速度实现真正的无传感器控制。
在硬件上运行在代码中实现时需要将连续的微分方程进行离散化例如使用前向欧拉法以适应数字控制器的离散采样特性。
重要局限性低速和启动性能滑模观测器依赖于反电动势而反电动势与转速成正比。
在电机静止或极低速时反电动势几乎为0观测器如同“瞎子”无法正确估计位置。
因此滑模观测器通常不适合从零启动尤其不适合带重载启动。
它更适用于中高速运行。
解决启动问题需要结合其他方法如高频信号注入法适用于低速形成“分段”控制启动和低速用信号注入中高速切换到滑模观测器。
六、
总结滑模观测器是一个强大而优雅的无感控制算法。
它的核心思想是“造模型”创建一个虚拟电机模型。
“搞对比”比较虚拟电机和真实电机的输出电流。
“强控制”根据误差施加一个强大的开关控制信号迫使模型输出跟踪真实输出。
“得结果”在稳定状态下这个控制信号本身就包含了我们需要的位置和速度信息。
希望这个教程能帮助你真正理解并掌握滑模观测器。
记住理解原理是灵活应用和解决问题的根本切忌“电机能转就行”的盲目调试。
祝你成功