1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计

Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计

时间:2019-05-11 05:18:12

相关推荐

Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计

引言

最近对环路进行了一些思考,我们知道对于永磁同步电机的电流环控制,往往假定电流环的控制对象是电阻和电感的串联,这样的一个系统开环响应类似于一阶惯性系统,适合使用pi控制,并且可以根据电机的定子电阻和电感设置pi参数达到较好的控制效果。但是实际上,当电机运行起来之后,dq轴之间会存在明显的耦合,更不理想的是,q轴的电压中,占主导成分的是反电动势,在一些对环路响应要求较高的场合,使用pi控制并无法实现理想的效果。在速度环应用pi控制也有类似的问题,在一些负载不断变化的应用场景下,如风机类负载,不可能做到一组pi参数适应所有工况。这时候有必要考虑更完善的控制策略。

文章目录

引言1、自抗扰控制的原理通俗版2、实现扰动估计3、实现自抗扰速度环4、控制效果仿真5、关于控制的一点思考6、下载模型

1、自抗扰控制的原理通俗版

对于一个变负载的开环速度控制系统,有

Jωm˙=Te−Tm(ωm)−Bωm(式1)J\dot{ω_m} = T_e - T_m(ω_m) - Bω_m(式1)Jωm​˙​=Te​−Tm​(ωm​)−Bωm​(式1)

式中ωmω_mωm​表示机械转速,JJJ表示负载惯量,TeT_eTe​表示电磁转矩,Tm(ωm)T_m(ω_m)Tm​(ωm​)表示随速度变化的负载,BBB表示摩擦系数。

对于上述时变系统,想要使用一个固定参数的pi控制器实现全速度范围内的良好控制几乎是不可能的。但是如果假如Tm(ωm)−BωmT_m(ω_m) - Bω_mTm​(ωm​)−Bωm​已知,上述系统可以看作:

Jωm˙=Te−TloadJ\dot{ω_m} = T_e - T_{load}Jωm​˙​=Te​−Tload​

复杂的时变系统等效成了一个基本的一阶系统。

此时如果把随速度变化的复杂和摩擦力看作扰动,我们把时变系统的控制问题等效成了扰动的估计问题。

自抗扰控制器要解决的问题就是扰动估计与补偿。

回到自抗扰速度控制器的框图。

可以发现,从误差e3到iqref的部分像极了pi控制器加前馈的控制方式。

对照pi+前馈的控制方式来看。

NLSEF相当于pi控制器,z2/b那部分相当于前馈。

再对照上面提到的速度控制系统模型,如果把TloadT_{load}Tload​作为前馈进行补偿,pi控制器的控制对象变成了确定的系统Jωm˙=TeJ\dot{ω_m} = T_eJωm​˙​=Te​

2、实现扰动估计

在自抗扰控制器中,使用扩张状态观测器进行扰动观测。

二阶扩张状态观测器定义如下:

