传感器位置检测法
编码器、旋转变压器和霍尔是常用的检测旋转电机转子位置的传感器。虽然目前无位置传感器运行研究的人很多,但是不影响研究位置传感器,因为在高精度控制的场合下,是需要位置传感器来保证控制精度的。针对位置传感器的研究有很多,比如传感器某一相损坏后的容错控制,高速下传感器波形的过滤提取。
编码器
光电编码器的精度较高,适于高性能的控制系统使用,但它的环境适应能力较差,较大的机械冲击和震动会影响精度。随着光电技术的发展,光电编码盘的精度不断的提高。光电编码器是利用光栅衍射原理实现位移—数字变换的,从50年代开始应用于机床和计算仪器,因其结构简单、计量精度高、寿命长等优点,在国内外受到重视和推广。近年来更取得长足的发展,在精密定位、速度、长度、加速度、振动等方面得到广泛的应用。
光电编码器按编码方式分为二类:增量式与绝对式。
增量式编码器
增量式编码器转轴旋转时,有相应的脉冲输出,其计数起点任意设定,可实现多圈无限累加和测量。编码器轴转一圈会输出固定的脉冲,脉冲数由编码器光栅的线数决定。需要提高分辩率时,可利用 90 度相位差的 A、B 两路信号进行倍频或更换高分辩率编码器。
绝对式编码器
绝对式编码器有与位置相对应的代玛输出,通常为二进制码或 BCD 码。从代码数大小的变化可以判别正反方向和位移所处的位置,绝对零位代码还可以用于停电位置记忆。绝对式编码器的测量范围常规为 0—360 度。
旋转变压器
旋转变压器方面可以准确的检测转子位置,并且具有环境适应能力强的优点。近年来,旋转变压器的研究从接触式和耦合式向磁阻式旋转变压器转变。
霍尔传感器
霍尔传感器具有成本低,使用简单的优点,被方波电压驱动的无刷直流电机广泛使用。一般需要安装 3 个霍尔元件通过输出与每相反电动势过零点对应的上升和下降沿来为无刷直流电机提供换相信号。
无位置传感器检测法
无位置传感器法,主要需要研究的是起动和中高速运行两个阶段的无位置传感器控制。许多观测器的方法都是针对中高速运行研究的。
起动策略
ST和TI的电机库代码中,包含了开环起动与高频注入法两种起动方式。
开环起动
这是最简单的起动方法,开环加速到约10%额定转速后(目前很多观测器算法已经改进到可以在1Hz的转速阶段观测准了),然后切换到观测器所在的闭环控制算法。这一起动策略的问题在于带载起动时,选取起动电流不合适,会引起失步。
高频注入法
高频注入算法,基于高频信号模型,主要针对静止或低速下实现马达转子位置的精确检测。无感启动在有些应用场合,即便是风机,有的客户也不想看到启动时候有反转,抖动,要求苛刻的场景还希望负载变化未知的场景下启动。这些场合适合高频注入法。
高频注入法,通常有两种实现方法,旋转高频电压注入法和脉振高频电压注入法。由于想兼顾表贴式和内嵌式电机,兼顾通用性,脉振高频电压注入法用的多。
反电动势观测器
基于永磁同步电机的反电动势模型,使用相电流及相电压估计得到反电动势,然后用CORDIC算法(反正切法的优化方法)、PLL(锁相环法)以观测器所观测到的变量为输入,用于提取所需的位置和速度信息,适用于转速范围是额定转速的的10%-100%。
龙伯格状态观测器
ST使用的是龙伯格状态观测器,计算得到的反电势用PLL/Cordic即可检测出转子位置和速度。
电机稳定运行的等效电路是这样的。注意ST的alpha和beta的定义和我们常用有区别
基于现代控制理论概念,电机的反电动势利用滑模、龙伯格等状态观测器观测得到。
电机的状态方程是这样的
{
d
i
α
d
t
=
−
r
s
i
α
L
s
−
ϕ
m
L
s
p
ω
r
cos
(
p
ω
r
t
)
+
v
α
L
S
d
i
β
d
t
=
−
r
s
i
β
L
s
+
ϕ
m
L
s
p
ω
r
sin
(
p
ω
r
t
)
+
v
β
L
S
d
θ
r
d
t
=
ω
r
p
\left\{ \begin{array}{l} \frac{{d{i_\alpha }}}{{dt}} = - \frac{{{r_s}{i_\alpha }}}{{{L_s}}} - \frac{{{\phi _m}}}{{{L_s}}}p{\omega _r}\cos (p{\omega _r}t) + \frac{{{v_\alpha }}}{{{L_S}}}\\ \frac{{d{i_\beta }}}{{dt}} = - \frac{{{r_s}{i_\beta }}}{{{L_s}}} + \frac{{{\phi _m}}}{{{L_s}}}p{\omega _r}\sin (p{\omega _r}t) + \frac{{{v_\beta }}}{{{L_S}}}\\ \frac{{d{\theta _r}}}{{dt}} = {\omega _r}p \end{array} \right.
⎩⎪⎨⎪⎧dtdiα=−Lsrsiα−Lsϕmpωrcos(pωrt)+LSvαdtdiβ=−Lsrsiβ+Lsϕmpωrsin(pωrt)+LSvβdtdθr=ωrp
这个系统中电流作为状态变量,定子电压为输入量,角速度为输出量。这一系统的状态方程还不适合建立观测器,所以引入两个新的状态变量
{ e α = ϕ m p ω r cos ( p ω r t ) e β = − ϕ m p ω r sin ( p ω r t ) \left\{ \begin{array}{l} {e_\alpha }{\rm{ = }}{\phi _{\rm{m}}}p{\omega _r}\cos (p{\omega _r}t)\\ {e_\beta }{\rm{ = - }}{\phi _{\rm{m}}}p{\omega _r}\sin (p{\omega _r}t) \end{array} \right. {eα=ϕmpωrcos(pωrt)eβ=−ϕmpωrsin(pωrt)
由于电机的机械时间常数大于电气时间常数,可以认为电机反电势在一个电流的采样周期内不会突变,即电角速度为0。
{
d
i
α
d
t
=
−
r
s
i
α
L
s
−
e
α
L
s
+
v
α
L
s
d
i
β
d
t
=
−
r
s
i
β
L
s
−
e
β
L
s
+
v
β
L
s
d
e
α
d
t
=
p
ω
r
e
β
d
e
β
d
t
=
−
p
ω
r
e
α
\left\{ \begin{array}{l} \frac{{d{i_\alpha }}}{{dt}} = - \frac{{{r_s}{i_\alpha }}}{{{L_s}}} - \frac{{{e_\alpha }}}{{{L_s}}} + \frac{{{v_\alpha }}}{{{L_s}}}\\ \frac{{d{i_\beta }}}{{dt}} = - \frac{{{r_s}{i_\beta }}}{{{L_s}}} - \frac{{{e_\beta }}}{{{L_s}}} + \frac{{{v_\beta }}}{{{L_s}}}\\ \frac{{d{e_\alpha }}}{{dt}} = p{\omega _r}{e_\beta }\\ \frac{{d{e_\beta }}}{{dt}} = - p{\omega _r}{e_\alpha } \end{array} \right.
⎩⎪⎪⎪⎨⎪⎪⎪⎧dtdiα=−Lsrsiα−Lseα+Lsvαdtdiβ=−Lsrsiβ−Lseβ+Lsvβdtdeα=pωreβdtdeβ=−pωreα
PMSM马达状态方程可线性表达为:
{
x
˙
(
t
)
=
A
x
(
t
)
+
B
u
(
t
)
y
(
t
)
=
C
x
(
t
)
\left\{ \begin{array}{l} \dot x(t) = Ax(t) + Bu(t)\\ y(t) = Cx(t) \end{array} \right.
{x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)
其中:状态矢量
x
=
[
i
α
i
β
e
α
e
β
]
t
x = {[{i_\alpha }{\rm{ }}{i_\beta }{\rm{ }}{e_\alpha }{\rm{ }}{e_\beta }]^t}
x=[iαiβeαeβ]t, 输入矢量
u
=
[
v
α
v
β
]
t
u = {[{v_\alpha }{\rm{ }}{v_\beta }]^t}
u=[vαvβ]t, 输出变量
y
=
[
i
α
i
β
]
t
y = {[{i_\alpha }{\rm{ }}{i_\beta }]^t}
y=[iαiβ]t。
那么,我们可以列出电机状态模型的方程
{
d
i
α
d
t
=
−
r
s
i
α
L
s
−
e
α
L
s
+
v
α
L
s
d
i
β
d
t
=
−
r
s
i
β
L
s
−
e
β
L
s
+
v
β
L
s
d
e
α
d
t
=
p
ω
r
e
β
d
e
β
d
t
=
−
p
ω
r
e
α
\left\{ \begin{array}{l} \frac{{d{i_\alpha }}}{{dt}} = - \frac{{{r_s}{i_\alpha }}}{{{L_s}}} - \frac{{{e_\alpha }}}{{{L_s}}} + \frac{{{v_\alpha }}}{{{L_s}}}\\ \frac{{d{i_\beta }}}{{dt}} = - \frac{{{r_s}{i_\beta }}}{{{L_s}}} - \frac{{{e_\beta }}}{{{L_s}}} + \frac{{{v_\beta }}}{{{L_s}}}\\ \frac{{d{e_\alpha }}}{{dt}} = p{\omega _r}{e_\beta }\\ \frac{{d{e_\beta }}}{{dt}} = - p{\omega _r}{e_\alpha } \end{array} \right.
⎩⎪⎪⎪⎨⎪⎪⎪⎧dtdiα=−Lsrsiα−Lseα+Lsvαdtdiβ=−Lsrsiβ−Lseβ+Lsvβdtdeα=pωreβdtdeβ=−pωreα
状态观测器的方程
{
d
i
^
α
d
t
=
−
r
s
i
^
α
L
s
−
e
^
α
L
s
+
v
α
L
s
+
K
1
(
i
^
α
−
i
α
)
d
i
^
β
d
t
=
−
r
s
i
^
β
L
s
−
e
^
β
L
s
+
v
β
L
s
+
K
1
(
i
^
β
−
i
β
)
d
e
^
α
d
t
=
p
ω
r
e
^
β
+
K
2
(
i
^
α
−
i
α
)
d
e
^
β
d
t
=
−
p
ω
r
e
^
α
+
K
2
(
i
^
β
−
i
β
)
\left\{ \begin{array}{l} \frac{{d{{\hat i}_\alpha }}}{{dt}} = - \frac{{{r_s}{{\hat i}_\alpha }}}{{{L_s}}} - \frac{{{{\hat e}_\alpha }}}{{{L_s}}} + \frac{{{v_\alpha }}}{{{L_s}}} + {K_1}({{\hat i}_\alpha } - {i_\alpha })\\ \frac{{d{{\hat i}_\beta }}}{{dt}} = - \frac{{{r_s}{{\hat i}_\beta }}}{{{L_s}}} - \frac{{{{\hat e}_\beta }}}{{{L_s}}} + \frac{{{v_\beta }}}{{{L_s}}} + {K_1}({{\hat i}_\beta } - {i_\beta })\\ \frac{{d{{\hat e}_\alpha }}}{{dt}} = p{\omega _r}{{\hat e}_\beta } + {K_2}({{\hat i}_\alpha } - {i_\alpha })\\ \frac{{d{{\hat e}_\beta }}}{{dt}} = - p{\omega _r}{{\hat e}_\alpha } + {K_2}({{\hat i}_\beta } - {i_\beta }) \end{array} \right.
⎩⎪⎪⎪⎨⎪⎪⎪⎧dtdi^α=−Lsrsi^α−Lse^α+Lsvα+K1(i^α−iα)dtdi^β=−Lsrsi^β−Lse^β+Lsvβ+K1(i^β−iβ)dtde^α=pωre^β+K2(i^α−iα)dtde^β=−pωre^α+K2(i^β−iβ)
根据上述的马达方程,引入估测电流( i α {{i_\alpha }} iα , i β {{i_\beta }} iβ )的 反馈值并离散化 (T 为采样时间),可得:
{
i
^
α
(
k
+
1
)
=
(
1
−
r
s
T
L
s
)
i
^
α
(
k
)
−
T
L
s
e
^
α
(
k
)
+
T
L
s
v
α
(
k
)
+
K
1
T
(
i
^
α
(
k
)
−
i
α
(
k
)
)
i
^
β
(
k
+
1
)
=
(
1
−
r
s
T
L
s
)
i
^
β
(
k
)
−
T
L
s
e
^
β
(
k
)
+
T
L
s
v
β
(
k
)
+
K
1
T
(
i
^
β
(
k
)
−
i
β
(
k
)
)
e
^
α
(
k
+
1
)
=
e
^
α
(
k
)
+
p
ω
ˉ
r
e
^
β
(
k
)
T
+
K
2
T
(
i
^
α
(
k
)
−
i
α
(
k
)
)
e
^
β
(
k
+
1
)
=
e
^
β
(
k
)
−
p
ω
ˉ
r
e
^
α
(
k
)
T
+
K
2
T
(
i
^
β
(
k
)
−
i
β
(
k
)
)
\left\{ \begin{array}{l} {{\hat i}_\alpha }(k + 1){\rm{ = (1}} - \frac{{{r_s}T}}{{{L_s}}}){{\hat i}_\alpha }(k) - \frac{T}{{{L_s}}}{{\hat e}_\alpha }(k) + \frac{T}{{{L_s}}}{v_\alpha }(k) + {K_1}T({{\hat i}_\alpha }(k) - {i_\alpha }(k))\\ {{\hat i}_\beta }(k + 1){\rm{ = (1}} - \frac{{{r_s}T}}{{{L_s}}}){{\hat i}_\beta }(k) - \frac{T}{{{L_s}}}{{\hat e}_\beta }(k) + \frac{T}{{{L_s}}}{v_\beta }(k) + {K_1}T({{\hat i}_\beta }(k) - {i_\beta }(k))\\ {{\hat e}_\alpha }(k + 1) = {{\hat e}_\alpha }(k) + p{{\bar \omega }_r}{{\hat e}_\beta }(k)T + {K_2}T({{\hat i}_\alpha }(k) - {i_\alpha }(k))\\ {{\hat e}_\beta }(k + 1) = {{\hat e}_\beta }(k) - p{{\bar \omega }_r}{{\hat e}_\alpha }(k)T + {K_2}T({{\hat i}_\beta }(k) - {i_\beta }(k)) \end{array} \right.
⎩⎪⎪⎪⎨⎪⎪⎪⎧i^α(k+1)=(1−LsrsT)i^α(k)−LsTe^α(k)+LsTvα(k)+K1T(i^α(k)−iα(k))i^β(k+1)=(1−LsrsT)i^β(k)−LsTe^β(k)+LsTvβ(k)+K1T(i^β(k)−iβ(k))e^α(k+1)=e^α(k)+pωˉre^β(k)T+K2T(i^α(k)−iα(k))e^β(k+1)=e^β(k)−pωˉre^α(k)T+K2T(i^β(k)−iβ(k))
建立完状态方程后,应当计算出观测器增益矩阵。增益矩阵的目的是为了让观测器的输出与实际模型的输出相同,从而保证观测器的状态变量观测的准确性。
此时直接去计算K矩阵的值很困难,参考st库程序分析,它的处理是认为
ω
e
\omega_e
ωe等于0,以实现解耦,然后将电机模型简化,以
α
\alpha
α轴为例:
{
i
^
α
(
k
+
1
)
=
(
1
−
r
s
T
L
s
)
i
^
α
(
k
)
−
T
L
s
e
^
α
(
k
)
+
T
L
s
v
α
(
k
)
e
^
α
(
k
+
1
)
=
e
^
α
(
k
)
\left\{ \begin{array}{l} {{\hat i}_\alpha }(k + 1){\rm{ = (1}} - \frac{{{r_s}T}}{{{L_s}}}){{\hat i}_\alpha }(k) - \frac{T}{{{L_s}}}{{\hat e}_\alpha }(k) + \frac{T}{{{L_s}}}{v_\alpha }(k) \\ {{\hat e}_\alpha }(k + 1) = {{\hat e}_\alpha }(k) \end{array} \right.
{i^α(k+1)=(1−LsrsT)i^α(k)−LsTe^α(k)+LsTvα(k)e^α(k+1)=e^α(k)
最后观测器为:
{
i
^
α
(
k
+
1
)
=
(
1
−
r
s
T
L
s
)
i
^
α
(
k
)
−
T
L
s
e
^
α
(
k
)
+
T
L
s
v
α
(
k
)
+
K
1
T
(
i
^
α
(
k
)
−
i
α
(
k
)
)
e
^
α
(
k
+
1
)
=
e
^
α
(
k
)
+
K
2
T
(
i
^
α
(
k
)
−
i
α
(
k
)
)
\left\{ \begin{array}{l} {{\hat i}_\alpha }(k + 1){\rm{ = (1}} - \frac{{{r_s}T}}{{{L_s}}}){{\hat i}_\alpha }(k) - \frac{T}{{{L_s}}}{{\hat e}_\alpha }(k) + \frac{T}{{{L_s}}}{v_\alpha }(k) + {K_1}T({{\hat i}_\alpha }(k) - {i_\alpha }(k))\\ {{\hat e}_\alpha }(k + 1) = {{\hat e}_\alpha }(k) + {K_2}T({{\hat i}_\alpha }(k) - {i_\alpha }(k)) \end{array} \right.
{i^α(k+1)=(1−LsrsT)i^α(k)−LsTe^α(k)+LsTvα(k)+K1T(i^α(k)−iα(k))e^α(k+1)=e^α(k)+K2T(i^α(k)−iα(k))
然后就可以设计反馈增益矩阵来求反电动势了。ST计算的结果是
{
K
1
=
(
e
1
o
b
s
+
e
2
o
b
s
−
2
)
T
+
r
s
L
s
K
2
=
L
s
(
1
−
e
1
o
b
s
−
e
2
o
b
s
+
e
1
o
b
s
e
2
o
b
s
)
T
2
\left\{ \begin{array}{l} {K_1} = \frac{{({e_{1obs}} + {e_{2obs}} - 2)}}{T} + \frac{{{r_s}}}{{{L_s}}}\\ {K_2} = \frac{{{L_s}(1 - {e_{1obs}} - {e_{2obs}} + {e_{1obs}}{e_{2obs}})}}{{{T^2}}} \end{array} \right.
{K1=T(e1obs+e2obs−2)+LsrsK2=T2Ls(1−e1obs−e2obs+e1obse2obs)
其中
{
e
1
o
b
s
=
e
1
f
e
2
o
b
s
=
e
2
f
\left\{ {\begin{matrix} {{e_{1obs}} = \frac{{{e_1}}}{f}}\\ {{e_{2obs}} = \frac{{{e_2}}}{f}} \end{matrix}} \right.
{e1obs=fe1e2obs=fe2
而
e
1
e_1
e1和
e
2
e_2
e2是电机状态方程极点
{
e
1
=
1
−
r
s
T
L
s
e
2
=
1
\left\{ {\begin{matrix} {{e_1} = 1 - \frac{{{r_s}T}}{{{L_s}}}}\\ {{e_2} = 1} \end{matrix}} \right.
{e1=1−LsrsTe2=1
在得到反电动势的投影在alpha及beta分量后,可从中解析出转子的位置角。虽然反正切法可以直接计算出转子的位置角,但是这个方法是开环的,它对耦合在反电动势里的干扰非常敏感,因为它会使反电动势成为非正弦信号。所以通常是采用锁相环进行处理。ST的PLL框图如下
鉴相器为
−
e
^
α
(
k
T
)
⋅
sin
(
θ
k
−
1
)
−
e
^
β
(
k
T
)
⋅
cos
(
θ
k
−
1
)
≅
A
(
θ
^
k
−
θ
k
−
1
)
- {\hat e_\alpha }(kT) \cdot \sin ({\theta _{k - 1}}) - {\hat e_\beta }(kT) \cdot \cos ({\theta _{k - 1}}) \cong A({\hat \theta _k} - {\theta _{k - 1}})
−e^α(kT)⋅sin(θk−1)−e^β(kT)⋅cos(θk−1)≅A(θ^k−θk−1)
利用上式求得鉴相器的结果,然后LPF即为图中PI调节器格式,防止 干扰,从而求得角度和速度。
FOC库已经设计好了这些模块,主要是需要调节电机参数,使得相应的PI调节器的值满足要求。
令
A
=
ϕ
m
p
ω
r
A = {\phi _m}p{\omega _r}
A=ϕmpωr ,则
e
^
α
(
k
T
)
=
A
cos
(
θ
^
k
)
{\hat e_\alpha }(kT) = A\cos ({\hat \theta _k})
e^α(kT)=Acos(θ^k) ,
−
e
^
β
(
k
T
)
=
A
sin
(
θ
^
k
)
- {\hat e_\beta }(kT) = A\sin ({\hat \theta _k})
−e^β(kT)=Asin(θ^k) 。
那么,
−
e
^
α
(
k
T
)
⋅
sin
(
θ
k
−
1
)
−
e
^
β
(
k
T
)
⋅
cos
(
θ
k
−
1
)
≅
A
(
θ
^
k
−
θ
k
−
1
)
- {\hat e_\alpha }(kT) \cdot \sin ({\theta _{k - 1}}) - {\hat e_\beta }(kT) \cdot \cos ({\theta _{k - 1}}) \cong A({\hat \theta _k} - {\theta _{k - 1}})
−e^α(kT)⋅sin(θk−1)−e^β(kT)⋅cos(θk−1)≅A(θ^k−θk−1)
这里的PI闭环作用是调节
ω
r
{\omega _r}
ωr 以保持其输入为0(电角度将领先反电动势 一个采样时间)。为了增加带宽(此时,对速度变化有更好的动态响应,但
ω
r
{\omega _r}
ωr 干扰增大),应按照一定比例地增大PI参数 。
滑模观测器
Microchip等多数厂商则使用了滑模变结构观测器+滤波+反正切法。
TI、Microchip等厂商在设计滑模控制器时,它们的坐标轴是我们常用的是一致的。
{
e
α
=
−
ω
e
ψ
f
sin
θ
e
e
β
=
ω
e
ψ
f
cos
θ
e
\left\{ \begin{array}{l} {e_\alpha } = - {\omega _e}{\psi _f}\sin {\theta _e}\\ {e_\beta } = {\omega _e}{\psi _f}\cos {\theta _e} \end{array} \right.
{eα=−ωeψfsinθeeβ=ωeψfcosθe
从观测对象上,滑模观测器和状态观测器是一样的
{
u
α
=
R
s
i
α
+
L
s
d
i
α
d
t
+
e
α
u
β
=
R
s
i
β
+
L
s
d
i
β
d
t
+
e
β
\left\{ \begin{array}{l} {u_\alpha } = {R_s}{i_\alpha } + {L_s}\frac{{d{i_\alpha }}}{{dt}} + {e_\alpha }\\ {u_\beta } = {R_s}{i_\beta } + {L_s}\frac{{d{i_\beta }}}{{dt}} + {e_\beta } \end{array} \right.
{uα=Rsiα+Lsdtdiα+eαuβ=Rsiβ+Lsdtdiβ+eβ
从上面的方程来看,如果电阻和电感出现偏差,反电动势也会出现偏差。
以电流为状态变量表示的状态方程为:
[
d
i
α
d
t
d
i
β
d
t
]
=
−
R
s
L
s
⋅
[
i
α
i
β
]
+
1
L
s
⋅
[
u
α
u
β
]
−
1
L
s
⋅
[
e
α
e
β
]
\left[ {\begin{matrix} {\frac{{d{i_\alpha }}}{{dt}}}\\ {\frac{{d{i_\beta }}}{{dt}}} \end{matrix}} \right] = - \frac{{{R_s}}}{{{L_s}}} \cdot \left[ {\begin{matrix} {{i_\alpha }}\\ {{i_\beta }} \end{matrix}} \right] + \frac{1}{{{L_s}}} \cdot \left[ {\begin{matrix} {{u_\alpha }}\\ {{u_\beta }} \end{matrix}} \right] - \frac{1}{{{L_s}}} \cdot \left[ {\begin{matrix} {{e_\alpha }}\\ {{e_\beta }} \end{matrix}} \right]
[dtdiαdtdiβ]=−LsRs⋅[iαiβ]+Ls1⋅[uαuβ]−Ls1⋅[eαeβ]
由于定子电流是唯一可以直接测量的物理量,因此将滑模面
s
=
i
^
−
i
=
0
s ={\hat i}-i= 0
s=i^−i=0 选取在定子电流轨迹上,即
s
(
x
)
=
[
i
~
α
i
~
β
]
=
[
i
^
α
−
i
α
i
^
β
−
i
β
]
=
0
s(x) = \left[ {\begin{matrix} {{{\tilde i}_\alpha }}\\ {{{\tilde i}_\beta }} \end{matrix}} \right] = \left[ {\begin{matrix} {{{\hat i}_\alpha } - {i_\alpha }}\\ {{{\hat i}_\beta } - {i_\beta }} \end{matrix}} \right] = 0
s(x)=[i~αi~β]=[i^α−iαi^β−iβ]=0
上式中
i
^
=
[
i
^
α
^
i
^
β
^
]
T
\hat i = {\left[ {\begin{matrix} {\widehat {{{\hat i}_\alpha }}}&{\widehat {{{\hat i}_\beta }}} \end{matrix}} \right]^{\rm{T}}}
i^=[i^α
i^β
]T表示观测电流,
i
=
[
i
α
i
β
]
T
i = {\left[ {\begin{matrix} {{i_\alpha }}&{{i_\beta }} \end{matrix}} \right]^{\rm{T}}}
i=[iαiβ]T表示实际采样电流,
i
~
α
{\tilde i_\alpha }
i~α、
i
~
β
{\tilde i_\beta }
i~β 表示电流观测误差值,即观测值与实际值之差。
由表贴式PMSM的状态方程,构建定子电流滑模观测器:
d
d
t
[
i
^
α
i
^
β
]
=
−
R
s
L
s
⋅
[
i
^
α
i
^
β
]
+
1
L
s
⋅
[
u
α
u
β
]
−
1
L
s
⋅
[
Z
α
Z
β
]
\frac{d}{{dt}}\left[ {\begin{matrix} {{{\hat i}_\alpha }}\\ {{{\hat i}_\beta }} \end{matrix}} \right] = - \frac{{{R_s}}}{{{L_s}}} \cdot \left[ {\begin{matrix} {{{\hat i}_\alpha }}\\ {{{\hat i}_\beta }} \end{matrix}} \right] + \frac{1}{{{L_s}}} \cdot \left[ {\begin{matrix} {{u_\alpha }}\\ {{u_\beta }} \end{matrix}} \right] - \frac{1}{{{L_s}}} \cdot \left[ {\begin{matrix} {{Z_\alpha }}\\ {{Z_\beta }} \end{matrix}} \right]
dtd[i^αi^β]=−LsRs⋅[i^αi^β]+Ls1⋅[uαuβ]−Ls1⋅[ZαZβ]
式中,
z
α
{z_\alpha }
zα、
z
β
{z_\beta }
zβ 为滑模控制函数的
α
{\alpha }
α、
β
{\beta }
β轴分量
d
d
t
{
[
i
^
α
i
^
β
]
−
[
i
α
i
β
]
}
=
−
R
s
L
s
[
i
^
α
−
i
α
i
^
β
−
i
β
]
+
1
L
s
⋅
[
e
α
−
z
α
e
β
−
z
β
]
\frac{d}{{dt}}\left\{ {\left. {\left[ {\begin{matrix} {{{\hat i}_\alpha }}\\ {{{\hat i}_\beta }} \end{matrix}} \right] - \left[ {\begin{matrix} {{i_\alpha }}\\ {{i_\beta }} \end{matrix}} \right]} \right\}} \right. = \frac{{ - {R_s}}}{{{L_s}}}\left[ {\begin{matrix} {{{\hat i}_\alpha } - {i_\alpha }}\\ {{{\hat i}_\beta } - {i_\beta }} \end{matrix}} \right] + \frac{1}{{{L_s}}} \cdot \left[ {\begin{matrix} {{e_\alpha } - {z_\alpha }}\\ {{e_\beta } - {z_\beta }} \end{matrix}} \right]
dtd{[i^αi^β]−[iαiβ]}=Ls−Rs[i^α−iαi^β−iβ]+Ls1⋅[eα−zαeβ−zβ]
经过一段时间滑模运动后,电流误差趋于0,则有
[
e
α
e
β
]
=
[
z
α
z
β
]
=
[
k
s
w
⋅
s
i
g
n
[
i
^
α
−
i
α
]
k
s
w
⋅
s
i
g
n
[
i
^
β
−
i
β
]
]
\left[ {\begin{matrix} {{e_\alpha }}\\ {{e_\beta }} \end{matrix}} \right]{\rm{ = }}\left[ {\begin{matrix} {{z_\alpha }}\\ {{z_\beta }} \end{matrix}} \right] = \left[ {\begin{matrix} {{k_{sw}} \cdot sign[{{\hat i}_\alpha } - {i_\alpha }]}\\ {{k_{sw}} \cdot sign[{{\hat i}_\beta } - {i_\beta }]} \end{matrix}} \right]
[eαeβ]=[zαzβ]=[ksw⋅sign[i^α−iα]ksw⋅sign[i^β−iβ]]
上式中
k
s
w
{k_{sw}}
ksw 表示由Lyapunov稳定性分析得到的滑模增益,为正常数。上式将定子电流观测值和实际值之差作为滑模控制函数输入。
s
i
g
n
(
x
)
sign(x)
sign(x)表示开关函数:
s
i
g
n
(
x
)
=
{
1
0
−
1
x
>
0
x
=
0
x
<
0
sign(x) = \left\{ {\begin{matrix} 1\\ 0\\ { - 1} \end{matrix}\begin{matrix} {}\\ {}\\ {} \end{matrix}} \right.\begin{matrix} {x > 0}\\ {x = 0}\\ {x < 0} \end{matrix}
sign(x)=⎩⎨⎧10−1x>0x=0x<0
滑模增益的选择将会决定系统的稳定性和收敛性,为了满足所选滑模面的可达性和稳定性,由李雅普诺夫稳定性分析可知,在选择滑模增益时需满足
k
s
w
>
1
2
max
(
∣
e
α
∣
,
∣
e
β
∣
)
{k_{sw}} > \frac{1}{2}\max (\left| {{e_\alpha }} \right|,\left| {{e_\beta }} \right|)
ksw>21max(∣eα∣,∣eβ∣)
从这个式子来看,滑模增益的选取比状态观测器的增益矩阵选取容易,稳定性条件更容易满足,因此,滑模的优势体现在这里。
由滑模观测器进行迭代运算可以得到
Z
α
,
β
{Z_{\alpha ,\beta }}
Zα,β,
Z
α
,
β
{Z_{\alpha ,\beta }}
Zα,β 是高频开关信号,其中含有反电势的信息,对其进行低通滤波可得到 ,若采用一阶低通滤波,则
e
^
α
,
β
=
ω
c
s
+
ω
c
⋅
Z
α
,
β
{\hat e_{\alpha ,\beta }} = \frac{{{\omega _c}}}{{s + {\omega _c}}} \cdot {Z_{\alpha ,\beta }}
e^α,β=s+ωcωc⋅Zα,β
当然了,滤波器引入会带来滞后,这一点滑模上又不如状态观测器,滞后了这么多
∠
Φ
(
s
)
=
arctan
(
−
ω
ω
c
)
\angle \Phi (s) = \arctan \left( {\frac{{ - \omega }}{{{\omega _c}}}} \right)
∠Φ(s)=arctan(ωc−ω)
可以进行相应的补偿
补偿后求出的位置角度就是
θ
^
e
=
θ
^
e
1
+
Δ
θ
^
=
θ
^
e
1
+
arctan
(
ω
^
e
ω
c
)
{\hat \theta _e} = {\hat \theta _{e1}} + \Delta \hat \theta = {\hat \theta _{e1}} + \arctan \left( {\frac{{{{\hat \omega }_e}}}{{{\omega _c}}}} \right)
θ^e=θ^e1+Δθ^=θ^e1+arctan(ωcω^e)
当然了,滞后并不是唯一要解决的问题,滑模的抖震现象在观测器中也有体现。有人在研究时候是把符号函数改为sigmoid函数,这样可以使得观测的反电动势平滑点,这是符号函数对应的反电动势观测器结果
这是sigmoid函数对应的反电动势观测器结果
当然也有人是用高阶滑模,你也可以寻找别的方法来改善这一点。
总结
这两个反电动势观测器应该是比较经典的观测器,两者都是基于反电动势的模型
{
u
α
=
R
s
i
α
+
L
s
d
i
α
d
t
+
e
α
u
β
=
R
s
i
β
+
L
s
d
i
β
d
t
+
e
β
\left\{ \begin{array}{l} {u_\alpha } = {R_s}{i_\alpha } + {L_s}\frac{{d{i_\alpha }}}{{dt}} + {e_\alpha }\\ {u_\beta } = {R_s}{i_\beta } + {L_s}\frac{{d{i_\beta }}}{{dt}} + {e_\beta } \end{array} \right.
{uα=Rsiα+Lsdtdiα+eαuβ=Rsiβ+Lsdtdiβ+eβ
它们都会由于电阻和电感误差导致计算的反电动势错误,但是稳定性条件上看,滑模比龙伯格更容易实现。
从观测结果来看,状态观测器+PLL的速度估计会相对平滑,比状态观测器+Cordic(简单来讲就是反正切法,只是优化了计算量)算出来的平稳,但是对电机参数依赖深。 滑模观测器原理简单,鲁棒性强,观测器稳定性(注意仅是稳定性)对电机参数依赖小,多数厂商目前使用滑模观测器。 这些现在都是开源状态,网上可以直接找到相关代码学习,快速开发电机控制。
TI的FAST观测器
在无感FOC的demo中,早期TI也是滑模观测器。TI的新观测器FAST观测器,由于没有开源,不知道具体细节,但是F代表的是磁链,加上观测器说需要电压信号输入,因此,推测采用的是磁链观测器。此外,TI的观测器是需要采集三相电压,从电压积分可以得到磁链来看,很可能是磁链观测器。
英飞凌的PLL Estimator
在英飞凌的Eval-M1-1302开发套件中也有一套无位置传感器控制方案,具体细节也是不知道,但是使用手册上有这么一句话:
PLL Estimator, the sensorless feedback mechanism which requires only one motor parameter – stator inductance L, for rotor speed and position feedback
从这句话来看,该观测器用到了PLL,且只需要电机的电感参数,更多细节就不知道了,相关代码也是闭源的。