ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

滑模观测器原理与无感FOC调试实战:从PMSM建模到角度提取

滑模观测器原理与无感FOC调试实战:从PMSM建模到角度提取 做电机控制这几年滑模观测器是我在无感FOC项目里用得最多的位置估计方案。它原理不复杂但很多朋友拿到代码之后调不明白问题往往出在只看了公式没吃透公式背后的思路。这篇文章我把滑模观测器的原理推导完整走一遍从PMSM的数学模型说起一直到怎么从开关噪声里把转子角度捞出来再结合FOC应用的工程细节聊聊低通滤波、相位补偿、参数整定这些坑是怎么踩过来的。如果你正准备入门无感控制或者正在调试滑模观测器但角度总是乱飘这篇文章应该能省你几天时间。1. 滑模观测器到底在“观”什么1.1 无感控制的核心困境做永磁同步电机PMSM矢量控制正常情况下得时刻知道转子在哪。有编码器或旋变的时候这不是问题但工业上很多场合装不了传感器或者想省成本、提高可靠性就必须走无感路线。无感控制的核心任务是只靠母线电压和相电流实时估计出转子的电角度和电转速。这两个量一旦估计偏了电流矢量就会落在错误的d-q轴上轻则力矩抖动重则失控飞车。滑模观测器是解决这个估计问题的一套经典方案。它在电机控制里被用得最广一个关键原因是它不依赖电机的凸极率对参数偏差也有不错的鲁棒性。也就是说只要电机在中高速段运行它都能给出相对稳定的角度估计。对很多刚切入无感控制的人来说第一个能调通的位置观测器多半就是滑模观测器。1.2 为什么滑模的“脾气”适合做观测器滑模控制的基本思路用一句话概括构造一个误差状态再用一个不连续的切换控制律把这个误差强制“拍”到一个预设的滑动面上让系统状态沿着这个面滑行到零。它的特点是控制律和系统参数关系不大输入只按误差符号来回切换所以对外部扰动和内部参数变化有很强的抑制作用。把滑模控制的思路用在观测器里就是拿电流的真实测量值和观测值之间的误差来设计切换项。因为电流是我能测到的量而反电动势和它耦合在同一个方程里一旦把电流误差滑到零切换项的平均效果就等价于反电动势反电动势里又藏着转子角度。所以我总爱说滑模观测器其实是在“利用”抖动而不是“害怕”抖动——抖动的包络均值里恰好带着位置信息。这个思路是后面整个推导的核心。2. 推导前的数学准备PMSM模型与反电动势2.1 静止坐标系下的电压方程无论什么观测器推导第一步都从电机模型开始。PMSM在α-β静止坐标系下的电压方程是u_α R·i_α L·di_α/dt - ψ_f·ω_e·sin(θ_e)u_β R·i_β L·di_β/dt ψ_f·ω_e·cos(θ_e)其中R是相电阻L是相电感这里按表贴式电机处理认为L_d L_q Lψ_f是转子磁链ω_e是电角速度θ_e是转子电角度。把方程中不含电流导数的项整理出来定义成反电动势e_α -ψ_f·ω_e·sin(θ_e)e_β ψ_f·ω_e·cos(θ_e)于是电压方程可以改写成电流导数显式的形式di_α/dt (u_α - R·i_α - e_α) / Ldi_β/dt (u_β - R·i_β - e_β) / L这个改写非常关键。它说明电流变化率由三部分决定——电压、电阻压降、反电动势。如果能用一个观测器重构这条电流动态方程反电动势就成了方程里的“未知输入”需要被估计出来。2.2 反电动势是位置信息的载体看反电动势的两个分量正弦和余弦正好对应同一个角度θ_e。也就是说转子电角度被编码在了反电动势两个分量的比值里。得到反电动势后位置可以直接用反正切算出θ_e atan2(-e_α, e_β)同时反电动势幅值等于ψ_f·ω_e和转速成正比所以转速也能还原ω_e √(e_α² e_β²) / ψ_f到这里问题就很清晰了无感控制的本质变成如何准确估计反电动势的两个分量。而滑模观测器就是专门干这件事的。电角速度和机械转速之间还差一个极对数换算具体实现时别忘了除一下极对数p不然调试时会发现转速怎么都对不上。3. 核心推导从电流误差到转子角度3.1 观测器方程怎么搭既然电流动态方程已知我就可以构造一个“影子系统”。把反电动势项替换成一个待设计的切换输出v_α、v_β得到观测器方程dî_α/dt (u_α - R·î_α - v_α) / Ldî_β/dt (u_β - R·î_β - v_β) / L这里的关键点是切换输出v要设计成电流观测误差的函数。当电流观测值和实际值完全一致时v必然等于真实的反电动势。反过来只要把误差调节到零我就能从v里拿到反电动势信息。定义电流观测误差s_α î_α - i_αs_β î_β - i_β用观测器方程减去真实方程得到误差动态方程ds_α/dt (-R·s_α e_α - v_α) / Lds_β/dt (-R·s_β e_β - v_β) / L注意这个误差方程里已经不含电压u了它只受反电动势e和切换输出v控制。这给后面的设计省了很多麻烦。从物理意义上理解电流观测误差的来源就是“未知的”反电动势没有被正确建模而我用切换项v去“顶替”这个未知量剩下的工作就是确保这个顶替是收敛的、稳定的。3.2 滑模面设计与可达性验证滑模设计的第一个任务是选滑动面。这里最自然的选择就是让电流误差为零即s_α 0s_β 0切换控制律取符号函数形式v_α k·sign(s_α)v_β k·sign(s_β)接下来必须验证这个控制律能不能把系统状态“推”到滑动面上。我习惯用李雅普诺夫函数验证。取V (s_α² s_β²) / 2求导得到dV/dt s_α·ds_α/dt s_β·ds_β/dt (-R·(s_α² s_β²) e_α·s_α - k·|s_α| e_β·s_β - k·|s_β|) / L第一项永远小于等于零后面每一项要求e·s - k·|s| 0。要使不等式恒成立只需k |e|。也就是说只要滑模增益k大于反电动势峰值dV/dt就严格为负系统状态一定进入滑模。这就是为什么滑模增益不能太小——它不是靠积分凑出来的是靠“大力出奇迹”把误差压到零。这里还要补充一点上面的李雅普诺夫验证是在连续时间域做的数字实现时虽然结论不变但k需要留足裕量因为离散化会带来延迟理论上k |e| 只是必要条件实际中我通常留20%到50%的裕量。3.3 等效控制抖动的信号里藏着什么进入滑动模态后电流误差被强制保持为零。此时从平均意义上讲切换输出必须“恰好替代”反电动势的位置。用等效控制的概念来描述令误差动态方程等于零解出vv_eq e这里的v_eq指的是切换信号在滑动面附近的等效平均值。也就是说反电动势等于符号函数输出经过低通滤波后的结果ê_α LPF(k·sign(s_α))ê_β LPF(k·sign(s_β))这个式子就是整个滑模观测器的“成品公式”。符号函数产生的是高频开关信号低通滤波器把开关频率分量滤掉剩下的低频分量就是反电动势。我经常跟人开玩笑说滑模观测器是把反电动势藏在“开关噪声”里再用滤镜把它找出来。这里有个容易混淆的概念不是切换信号本身光滑而是它在一个PWM周期内的平均作用等于反电动势低通滤波只是把平均作用物化出来而已。3.4 转子位置和转速的最终提取拿到反电动势估计值ê_α、ê_β之后最直接的位置提取方式是用atan2θ̂_e atan2(-ê_α, ê_β)转速则用幅值法ω̂_e √(ê_α² ê_β²) / ψ_f不过工程上我更推荐用锁相环PLL方式提取而不是直接atan2和幅值法。原因有两个一是atan2对噪声敏感反电动势估计值里有一点毛刺角度就会跳二是用atan2算转速还需要额外求幅值和微分噪声会被二次放大。PLL把角度误差经过PI调节器直接输出转速再积分出角度相当于一个闭环跟踪器滤波效果更好。PLL的实现思路是这样的构造参考向量与估计角度的叉乘作为误差信号。实际操作中我会先把估计角度θ̂旋转回d-q系计算q轴反电动势分量e_q当θ̂逼近真实角度时e_q趋近于零。用公式表达就是e_q -ê_α·sin(θ̂) ê_β·cos(θ̂)当θ̂ ≈ θ_e时e_q ≈ |e|·sin(θ_e - θ̂) ≈ |e|·(θ_e - θ̂)这个信号可以直接送给PI调节器PI输出就是电角速度ω_eω_e积分得到连续的角度θ̂。PLL的带宽要单独整定带宽太高会引入噪声太低会动态滞后。我一般取电机电频率的五分之一到十分之一兼顾跟踪速度和滤波效果。4. 应用到FOC之前必须处理的三个工程细节4.1 低通滤波一定会带来相位滞后理论推导里反电动势是从低通滤波器输出端拿到的但低通滤波器会引入相位滞后。一阶低通滤波器的相频特性是φ atan(ω_e / ω_c)其中ω_c是滤波器截止角频率。如果截止频率取1kHz电频率是200Hz相位滞后就是atan(200/1000)大约11.3度。对FOC来说角度误差超过几度力矩效率都会明显下降所以这个滞后必须补偿。补偿的方法是在估计角度上加上滞后角θ_comp θ̂_e φ。由于滞后角随电频率变化最好的做法是实时查表或者用公式计算。很多简化方案固定补偿一个角度这在窄调速范围里能用宽范围就很勉强。实际调试中我一般把截止频率取在额定电频率的3到5倍滞后角用当前估计转速实时算效果明显比固定补偿好。还要注意如果滤波器用二阶或更高阶相位滞后公式要相应变化二阶滤波器在穿越频率附近的滞后接近两倍这一点容易被忽略。4.2 滑模增益k的选择逻辑滑模增益k的选择遵循两条原则一是必须大于反电动势峰值否则滑模面不可达等于白做二是不能过大否则切换信号幅度大、抖振严重还容易放大电流采样噪声。反电动势峰值的估算很简单ψ_f·ω_e_max。工程上常用两种做法一种是根据额定转速和磁链常数算出固定值再加20%裕量另一种是做成自适应k k0 k1·|ω̂_e|低速时增益低一些高速时增益自动抬高。自适应方案在宽调速范围项目中非常值得用能兼顾低转速下的噪声抑制和高转速下的收敛性。但自适应引入了一个隐患转速估计本身有延迟如果负载突变引起转速骤变k的更新速度跟不上短时间内可能出现滑模面不可达的情况。所以实际工程里我会给k做一阶低通平滑再参与计算。需要强调一点k太小会出现“滑不起来”的现象电流误差收敛不到零反电动势估计值幅度偏小角度会跟着不准。这个坑我踩过不止一次调k的时候一定要用示波器或调试器观察电流误差波形而不是只看最终角度。4.3 用饱和函数消除高频抖振教科书里的符号函数理想情况下是完美的但数字实现时切换频率受PWM频率限制符号函数会产生大幅高频抖振这些抖振经过反电动势提取后会污染角度信号。工程上几乎都用饱和函数代替符号函数v k·sat(s/φ)其中φ是边界层厚度。当误差s在[-φ, φ]范围内时输出是连续的线性比例值超出范围才变成符号函数。边界层越厚抖振抑制作用越强但等效控制精度会下降相当于把滑模面“软化”了。这个软化的本质是把理想滑动面换成了实际上的准滑动面系统状态在边界层内做不到严格为零而是围绕零附近做小幅度波动波动幅度和φ直接相关。边界层厚度的选取要和电流采样噪声匹配。我常用的经验值是让φ大致等于电流采样噪声幅值的2到3倍再用仿真或者实测微调。边界层太小饱和函数基本等于符号函数抖振没有改善边界层太大反电动势估计值会出现明显比例偏差角度会整体偏移。总之这是个在抖振和精度之间找平衡的参数没有绝对标准得在具体平台上摸。5. 实测调试经验与常见坑5.1 调k的完整流程先把PI参数和角度提取部分屏蔽直接观察电流误差s_α、s_β和反电动势估计值ê_α、ê_β。运行时给电机一个固定转速逐渐增大k直到电流误差波形变成一条窄带并且ê_α看上去像干净的正弦波。如果ê_α波形失真多半是k不够或者饱和函数边界层太小。k再继续增大波形会开始出现明显毛刺说明增益过头了。这个临界点附近取1.2倍左右就是比较合适的k。然后整定低通截止频率。截止频率越高相位滞后越小但反电动势里的开关纹波越明显截止频率越低滤波越狠但滞后越大。我的习惯是先按额定电频率的5倍设初值再看角度波形抖动情况适当下调。调完这两个参数最后才去动PLL带宽。顺序不能反因为PLL带宽会掩盖前面环节的问题一旦后面换了电机或者运行工况老问题又会冒出来。5.2 低速段的启动策略滑模观测器有个天生短板反电动势幅值与转速成正比转速越低信噪比越差。到了几十转以下反电动势被采样噪声和死区效应淹没滑模观测器基本失效。所以实际系统通常不会让滑模观测器从零转速一直干到高速而是用其他方式启动。常见的启动方案是I-f启动。让电流矢量以固定幅值旋转强制电机旋转到一定转速再平滑切换到滑模观测器控制。切换时要注意两点一是切换时刻电流相位要与估计角度对齐否则会出现力矩冲击二是增益不要突变最好在几百毫秒内渐变让观测器平滑接管。还有一种更简单但体验一般的方式是强制定位后再进入闭环低速段扭矩优势不明显但很多低成本项目也在用。不管哪种方式启动段和运行段之间的过渡逻辑一定要做成状态机明确划分定位、加速、切换、正常运行几个阶段否则现场很容易在临界转速附近反复振荡。5.3 常见问题速查表现象可能原因处理思路角度整体偏大或偏小低通滤波相位滞后未补偿实时补偿atan(ω_e/ω_c)角度抖动、电流噪声大k过大或边界层过小降低k、加大φ启动阶段飞车切换时相位不对齐对齐电流相位、渐变过渡高速时角度误差增大截止频率固定导致滞后变化用估计转速计算实时补偿角度反电动势波形有六次谐波逆变器死区效应加死区补偿或相应滤波估计转速波动大幅值法受噪声影响改用PLL提取转速轻载时角度漂移反电动势幅值太小降低k下限、提高采样精度满载时失步k裕量不足按峰值反电动势加50%裕量5.4 我踩过的几个坑第一电机参数必须准确。滑模观测器号称鲁棒但R和L不准会导致电流观测误差方程里混入额外项。我遇到过一次电机相电阻随温度漂了大约30%低速端角度明显偏移排查了很久才发现是参数问题。工程上至少要保证磁链常数ψ_f和相电感L的精度这两个参数直接决定反电动势幅值和解算结果。如果现场没法做离线参数辨识至少要在软件里留出参数标定接口用自整定方法在线测一遍。第二采样同步很关键。电流采样必须在PWM中心时刻对准否则噪声会直接进入电流误差。我见过不少案例滑模观测器参数怎么调角度都抖最后发现是电流采样窗口没对准和PWM的中心对齐差了半个周期。这个坑很容易被忽视因为波形看上去只是“有点噪声”不会明显报错。第三PLL的比例增益不能太大。调PLL时很多人习惯用大P快速收敛结果就是高频噪声全部通过角度抖动。我的经验是PLL带宽取电机电频率的十分之一左右动态和滤噪比较平衡。这一点尤其在低开关频率的平台上更敏感IGBT大功率驱动器开关频率只有几kHzPLL带宽如果整得过高谐波会直接把角度带偏。我个人在实际操作中的体会是滑模观测器调稳之后整台电机的控制手感会完全不一样。调试时最难的不是公式推导而是把示波器上看到的每一个异常波形都能对应到具体环节里。别急着上复杂算法先把增益、滤波、补偿这三样调干净这套方案能应付绝大多数中高速应用。这个思路后续还可以向变速趋近律、低速注入融合的方向扩展有机会我把这两块也展开聊。
返回列表