概述
引言
最近对环路进行了一些思考,我们知道对于永磁同步电机的电流环控制,往往假定电流环的控制对象是电阻和电感的串联,这样的一个系统开环响应类似于一阶惯性系统,适合使用pi控制,并且可以根据电机的定子电阻和电感设置pi参数达到较好的控制效果。但是实际上,当电机运行起来之后,dq轴之间会存在明显的耦合,更不理想的是,q轴的电压中,占主导成分的是反电动势,在一些对环路响应要求较高的场合,使用pi控制并无法实现理想的效果。在速度环应用pi控制也有类似的问题,在一些负载不断变化的应用场景下,如风机类负载,不可能做到一组pi参数适应所有工况。这时候有必要考虑更完善的控制策略。
文章目录
- 引言
- 1、自抗扰控制的原理通俗版
- 2、实现扰动估计
- 3、实现自抗扰速度环
- 4、控制效果仿真
- 5、关于控制的一点思考
- 6、下载模型
1、自抗扰控制的原理通俗版
对于一个变负载的开环速度控制系统,有
J
ω
m
˙
=
T
e
−
T
m
(
ω
m
)
−
B
ω
m
(
式
1
)
Jdot{ω_m} = T_e - T_m(ω_m) - Bω_m(式1)
Jωm˙=Te−Tm(ωm)−Bωm(式1)
式中
ω
m
ω_m
ωm表示机械转速,
J
J
J表示负载惯量,
T
e
T_e
Te表示电磁转矩,
T
m
(
ω
m
)
T_m(ω_m)
Tm(ωm)表示随速度变化的负载,
B
B
B表示摩擦系数。
对于上述时变系统,想要使用一个固定参数的pi控制器实现全速度范围内的良好控制几乎是不可能的。但是如果假如
T
m
(
ω
m
)
−
B
ω
m
T_m(ω_m) - Bω_m
Tm(ωm)−Bωm已知,上述系统可以看作:
J
ω
m
˙
=
T
e
−
T
l
o
a
d
Jdot{ω_m} = T_e - T_{load}
Jωm˙=Te−Tload
复杂的时变系统等效成了一个基本的一阶系统。
此时如果把随速度变化的复杂和摩擦力看作扰动,我们把时变系统的控制问题等效成了扰动的估计问题。
自抗扰控制器要解决的问题就是扰动估计与补偿。
回到自抗扰速度控制器的框图。
可以发现,从误差e3到iqref的部分像极了pi控制器加前馈的控制方式。
对照pi+前馈的控制方式来看。
NLSEF相当于pi控制器,z2/b那部分相当于前馈。
再对照上面提到的速度控制系统模型,如果把
T
l
o
a
d
T_{load}
Tload作为前馈进行补偿,pi控制器的控制对象变成了确定的系统
J
ω
m
˙
=
T
e
Jdot{ω_m} = T_e
Jωm˙=Te
2、实现扰动估计
在自抗扰控制器中,使用扩张状态观测器进行扰动观测。
二阶扩张状态观测器定义如下:
{
e
2
=
z
1
−
ω
z
1
˙
=
z
2
−
β
1
e
2
+
b
u
z
2
˙
=
−
β
2
e
2
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.
⎩⎪⎨⎪⎧e2z1˙z2˙=z1−ω=z2−β1e2+bu=−β2e2
对照扩张状态观测器定义,以及系统模型,我们定义扰动为
T
l
o
a
d
=
T
m
(
ω
m
)
+
B
ω
m
T_{load} = T_m(ω_m) + Bω_m
Tload=Tm(ωm)+Bωm搭建适用于我们系统的观测器如下图。
当
e
2
e_2
e2为0时,
z
1
=
(
i
q
T
e
−
z
2
)
1
s
1
J
m
z1 = (i_q Te - z2)frac{1}{s}frac{1}{J_m}
z1=(iqTe−z2)s1Jm1
式中
T
e
Te
Te表示转矩常数,我画模型时没有做好区分,不要跟上面式子中的
T
e
Te
Te混淆。
1
s
frac{1}{s}
s1表示积分,
J
m
J_m
Jm表示负载惯量,
z
2
z2
z2为总的扰动。
式1可以写为:
ω
m
=
(
T
e
−
T
m
(
ω
m
)
−
B
ω
m
)
1
s
1
J
m
omega_m = (T_e - T_m(ω_m) - Bω_m)frac{1}{s}frac{1}{J_m}
ωm=(Te−Tm(ωm)−Bωm)s1Jm1
通俗的说,当
e
2
=
0
e2=0
e2=0时,
ω
m
=
z
1
omega_m = z1
ωm=z1,又因为,
i
q
T
e
=
T
e
i_q Te = T_e
iqTe=Te,所以存在
z
2
=
T
m
(
ω
m
)
+
B
ω
m
z2 = T_m(ω_m) + Bω_m
z2=Tm(ωm)+Bωm
即,当观测器收敛时,实现对扰动
z
2
z2
z2的观测。
3、实现自抗扰速度环
实现扰动观测后,剩下的事情变得非常简单。
一阶跟踪微分器(TD)作用是对给定信号进行平滑处理,避免给定信号突变。笔者认为在一些场合不加也可以。
其simulink框图如下:
其中系数k决定了对给定信号的跟踪速度快慢,k越大跟踪越快。
一阶非线性状态误差反馈控制器(NLSEF)用比例控制加前馈实现。
整体框图如下:
4、控制效果仿真
模拟一个负载转矩随速度变化而变化的负载。
T
m
(
ω
m
)
=
ω
m
∗
0.3
T_m(ω_m) = ω_m * 0.3
Tm(ωm)=ωm∗0.3
负载惯量
J
m
=
0.01469
k
g
⋅
m
2
Jm = 0.01469kg·m^2
Jm=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增益,也能够达到较好的控制效果,但是当系统发生变化后,比如改变
T
m
(
ω
m
)
T_m(omega_m)
Tm(ωm)后,pi参数需要重新调节,但是自抗扰控制方法具备更广泛的适应性。
5、关于控制的一点思考
自抗扰控制方法的关键思想是估算扰动,并对扰动进行补偿。
它之所以能够对扰动进行估计,是因为我们在实现自抗扰控制的过程中,分析了被控对象的模型,将模型分为了理想的部分和扰动的部分。
相比较学习一种控制方法,更重要的是理解其中的思想,实现扰动估计后,我们可以把扰动补偿用在pi控制器。我们也可以把扰动补偿用在电流环或者其他控制对象。在电流环可以把耦合项和电阻压降当做扰动进行估算。甚至我们电机的参数是确定的,可以直接跳过扩张状态观测器,直接计算出扰动进行补偿。
6、下载模型
模型下载链接:Simulink永磁同步电机控制仿真系列八模型
感谢大家认真读完文章。写博客1年多,深感其中的艰辛,中间因为工作繁忙的原因险些放弃。对于一个涉及仿真及较多公式的文章,从确定一个主题后从搭建模型开始,到文章发布,往往需要8个小时以上的时间。是部分网友的鼓励让我坚持了下来,在留言中知道不少朋友期待着我新的文章,实在是受宠若惊。真的非常感谢各位的支持,我也希望能够和各位共同成长。
最后
以上就是贪玩微笑为你收集整理的Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计引言1、自抗扰控制的原理通俗版2、实现扰动估计3、实现自抗扰速度环4、控制效果仿真5、关于控制的一点思考6、下载模型的全部内容,希望文章能够帮你解决Simulink永磁同步电机控制仿真系列八:使用自抗扰控制(adrc)实现速度闭环以及扰动估计引言1、自抗扰控制的原理通俗版2、实现扰动估计3、实现自抗扰速度环4、控制效果仿真5、关于控制的一点思考6、下载模型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复