FOC矢量控制

news2024/11/18 20:02:49

目录

  • 前言
  • 一、FOC简介
    • 1.1 FOC是什么
    • 1.2 FOC框图介绍
  • 二、FOC坐标变换
    • 2.1 电流采集
    • 2.2 Clarke变换
    • 2.3 Park变换
  • 三、闭环控制
    • 3.1 电流环控制
    • 3.3 速度环控制
    • 3.4 位置环控制
  • 四、SVPWM原理
    • 4.1 空间矢量合成
    • 4.2 SVPWM法则
    • 4.3 MOS开关方式
    • 4.4 矢量作用时间


前言

  本文主要介绍无刷直流电机BLDC的FOC矢量控制的原理


一、FOC简介

1.1 FOC是什么

  FOC(field-oriented control)为磁场定向控制,又称为矢量控制(vectorcontrol),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最佳选择。FOC 可以精确地控制磁场大小与方向,使得电机转矩平稳、噪声小、效率高,并且具有高速的动态响应。目前已在很多应用上逐步替代传统的控制方式,在运动控制行业中备受瞩目。

  我们都知道,电流可以产生磁场,并且磁场大小与电流大小成正比,因此为了使定子构造最合适的旋转磁场,需要精确控制线电流。想要磁场旋转就需要线电流做着正弦变化,而3 组线圈绕组的角度差,就使得三相电流需要时刻做相位差为 120 度的正弦变化,这时可使定子构造最合适的旋转磁场,显然简单的 6 步换向无法控制三相电流做正弦变化,转矩在一定程度上会有跳变,这样无法输出稳定转矩,因此需要 FOC 来保持转子的扭矩时刻连续稳定可调。下面总结六步换向和 FOC 控制方式的对比表,如表:

在这里插入图片描述

1.2 FOC框图介绍

在这里插入图片描述

  上图是以电流闭环控制为例,也就是让电机始终保持一个恒定力矩(力矩与电流成正比)。从上图可以看到最左边的 Iq_Ref 和 Id_Ref 两个变量经过 PID 控制器进行反馈调节,其中涉及到几个变换模块,包括:Clarke 变换、Park 变换以及反 Park 变换,最后是 SVPWM 模块作用到三相逆变器进而控制电机旋转。相信大家对上面这些过程不是很理解,没关系,我们先来大致的概括下 FOC 的整个控制框图,后面会对整体框架进行拆分讲解。

① 对电机三相电流进行采样得到: 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经过Clarke变换得到 i α i_α iα i β i_β iβ
③ 将 i α i_α iα i β i_β iβ经过Park变换得到 i q i_q iq i d i_d id
④ 计算 i q i_q iq i d i_d id和其设定值 i q _ r e f i_{q\_ref} iq_ref i d _ r e f i_{d\_ref} id_ref的误差;
⑤ 将上述误差输入到两个PID(只用到 PI)控制器,得到输出的控制电压 V q V_q Vq V d V_d Vd
⑥ 将 V q V_q Vq V d V_d Vd进行反Park变换得到 V α V_α Vα V β V_β Vβ
⑦ 将 V α V_α Vα V β V_β Vβ输入SVPWM模块进行调制,合成电压空间矢量,输出该时刻三个半桥的开关状态进而控制电机旋转;
⑧ 循环上述步骤。

二、FOC坐标变换

  坐标变换涉及到下图框选部分
在这里插入图片描述

  FOC坐标系有以下

  • 定子坐标系(静止)

    • A-B-C坐标系(三相定子绕组、相差120度)
    • α-β坐标系(直角坐标系:α 轴与A轴重合、 β 轴超前α 轴90度)
  • 转子坐标系(旋转)

    • d-q坐标系(d轴-转子磁极的轴线、q轴超前d轴90度 )
  • 定向坐标系(旋转)

    • M-T坐标系( M轴固定在定向的磁链矢量上,T轴超前M轴90度 )

  转子磁场定向控制——M-T坐标系与d-q坐标系重合

在这里插入图片描述

2.1 电流采集

  由上面的介绍可以得知,我们是对电流分量进行变换,所以首先我们需要获取电流参数。电流采集环节如下图所示,具体采集方式见下
在这里插入图片描述

  1. 母线电阻电流采样
      通过直流母线侧一个电阻,实现一个周期内两相电流的测量,第三相电流由 I U + I V + I W = 0 I_U+I_V+I_W=0 IU+IV+IW=0得到。SVPWM开关VS直流母线电流如下图所示
    在这里插入图片描述

  2. 相电流采样
      SVPWM单直流母线电阻采样,单电阻ADC采样
    在这里插入图片描述
      信号用来硬件触发ADC
    在这里插入图片描述

  3. 桥臂电流采样
      采用双/三电阻进行桥臂电流采样
    在这里插入图片描述

  4. 电流采样方式选择
    在这里插入图片描述

2.2 Clarke变换

  获取到电流参数之后,我们就可以将其进行Clarke变换。假设我们将一个PMSM电机手动让其匀速旋转,此时使用示波器观察它的三相输出电压(反电动势),我们会发现示波器上会得到三组正弦波,并且三组正弦波之间两两相位差为120°。电机运转时三相电流波形如下
在这里插入图片描述
  所以反过来我们在三相无刷电机的三相线圈上输入上述三相正弦电压,那么就可以驱动无刷电机平稳高效地旋转了。而这正是FOC驱动无刷电机的基本手段,但是从控制的角度来看,我们根本就不想跟三个正弦波打交道,因为对于非线性的信号进行准确控制就要使用复杂的高阶控制器,这对于建模成本、处理器算力、控制实时性等都是非常不利的,那么有没有什么方法可以将被控制量线性化呢?答案是当然有的,只需要应用一些数学技巧。

  当PMSM电机匀速运转时,将采集到相位相差120°的三相电流 I a I_a Ia I b I_b Ib I c I_c Ic 使用三相坐标系表示,如下图绿色线所示:
