资讯动态

无差拍电流控制遇上LESO:扰动观测器如何挽救模型失配

发布时间:2026/10/21 16:16:56 来源:尧图企业网站定制
做电流环控制这么些年我一直有个近乎固执的观点无差预测电流控制DPCC在理想模型里能跑到什么性能其实没那么重要真正值得反复推敲的是当电感参数漂移、电阻随温度变化、逆变器死区等效扰动混进来之后这套标榜无差的算法还能不能兑现它的承诺。最近几个月我把线性扩展状态观测器LESO和无差预测电流控制放到同一个电流环里从离线仿真到DSP实机完整跑了一轮验证收获很大也踩了几个文档里不会写的坑。这篇博文把整个设计思路、状态方程推导、增益整定以及实测对比完整掰开给正在被模型失配和扰动拖后腿的同行一份可以参照的作业。1. 无差拍电流控制的老毛病模型一失配无差就变有差1.1 无差拍控制的理想等式无差预测电流控制业界常叫无差拍预测电流控制DPCC核心思想听起来很简单用离散化的电流微分方程反解出逆变器在一个采样周期内该输出的电压矢量让电流在下一次采样点时精确等于参考值。一阶电流环模型可以写成一阶微分方程[ L\frac{di}{dt} u - Ri - e ]离散化之后通常写成[ i(k1) (1-\frac{RT_s}{L})i(k) \frac{T_s}{L}u(k) d(k) ]其中 (d(k)) 里塞的是反电动势、外部扰动、参数失配产生的等效电压等所有说不清的部分。无差拍的做法就是把 (i(k1)) 直接定成参考值 (i^*(k1))反解控制量[ u(k) \frac{L}{T_s}\big[i^*(k1) - (1-\frac{RT_s}{L})i(k)\big] - L\cdot d(k) ]这个方程的优点是极致简洁只要模型参数 (L)、(R) 是对的扰动项 (d(k)) 能被准确估计或者忽略电流一拍之内就能跟上指令。问题是这两个条件是理想状态下的实际系统里很难同时满足。1.2 电感漂移后会发生什么我在调试中见过太多这样的场景仿真里电感设置 5mH无差拍控制器表现完美电流THD不到2%换到实际柜子上运行半小时电流波形就开始出现明显的低频振荡电流过冲也变大了。问题根源往往就在电感参数上。电感会随着磁路饱和程度、绕组温度变化而改变。假设实际电感是标称值的1.3倍也就是 (L_{actual}1.3L_n)但预测方程里的参数据仍是 (L_n)。那么实际电流变化量会是控制器预期值的1.3倍第一拍电流就会超调。超调之后的电流值又会被预测方程拿去做下一拍计算误差在逐拍递推中累积最终表现为电流振荡甚至发散。这个放大机理值得多说一句无差拍控制相当于在每个采样周期内做一次开环式的模型逆求解它没有比例积分控制器那样的误差积分通道去修正模型偏差。偏差每拍都会重新进入下一拍的计算形成了一种类似于正反馈的累积。这不是控制器调试能简单消除的必须从模型或者扰动处理层面入手。1.3 常见的修复路线针对模型失配工业上大致有几条路一是参数在线辨识在线实时估计 (L) 和 (R) 然后更新预测模型。这条路在电机控制里很流行但实现复杂辨识参数的激励条件和收敛速度都受工况限制电流静默运行接近零电流时很多辨识算法直接失效。二是用扰动观测器把模型偏差 外部扰动 未建模动态打包成总扰动去估计并补偿。这种方法不需要知道到底是哪种参数出了偏差也不需要单独认识扰动源把问题统一丢给观测器去对付。LESO 就属于这一类。为什么我最终选了 LESO因为它把扰动当成一个额外的状态变量来估计相比传统的扰动观测器结构更统一稳定性分析和增益配置都很直接而且它本身还顺带提供了电流状态的滤波估计可以一鱼两吃。2. LESO的核心把说不清的扰动变成第五个状态2.1 扩张状态到底扩张了什么很多刚接触 LESO 的朋友会问状态观测器我是知道的但扩张状态观测器多出来的扩张两个字是什么意思先看原始系统。以 d 轴电流为例把前面的一阶模型重新整理[ \frac{di}{dt} -\frac{R}{L}i \frac{1}{L}u f ]这里的 (f) 是总扰动包含反电动势耦合项、参数失配项、逆变器死区等效扰动等。如果我们只知道 (f) 是某个不确定的、有界的量就可以把 (f) 当作一个全新的状态变量用 (x_1 i) 表示电流(x_2 f) 表示总扰动那原系统就变成了[ \begin{cases} \dot{x}_1 -\frac{R}{L}x_1 \frac{1}{L}u x_2 \ \dot{x}_2 h \end{cases} ]其中 (h \dot{f})它是扰动变化率。这一步就是扩张系统阶数从一阶变成了二阶代价是引入了一个未知的 (h)但它只进入状态方程不影响观测器的设计框架。这种做法的巧妙之处在于我们不需要知道 (f) 的数学模型不需要知道它是正弦波、阶跃还是缓慢漂移只要它变化速度相对于观测器带宽来说不算太快LESO 就能把它估计出来并实时补偿。2.2 观测器方程与增益配置按线性状态观测器的标准结构针对扩张后的二阶系统写出观测器[ \begin{cases} \dot{z}_1 -\frac{R}{L}z_1 \frac{1}{L}u z_2 - \beta_1(z_1 - i) \ \dot{z}_2 -\beta_2(z_1 - i) \end{cases} ]这里 (z_1) 是电流估计值(z_2) 是总扰动估计值。(\beta_1)、(\beta_2) 是两个待配置的观测器增益。特征多项式设计法很简单。把观测误差动态写成矩阵形式令其特征多项式等于 ((s\omega_0)^2) 的形式就得到[ \beta_1 2\omega_0, \quad \beta_2 \omega_0^2 ](\omega_0) 就是观测器带宽工程上叫扩张状态观测器带宽。这个配置给出的是二阶无超调最优配置既保证了误差收敛速度又避免了观测器本身引入振荡。实际离散化时我采用前向欧拉得到的离散观测器方程如下[ \begin{cases} z_1(k1) z_1(k) T_s\left[-\frac{R}{L}z_1(k) \frac{1}{L}u(k) z_2(k) - \beta_1(z_1(k)-i(k))\right] \ z_2(k1) z_2(k) - T_s\beta_2(z_1(k)-i(k)) \end{cases} ]要注意离散化的步长就是电流环采样周期 (T_s)。每次中断到来先读 ADC 获得实测电流 (i(k))然后更新 (z_1)、(z_2)。2.3 带宽不是越高越好(\omega_0) 越大观测器收敛越快对扰动的估计越及时但代价有两个一是对电流测量噪声的放大越明显因为观测器本质上是一个闭环增益很大的滤波器二是数字实现中离散化误差影响越大观测器极点一旦被推到单位圆边缘附近很容易出现数值抖动。我做过的对比实验里把 (\omega_0) 从 500 rad/s 提调到 3000 rad/s扰动估计确实更紧了但电流波形上开始出现高频毛刺PWM 电流纹波被增益放大了接近一倍。后来把 (\omega_0) 放到 1500 rad/s 左右才在动态响应和噪声之间找到平衡点。经验上观测器带宽取电流环期望闭环带宽的 3 到 5 倍是起步区间具体数值要结合采样频率来定一般不建议超过开关频率的十分之一。3. 融合方案LESO如何嵌进无差预测电流控制3.1 控制律怎么改有了 LESO 提供的总扰动估计 (z_2)无差拍控制律就可以升级了。把前面无差拍的理想控制量中的未知扰动 (d(k)) 替换成 LESO 的输出 (z_2(k))[ u(k) \frac{L_n}{T_s}\big[i^*(k1) - (1-\frac{R_n T_s}{L_n})z_1(k)\big] - L_n z_2(k) ]这里我特意用 (z_1(k)) 而不是实测电流 (i(k)) 来做反馈原因后面会讲。(L_n)、(R_n) 是名义参数。这行公式看着只加了一项 (-L_n z_2(k))实际价值非常大。它让控制律从基于精确模型的逆向计算变成了基于模型逆向计算 在线扰动补偿哪怕预测模型里的 (L_n) 和实际电感差了三成只要 LESO 能把等效出来的扰动估计出来控制律依然能输出正确的电压电流照样做到无差跟踪。3.2 一拍延迟别忘补数字控制器有个绕不开的固有时延在 (kT_s) 时刻采样、计算然后写入 PWM 比较寄存器但真正生效是下一个开关周期也就是 ((k1)T_s)。如果控制律仍然以 (i^*(k1)) 为目标实际到达 ((k1)T_s) 时刻时作用的是上一拍的电压自然会产生一拍滞后动态性能变差。标准的做法是预测前瞻两步在 (k) 时刻先根据当前状态预测 (i(k1))然后设定目标为 (i^*(k2))反解出应该在 ((k1)T_s) 时刻作用的电压 (u(k1))[ u(k1) \frac{L_n}{T_s}\big[i^*(k2) - (1-\frac{R_n T_s}{L_n})\hat{i}(k1)\big] - L_n z_2(k) ]这里 (\hat{i}(k1)) 可以先由 LESO 的观测方程推一拍得到也可以用实测的 (i(k)) 套进模型外推。我倾向用 LESO 的 (z_1) 推因为 LESO 输出天然就是滤波后的状态估计不会把开关纹波直接灌进预测方程。不补这一拍仿真里可能看不出太大问题但实机电流相位会滞后电流环动态响应会明显变肉补偿源电压的能力也会打折。3.3 先估后用还是边估边用细节上一个重要的取舍是LESO 估计扰动之后是直接把它加到输出电压上还是把它送入预测电流方程参与循环两种写法数学上等价但工程实现感受完全不同。我推荐把 (z_2) 写进预测方程而不是单独做一个前馈通道原因是这样能保证扰动补偿和电流预测共享同一个离散时间基准不容易出现扰动前馈已经生效、预测模型还以为扰动不存在的脱节。简单说保持控制律只有一条主线LESO 只是为这条主线提供更准确的反馈和扰动信息。同时LESO 输入中的 (b_0)即 (1/L)要用名义电感值。这意味着即使 LESO 内部也使用了模型参数但它的扰动估计项会吸收掉参数偏差所以整体抗失配能力是靠扰动估计单条腿撑起来的这个逻辑一定要理解清楚后面调参时不至于混淆。4. 三组对照实验电感失配、电阻漂移和突加扰动4.1 实验平台条件搭建了一套三相并网逆变器 dq 轴电流环实验模型仿真和半实物平台同步验证。核心参数如下参数数值备注直流母线电压300V逆变器侧采样/开关频率10kHz周期 100μs标称电感 (L_n)5mH实验可实时切换标称电阻 (R_n)0.5Ω绕组等效电阻电流参考10A(幅值)dq 轴LESO 带宽1500 rad/s观测器增益由此换算调制方式SVPWM规则采样三组对照实验分别抓住三个最典型的工程现实电感变成1.6倍、电阻翻倍、外部加入阶跃扰动电压。每组都对比纯DPCC和DPCCLESO的表现。4.2 电感失配下的波形变化先把电感从 5mH 直接增到 8mH标称参数和控制参数都保持 5mH 不变。纯 DPCC 组在切换后的前几个周期就出现明显的电流过冲随后电流波形出现包络式低频振荡幅值大约在设定值的 60% 到 120% 之间波动三相电流THD从正常时的约2.2%恶化到8.7%已经无法正常并网运行。DPCCLESO 组在同一条件下虽然扰动估计在切换后的最初 3-5 个采样周期内有一个收敛过程但之后电流迅速回到正弦状态THD 维持在1.5%左右幅值波动小于3%。这里要特别注意THD 残余的部分主要是开关纹波和谐波并非预测误差。这说明 LESO 的扰动估计项确实把电感变大等效出来的电压误差吃掉了控制律输出的电压不再依赖准确的电感值。4.3 电阻漂移和外部扰动电阻从 0.5Ω 升到 1Ω 时纯DPCC 的稳态误差明显放大电流幅值持续低于参考值相位也出现偏移。这是因为电阻项在预测方程中占比相对较小但在大电流工况下不可忽略。加上 LESO 后由于扰动估计包含电阻压降误差这部分偏差在 2ms 以内被完全补偿电流跟踪误差几乎为零。外部扰动实验使用电压源串联方式注入一个 2V 的阶跃反电动势扰动模拟电网电压突变或负载瞬间变化。纯DPCC 的电流产生约 2.5A 的瞬时跌落恢复时间约 8ms而且恢复过程中伴随一次振荡。DPCCLESO 在扰动注入后电流跌落减小到约 0.8A恢复时间缩短到 2ms 以内且几乎没有超调。这个结果验证了一个关键判断LESO 的带宽决定了它能消化多快的扰动变化。1500 rad/s 带宽意味着扰动估计在 1ms 级的时间里完成收敛对于工频变化和负载切换足够用。5. 从仿真迁移到DSP实机时的现实考验5.1 同样的带宽仿真和实机感受不一样离线仿真里 LESO 带宽设到 3000 rad/s 也没问题因为理想模型里没有采样噪声和高频干扰。但搬到DSP上问题立刻冒出来。首先是离散化误差。观测器极点用前向欧拉离散后实际极点位置与连续域设计值有偏差带宽设置越高偏差越明显。当 (\omega_0) 折算到数字域接近 0.3 倍采样频率时观测器动态会偏出预期表现为电流毛刺增多。其次是执行时序。我把采样安排在 PWM 计数器的下溢中断里紧邻开关切换点导致 ADC 采到的电流含有明显的开关毛刺这些毛刺直接灌进 LESO 的校正项观测器估计值开始抖动。解决办法是把采样时刻移到 PWM 波形的中心尽量避开开关跳变产生的共模干扰同时对 ADC 结果做一次窗口长度为 3-5 的滑动平均滤波。5.2 电流噪声对LESO的干扰比想的更严重实机上发现一个在仿真里几乎看不出来的问题LESO 的 (z_2) 扰动估计项对高频噪声非常敏感。原因是 (z_2) 本质上是对 (z_1) 的偏差进行积分放大而 (\beta_2) 直接乘在误差上高带宽下积分增益很大测量噪声会被积分成缓慢漂移的估计偏差严重时会让 (z_2) 在真实扰动值附近来回摆动反而把扰动补偿变成了扰动注入。我的处理方法是把控制回路的反馈改成 (z_1)而不是直接读 ADC 的原始采样值。(z_1) 是观测器内部的滤波状态等效带宽被 (\beta_1) 限制住了高频噪声已经被天然滤掉一层。这个改动让实机电流的 THD 从4.5%降回到2.1%效果非常明显。不过这里有个坑直接用 (z_1) 代替实测电流做无差拍反馈会引入约半拍到一拍的状态估计延迟。如果 LESO 带宽太低电流跟踪会有滞后感所以 (z_1) 的等效滤波带宽建议保持在电流环带宽的 5 倍以上。5.3 参数整定的实用顺序与一手体会最后说调参顺序这个顺序我从失败中总结出来建议照做第一步先关闭 LESO 的扰动补偿只把纯DPCC调到可以在标称参数下稳定运行。确保电流波形正常无振荡。第二步逐步增加 LESO 带宽同时观察 (z_2) 的波形。如果 (z_2) 出现高频振铃说明带宽过高或者采样时序有问题先回退一步处理噪声。第三步打开扰动补偿用电感切换或者突加负载验证补偿效果。此时如果电流振荡优先降低 LESO 带宽而不是调增益。第四步做一拍延迟补偿验证。用阶跃响应看电流是否在一个周期内达到参考值如果出现超调或滞后检查两步预测是否写对。我实际调试中遇到最顽固的问题是纯DPCC在标称参数下正常接入 LESO 补偿后反而出现持续的小幅振荡。排查很久才发现是观测器带宽和采样滤波时间常数耦合在一起导致扰动估计出现了约 30 微秒的相位滞后而一拍延迟补偿又把这个相位滞后误判为电流超前控制器心态就崩了。后来把滑动平均窗口从5点改成3点并将 LESO 带宽下调400 rad/s问题消失。整套方案最终在实机运行了连续八个小时电感温度从常温升到接近80摄氏度换算成电感值下降了约12%电阻上升了约四成电流波形始终稳定THD没有出现明显恶化。这基本证明了一件事LESO 对参数漂移的吸收能力是实打实的而无差拍电流控制在得到状态观测器支撑后终于配得上无差这两个字。最后再分享一个小技巧如果你手头项目也打算从纯DPCC往DPCC观测器方向改不要贪心一上来就做高带宽扰动补偿先把观测器的输出接到上位机里看一遍波形确认没有奇怪的毛刺和相位翻转再决定要不要启用补偿通道。这一步能帮你省下一整周的调试时间。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