六、BLDC矢量控制基础知识:滑膜观测器原理

滑膜观测器原理

这是一篇关于滑膜观测器原理的学习笔记



前言

当无刷电机使用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ω(LdLq)ω(LdLq)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+(LdLq)(ωiddtdiq))[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ω(LdLq)Ldω(LdLq)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ω(LdLq)Ldω(LdLq)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ω(LdLq)Ldω(LdLq)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ω(LdLq)Ldω(LdLq)LdR][i~αi~β]+Ld1[i~αi~β][EαvαEβvβ]=[i~αi~β][LdRLdω(LdLq)Ldω(LdLq)LdR][i~αi~β]+Ld1[i~αi~β][EαEβ]Ld1[i~αi~β][vαvβ]=[i~αi~β][LdRLdω(LdLq)Ldω(LdLq)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ω^(LdLq)Ldω^(LdLq)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的很多其他的方法来解算角度和角速度,这里就不献丑了。


总结

通过学习滑膜观测器的工作原理,虽然有的地方还有一定的疑问,但大体上已经理解的整个观测器的运行原理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值