前言
一、FOC矢量控制原理
1. FOC矢量控制概念
根据百度百科,矢量控制(vector control)也称为磁场导向控制(field-oriented control,简称FOC),是一种利用变频器(VFD)控制三相交流电机的技术,利用调整变频器的输出频率、输出电压的大小及角度,来控制电机的输出。其特性是可以分别控制电机的磁场及转矩,类似他激式直流电机的特性。由于处理时会将三相输出电流及电压以矢量来表示,因此称为矢量控制。 通俗来讲,FOC是一种性能优越的电机控制方法,我们常用的直流无刷电机(BLCD)、永磁同步电机(PMSM)都会用到该矢量控制。FOC通过精确的控制磁场的大小以及方向,使得电机运转平稳、噪声低、转矩恒定、响应速度块、无低速爬行,可以实现对电机的精确控制。
2.电机相关知识简介
2.1.基础 在高中的时候,我们学过了用左手定则判断导线在磁场中做切割磁感线运动产生的电流方向;用右手定则判断通电导线在磁场中的受力方向;用安倍定则(右手螺旋定则)来判断通电螺旋管的磁极。 如上图,根据同极相斥、异极相吸通电螺旋管产生的磁极对中间的永磁体产生“吸引、排斥”作用,使得永磁体产生了顺时针的转动,直流电动机的原理就是基于此的。下面对直流无刷电机为例进行进一步讲解。直流无刷相对于直流有刷最大改进是用电子换向器替代了碳刷换向器,这使得电机的寿命大大增加,同时减少了电动机的发热量,增加了效率。 上图为直流无刷电机的模型图,定子由三个线圈组成,转子为一块永磁体,通过改变ABC三线之间的电流流向来控制定子产生的磁场方向,从而使得永磁体转动。 2.2.直流无刷电机换向 对任意两相接通,每个线圈产生各自的磁场,对中间的永磁体产生推力拉力的作用,推力跟拉力的合力方向是永磁体最终稳定下来的方向,也就是对永磁体产生力矩为零的位置。按照上图所示的通电顺序,可以控制直流无刷电机旋转,这个通电的顺序是由电子换向器来实现的。 2.2.BLCD和PMSM区别 无刷电机可以分为无刷直流电机(BLCD)和永磁同步电机(PMSM),结构类似,由于绕线方式的原因,会使得两种电机某些特性有所差异–BLCD电机的反电动势接近梯形波,PMSM的反电动势接近正弦波,因此驱动两种电机的波形也就有所差异。 从上图分析得知,转子在磁场中由6中稳定的状态,因此在旋转过程中会有颗粒感、不顺滑。由于BLCD电机采用方波驱动,为减少颗粒感只能通过增加极对数来减轻颗粒感,但无法一直减少下去。而PMSM电机通过平滑的正弦波来驱动,就能够在不改变电机极对数的情况下,通过产生理想的正弦波来使的电机能够平滑转动,大大减轻颗粒感,这就是FOC实现的原理。 2.3.无刷电机的驱动电路 无刷电机的驱动电路为三相电压源逆变电路,其原理图如上所示。在上述介绍的无刷电机换向模型中,通过控制ABC三相中任意两相接通,就可以产生某一方向的磁场,使得永磁体受到力矩。逆变电路就是为了实现这一操作,控制三相的接通,使得直流电变为了交流电。 逆变电路由三个MOS半桥组成,每个MOS半桥由一个上桥臂和一个下桥臂组成,每个桥臂都为同类型的MOS管。MOS管是一种单极性的电压控制元件,通过控制栅极电位的高低,实现MOS管源极跟漏极的导通跟关闭,是一种性能优良的高速电子开关。 定义开关量
s
a
s_a
sa?、
s
b
s_b
sb?、
s
c
s_c
sc?、
s
a
′
s_{a^{'}}
sa′?、
s
b
′
s_{b^{'}}
sb′?、
s
c
′
s_{c^{'}}
sc′?表示六个功率开关器件的开关状态。当
s
a
s_a
sa?、
s
b
s_b
sb?或
s
c
s_c
sc?为1时,逆变器电路上桥臂器件开通,其下桥臂开关器件关闭即
s
a
′
s_{a^{'}}
sa′?、
s
b
′
s_{b^{'}}
sb′?或
s
c
′
s_{c^{'}}
sc′?为零。由于同一个半桥臂上,上桥臂跟下桥臂的开关器件不能够同时导通,否则电流直接从上桥臂流到下桥臂再到电源,造成短路。因此上述的逆变器电路三路逆变桥的开关态共有8种,对于不同开关状态组合
s
a
b
c
s_{abc}
sabc?就可以得到8个基本电压空间矢量,这样逆变器的8种开关模式就对应8个电压空间矢量,如下表所示:
矢量 | a上桥臂状态 | b上桥臂状态 | c上桥臂状态 |
---|
U
0
U_0
U0? | 0 | 0 | 0 |
U
4
U_4
U4? | 1 | 0 | 0 |
U
6
U_6
U6? | 1 | 1 | 0 |
U
2
U_2
U2? | 0 | 1 | 0 |
U
3
U_3
U3? | 0 | 1 | 1 |
U
1
U_1
U1? | 0 | 0 | 1 |
U
5
U_5
U5? | 1 | 0 | 1 |
U
7
U_7
U7? | 1 | 1 | 1 |
各个矢量为
U
o
u
t
=
2
U
d
c
3
(
s
a
+
s
b
+
e
j
2
3
π
)
U_{out}=\frac{2U_{dc}}{3}(s_a+s_b+e^{j\frac{2}{3}\pi})
Uout?=32Udc??(sa?+sb?+ej32?π)
U
d
c
U_{dc}
Udc?为直流母线电压
3.FOC控制
3.1.FOC程序框图 先看一下FOC的控制框图,由内到外包含位置闭环、速度闭环、电流闭环,通过电流闭环控制电机的转矩,再通过速度闭环来控制电机的转速、最后通过位置闭环来控制其转角位置。
控制过程如下: 1、首先对电机的三相电流进行采样得到
I
a
I_a
Ia?、
I
b
I_b
Ib?、
I
c
I_c
Ic?; 2、
I
a
I_a
Ia?、
I
b
I_b
Ib?、
I
c
I_c
Ic?经过Clack变换得到
I
α
I_{\alpha}
Iα?、
I
β
I_{\beta}
Iβ?; 3、
I
α
I_{\alpha}
Iα?、
I
β
I_{\beta}
Iβ?经过Park变换得到
I
q
I_{q}
Iq?、
I
d
I_{d}
Id?; 4、将编码器获取到的电机位置与理想位置做差并输入到位置PI控制器,得到目标速度; 5、将编码器获取到的电机转速与目标速度做差并输入到速度PI控制器,得到目标电流; 6、将
I
q
I_{q}
Iq?、
I
d
I_{d}
Id?与目标电流做差并输入到电流PI控制器,得到输出控制电压
U
q
U_{q}
Uq?、
U
d
U_{d}
Ud?; 7、
U
q
U_{q}
Uq?、
U
d
U_{d}
Ud?经过反Park变换得到
U
α
U_{\alpha}
Uα?、
U
β
U_{\beta}
Uβ?; 8、
U
α
U_{\alpha}
Uα?、
U
β
U_{\beta}
Uβ?输入到SVPWM模块进行扇区判断、合成空间电压矢量、电压矢量作用时间、生成PWM波 9、将生成的PWM波输入到逆变电路中控制MOS管的开关状态,驱动电机。 上述的控制框图中,我们用到了SVPWM,SVPWM实际上对应于交流电机中的三相电压源逆变器功率器件的一种特殊开关顺序和脉宽大小的组合,这种开关触发顺序和组合将在定子线圈中产生三相互差120°电角度、失真较小的正弦波电流波形,这正是我们驱动三相电机转动所需要的的电流波形。但如果直接去跟踪三个正弦波需要用到更加复杂的高阶控制器,无法保证实时性,因此就要通过一些矩阵变换,来使的控制变量变得简单。 接下来介绍一下相关的变换: 3.2.Clack变换 我们通过对电机的三个相电流进行采样,会得到三个相位差为120°的正弦波。我们将三相交流电抽象到二维平面内,得到三个基向量
I
a
I_a
Ia?、
I
b
I_b
Ib?、
I
c
I_c
Ic?。这三个基向量是线性相关的,我们可以用平面内两个正交的基向量去表示,我们将基向量
I
a
I_a
Ia?、
I
b
I_b
Ib?、
I
c
I_c
Ic?投影到坐标轴上,可以得到两个正交的基向量
I
α
I_{\alpha}
Iα?、
I
β
I_{\beta}
Iβ?。这样我们的控制量变量由三个变为了一个。变换矩阵为:
[
I
α
I
β
]
=
[
1
?
1
2
?
1
2
0
3
2
?
3
2
]
[
I
a
I
b
I
c
]
\left[ \begin{matrix} I_{\alpha} \\ I_{\beta} \\ \end{matrix} \right] = \left[ \begin{matrix} 1 & -\frac{1}{2} & -\frac{1}{2} \\ 0 & \frac{\sqrt{3}}{2} &-\frac{\sqrt{3}}{2} \\ \end{matrix} \right] \left[ \begin{matrix} I_{a} \\ I_{b} \\ I_{c} \\ \end{matrix} \right]
[Iα?Iβ??]=[10??21?23
????21??23
???]???Ia?Ib?Ic????? 变换前后的波形如图所示: 3.3.Park变换 Park变换是将静止坐标系
α
?
β
\alpha-\beta
α?β变换到同步旋转坐标系
d
?
q
d-q
d?q,坐标系
d
?
q
d-q
d?q是跟随电机的永磁体同步旋转的,这时我们会得到
d
?
q
d-q
d?q坐标系下两相直流电,对于跟踪两个线性化的变量比较容易。
变换公式如下:
I
d
=
I
α
c
o
s
(
θ
c
)
+
I
β
s
i
n
(
θ
c
)
I_d=I_{\alpha}cos(\theta_c)+I_{\beta}sin(\theta_c)
Id?=Iα?cos(θc?)+Iβ?sin(θc?)
I
d
=
?
I
α
s
i
n
(
θ
c
)
+
I
β
c
o
s
(
θ
c
)
I_d=-I_{\alpha}sin(\theta_c)+I_{\beta}cos(\theta_c)
Id?=?Iα?sin(θc?)+Iβ?cos(θc?) 旋转矩阵形式为:
[
I
d
I
q
]
=
[
c
o
s
θ
c
s
i
n
θ
c
?
s
i
n
θ
c
c
o
s
θ
c
]
[
I
α
I
β
]
\left[ \begin{matrix} I_{d} \\ I_{q} \\ \end{matrix} \right] = \left[ \begin{matrix} cos\theta_c& sin\theta_c\\ -sin\theta_c& cos\theta_c\\ \end{matrix} \right] \left[ \begin{matrix} I_{\alpha} \\ I_{\beta} \\ \end{matrix} \right]
[Id?Iq??]=[cosθc??sinθc??sinθc?cosθc??][Iα?Iβ??] 公式中的
θ
c
\theta_c
θc?角度为编码器输出的转子实时的旋转角度。 变换前后的波形如图所示:
3.4.反Park变换 将Park变换矩阵求逆即可到的反Park变换*变换矩阵。将两个垂直的坐标系转变为三相绕组坐标系。 3.5.SVPWM合成原理 我们前边提到过逆变器的8种开关模式就对应8个电压空间矢量,每个扇区有相邻两个电压矢量,我们可以通过控制这两个电压矢量的作用时间,合成该扇区内任意方向的电压矢量,类似力合成原理。 以扇区
I
I
I为例: 空间矢量合成原理如下图所示: 根据平衡等效原则得到:
T
s
U
o
u
t
=
T
4
U
4
+
T
6
U
6
+
T
0
(
U
0
o
r
U
7
)
T_sU_{out}=T_4U_4+T_6U_6+T_0(U_0 or U_7)
Ts?Uout?=T4?U4?+T6?U6?+T0?(U0?orU7?)
T
4
+
T
6
+
T
0
=
T
s
T_4+T_6+T_0=T_s
T4?+T6?+T0?=Ts?
U
1
=
T
4
T
s
U
4
U
2
=
T
6
T
s
U
6
\begin{matrix} U_1= \frac{T_4}{T_s} U_4 \\ U_2 = \frac{T_6}{T_s} U_6 \\ \end{matrix}
U1?=Ts?T4??U4?U2?=Ts?T6??U6??
T
4
、
T
6
、
T
0
T_4、T_6、T_0
T4?、T6?、T0?为
U
4
U_4
U4?、
U
6
U_6
U6?和零矢量
U
0
、
U
7
U_0、U_7
U0?、U7?的作用时间。 根据上图我们可以得到:
∣
U
o
u
t
∣
s
i
n
2
π
3
=
∣
U
1
∣
s
i
n
(
π
3
?
θ
)
=
∣
U
2
∣
s
i
n
θ
\frac{|U_{out}|}{sin\frac{2\pi}{3}}=\frac{|U_1|}{sin(\frac{\pi}{3}-\theta)}=\frac{|U_2|}{sin\theta}
sin32π?∣Uout?∣?=sin(3π??θ)∣U1?∣?=sinθ∣U2?∣? 其中
θ
\theta
θ为合成矢量与主矢量的夹角。 令
∣
U
4
∣
=
∣
U
6
∣
=
2
3
U
d
c
|U_4|=|U_6|=\frac{2}{3}U_{dc}
∣U4?∣=∣U6?∣=32?Udc?和
∣
U
o
u
t
∣
=
U
m
|U_{out}|=U_m
∣Uout?∣=Um?,联合上式得:
T
4
=
3
U
m
U
d
c
T
s
s
i
n
(
π
3
?
θ
)
T_4=\sqrt{3}\frac{U_m}{U_{dc}}T_ssin(\frac{\pi}{3}-\theta)
T4?=3
?Udc?Um??Ts?sin(3π??θ)
T
6
=
3
U
m
U
d
c
T
s
s
i
n
θ
T_6=\sqrt{3}\frac{U_m}{U_{dc}}T_ssin\theta
T6?=3
?Udc?Um??Ts?sinθ
T
0
=
T
7
=
1
2
(
T
s
?
T
4
?
T
6
)
T_0=T_7=\frac{1}{2}(T_s-T_4-T_6)
T0?=T7?=21?(Ts??T4??T6?) 有了一个周期内各个电压矢量的作用时间,接着就是如何产生实际的脉宽调制波形,也就是各个状态的切换顺序。在SVPWM中,零矢量的选择比较灵活,适当选择零矢量,可以最大限度的减少开关次数,尽可能避免开关器件在负载电流较大时的开关动作,最大限度的减少开关损耗。对于七段式SVPWM算法,将基本矢量作用顺序的分配原则定为: 在每次开关状态转换时,只改变其中一相的开关状态,并且对零矢量在时间上进行平均分配,使得产生对称的PWM波形,从而有效降低PWM的谐波分量。
U
o
u
t
U_{out}
Uout?所在的位置开关切换顺序如下: 如要生成上述的PWM波形,需要外加一定频率的载波信号,例如三角波信号。 以扇区
I
I
I为例: 假设我们知道了在扇区
I
I
I时三相电压开关时间切换点
t
1
、
t
2
、
t
3
t_1、t_2、t_3
t1?、t2?、t3?,我们使用的三角载波信号如下图所示,载波信号的周期我们设置为一个开关周期
T
s
T_s
Ts?,与一个扇区的作用时间相同。载波信号斜率为
π
4
\frac{\pi}{4}
4π?,这样横纵坐标我们都可以表示为时间轴线。 我们将三相电压开关时间切换点
t
1
、
t
2
、
t
3
t_1、t_2、t_3
t1?、t2?、t3?时间画在纵轴的时间轴上,通过比较切换点时间与载波信号确定高低电平(当载波信号大于切换点时间时为高电平),将切换点时间线与载波信号的交点投影到横轴上,这样我们就得到了三相电压的PWM波形。且在一个周期内,各个波形是对称的,这也就是为什么要用三角载波信号的原因。在其他的扇区内也是类似的推导。 我们已经知道了各个扇区的三相电压的导通时间、导通顺序,接着就要判断当前处在哪个扇区中。 用
u
α
u_{\alpha}
uα?、
u
β
u_{\beta}
uβ?表示参考电压
U
o
u
t
U_{out}
Uout?在
α
、
β
\alpha 、\beta
α、β轴上的分量,定义
U
r
e
f
1
U_{ref1}
Uref1?、
U
r
e
f
2
U_{ref2}
Uref2?、
U
r
e
f
3
U_{ref3}
Uref3?三个变量,令:
U
r
e
f
1
=
u
β
U_{ref1}=u_{\beta}
Uref1?=uβ?
U
r
e
f
2
=
3
2
u
α
?
1
2
u
β
U_{ref2}=\frac{\sqrt{3}}{2}u_{\alpha}-\frac{1}{2}u_{\beta}
Uref2?=23
??uα??21?uβ?
U
r
e
f
3
=
?
3
2
u
α
?
1
2
u
β
U_{ref3}=-\frac{\sqrt{3}}{2}u_{\alpha}-\frac{1}{2}u_{\beta}
Uref3?=?23
??uα??21?uβ?$ 再定义3个变量A、B、C,通过分析得出: 若
U
r
e
f
1
>
0
U_{ref1}>0
Uref1?>0,则A=1,否则A=0; 若
U
r
e
f
2
>
0
U_{ref2}>0
Uref2?>0,则B=1,否则B=0; 若
U
r
e
f
3
>
0
U_{ref3}>0
Uref3?>0,则C=1,否则C=0; 令N=4C+2B+A,则可以得到N与扇区的关系如下表: N的公式只是为了能够唯一的判断扇区,换成其他公式也可,只要与扇区唯一对应即可。
我们现在已经知道扇区如何判断,接下来我们需要用
u
α
u_{\alpha}
uα?、
u
β
u_{\beta}
uβ?来表示各个扇区的两相邻电压矢量的作用时间,因为我们在输入的就是
u
α
u_{\alpha}
uα?、
u
β
u_{\beta}
uβ?变量。仍然用到下图:
u
α
=
T
4
T
s
∣
U
4
∣
+
T
6
T
s
∣
U
6
∣
c
o
s
π
3
u_{\alpha}=\frac{T_4}{T_s}|U_4|+\frac{T_6}{T_s}|U_6|cos\frac{\pi}{3}
uα?=Ts?T4??∣U4?∣+Ts?T6??∣U6?∣cos3π?
u
β
=
T
6
T
s
∣
U
6
∣
s
i
n
π
3
u_{\beta}=\frac{T_6}{T_s}|U_6|sin\frac{\pi}{3}
uβ?=Ts?T6??∣U6?∣sin3π? 经过变换得到:
T
4
=
3
T
s
2
U
d
c
(
3
u
α
?
u
β
)
T_4=\frac{\sqrt{3}T_s}{2U_{dc}}(\sqrt{3u_\alpha}-u_{\beta})
T4?=2Udc?3
?Ts??(3uα?
??uβ?)
T
6
=
3
T
s
2
U
d
c
u
β
T_6=\frac{\sqrt{3}T_s}{2U_{dc}}u_{\beta}
T6?=2Udc?3
?Ts??uβ? 同理,可以得到其他扇区各矢量的作用时间。令:
X
=
3
T
s
2
U
d
c
u
β
X=\frac{\sqrt{3}T_s}{2U_{dc}}u_{\beta}
X=2Udc?3
?Ts??uβ?
Y
=
3
T
s
U
d
c
(
3
2
u
α
+
1
2
u
β
)
Y=\frac{\sqrt{3}T_s}{U_{dc}}(\frac{\sqrt{3}}{2}u_{\alpha}+\frac{1}{2}u_{\beta})
Y=Udc?3
?Ts??(23
??uα?+21?uβ?)
Z
=
3
T
s
U
d
c
(
?
3
2
u
α
+
1
2
u
β
)
Z=\frac{\sqrt{3}T_s}{U_{dc}}(-\frac{\sqrt{3}}{2}u_{\alpha}+\frac{1}{2}u_{\beta})
Z=Udc?3
?Ts??(?23
??uα?+21?uβ?) 可以得到各个扇区作用时间如表所示:
N | 1 | 2 | 3 | 4 | 5 | 6 |
---|
T
4
T_4
T4? | Z | Y | -Z | -X | X | -Y |
T
6
T_6
T6? | Y | -X | X | Z | -Y | -Z |
T
0
T_0
T0? |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
T
0
(
T
7
)
=
(
T
s
?
T
4
?
T
6
)
/
2
T_0(T_7)=(T_s-T_4-T_6)/2
T0?(T7?)=(Ts??T4??T6?)/2 |
如果
T
4
+
T
6
>
T
s
T_4+T_6>T_s
T4?+T6?>Ts?,则需要进行调制处理,令:
T
4
=
T
4
T
4
+
T
6
T
s
T_4=\frac{T_4}{T_4+T_6}T_s
T4?=T4?+T6?T4??Ts?
T
6
=
T
6
T
4
+
T
6
T
s
T_6=\frac{T_6}{T_4+T_6}T_s
T6?=T4?+T6?T6??Ts? 最后就是要确定各个扇区的切换点时间 首先定义:
T
a
=
(
T
s
?
T
4
?
T
6
)
/
4
T_a=(T_s-T_4-T_6)/4
Ta?=(Ts??T4??T6?)/4
T
b
=
T
a
+
T
4
/
2
T_b=T_a+T_4/2
Tb?=Ta?+T4?/2
T
c
=
T
b
+
T
6
/
2
T_c=T_b+T_6/2
Tc?=Tb?+T6?/2 则三相电压开关时间切换点
t
1
t_1
t1?、
t
2
t_2
t2?、
t
3
t_3
t3?与各个扇区关系如下表:
N | 1 | 2 | 3 | 4 | 5 | 6 |
---|
t
1
t_1
t1? |
T
b
T_b
Tb? |
T
a
T_a
Ta? |
T
a
T_a
Ta? |
T
c
T_c
Tc? |
T
c
T_c
Tc? |
T
b
T_b
Tb? |
t
2
t_2
t2? |
T
a
T_a
Ta? |
T
c
T_c
Tc? |
T
b
T_b
Tb? |
T
b
T_b
Tb? |
T
a
T_a
Ta? |
T
c
T_c
Tc? |
t
3
t_3
t3? |
T
c
T_c
Tc? |
T
b
T_b
Tb? |
T
c
T_c
Tc? |
T
a
T_a
Ta? |
T
b
T_b
Tb? |
T
a
T_a
Ta? |
总结SVPWM,主要实现了参考电压矢量的扇区判断、各个扇区非零矢量和零矢量作用时间的计算以及各个扇区矢量切换点的确定,最后使用一定频率的三角载波信号与各个扇区切换点进行比较,从而产生变换器所需要的PWM波。
二、FOC矢量控制仿真
1.模块介绍
1、Clack变换,由三相电流变为两相正交电流,输入采集到的电机三相交流电。 2、Park变换,由两相正交交电流变为两相正交直流电,输入当前经Clack变化后的两相交流电以及当前的电机角度。
3、Park反变换,由输入的控制电压–两相直流电压变为两相交流电压,输入目标
v
d
v_d
vd?、
v
q
v_q
vq?以及当前的电机角度。 4、通过输入的
U
a
l
p
h
a
U_{alpha}
Ualpha?和
U
b
e
t
a
U_{beta}
Ubeta?来判断当前所处的扇区 5、产生中间变量,用来计算各个扇区相邻矢量的作用时间,输入
U
a
l
p
h
a
U_{alpha}
Ualpha?和
U
b
e
t
a
U_{beta}
Ubeta?,PWM的开关周期
T
s
T_s
Ts?和直流侧电压
U
d
c
U_{dc}
Udc? 6、用来计算当前扇区,相邻两电压矢量的作用时间。输入当前的扇区N,XYZ中间变量、PWM的开关周期
T
s
T_s
Ts?。
7、扇区矢量切换点的确定,输入当前的扇区N,相邻两电压矢量的作用时间
T
1
T_1
T1?、
T
2
T_2
T2?、PWM开关周期
T
s
T_s
Ts?。 8、生成PWM波,输入三角载波信号,信号的周期为PWM开关的周期;扇区矢量切换点
P
1
P_1
P1?、
P
2
P_2
P2?、
P
3
P_3
P3?。由于逆变电路的每个半桥的上下两桥不能够同时接通,所以只需要将上半桥的PWM波逻辑取反即可。 9、PMSM电动机模块,
T
m
T_m
Tm?为负载扭矩,ABC为三相电压,输入m为传感器信号,可通过
B
u
s
s
e
l
e
c
t
e
r
Busselecter
Busselecter模块进行信号选择。 10、通用的电桥模块,选择三相桥臂,输入g为6相PWM波。
2.simulink仿真
上图为带有位置闭环、速度闭环、电流闭环的仿真图 上图为带有速度闭环、电流闭环的仿真图 具体simulink仿真已上传,连接如下 FOC矢量控制仿真
3.仿真结果
3.1. 输入为恒速 设定速度恒定为800rad/s 黄色速度线为理想的恒速状态,蓝色线为电机的速度跟踪曲线,在1.5s处电机受到外力矩的作用,速度有小范围波动,但很快就跟踪上设定速度。 上图为采集到电机三相交流电的变化情况,在1.5s时电机受到外力矩作用,三相交流电幅值也发生变化。 上图为三相交流电的局部放大图。 上图为
I
d
I_d
Id?的误差变化图 上图为
I
q
I_q
Iq?的误差变化图 上图为Park反变换产生的
U
α
U_{\alpha}
Uα?相电压变化曲线 上图为Park反变换产生的
U
β
U_{\beta}
Uβ?相电压变化曲线 上图为扇区选择变换图 上图为三相电压切换的时间切换点 3.2.输入为变速 设定速度为
1000
s
i
n
(
π
2
t
)
1000sin(\frac{\pi}{2}t)
1000sin(2π?t)rad/s 上图为速度跟踪曲线 上图为三相交流电变化曲线 上图为
I
d
I_d
Id?的误差变化图 上图为
I
q
I_q
Iq?的误差变化图 上图为Park反变换产生的
U
α
U_{\alpha}
Uα?相电压变化曲线 上图为Park反变换产生的
U
β
U_{\beta}
Uβ?相电压变化曲线 上图为扇区选择变换图 上图为三相电压切换的时间切换点
3.2. 输入指定位置 设定目标位置为π 上图为位置跟踪图,1.5s处受到外力矩作用,在2.5秒处到达稳定位置。上图为速度跟踪图,1.5s处受到外力矩作用 上图为三相交流电变换图
总结
理论搞定!!!!!
参考:现代永磁同步电机控制原理及MATLAB仿真
|