在这里插入图片描述
  可以看出这是一个二维平面内的坐标系,我们可以利用一些数学小技巧,将三相坐标系变换成直角坐标系,我们把新的直角坐标系命名为 α − β α-β αβ坐标系(如图红色线所示),变换原则是电流产生的磁场相等。Clarck变换用于将三相静止坐标系变换到两相静止坐标系,变换前后在坐标系中产生的磁场等效。

在这里插入图片描述

  假设变换前三相定子绕组匝数为 N 3 N_3 N3,变换后的两相定子绕组匝数为 N 2 N_2 N2,根据磁动量守恒可得:
N 2 [ i α i β ] = N 3 [ i A − i B cos ⁡ 60 ° − i C cos ⁡ 60 ° sin ⁡ 0 + i B sin ⁡ 60 ° − i C sin ⁡ 60 ° ] N_2\begin{bmatrix} i_α \\ i_β \end{bmatrix} = N_3\begin{bmatrix} i_A - i_B\cos 60° - i_C\cos 60° \\ \sin 0+i_B \sin 60° - i_C\sin 60° \end{bmatrix} N2[iαiβ]=N3[iAiBcos60°iCcos60°sin0+iBsin60°iCsin60°]

  提取 i α i_α iα i β i_β iβ可以得到:
[ i α i β ] = N 3 N 2 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 ] [ i A i B i C ] \begin{bmatrix} i_α \\ i_β \end{bmatrix} = \frac{N_3}{N_2}\begin{bmatrix} 1 & -\frac 12 & -\frac 12 \\ 0 & \frac {\sqrt 3}2 & -\frac {\sqrt 3}2 \end{bmatrix} \begin{bmatrix} i_A \\ i_B \\ i_C \end{bmatrix} [iαiβ]=N2N3[102123 2123 ] iAiBiC

  遵循恒幅值不变原理可得:
N 3 N 2 = 2 3 \frac{N_3}{N_2} = \frac 23 N2N3=32

  所以:
