永磁同步电机高性能控制算法(13)后续篇—— 基于高阶扩张状态观测器(ESO)的无模型预测控制(MFPC)

1.前言

前文已经介绍过了高阶ESO相对于传统ESO的优势。

https://zhuanlan.zhihu.com/p/703039702icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/703039702

但是当时搭的ESO有点问题。把公式修正之后,发现前文用的改进四阶ESO无法使用。

今天来解释一下为什么改进4阶ESO无法使用。

2.为什么改进4阶ESO用不了?

%扩展观测器带宽配置

fc = 250;%带宽,单位Hz

wc = fc*2*pi;

三相电流、转矩、转速波形

从上面波形可以看到,改进4阶ESO在2000RPM是无法运行的,而且是逐渐发散、振荡。但是发现改进4阶ESO在1000RPM是可以运行的。

解释:

改进4阶ESO在中频段的闭环增益不为0,这说明如果ESO的输入端刚好输入了一个频率在中频段附近的交流量,那么经过ESO之后,这个交流量将会被放大。

之所以2000RPM振荡而1000RPM不震荡,是因为2000RPM时电机运行的频率更高(更接近于当前配置ESO的中频段了),即使电流环存在非常小的交流,经过ESO之后会将这些微小的交流不断放大,使得系统振荡。

这时候即使加入切换模块也没用(设定进入稳态后从传统四阶切换至改进四阶):

PS:切换模块的设计参考上篇知乎里提到的参考文献里的切换模块设计。即动态采用传统高阶ESO提高控制的动态性能,稳态情况下切换到改进四阶ESO提高系统的稳态抗噪性能。

三相电流、转矩、转速波形

因此,必须要改变改进四阶ESO的增益才可以。

3.中频段闭环增益更小的改进4阶ESO

 

 从这个图中可以看到,如果sigema(我仿真中为g)越小,高频段的增益越小(即系统抗噪声能力越强),中频段的闭环增益越大(即系统抗扰动能力越弱,越容易振荡)。论文中选用的sigema为0.25

那我希望中频段的闭环增益更小一点,我应该选择的sigema>0.25。

根据论文中的公式(25),我选用sigema=0.5时的改进ESO。

 从下图可以看到,把sigema增加至0.5后,系统不再振荡了。

三相电流、转矩、转速波形

4.电感失配2倍下切换模块的使用

电感参数失配会给系统带来很多的高频噪声,那么我们来看看不同参数的改进4阶ESO的抗噪性能如何。

%扩展观测器带宽配置

fc = 300;%带宽,单位Hz

wc = fc*2*pi;

加入切换模块前(全程使用传统高阶ESO)
加入切换模块后(稳态从传统高阶ESO切换到改进高阶ESO,sigema=0.5)

可以看到,加入切换模块,系统进入稳态后会自动切换到改进高阶ESO,进而实现更好的抗噪声性能,最终使得dq电流的脉动大幅减小。

前文说到,sigema越小,系统抗噪声能力越好,那我把sigema从0.5减小到0.2这样,看看系统抗噪声能力对比情况。

加入切换模块后(稳态从传统高阶ESO切换到改进高阶ESO,sigema=0.5)
加入切换模块后(稳态从传统高阶ESO切换到改进高阶ESO,sigema=0.4)
加入切换模块后(稳态从传统高阶ESO切换到改进高阶ESO,sigema=0.3)
加入切换模块后(稳态从传统高阶ESO切换到改进高阶ESO,sigema=0.2)

可以看到,随着sigema的减小,系统的抗噪声性能越来越好,稳态的dq电流脉动越来越小。 

### ADRC 和 ESO 的基本理论 主动干扰抑制控制 (Active Disturbance Rejection Control, ADRC) 是一种现代控制方法,旨在通过扩展状态观测器 (Extended State Observer, ESO) 来估计并补偿系统的未知扰动和不确定性[^1]。ADRC的核心思想在于将所有的不确定性和外部扰动视为总和,并利用ESO对其进行实时估计。 #### 扩展状态观测器 (ESO) ESO是一种特殊的观测器设计技术,用于估计动态系统中的未建模部分以及外界干扰。其主要功能可以分为以下几个方面: - **状态变量重建**: 对于给定的输入信号 \( u(t) \)ESO能够重构系统的实际状态向量 \( x(t) \)[^1]。 - **扰动估计**: 它不仅限于已知的状态变量,还可以估算出由模型误差、参数变化和其他外生因素引起的综合扰动项 \( w(t) \)[^1]。 以下是基于连续时间域的一个典型二阶线性系统的ESO实现形式: ```matlab % 假设系统为 y''(t) = f(y,y',u,w), 其中w代表总的扰动. function esout = eso(y,u,h,beta0,beta1,beta2) % h is time step; beta* are observer gains global z1 z2 z3; e1 = y - z1; e2 = diff(z1)/h - z2; e3 = diff(z2)/h - z3; dz1dt = z2 + beta0 * e1; dz2dt = z3 + beta1 * e2; dz3dt = beta2 * e3 + u; z1 = z1 + h*dz1dt; z2 = z2 + h*dz2dt; z3 = z3 + h*dz3dt; esout = [z1,z2,z3]; end ``` 此代码片段展示了如何构建一个简单的三阶ESO来跟踪目标输出及其导数的同时也尝试捕捉到整个系统的综合扰动成分\(z_3\)。 #### 实现细节与注意事项 当应用ADRC时需要注意几个关键点以确保良好的性能表现: - **增益调整**: 观测器增益\(\beta_i\)的选择直接影响收敛速度和平稳度之间的平衡。 - **计算复杂度管理**: 高维或者高频率更新可能增加处理器负担,在嵌入式环境中需特别考虑资源分配问题。 ### 结论 综上所述,ADRC借助ESO实现了对复杂环境下难以精确预估的各种内外部影响的有效处理机制,从而提高了闭环控制系统面对各种挑战条件下的鲁棒特性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烦恼归林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值