{e2=z1−ωz1˙=z2−β1e2+buz2˙=−β2e2\left\{ \begin{aligned} e_2& = z_1 - \omega\\ \dot{z_1}& = z2 - \beta_1e_2 + bu\\ \dot{z_2} &= - \beta_2e_2 \end{aligned} \right. ⎩⎪⎨⎪⎧​e2​z1​˙​z2​˙​​=z1​−ω=z2−β1​e2​+bu=−β2​e2​​

对照扩张状态观测器定义,以及系统模型,我们定义扰动为Tload=Tm(ωm)+BωmT_{load} = T_m(ω_m) + Bω_mTload​=Tm​(ωm​)+Bωm​搭建适用于我们系统的观测器如下图。

当e2e_2e2​为0时,z1=(iqTe−z2)1s1Jmz1 = (i_q Te - z2)\frac{1}{s}\frac{1}{J_m}z1=(iq​Te−z2)s1​Jm​1​

式中TeTeTe表示转矩常数,我画模型时没有做好区分,不要跟上面式子中的TeTeTe混淆。

1s\frac{1}{s}s1​表示积分,JmJ_mJm​表示负载惯量,z2z2z2为总的扰动。

式1可以写为:ωm=(Te−Tm(ωm)−Bωm)1s1Jm\omega_m = (T_e - T_m(ω_m) - Bω_m)\frac{1}{s}\frac{1}{J_m}ωm​=(Te​−Tm​(ωm​)−Bωm​)s1​Jm​1​

通俗的说,当e2=0e2=0e2=0时,ωm=z1\omega_m = z1ωm​=z1,又因为,iqTe=Tei_q Te = T_eiq​Te=Te​,所以存在

z2=Tm(ωm)+Bωmz2 = T_m(ω_m) + Bω_mz2=Tm​(ωm​)+Bωm​

即,当观测器收敛时,实现对扰动z2z2z2的观测。

3、实现自抗扰速度环

实现扰动观测后,剩下的事情变得非常简单。

一阶跟踪微分器(TD)作用是对给定信号进行平滑处理,避免给定信号突变。笔者认为在一些场合不加也可以。

其simulink框图如下:

其中系数k决定了对给定信号的跟踪速度快慢,k越大跟踪越快。

一阶非线性状态误差反馈控制器(NLSEF)用比例控制加前馈实现。

整体框图如下:

4、控制效果仿真

模拟一个负载转矩随速度变化而变化的负载。

Tm(ωm)=ωm∗0.3T_m(ω_m) = ω_m * 0.3Tm​(ωm​)=ωm​∗0.3

负载惯量Jm=0.01469kg⋅m2Jm = 0.01469kg·m^2Jm=0.01469kg⋅m2

0时刻给定速度10rad/s,0.05时刻,给定速度阶跃到30rad/s

图中,黄色波形为速度给定,蓝色波形为速度反馈。

可以看到,在0时刻,给定速度从0阶跃到10,反馈速度达到了给定速度的90%使用调节时间小于3.5e-3秒。在0.05时刻,给定速度从10阶跃到了30,反馈速度在5e-3秒内近似达到给定速度,超调量极小。最终的速度稳态误差小于0.01rad/s.

再来看负载转矩与观测到的扰动波形。

图中,黄色波形为负载转矩,蓝色波形为观测到的扰动。

因为仿真中我把摩擦系数调到了0,在稳态时,观测到的扰动等于负载转矩。在快速动态响应时,控制器对其他非线性因素也进行了补偿。

使用pi控制器,通过调节pi增益,也能够达到较好的控制效果,但是当系统发生变化后,比如改变Tm(ωm)T_m(\omega_m)Tm​(ωm​)后,pi参数需要重新调节,但是自抗扰控制方法具备更广泛的适应性。

5、关于控制的一点思考

自抗扰控制方法的关键思想是估算扰动,并对扰动进行补偿。

它之所以能够对扰动进行估计,是因为我们在实现自抗扰控制的过程中,分析了被控对象的模型,将模型分为了理想的部分和扰动的部分。

相比较学习一种控制方法,更重要的是理解其中的思想,实现扰动估计后,我们可以把扰动补偿用在pi控制器。我们也可以把扰动补偿用在电流环或者其他控制对象。在电流环可以把耦合项和电阻压降当做扰动进行估算。甚至我们电机的参数是确定的,可以直接跳过扩张状态观测器,直接计算出扰动进行补偿。

6、下载模型

模型下载链接:Simulink永磁同步电机控制仿真系列八模型

感谢大家认真读完文章。写博客1年多,深感其中的艰辛,中间因为工作繁忙的原因险些放弃。对于一个涉及仿真及较多公式的文章,从确定一个主题后从搭建模型开始,到文章发布,往往需要8个小时以上的时间。是部分网友的鼓励让我坚持了下来,在留言中知道不少朋友期待着我新的文章,实在是受宠若惊。真的非常感谢各位的支持,我也希望能够和各位共同成长。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。