滑膜观测器原理
这是一篇关于滑膜观测器原理的学习笔记
前言
当无刷电机使用FOC控制时,需要获得转子位置和角速度信息,当没有传感器的时候,已经有大量的算法用于解决这一问题,有一类处理办法是使用观测器来估计转子的位置,在众多解决方案中滑膜观测器有着广泛的应用。下面将我一个小白从无到有的学习过程分享一下。
这里学习到的滑膜观测器的知识来源于《彻底吃透滑模观测器(PMSM无感算法)(理论精讲+推导+算法+调参+硬件运行)》,感谢大佬的分享。
一、估计转子位置的基本逻辑, α , β \alpha,\beta α,β坐标系
当没有位置检测传感器的时候,我们需要估计转子的位置等信息。通过查找网上的资料,了解到普遍的做法是在两相静止坐标
α
,
β
\alpha,\beta
α,β下来估测转子角度。开始我也不太明白是怎么回事,后来过了很久才反应过来,最终理清了其中的逻辑:
首先,我得想明白
α
,
β
\alpha,\beta
α,β坐标系下的电压电流虽然不是直接可测的,但三相电压电流确实实实在在可测的物理量,我们只需要通过一个Clarke变换就可以得到
α
,
β
\alpha,\beta
α,β坐标系下的电压电流,而Clarke变换确实与转子角度无关的变换。
其次,由于
α
,
β
\alpha,\beta
α,β到
d
q
dq
dq坐标就是一个旋转的关系,因此可以利用这层关系估计转子的位置和角速度。
二、从 α , β \alpha,\beta α,β电压方程到状态方程
通过前面的努力(参考《五、BLDC矢量控制基础知识:BLDC模型的基本方程》),我们已经得到
α
,
β
\alpha,\beta
α,β下的电压:
α
β
\alpha\beta
αβ坐标混合电压方程完整形式:
[
u
α
u
β
]
=
R
[
i
α
i
β
]
+
[
L
d
0
0
L
d
]
d
d
t
[
i
α
i
β
]
+
[
0
ω
(
L
d
−
L
q
)
−
ω
(
L
d
−
L
q
)
0
]
[
i
α
i
β
]
+
[
E
α
E
β
]
…
…
1
\begin{aligned} \begin{bmatrix}u_\alpha\\u_\beta\end{bmatrix} &=R\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix}+\begin{bmatrix}L_d&0\\0&L_d\end{bmatrix}\frac{d}{dt}\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix}+\begin{bmatrix}0&{\omega}(L_d-L_q)\\-{\omega}(L_d-L_q)&0\end{bmatrix}\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix}+\begin{bmatrix}E_\alpha\\E_\beta\end{bmatrix} \end{aligned} ……1
[uαuβ]=R[iαiβ]+[Ld00Ld]dtd[iαiβ]+[0−ω(Ld−Lq)ω(Ld−Lq)0][iαiβ]+[EαEβ]……1
其中:
[
E
α
E
β
]
=
(
ω
ψ
f
+
(
L
d
−
L
q
)
(
ω
i
d
−
d
i
q
d
t
)
)
[
−
s
i
n
θ
c
o
s
θ
]
…
…
2
\begin{aligned} \begin{bmatrix}E_\alpha\\E_\beta\end{bmatrix}=(\omegaψ_f+(L_d-L_q)({\omega}i_d-\frac{di_q}{dt}))\begin{bmatrix}-sin\theta\\cos\theta\end{bmatrix} \end{aligned} ……2
[EαEβ]=(ωψf+(Ld−Lq)(ωid−dtdiq))[−sinθcosθ]……2
根据方程1的物理意义,也可以称该项为反电动势项。
在讨论之前,我们可以明显看出方程2可以用来计算转子旋转角度 θ \theta θ。
把方程1写成状态方程的样子:
d
d
t
[
i
α
i
β
]
=
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
α
i
β
]
+
1
L
d
[
u
α
u
β
]
−
1
L
d
[
E
α
E
β
]
\begin{aligned} \frac{d}{dt}\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix} =\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}i_\alpha\\i_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}u_\alpha\\u_\beta\end{bmatrix} -\frac{1}{L_d}\begin{bmatrix}E_\alpha\\E_\beta\end{bmatrix} \end{aligned}
dtd[iαiβ]=[−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][iαiβ]+Ld1[uαuβ]−Ld1[EαEβ]
三、滑膜观测器
现代控制理论中,对于不能直接观测的量一般使用观测器进行来估计状态,这里先构造一个用于估计的观测器方程:
d
d
t
[
i
^
α
i
^
β
]
=
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
^
α
i
^
β
]
+
1
L
d
[
u
α
u
β
]
−
1
L
d
[
v
α
v
β
]
\begin{aligned} \frac{d}{dt}\begin{bmatrix}\hat{i}_\alpha\\\hat{i}_\beta\end{bmatrix} =\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\hat{i}_\alpha\\\hat{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}u_\alpha\\u_\beta\end{bmatrix} -\frac{1}{L_d}\begin{bmatrix}v_\alpha\\v_\beta\end{bmatrix} \end{aligned}
dtd[i^αi^β]=[−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][i^αi^β]+Ld1[uαuβ]−Ld1[vαvβ]
其中:
i
^
\hat{i}
i^是观测器估计出来的电流
v
v
v是输入控制量
我们的依据是通过控制开关量
v
α
,
β
v_{\alpha,\beta}
vα,β,让观测器估计出来的电流
i
^
α
,
β
\hat{i}_{\alpha,\beta}
i^α,β趋向于
i
α
,
β
i_{\alpha,\beta}
iα,β,那么平均来看,可能应该有
v
α
,
β
→
E
α
,
β
v_{\alpha,\beta}{\rightarrow}E_{\alpha,\beta}
vα,β→Eα,β吧。
为了仔细分析观测器的行为,我们用下面的式子和上面的式子相减,并记
i
~
=
i
^
−
i
\tilde{i}=\hat{i}-i
i~=i^−i,表示观测器控制得到的电流和实际电流的差值。则得到下面的式子:
d
d
t
[
i
~
α
i
~
β
]
=
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
~
α
i
~
β
]
+
1
L
d
[
E
α
−
v
α
E
β
−
v
β
]
…
…
3
\begin{aligned} \frac{d}{dt}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix} =\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}E_\alpha-v_\alpha\\E_\beta-v_\beta\end{bmatrix} \end{aligned} ……3
dtd[i~αi~β]=[−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][i~αi~β]+Ld1[Eα−vαEβ−vβ]……3
首先可以看到,如果已经有,
i
~
α
,
β
=
0
\tilde{i}_{\alpha,\beta} = 0
i~α,β=0,则真的有
v
α
,
β
→
E
α
,
β
v_{\alpha,\beta}{\rightarrow}E_{\alpha,\beta}
vα,β→Eα,β。
观察上述方程,如果对控制原理有所了解,一定可以注意到:要达到我们的目的,需要一个策略把
i
~
α
,
β
\tilde{i}_{\alpha,\beta}
i~α,β控制在0附近了。这里采用一个非常暴力的控制方法(也可以说成是鲁棒性很强的控制):
1.如果观测器估计的电流
i
^
α
,
β
\hat{i}_{\alpha,\beta}
i^α,β大于了实际电流
i
α
,
β
i_{\alpha,\beta}
iα,β,则我们给出足够大的负向控制量,这个控制量将把
i
^
α
,
β
\hat{i}_{\alpha,\beta}
i^α,β的微分变成负的,从而试图把估计电流降低到实际电流处。
2.如果观测器估计的电流
i
^
α
,
β
\hat{i}_{\alpha,\beta}
i^α,β小于了实际电流
i
α
,
β
i_{\alpha,\beta}
iα,β,则我们给出足够大的正向控制量,这个控制量将把
i
^
α
,
β
\hat{i}_{\alpha,\beta}
i^α,β的微分变成正的,从而试图把估计电流提升到实际电流处。
这个控制方法从概念上理解起来非常直观了,这样的控制方法应该就是滑膜控制了,为什么叫滑膜?可能是因为在相图上控制了相点的滑动方向吧。所以基于这种控制方法的观测器就叫滑膜观测器吧。
作为实际技术的原理,我们需要给出一个实际的滑膜控制方法,并且事先证明它的稳定性。
根据人云亦云做法,我准备设控制输入:
[
v
α
v
β
]
=
h
[
s
i
g
n
(
i
^
α
−
i
α
)
s
i
g
n
(
i
^
β
−
i
β
)
]
=
h
[
s
i
g
n
(
i
~
α
)
s
i
g
n
(
i
~
β
)
]
…
…
4
\begin{aligned} \begin{bmatrix}v_\alpha\\v_\beta\end{bmatrix}=h\begin{bmatrix}sign(\hat{i}_\alpha-i_\alpha)\\sign(\hat{i}_\beta-i_\beta)\end{bmatrix}=h\begin{bmatrix}sign(\tilde{i}_\alpha)\\sign(\tilde{i}_\beta)\end{bmatrix} \end{aligned} ……4
[vαvβ]=h[sign(i^α−iα)sign(i^β−iβ)]=h[sign(i~α)sign(i~β)]……4
稳定性证明:
做李亚普洛夫函数:
V
(
i
~
α
,
i
~
β
)
=
1
2
(
i
~
α
i
~
α
+
i
~
β
i
~
β
)
V(\tilde{i}_\alpha,\tilde{i}_\beta)=\frac{1}{2}(\tilde{i}_\alpha\tilde{i}_\alpha+\tilde{i}_\beta\tilde{i}_\beta)
V(i~α,i~β)=21(i~αi~α+i~βi~β)
显然上述函数是正定的,那么我们来对它求导:
d
V
d
t
=
i
~
α
d
i
~
α
d
t
+
i
~
β
d
i
~
β
d
t
\frac{dV}{dt}=\tilde{i}_\alpha\frac{d\tilde{i}_\alpha}{dt}+\tilde{i}_\beta\frac{d\tilde{i}_\beta}{dt}
dtdV=i~αdtdi~α+i~βdtdi~β
带入3式得到:
d
V
d
t
=
[
i
~
α
i
~
β
]
d
d
t
[
i
~
α
i
~
β
]
=
[
i
~
α
i
~
β
]
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
~
α
i
~
β
]
+
1
L
d
[
i
~
α
i
~
β
]
[
E
α
−
v
α
E
β
−
v
β
]
=
[
i
~
α
i
~
β
]
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
~
α
i
~
β
]
+
1
L
d
[
i
~
α
i
~
β
]
[
E
α
E
β
]
−
1
L
d
[
i
~
α
i
~
β
]
[
v
α
v
β
]
=
[
i
~
α
i
~
β
]
[
−
R
L
d
−
ω
(
L
d
−
L
q
)
L
d
ω
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
~
α
i
~
β
]
+
1
L
d
[
i
~
α
i
~
β
]
[
E
α
E
β
]
−
h
L
d
(
i
~
α
s
i
g
n
(
i
~
α
)
+
i
~
β
s
i
g
n
(
i
~
β
)
)
…
…
5
\begin{aligned} &\frac{dV}{dt}=\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\frac{d}{dt}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix}\\ &=\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}E_\alpha-v_\alpha\\E_\beta-v_\beta\end{bmatrix}\\ &=\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}E_\alpha\\E_\beta\end{bmatrix} -\frac{1}{L_d}\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}v_\alpha\\v_\beta\end{bmatrix}\\ &=\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}-\frac{R}{L_d}&-\frac{{\omega}(L_d-L_q)}{L_d}\\\frac{{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\tilde{i}_\alpha\\\tilde{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}\tilde{i}_\alpha&\tilde{i}_\beta\end{bmatrix}\begin{bmatrix}E_\alpha\\E_\beta\end{bmatrix} -\frac{h}{L_d}(\tilde{i}_{\alpha}sign(\tilde{i}_{\alpha})+\tilde{i}_{\beta}sign(\tilde{i}_{\beta})) \end{aligned} ……5
dtdV=[i~αi~β]dtd[i~αi~β]=[i~αi~β][−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][i~αi~β]+Ld1[i~αi~β][Eα−vαEβ−vβ]=[i~αi~β][−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][i~αi~β]+Ld1[i~αi~β][EαEβ]−Ld1[i~αi~β][vαvβ]=[i~αi~β][−LdRLdω(Ld−Lq)−Ldω(Ld−Lq)−LdR][i~αi~β]+Ld1[i~αi~β][EαEβ]−Ldh(i~αsign(i~α)+i~βsign(i~β))……5
观察5式,它右边前两项都是有限项,而第三项括号中无论何总情况都是正数,所以只要h足够大,我们就可以使得整个式子为负定的,这个控制系统是渐进稳定的。
也就是随着我们控制的进行,一定有
i
^
α
,
β
→
i
α
,
β
\hat{i}_{\alpha,\beta}{\rightarrow}i_{\alpha,\beta}
i^α,β→iα,β,我们的想法就得以实现,具体的h值确定,可以依据5式来估计。
我们还有我们从3式,得到 v α , β → E α , β v_{\alpha,\beta}{\rightarrow}E_{\alpha,\beta} vα,β→Eα,β,但我们实际的控制方式式开关控制(4式),所以并不能完全得到这个关系,我们只能说 v α , β v_{\alpha,\beta} vα,β对时间取平均值后 → E α , β {\rightarrow}E_{\alpha,\beta} →Eα,β,就像PWM调制那样。不过这已经不是什么大的问题了,不是吗?
四、关于观测方程中的角速度的疑问
到目前为止我们已经理清了获取反电动势
E
α
,
β
E_{\alpha,\beta}
Eα,β的步骤,这样就可以通过各种手段获得
θ
^
,
ω
^
\hat{\theta},\hat{\omega}
θ^,ω^。
但回过头仔细审查我们建立的观测器的过程,观测器方程还是知道电角速度
ω
\omega
ω。呃咋办???
首先当使用表贴的电机时,有
L
d
=
L
q
L_d=L_q
Ld=Lq,观测器方程中不会要求使用
ω
\omega
ω,上面的理论肯定是有效的。
问题在于使用凸极电机时,
L
d
≠
L
q
L_d≠L_q
Ld=Lq,观测器方程会使用
ω
\omega
ω,这样就麻烦了。当然我们仍然可以使用估计的角速度
ω
^
\hat{\omega}
ω^来计算观测器方程,这时观测器方程右边的项会有变化,如下所示:
d
d
t
[
i
^
α
i
^
β
]
=
[
−
R
L
d
−
ω
^
(
L
d
−
L
q
)
L
d
ω
^
(
L
d
−
L
q
)
L
d
−
R
L
d
]
[
i
^
α
i
^
β
]
+
1
L
d
[
u
α
u
β
]
−
1
L
d
[
v
α
v
β
]
\begin{aligned} \frac{d}{dt}\begin{bmatrix}\hat{i}_\alpha\\\hat{i}_\beta\end{bmatrix} =\begin{bmatrix}-\frac{R}{L_d}&-\frac{\hat{\omega}(L_d-L_q)}{L_d}\\\frac{\hat{\omega}(L_d-L_q)}{L_d}&-\frac{R}{L_d}\end{bmatrix}\begin{bmatrix}\hat{i}_\alpha\\\hat{i}_\beta\end{bmatrix} +\frac{1}{L_d}\begin{bmatrix}u_\alpha\\u_\beta\end{bmatrix} -\frac{1}{L_d}\begin{bmatrix}v_\alpha\\v_\beta\end{bmatrix} \end{aligned}
dtd[i^αi^β]=[−LdRLdω^(Ld−Lq)−Ldω^(Ld−Lq)−LdR][i^αi^β]+Ld1[uαuβ]−Ld1[vαvβ]
仿效前面的分析过程,我们用它和状态方程相减
通过前面的稳定性分析过程可知,当然和之前一样只要控制增益
h
h
h足够大,控制规律仍然可以保证
i
^
α
,
β
→
i
α
,
β
\hat{i}_{\alpha,\beta}{\rightarrow}i_{\alpha,\beta}
i^α,β→iα,β,但问题在于这样做,如何保证
ω
^
→
ω
\hat{\omega}{\rightarrow}\omega
ω^→ω?
希望大牛看到能指点一二。
五、估计角度和角速度
这一点理解起来不难,我们已经得到
v
α
,
β
→
E
α
,
β
v_{\alpha,\beta}{\rightarrow}E_{\alpha,\beta}
vα,β→Eα,β,那么通过2式用分量相比的方法利用反正切求出角度,并且得到角度后我们通过一定的时间就可以获得角速度。
另外还有类似于PLL的很多其他的方法来解算角度和角速度,这里就不献丑了。文章来源:https://www.toymoban.com/news/detail-433623.html
总结
通过学习滑膜观测器的工作原理,虽然有的地方还有一定的疑问,但大体上已经理解的整个观测器的运行原理。文章来源地址https://www.toymoban.com/news/detail-433623.html
到了这里,关于六、BLDC矢量控制基础知识:滑膜观测器原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!