[ i α i β ] = 2 3 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 ] [ i A i B i C ] \begin{bmatrix} i_α \\ i_β \end{bmatrix} = \frac{2}{3}\begin{bmatrix} 1 & -\frac 12 & -\frac 12 \\ 0 & \frac {\sqrt 3}2 & -\frac {\sqrt 3}2 \end{bmatrix} \begin{bmatrix} i_A \\ i_B \\ i_C \end{bmatrix} [iαiβ]=32[102123 2123 ] iAiBiC

  根据基尔霍夫定律(KCL),所以归纳:
{ i A + i B + i C = 0 i α = 2 3 i A − 1 3 i B − 1 3 i C i β = 0 + 1 3 i B − 1 3 i C \left\{ \begin{array}{c} i_A + i_B + i_C = 0 \\ i_α = \frac 2 3 i_A - \frac 13 i_B - \frac 13 i_C\\ i_β = 0 + \frac 1{\sqrt3} i_B - \frac 1{\sqrt3} i_C \end{array} \right. iA+iB+iC=0iα=32iA31iB31iCiβ=0+3 1iB3 1iC

  最后化简得:
i α = i A i β = i A + 2 i B 3 \begin{split} i_α &= i_A\\ i_β &= \frac {i_A + 2i_B}{\sqrt3} \end{split} iαiβ=iA=3 iA+2iB

  经过Clarke变换后就变成了直角坐标系啦!变换前后的波形如图:
在这里插入图片描述
  可以看到变换后还是正弦波,虽然少了一个需要控制的变量,但是新的变量还是非线性的(正弦),控制它依旧难度很大,那有没有办法把它们线性化呢,当然有的,接着就看下Park变换

2.3 Park变换

  Park变换可以将电机从两相静止坐标系变换到两相旋转坐标系( d − q d-q dq坐标系),从而解耦出电机转矩分量和电机的励磁分量,这两个分量相互垂直、互不影响。反 Park变换即为Park的逆变换。首先我们来看下Park变换的原理,这里将Clarke变换后的 α − β α-β αβ坐标系旋转θ度,其中θ为转子旋转的角度,如下图:
在这里插入图片描述
  图中d轴方向与转子内磁场方向重合,称为直轴;q轴方向与转子内磁场方向垂直,称为交轴。如图所示:
在这里插入图片描述

  此时我们将 α − β α-β αβ坐标系变换到 d − q d-q dq坐标系,即Park变换,变换公式如下:
{ i d = i α cos ⁡ θ + i β sin ⁡ θ i q = − i α sin ⁡ θ + i β cos ⁡ θ \left\{ \begin{array}{c} i_d = i_α \cos θ +i_β \sin θ \\ i_q = -i_α \sin θ +i_β \cos θ \end{array} \right. {id=iαcosθ+iβsinθiq=iαsinθ+iβcosθ

  依据坐标变换,Park变换矩阵形式为:
[ i d i q ] = [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] [ i α i β ] \begin{bmatrix} i_d \\ i_q \end{bmatrix} = \begin{bmatrix} \cos θ & \sin θ \\ -\sin θ & \cos θ \end{bmatrix} \begin{bmatrix} i_α \\ i_β \end{bmatrix} [idiq]=[cosθsinθsinθcosθ][iαiβ]

  首先 α − β α-β αβ坐标系经过Park变换后,即为 d − q d-q dq坐标系,该坐标系是始终跟着转子旋转的,旋转角度θ需通过编码器/霍尔传感器读取。经过这一步的变换,我们会发现,一个匀速旋转向量在这个坐标系下变成了一个定值!(因为参考系相对于该向量静止了),这个坐标系下两个控制变量都被线性化了!Park变换前后波形如图所示:
在这里插入图片描述
  Park变换后的控制量为 I q I_q Iq I d I_d Id,很显然线性化后的控制量我们就可以使用PID来进行控制了;但是为什么我们还要进行反Park变换,将其又变换为 α − β α-β αβ坐标系呢?因为SVPWM算法的实现需要用到静止的 α − β α-β αβ坐标系,所以当我们完成了控制信号的PID运算后,还需进行反Park变换。由于反Park变换输入量为电压,变换公式如下:
{ U α = U d cos ⁡ θ − U q sin ⁡ θ U β = U d sin ⁡ θ + U q cos ⁡ θ \left\{ \begin{array}{c} U_α = U_d \cos θ - U_q \sin θ \\ U_β = U_d \sin θ + U_q \cos θ \end{array} \right. {Uα=UdcosθUqsinθUβ=Udsinθ+Uqcosθ

  所以反Park变换矩阵为:
[ U α U β ] = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] [ U d U q ] \begin{bmatrix} U_α \\ U_β \end{bmatrix} = \begin{bmatrix} \cos θ & -\sin θ \\ \sin θ & \cos θ \end{bmatrix} \begin{bmatrix} U_d \\ U_q \end{bmatrix} [UαUβ]=[cosθsinθsinθcosθ][UdUq]

三、闭环控制

  经过前面的坐标变换,我们就可以对分量进行闭环控制,FOC采用的线性控制器就是PID算法,关于 PID 控制部分这里就不赘述了,大家可以查看以下链接:
https://blog.csdn.net/weixin_44567668/article/details/130075152

  在FOC控制中主要用到三个PID环,从内环到外环依次是:电流环速度环位置环。也就是说:我们通过电流反馈来控制电机电流(扭矩) -> 然后通过控制扭矩来控制电机的转速 -> 再通过控制电机的转速控制电机位置。

3.1 电流环控制

  首先我们了解一下FOC的目的,前面的一通操作我们将转子磁链进行了解耦,分解为转子旋转的径向和切向这两个方向的变量: I q I_q Iq以及 I d I_d Id,那这两个控制量到底代表什么含义呢?对于电机来说FOC的目的如图所示:
在这里插入图片描述
  经过上述分析,我们得知:

  • Iq 是我们需要的。代表了期望的力矩输出;
  • Id 是我们不需要的。我们希望尽可能把它控制为 0;

  再来看看内环电流环控制框图如下:
在这里插入图片描述

  矢量控制算法分别控制 d − q d-q dq轴电流,实际只用到了PI控制,没有引入微分,因为如果推导一下电压和电流的传递函数会发现这其实就是一个一阶惯性环节(而且实际上我们可以通过零极点对消来简化掉PI参数,只需要控制一个参数即电流带宽即可)

3.3 速度环控制

  然后进入到下一层的速度环:
在这里插入图片描述
  在上图中,Speed_Ref是速度设定值,ω是电机的转速反馈,可以通过电机编码器或者霍尔传感器等计算得到,依然是使用PI控制。将计算得到的电机速度ω与速度设定值Speed_Ref进行误差值计算,代入速度PI环,计算的结果作为电流环的输入,就实现了速度-电流的双闭环控制。

3.4 位置环控制

  最外一层是位置环,也就是可以控制电机旋转到某个精确的角度并保持,控制框图如下:
在这里插入图片描述

  同理应该很简单可以理解,上图中位置控制PID只用了P项(也可以使用PI)。在实际使用中,由于编码器无法直接返回电机转速 ,因此可以通过计算一定时间内的编码值变化量来表示电机的转速(也即用平均速度代表瞬时速度)。当电机转速比较高的时候,这样的方式是可以的;但是在位置控制模式的时候,电机的转速会很慢(因为是要求转子固定在某个位置嘛),这时候用平均测速法会存在非常大的误差(转子不动或者动地很慢,编码器就没有输出或者只输出1、2个脉冲)。所以为了避免速度环节带来的误差,在做位置控制的时候可以只使用位置和电流组成的双环进行控制,不过此时需要对位置环做一定的变化,控制框图如下:
在这里插入图片描述

  由于去掉了速度环,这里的位置环我们使用完整的PID控制,即把微分项加上(因为位置的微分就是速度,这样可以减小位置控制的震荡加快收敛;积分项的作用是为了消除静态误差)

  至此整个控制回路基本上捋清楚了,只差最后一个步骤就是“SVPWM”,下面我们开始对 SVPWM 做一个详细的介绍

四、SVPWM原理

在这里插入图片描述

  如上面的三相逆变系统,我们知道SPWM就是生成三个相位相差120°的正弦波,SPWM是从电源的角度出发,构造出旋转所需的正弦电压,这种方式比较适合用作逆变器,但是对于无刷或者永磁同步电机,调节过的电源实际在定子线圈中产生的电流并不一定是所需的结果。SPWM不依赖开关顺序,3 相独立调制,也就是所谓的开环,是没有反馈的。所以这种控制方式还是不能较为准确的控制定子电流。因此这种永磁无刷电机直接通三相交流电并不一定能很平稳的旋转起来,不然的话纯硬件就可以产生规则的电流,哪还需要微控制器做复杂运算。

  SVPWM是空间矢量脉宽调制(Space Vector Pulse Width Modulation)的简称,主要思想是以三相对称正弦波电压供电时三相对称电机定子理想磁链圆为参考标准,以三相逆变器不同开关模式作适当的切换,从而形成 PWM 波,以所形成的实际磁链矢量来追踪其准确磁链圆。SVPWM需要依靠MOS管的开关顺序和把控整体的 3 相开关时间来调制有效电流,以此模拟出正弦电流。SVPWM将逆变系统和异步电机看作一个整体来考虑,模型比较简单,也便于微处理器的实时控制。SVPWM的优点主要有:优化谐波程度比较高,消除谐波效果要比 SPWM 好,实现容易,可以提高电压利用率。比较适合数字化控制系统。

  SVPWM的主要特点有

  • 在每个扇区虽有多次开关切换,但每次开关切换只涉及一个器件,所以开关损耗小。
  • 利用电压空间矢量直接生成三相 PWM 波,计算简单。
  • 逆变器输出线电压基波最大值为直流侧电压,比一般的 SPWM 逆变器输出电压高15%

4.1 空间矢量合成

  设直流母线侧电压为 U d c U_{dc} Udc,MOS管3相调制输出电压分别为 U A U_{A} UA U B U_{B} UB U C U_{C} UC,其分别加在空间上互差 120°的三相静止坐标系上,设 U m U_m Um为相电压基波峰值, f f f为电源频率,如图所示:
在这里插入图片描述
{ U A ( t ) = U m cos ⁡ ( ω t ) U B ( t ) = U m cos ⁡ ( ω t − 120 ° ) U C ( t ) = U m cos ⁡ ( ω t + 120 ° ) \left\{ \begin{array}{c} U_A(t) = U_m \cos (ωt) \\ U_B(t) = U_m \cos (ωt-120°)\\ U_C(t) = U_m \cos (ωt+120°) \\ \end{array} \right. UA(t)=Umcos(ωt)UB(t)=Umcos(ωt120°)UC(t)=Umcos(ωt+120°)

  SVPWM是空间矢量脉宽调制,矢量就是有方向的向量,所以相电压可以由一个空间电压矢量或其它分量代替。我们先定义三个电压空间矢量 u a n u_{an} uan u b n u_{bn} ubn u c n u_{cn} ucn,方向分别在其轴线上,大小随时间按正弦规律变化,相位差120°,有
{ u a n ( t ) = U A ( t ) e j 0 u b n ( t ) = U B ( t ) e j 2 π / 3 u c n ( t ) = U C ( t ) e − j 2 π / 3 \left\{ \begin{array}{c} u_{an}(t) = U_A(t) e^{j0} \\ u_{bn}(t) = U_B(t) e^{j2π/3} \\ u_{cn}(t) = U_C(t) e^{-j2π/3} \end{array} \right. uan(t)=UA(t)ej0ubn(t)=UB(t)ej2π/3ucn(t)=UC(t)ej2π/3

  则合成矢量 u s u_s us
u s ( t ) = u a n ( t ) + u b n ( t ) + u c n ( t ) = U A ( t ) + U B ( t ) e j 2 π / 3 + U C ( t ) e − j 2 π / 3 = U m 2 ( e j ω t + e − j ω t ) + U m 2 [ e j ( ω t − 2 π / 3 ) + e − j ( ω t − 2 π / 3 ) ] e j 2 π / 3 + U m 2 [ e j ( ω t + 2 π / 3 ) + e − j ( ω t + 2 π / 3 ) ] e − j 2 π / 3 = 3 2 U m e j ω t \begin{split} u_s(t) = &u_{an}(t) + u_{bn}(t) + u_{cn}(t)\\ = &U_A(t) + U_B(t) e^{j2π/3} + U_C(t) e^{-j2π/3} \\ = &\frac {U_m}{2}(e^{jωt}+e^{-jωt}) \\ &+\frac {U_m}{2}\left[e^{j(ωt - 2π/3)}+e^{-j(ωt-2π/3)}\right]e^{j2π/3}\\ &+\frac {U_m}{2}\left[e^{j(ωt + 2π/3)}+e^{-j(ωt+2π/3)}\right]e^{-j2π/3} \\ =&\frac 32 U_m e^{jωt} \end{split} us(t)====uan(t)+ubn(t)+ucn(t)UA(t)+UB(t)ej2π/3+UC(t)ej2π/32Um(et+et)+2Um[ej(ωt2π/3)+ej(ωt2π/3)]ej2π/3+2Um[ej(ωt+2π/3)+ej(ωt+2π/3)]ej2π/323Umet
  可见 u s ( t ) u_s(t) us(t)是一个旋转的空间矢量,它的幅值不变为相电压峰值的1.5倍,且以角频率 ω = 2 π f ω= 2πf ω=2πf按逆时针方向匀速旋转的空间矢量。

在这里插入图片描述
  由于驱动器三相桥臂依靠6只MOS 管,而MOS管只有导通和非导通状态(PWM 信号输入),再加上同一相的MOS管不可以同时打开(会烧掉),因此三相开关全部组合有8种情况。这里定义一个开关函数 S x S_x Sx〈𝑥 = 𝑎、𝑏、𝑐〉,abc 分别代表三相绕组,全部组合如下所示:
在这里插入图片描述
在这里插入图片描述

  关于相电压,以上图开关S(100)为例,此时等效电路如图所示:
在这里插入图片描述

  根据串联分压定理,有如下,剩下的三相开关组合情况同理
U a N = 2 3 U d c U b N = U c N = − 1 3 U d c \begin{split} U_{aN} &= \frac 23 U_{dc}\\ U_{bN} & = U_{cN} = -\frac 13 U_{dc}\\ \end{split} UaNUbN=32Udc=UcN=31Udc

  上面我们发现虽然是三相系统,但是矢量却是二维的,那我们是否可以使用二维坐标来表示合成矢量呢?答案当然是可以的
在这里插入图片描述

  假设合成矢量 U ˙ \.U U˙的模是固定的为 U m U_m Um,则有
U ˙ = U d + j U q \.U = U_d + jU_q U˙=Ud+jUq
  其中 U d = U m cos ⁡ ω t U_d = U_m \cos ωt Ud=Umcosωt U q = U m sin ⁡ ω t U_q = U_m \sin ωt Uq=Umsinωt,那么可以将 U A U_{A} UA U B U_{B} UB U C U_{C} UC变成
U A ( t ) = U m cos ⁡ ω t = U d U B ( t ) = U m cos ⁡ ( ω t − 120 ° ) = U d cos ⁡ 120 ° + U q sin ⁡ 120 ° = − 1 2 U d + 3 2 U q U C ( t ) = U m cos ⁡ ( ω t + 120 ° ) = U d cos ⁡ 120 ° − U q sin ⁡ 120 ° = − 1 2 U d − 3 2 U q \begin{split} U_{A}(t) & = U_m \cos ωt = U_d \\ U_{B}(t) & = U_m \cos (ωt-120°) \\ & = U_d \cos 120° + U_q \sin 120° \\ & = -\frac 12 U_d + \frac {\sqrt 3}{2} U_q \\ U_{C}(t)&= U_m \cos (ωt+120°) \\ & = U_d \cos 120° - U_q \sin 120° \\ & = -\frac 12 U_d - \frac {\sqrt 3}{2} U_q \end{split} UA(t)UB(t)UC(t)=Umcosωt=Ud=Umcos(ωt120°)=Udcos120°+Uqsin120°=21Ud+23 Uq=Umcos(ωt+120°)=Udcos120°Uqsin120°=21Ud23 Uq
  用矩阵形式表示有
[ U A ( t ) U B ( t ) U C ( t ) ] = [ 1 0 − 1 2 3 2 − 1 2 3 2 ] [ U d U q ] \begin{bmatrix} U_{A}(t) \\ U_{B}(t) \\ U_{C}(t) \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ -\frac 12 & \frac {\sqrt 3}2 \\ -\frac 12 & \frac {\sqrt 3}2 \end{bmatrix} \begin{bmatrix} U_d \\ U_q \end{bmatrix} UA(t)UB(t)UC(t) = 12121023 23 [UdUq]
  反过来同样有
[ U d U q ] = [ 1 − 1 2 − 1 2 0 3 2 − 3 2 ] [ U A ( t ) U B ( t ) U C ( t ) ] \begin{bmatrix} U_d \\ U_q \end{bmatrix} = \begin{bmatrix} 1 & -\frac 12 & -\frac 12 \\ 0 & \frac {\sqrt 3}2 & -\frac {\sqrt 3}2 \end{bmatrix} \begin{bmatrix} U_{A}(t) \\ U_{B}(t) \\ U_{C}(t) \end{bmatrix} [UdUq]=[102123 2123 ] UA(t)UB(t)UC(t)
  这就表明新电压空间矢量与三相交流相电压矢量之间可以相互转换。此时把 U d U_d Ud U q U_q Uq变成横纵坐标 α α α β β β,这里假设电压基值为 2 3 U d c \sqrt{\frac 23}U_{dc} 32 Udc,同样8个开关方式,见下表

状态 S a S_a Sa S b S_b Sb S c S_c Sc U α U_α Uα U β U_β Uβ
0态V000000
1态V1001 2 3 U d c \sqrt{\frac 23}U_{dc} 32 Udc0
2态V2010 1 6 U d c \sqrt{\frac 16}U_{dc} 61 Udc 1 2 U d c \sqrt{\frac 12}U_{dc} 21 Udc
3态V3011 − 1 6 U d c -\sqrt{\frac 16}U_{dc} 61 Udc 1 2 U d c \sqrt{\frac 12}U_{dc} 21 Udc
4态V4100 − 2 3 U d c -\sqrt{\frac 23}U_{dc} 32 Udc0
5态V5101 − 1 6 U d c -\sqrt{\frac 16}U_{dc} 61 Udc − 1 2 U d c -\sqrt{\frac 12}U_{dc} 21 Udc
6态V6110 1 6 U d c \sqrt{\frac 16}U_{dc} 61 Udc − 1 2 U d c -\sqrt{\frac 12}U_{dc} 21 Udc
7态V711100

  可以合成6个非0矢量和2个0矢量,如下图所示
在这里插入图片描述

4.2 SVPWM法则

  上面虽然合成矢量,但是这样模拟出的三相正弦交流相电压,其幅值和相位不可控。我们可以通过控制相邻两个矢量以及0矢量在60°扇区中的各自作用时间长短来实现两个非0矢量的等效幅值大小,达到其合成矢量的幅值和相位均可控目的,如下图所示
在这里插入图片描述
  其中 V r e f V_{ref} Vref为期望电压矢量, T s T_s Ts为采样周期, T a T_a Ta T b T_b Tb分别对应两个非零电压矢量的作用时间,再加上零电压矢量 V 0 V_0 V0的作用时间 T 0 T_0 T0,那么有
∫ 0 T s V r e f   d t = ∫ 0 T a V 1   d t + ∫ T s T a + T b V 2   d t + ∫ T a + T b T s V 0   d t \int_0^{T_s} V_{ref} \,{\rm d}t = \int_0^{T_a} V_1 \,{\rm d}t + \int_{T_s}^{T_a+T_b} V_2 \,{\rm d}t + \int_{T_a+T_b}^{T_s} V_0 \,{\rm d}t 0TsVrefdt=0TaV1dt+TsTa+TbV2dt+Ta+TbTsV0dt
  可以等效成下式
V r e f ∗ T s = V 1 ∗ T a + V 2 ∗ T b + V 0 ∗ T 0 V_{ref} * T_s = V_1 * T_a + V_2 * T_b + V_0 * T_0 VrefTs=V1Ta+V2Tb+V0T0
  其意义是,矢量 V r e f V_{ref} Vref T s T_s Ts时间内所产生的积分效果值和 V 1 V_1 V1 V 2 V_2 V2 V 0 V_0 V0分别在时间 T a T_a Ta T b T_b Tb T 0 T_0 T0内产生的积分效果相加总和值相同。由于 ∣ U 4 ∣ = ∣ U 6 ∣ = 2 3 U d c |U_4|=|U_6|=\frac 23 U_{dc} U4=U6=32Udc,到各矢量的状态保持时间为:
T a = M T s sin ⁡ ( π 3 − θ ) T b = M T s sin ⁡ ( θ ) \begin{split} T_a &= M T_s \sin(\frac π 3 - θ) \\ T_b &= M T_s \sin(θ) \end{split} TaTb=MTssin(3πθ)=MTssin(θ)
  式中 M M M为SVPWM的调制系数(调制比), M = 3 ∣ V r e f ∣ / U d c M=\sqrt 3|V_{ref}|/U_{dc} M=3 Vref∣/Udc,而零电压向量所分配的时间为:
T 7 = T 0 = ( T s − T a − T b ) 或 T 7 = T 0 = ( T s − T a − T b ) / 2 T_7 = T_0 = (T_s - T_a - T_b)\\ 或T_7 = T_0 = (T_s - T_a - T_b)/2 T7=T0=(TsTaTb)T7=T0=(TsTaTb)/2
  得到以 V 1 V_1 V1 V 2 V_2 V2 V 7 V_7 V7 V 0 V_0 V0合成的 V r e f V_{ref} Vref的时间后,接下来就是如何产生实际的脉宽调制波形。在SVPWM调制方案中,零矢量的选择是最具灵活性的,适当选择零矢量,可最大限度地减少开关次数,尽可能避免在负载电流较大的时刻的开关动作,最大限度地减少开关损耗。

  这样8中开关状态可将360度的电压空间分为 60 度一个扇区,共六个扇区,利用这六个基本非零矢量和两个零量,可以合成 360 度内的任何矢量。如图所示:

在这里插入图片描述

4.3 MOS开关方式

  以减少开关次数为目标,基本矢量作用顺序原则为:在每次开关状态转换时只改变其中一个相的开关状态,并且平均分配零矢量,使 PWM对称、降低 PWM的谐波分量。常用方式有7段式5段式 SVPWM。

  1. 七段式SVPWM

  七段式SVPWM,由3段零矢量4段相邻的两个非零矢量组成。3段零矢量分别位于PWM的开始、中间和结尾。以第Ⅰ扇区为例,三相调制波形在时间段 T s T_s Ts时段中如下图所示

在这里插入图片描述
  图中电压矢量出现先后顺序为 U 0 U_0 U0 U 4 U_4 U4 U 6 U_6 U6 U 7 U_7 U7 U 6 U_6 U6 U 4 U_4 U4 U 0 U_0 U0,各电压矢量的三相波形对应三相调制开关状态,零矢量过后 U r e f U_{ref} Uref角度增加 γ γ γ,然后重新计算 T 0 T_0 T0 T a T_a Ta T b T_b Tb T 7 T_7 T7,每一次载波周期合成一个新的矢量,角度逐渐增大,直至超过60度,然后进入Ⅱ扇区,开关顺序切换如下
在这里插入图片描述
  然后按照Ⅱ扇区开关切换顺序合成角度递增的新的矢量,直至超过 120°范围,进入下一个扇区,直至旋转 360,然后依次循环。最后效果如下

在这里插入图片描述

  1. 五段式SVPWM

  五段式SVPWM,有两种方式:使用V0矢量和使用V7矢量,为方便电流采样通常采用V0矢量方式
在这里插入图片描述

  最后效果如下
在这里插入图片描述

  1. 两种方式对比

  7段SVPWM、5段SVPWM端电压对比
在这里插入图片描述

  7段SVPWM、5段SVPWM选择

比较内容7段SVPWM5段SVPWM
THD较低,性能好较高,性能差
开关损耗较高减少1/3
功率开关
调制波形连续不连续
母线电压利用率一致

4.4 矢量作用时间

  通过上述推导可知,要实现信号调制,首先要知道参考电压矢量所在扇区位置,然后利用扇区相邻两个非零矢量和零矢量来合成,然后以旋转矢量为目标,在每个扇区内通过不同的开关顺序合成矢量来跟随目标旋转矢量。

  空间矢量调制第一步需要判断空间电压矢量所处的扇区,假设合成电压矢量在Ⅰ扇区,则 0 ° < θ < 60 ° 0°<θ<60° <θ<60°,由 tan ⁡ ( θ ) = U β / U α \tan(θ)=U_β/U_α tan(θ)=Uβ/Uα,可知 θ = arctan ⁡ ( U β / U α ) θ = \arctan(U_β/U_α) θ=arctan(Uβ/Uα),所以
0 ° < arctan ⁡ ( U β / U α ) < 60 ° 0°<\arctan(U_β/U_α)<60° <arctan(Uβ/Uα)<60°
  且满足
0 < tan ⁡ θ < 3 0<\tan θ<\sqrt 3 0<tanθ<3
  可求知,当合成电压矢量在Ⅰ扇区时的充要条件是:
U α > 0 , U β > 0 , U β / U α < 3 U_α>0,U_β>0,U_β/U_α<\sqrt 3 Uα>0Uβ>0Uβ/Uα<3
  其他扇区同理,可得:
在这里插入图片描述

  若进一步分析以上的条件,可以看出电压矢量 U r e f U_{ref} Uref所在扇区由三个式子决定
U 1 = U β U 2 = 3 2 U α − 1 2 U β U 3 = − 3 2 U α − 1 2 U β \begin{split} U_1 & = U_β \\ U_2 & = \frac {\sqrt 3}{2} U_α - \frac 12 U_β \\ U_3 & = -\frac {\sqrt 3}{2} U_α - \frac 12 U_β \end{split} U1U2U3=Uβ=23 Uα21Uβ=23 Uα21Uβ

  以第一扇区为例,假设6个非零矢量幅值一致,均为 2 3 U d c \frac 23 U_{dc} 32Udc,如下

在这里插入图片描述

  则有
U r e f ∗ T s = U 4 ∗ T 4 + U 6 ∗ T 6 U_{ref} * T_s = U_4 * T_4 + U_6 * T_6 UrefTs=U4T4+U6T6
  令 U r e f U_{ref} Uref U 4 U_4 U4的夹角为 θ θ θ,由正弦定理可得
∣ U r e f ∣ cos ⁡ ( θ ) = T 4 T s ∣ U 4 ∣ + T 6 T s ∣ U 6 ∣ cos ⁡ ( π 3 ) = U α T s ∣ U r e f ∣ sin ⁡ ( θ ) = T 6 T s ∣ U 6 ∣ + sin ⁡ ( π 3 ) = U β T s \begin{split} |U_{ref}|\cos (θ) &= \frac {T_4}{T_s}|U_4|+ \frac {T_6}{T_s}|U_6|\cos (\frac π 3) = U_α T_s\\ |U_{ref}|\sin (θ) &= \frac {T_6}{T_s}|U_6|+ \sin (\frac π 3) = U_β T_s \end{split} Urefcos(θ)Urefsin(θ)=TsT4U4+TsT6U6cos(3π)=UαTs=TsT6U6+sin(3π)=UβTs
  整理得出
U α T s = 2 3 U d c ( T 4 + 1 2 T 6 ) U β T s = 2 3 U d c ( 3 2 T 6 ) \begin{split} U_α T_s &= \frac {2}{3}U_{dc}(T_4 + \frac 12 T_6)\\ U_β T_s &= \frac {2}{3}U_{dc}(\frac {\sqrt 3}2 T_6) \end{split} UαTsUβTs=32Udc(T4+21T6)=32Udc(23 T6)
  求得
T 4 = 3 U α T s 2 U d c − 1 2 T 6 = 3 U α T s 2 U d c − 1 2 3 U β T s 2 U d c = 3 T s U d c ( 3 U α 2 − U β 2 ) = 3 T s U d c U 2 T 6 = 3 U β T s U d c = 3 T s U d c U 1 T 7 = T 0 = T s − T 4 − T 6 2 ( 7 p e r i o d s ) 或 T 7 = T s − T 4 − T 6 ( 5 p e r i o d s ) U 1 = U β U 2 = 3 2 U α − 1 2 U β \begin{split} T_4 = &\frac {3U_αT_s}{2U_{dc}} - \frac 12 T_6 = \frac {3U_αT_s}{2U_{dc}} - \frac 12 \frac {\sqrt 3U_βT_s}{2U_{dc}} \\ =&\frac {\sqrt 3 T_s} {U_{dc}}\left(\frac {\sqrt 3 U_α} {2} - \frac{U_β}{2}\right) = \frac {\sqrt 3T_s}{U_{dc}} U_2\\ T_6 = &\frac {\sqrt 3 U_β T_s} {U_{dc}} = \frac {\sqrt 3T_s}{U_{dc}} U_1\\ T_7 = &T_0 = \frac {T_s - T_4 - T_6}2 (7periods)或 \\ T_7 = &T_s - T_4 - T_6 (5periods) \\ U_1 = &U_β \\ U_2 = &\frac {\sqrt 3}{2} U_α - \frac 12 U_β \\ \end{split} T4==T6=T7=T7=U1=U2=2Udc3UαTs21T6=2Udc3UαTs212Udc3 UβTsUdc3 Ts(23 Uα2Uβ)=Udc3 TsU2Udc3 UβTs=Udc3 TsU1T0=2TsT4T6(7periods)TsT4T6(5periods)Uβ23 Uα21Uβ
  至此我们得到了每一时刻所需要的空间电压矢量以及它们持续的时间,同理可计算得其他扇区基本空间矢量的作用时间。在处理器中赋值给对应通道的捕获比较寄存器产生相应的三个 PWM 波形,控制 MOS 管的开关,进而产生我们期望的电压、电流、力矩。
在这里插入图片描述

  当俩零电压矢量作用时间为 0 时,一个 PWM 周期内非零电压作用时间最长,合成空间电压矢量幅值最大,其最大值不会超过正六边形边界,否则就会过调,输出电压波形就会失真,SVPWM 调制模式下能够输出的最大不失真旋转电压矢量为正六边形的内切圆,赋值为 3 2 ∗ 2 3 U d c = 3 3 U d c \frac {\sqrt 3}{2}*\frac 23U_{dc}=\frac{\sqrt 3}{3}U_{dc} 23 32Udc=33 Udc,相对SPWM最大为 1 2 U d c \frac 12 U_{dc} 21Udc,因此SVPWM方式电压利用率高出 3 3 / 1 2 − 1 = 15.47 % \frac{\sqrt 3}{3}/\frac 12 - 1= 15.47 \% 33 /211=15.47%

  至此,FOC的全部环节已经结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来医疗:从医技数字化2.0到全局变革

斯蒂芬•申弗&#xff08;Stephen C. Schimpff&#xff09;的《医疗大趋势&#xff1a;明日医学》被认为是全球第一本系统介绍未来医疗的权威著作。在书中&#xff0c;作者认为基因组学、手术技术革新、干细胞、数字医疗等关键技术将驱动医疗变革的发生&#xff0c;全面提升人类…

OpenAI o1-preview:详细分析

OpenAI 终于打破沉默&#xff0c;发布了万众期待的 “o1-preview”。其中有很多内容值得解读。 作为一家以 LLM 为生的人工智能初创公司&#xff0c;我们想知道这个新模型的性能如何&#xff0c;以及它能如何帮助我们改进产品。 因此&#xff0c;我花了一整天的时间来实验这个…

(JAVA)队列 和 符号表 两种数据结构的实现

1. 队列 1.1 队列的概述 队列是一种基于先进先出&#xff08;FIFO&#xff09;的数据结构&#xff0c;是一种只能在一端进行插入&#xff0c;在另一端进行删除操作的特殊线性表。 它按照先进先出的原则存储数据&#xff0c;先进入的数据&#xff0c;在读取时先被读出来 1.2 …

蓝桥杯【物联网】零基础到国奖之路:十二. TIM

蓝桥杯【物联网】零基础到国奖之路:十二. TIM 第一节 理论知识第二节 cubemx配置 第一节 理论知识 STM32L071xx器件包括4个通用定时器、1个低功耗定时器&#xff08;LPTIM&#xff09;、2个基本定时器、2个看门狗定时器和SysTick定时器。 通用定时器&#xff08;TIM2、TIM3、…

详解JavaScript中属性getter和setter

6.6 属性getter和setter 属性值可以用1个或者2个方法替代&#xff0c;getter和setter. 由这两个定义的属性称作存取器属性(accessor property)&#xff0c;不同于数据属性&#xff0c;只有一个简单的值。有读写属性&#xff0c;只能写&#xff0c;只能读&#xff0c;可以读写…

数据结构 算法的时间复杂度 计算(两种规则 加法原则+乘法原则)

在分析时间复杂性时&#xff0c;加法和乘法原则是两个基本且重要的概念&#xff0c;它们分别用于处理算法中顺序执行和嵌套执行的代码段的时间复杂度计算。以下是对这两个原则的详细说明&#xff1a; 一、加法原则 定义&#xff1a; 加法原则适用于顺序执行的代码段。如果一…

从Linux系统的角度看待文件-基础IO

目录 从Linux系统的角度看待文件 系统文件I/O open write read 文件操作的本质 vim中批量注释的方法 从Linux系统的角度看待文件 关于文件的共识&#xff1a; 1.空文件也要占用磁盘空间 2.文件内容属性 3.文件操作包括文件内容/文件属性/文件内容属性 4.文件路径文…

LDO实习报告(免费)-有完整电路版图

LDO实习任务书 实习目的&#xff1a; 了解LDO电路研究现状和原理结构&#xff0c;熟悉模拟电路设计流程。 week1 &#xff1a; 调研LDO应用情况及研究现状。 week2 &#xff1a; 熟悉LDO基本原理及组成。 week3 &#xff1a; 构建LDO电路。 week4 &#xff1a; 对LDO进…

从日志到洞察:轻松实现服务器安全管理的神器

在当今复杂多变的网络环境中&#xff0c;服务器安全管理已成为一项不可或缺的任务。然而&#xff0c;面对海量的日志数据&#xff0c;如何快速精准地提取有价值的信息&#xff0c;并及时发现潜在的安全威胁&#xff1f;本文将为您介绍一款强大的服务器日志检索与查杀工具&#…

pilz皮尔兹PSSuniversal分散控制平台 Dezentrale Steuerungsplattform 手测

pilz皮尔兹PSSuniversal分散控制平台 Dezentrale Steuerungsplattform 手测

WebAPI编程(第三天,第四天)

WebAPI编程&#xff08;第三天&#xff0c;第四天&#xff09; day03 - Web APIs1.1. 节点操作1.1.1 删除节点1.1.2 案例&#xff1a;删除留言1.1.3 复制&#xff08;克隆&#xff09;节点1.1.4 案例&#xff1a;动态生成表格1.1.5 创建元素的三种方式1.1.6 innerTHML和createE…

基于SSM+小程序的自习室选座与门禁管理系统(自习室1)(源码+sql脚本+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 1、管理员实现了首页、基础数据管理、论坛管理、公告信息管理、用户管理、座位管理等 2、用户实现了在论坛模块通过发帖与评论帖子的方式进行信息讨论&#xff0c;也能对账户进行在线充值…

深圳龙链科技:全球区块链开发先锋,领航Web3生态未来

【深圳龙链科技】是全球领先的Web3区块链技术开发公司&#xff0c;专注于为全球客户提供创新高效的区块链解决方案。 深圳龙链科技由币安资深股东携手香港领先的Web3创新枢纽Cyberport联袂打造&#xff0c;立足于香港这一国际金融中心&#xff0c;放眼全球&#xff0c;汇聚了华…

罕见,回复问询后闪电终止,业绩存下滑风险

《IPO魔女》认为&#xff0c;和美精艺利润低且大幅波动&#xff0c;报告期公司毛利率持续大幅下滑。而2023年同行业的上市公司均出现了业绩大幅下滑的情况&#xff0c;还未上市的和美精艺恐怕也存在业绩下滑的风险。此外&#xff0c;2020年至2022年&#xff0c;和美精艺研发投入…

Excel根据一个值匹配一行数据

根据一个值从一个表中匹配一行数据&#xff0c;例如从左边的表中找到指定姓名的所有行数据 使用VLOOKUP函数&#xff0c;参数&#xff1a; Lookup_value&#xff1a;需要搜索的值&#xff0c;单个值 Table_array&#xff1a;被搜索的区域&#xff0c;是个表 Col_index_num&…

JS数据类型类型转换

基本数据类型 JS中的数据类型由原始值和对象共同组成&#xff0c;原始值一共有七种原始值&#xff1a; 数值(Number)大整数(BigInt)字符串(String)布尔值(Boolean)空值(Null)未定义(Undefined)符号(Symbol) 数值和大整数 数值(Number):在js中所有的整数和浮点数都是number类型 …

【vue-router】用meta.keepAlive做缓存

网上大家都说按下面的写法 <keep-alive><router-view v-if"route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if"!route.meta.keepAlive"></router-view>但是会报错 解决方法也没找到 最后换一…

23、Presidential

难度 中 目标 root权限 2个flag 基于virtualbox启动 题目提示枚举是你的朋友 kali 192.168.86.102 靶机 192.168.86.107 信息收集 端口扫描 tcp开启的端口就两个&#xff0c;稳妥起见扫了一些常见的端口看是否有UDP协议开放的端口。同时nmap在扫描80端口提示可能存在的tra…

OCR识别系统 YOLOv8 +Paddle 方案落地

YOLOv8 PaddleOCR 技术方案落地 Yolov8相关文档Step 1 证件模型的训练Step 2 Yolov8进行图片推理Step 3 PaddleOCR进行识别Step 4 整合Yolov8 PaddleOCR 进行OCR Yolov8相关文档 《yolov8 官方网站》 《Yolov8 保姆级别安装》 Ultralytics YOLOv8 是一款尖端的、最先进的 (S…

NASA数据集:ATLAS/ICESat-2 L3B 南极和北极网格陆地冰高,第 3 版

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Gridded Antarctic and Arctic Land Ice Height V003 简介 ATLAS/ICESat-2 L3B 南极和北极网格陆地冰高&#xff0c;第 3 版 ATL14 和 ATL15 将 ATLAS/ICESat-2 L3B 年度陆地冰…