FOC矢量控制原理&SVPWM原理及实现

FOC简介

FOC( Field Oriented Control ),磁场定向控制,又称磁场矢量控制。

目前是无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最佳选择

特点:通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。

FOC 的核心思想是将三相交流电机的控制转换为对应的直流电机控制。具体来说,FOC 通过以下步骤实现:

  1. 测量电机的转子位置和相电流。
  2. 将三相电流转换为两相固定坐标系(d-q坐标系)的电流分量。
  3. 根据转子位置信息,将d-q坐标系的电流分量转换为与转子磁场垂直的分量(转矩分量)和与转子磁场平行的分量(磁通分量)。
  4. 独立控制转矩分量和磁通分量,从而实现电机的精准控制。

FOC框图

电机控制三环控制包括力矩环、位置环、速度环。其中位置环和速度环的控制都基于力矩环。

电流环控制为例(力矩环),也就是让电机始终保持一个恒定力矩(力矩与电流成正比):

① 对电机三相电流进行采样得到:ia、ib、ic;
② 将 ia、ib、ic 经过 clarke 变换得到 iα、iβ;
③ 将 iα、iβ经过 park 变换得到 iq、id;
④ 计算 iq、id 和其设定值 iq_Ref、id_Ref 的误差;
⑤ 将上述误差输入到两个PID(只用到 PI)控制器,得到输出的控制电压 Vq、Vd;
⑥ 将 Vq、Vd 进行反 park 变换得到 Vα、Vβ;
⑦ 将Vα、Vβ 输入 SVPWM 模块进行调制,合成电压空间矢量,输出该时刻三个半桥的开关状态进而控制电机旋转;
⑧ 循环上述步骤。

速度+电流环

Speed_Ref 是速度设定值,w 是电机转速;将速度环的输出作为电流环的输入,就可以实现速度+电流双闭环控制了

位置+速度+电流环:

 Position_Ref 是位置设定值,Position 是位置反馈。将位置环的输出作为速度环的输入,将速度环的输出作为电流环的输入,就可以实现三闭环控制。一般使用位置环时,直接使用位置+电流环即可,去掉速度环。

FOC坐标变换

驱动电机理想的方式是向三个电机绕组加入三相正弦电压,每相的相位差为120°

然而直接对三相正弦波的控制属于非线性信号的高阶控制,为了简化控制需要对其进行降维处理即空间矢量变换。其中用到的数学手段即Clarke变换(3S/2S)。Clarke变换是一种用于将三相电压或电流转换为两相电压或电流的数学变换方法。

Clarke变换的目的是将三相电信号转换为两相信号,其中一个相为零序分量(也称为直流分量),另一个相为正序分量(也称为旋转分量)。这种转换可以简化对三相系统的分析和控制。

Clarke变换是一种线性变换,可以通过逆变换将转换后的两相信号重新转换为三相信号。这样可以在控制系统中实现对电机的精确控制。

假设变换前三相定子绕组匝数为𝑁3,变换后的两相定子绕组匝数为𝑁2,根据磁动量守恒可得:
在这里插入图片描述(向量投影)

提取𝑖𝛼和𝑖𝛽并以矩阵形式表示,便可得到Clarke的基本形式:
在这里插入图片描述
遵循恒幅值不变原理可得:
在这里插入图片描述

所以:
在这里插入图片描述
根据基尔霍夫定律(KCL),所以归纳:
在这里插入图片描述
最后化简得:
在这里插入图片描述

经过 Clarke 变换后就变成了直角坐标系,见下图左下角转换图形。

变换后还是正弦波,虽然少了一个需要控制的变量,但是新的变量还是非线性的(正弦),希望通过一个定值就可以不考虑𝑖𝛼和𝑖𝛽,直接描述旋转状态下的电机。如果要进一步对其进行降维,就需要Park 变换。

固定在定子上的𝑖和𝛽坐标系;                                                         固定在转子上的d和q坐标系(分别电机的励磁分量和电机转矩分量)

转子旋转时𝑖𝛼和𝑖𝛽是不断变化                          d 轴方向与转子内磁场方向重合,称为直轴;q 轴方向与转子内磁场方向垂直,称为交轴

将 Clarke 变换后的 α—β 坐标系旋转θ度,其中θ为转子旋转的角度(电角度)

将 α—β 坐标系变换到 d-q 坐标系,即 Park 变换
在这里插入图片描述
变换公式如下:

在这里插入图片描述

在将 Park 变换后的结果在经过 PID 控制器,PI 运算后的输出结果在进行反 Park 变换(框图第6步),反 Park 变换矩阵为:
在这里插入图片描述
变换公式如下:
在这里插入图片描述

 α—β 坐标系经过 Park 变换后,得到 d-q 坐标系,该坐标系是始终跟着转子旋转的,旋转角度θ需通过编码器/霍尔传感器读取。经过这一步的变换,一个匀速旋转向量在这个坐标系下变成了一个定值!(因为参考系相对于该向量静止了),这个坐标系下两个控制变量都被线性化了!

Park 变换后的控制量为 Iq、Id,因为 SVPWM算法的实现需要用到静止的 α—β 坐标系,所以还需进行反 Park 变换。

DQ含义

①Q为电机转矩分量是我们需要的。代表期望的力矩输出;
②D为电机励磁分量是我们不需要的。一般希望尽可能把它控制为 0;

注:不过在高频注入(HFI)需要用到D轴。

高频注入是一种用于传感器无传感器控制(Sensorless Control)的技术,通过在电机定子上注入高频信号,利用电机响应的变化来获取电机的转子位置或速度信息。在高频注入控制中,通常会在电机定子上注入高频电流或电压信号。

在这种情况下,d轴分量在控制中起着重要的作用。通过在d轴上注入高频信号,可以使电机响应主要集中在d轴上,从而使得转子位置或速度的变化更加明显。这样,通过测量电机响应的变化,可以推断出转子位置或速度信息。

因此,在高频注入控制中,需要对d轴分量进行控制和注入高频信号,以实现无传感器的电机控制。这种技术在某些应用中可以避免使用传统的机械或磁传感器,简化了系统结构并提高了可靠性。

SVPWM算法

       正弦波是FOC驱动无刷电机的手段,利用PWM等效原理通过调整占空比使等效电流近似为正弦波产生的正弦波就是SPWM波。SPWM 基于电压力矩环没有电流环参与。对于无刷或者永磁同步电机,这种控制方式还是不能较为准确的控制定子电流。因此这种永磁无刷电机直接通三相交流电并不一定能很平稳的旋转起来。       
  SVPWM和SPWM 的区别是 SVPWM 依靠的是 MOS 管的开关顺序和开关时间来调制有效电流。而SPWM 不依赖开关顺序,3 相独立调制。SVPWM 是依赖开关顺序的,需要把控整体的 3 相开关,让它们组合出不同顺序和时间的开关序列,以此模拟出正弦电流。SVPWM 癿优点主要有:优化谐波程度比较高,消除谐波效果要比 SPWM 好,实现容易,可以提高电压利用率。比较适合数字化控制系统。
  SVPWM 的主要思想是以三相对称正弦波电压供电时三相对称电机定子理想磁链圆为参考标准,以三相逆变器不同开关模式作适当的切换,从而形成 PWM 波,以所形成的实际磁链矢量来追踪其准确磁链圆。
  普通的三相全桥是由六个开关器件构成的三个半桥。这六个开关器件组合起来(同一个桥臂的上下半桥的信号相反)共有 8 种安全的开关状态. 其中 000、111(这里是表示三个半桥的开关状态)这两种开关状态在电机驱动中都不会产生有效的电流。因此称其为零矢量。另外 6 种开关状态分别是六个非零矢量。它们将 360 度的电压空间分为 60 度一个扇区,共六个扇区,利用这六个基本非零矢量和两个零量,可以合成 360 度内的任何矢量。
  当要合成某一矢量时先将这一矢量分解到离它最近的两个基本矢量,而后用这两个基本矢量去表示,而每个基本矢量的作用大小就利用作用时间长短去代表。用电压矢量按照不同的时间比例去合成所需要的电压矢量。从而保证生成电压波形近似于正弦波。

SPWM效率比SVPWM低1.1547倍,因为SPWM最大电压差为总幅值的86.6%(√3/2)

SVPWM可以利用100%,所以100%/86.6%=1.1547

 演变过程

当希望输出的电压超过幅值上限时降波形整体上下移动 

简化后直接在正弦基础上增加一个锯齿波实现,经典的SVPWM波形

算法讲解

考虑电机实际参数的等效模型

定义三个电压空间矢量𝑢𝐴𝑂、𝑢𝐵𝑂、𝑢𝐶𝑂,方向分别在其轴线上,大小随时间按正弦规律变化,相位差 120°,设𝑈𝑚为相电压基波峰值,f 为电源频率则,角频率ω = 2πf

在三相静止坐标系下:
在这里插入图片描述

则三相电压空间矢量的合成矢量𝑢𝑆(𝑡)见下式,可见𝑢𝑆(𝑡)是一个旋转的空间矢量,它的幅值不变,为相电压峰值的1.5倍,且以角频率ω= 2πf 按逆时针方向匀速旋转的空间矢量。
在这里插入图片描述

SVPWM算法的目的,就是使用逆变电路的6个开关状态把在空间中旋转的​矢量表示出来,我们把这个矢量称为空间电压矢量。SVPWM算法实际上计算的是三相逆变器的六个开关何时导通,何时切断(同一列不可同时导通或关闭,即同一半桥不可同时导通,所以有2x2x2=8种情况((1,0)(0,1)   上下同时导通的(1,1)不允许,上下同时关断(0,0))

定义一个开关函数𝑠𝑥
〈𝑥 = 𝑎、𝑏、𝑐〉,abc 分别代表三相绕组,当𝑠𝑎 = 1时,代表 A 相上桥臂导通,当𝑠𝑎 = 0时,代表 A 相下桥臂导通,其他相同理。
那么(𝑠𝑎、𝑠𝑏、𝑠𝑐)的全部可能组合共有八个,包括

6 个非零矢量 U1(001)、U2(010)、U3(011)、U4(100)、U5(101)、U6(110)

2个零矢量      U0(000)、U7(111)

下面我们以非零矢量 U4(100)为例来进行分析,即 (𝑠𝑎、𝑠𝑏、𝑠𝑐) = (100),代表 a 相上桥臂导通,b 相下桥臂导通,c 相下桥臂导通,如图所示:

根据串联分压定理,得:
在这里插入图片描述

六种非零导通状态下的绕组分压情况:

                                 101                                                                        110                                                                          011

                                010                                                                        001                                                                             100

8种开关组合只能合成6个方向的空间电压矢量,

在一个扇区内,相邻两个电压矢量以及零矢量,按伏秒平衡的原则来合成该扇区内的任意电压矢量 ,即:(本质思路是控制电压时间占比)

Uref*Ts=Ux*Tx+Uy *Ty+U0*T0(或U7 *T7)
Uref是我们期望得到的电压矢量,Ts是一个PWM周期
Ux和Uy,分别是用于合成Uref的两个空间电压矢量; Tx和Ty就是在一个周期Ts中Ux和Uy所占的时间。

只要合理地配置相邻的两个基向量和零矢量在一个周期中的占比,就可以合成出等效的任意空间电压矢量了

如何计算各向量时间占比

分析1

从上上个图中可以看出,线圈磁矢量可以落在在扇形范围内任意位置,但是有一个问题,线圈磁矢量强度最大值不恒定,意味着电机转一圈的力矩有波动。所以我们将线圈磁矢量的范围限制为扇形内切圆,人为降低一些线圈磁矢量能达到的最大强度,让电机转动时力矩可以保持恒定,这称为线性调制(非线性过调制不在本文范围内)。

从扇区图可知,如果目标线圈磁矢量落在扇区1,需要用PWM混合V4和V6矢量;如果目标线圈磁矢量落在扇区2,需要用pwm混合V6和V2矢量。

考虑到线性调制,线圈磁矢量最大强度为扇区内切圆半径,由于6个基础矢量长度为1,因此内切圆半径等于√3/2

以下计算过程先按照线圈磁矢量最大强度进行,最后将占空比乘上强度系数就可以实现强度控制.

根据正弦定理:a/sinA=b/sinB=c/sinC  得

得到基础矢量的占空比t1  t2

注意,上式得到的占空比是基础矢量的在一个周期内的比例(权重),桥臂的占空比后续再计算。
其余扇区的几何形状与扇区1是相同的,比如扇区2的计算只需在上式的基础上将θ 减去60°。把扇区顺时针方向的基础矢量记号为m,逆时针方向的基础矢量记号为n,结果为:

总结:

以上均是按照线圈磁矢量最大强度计算得到的结果,要控制磁矢量强度,再乘上强度系数s即可。
上面这张表意思是目标线圈磁矢量落在哪个扇区,合成时就使用哪个扇区的基础矢量占空比结果。举例:目标线圈磁矢量角度是170°,强度是s,属于落在第3扇区,那么在一个周期内,给V2矢量分配s ∗ sin ⁡ ( 18 0 ∘ − θ )比例,给V3矢量分配s ∗ sin ⁡ ( θ − 12 0 ∘ ) 比例,剩下的比例分配给零矢量,即可得到目标线圈磁矢量。

在一个周期内,分配完基础矢量后,剩下时间t 0 = 1 − t m − t n 是分配给零矢量的。以扇区1为例,写成表达式:

零矢量的选择:
111和000两种桥臂状态都可以产生零矢量,应该怎么安排呢?如果一个周期内零矢量由111和000平分,这称为七段式SVPWM。如果一个周期内零矢量只有一种,这称为五段式SVPWM。五段式SVPWM比七段式SVPWM电流谐波更大,但是mos管开关次数更少。五段式SVPWM有各种各样的矢量分配顺序和零矢量选择方法,难度较大。这里只选择七段式SVPWM。

不同扇区只需要更改不同的基础矢量即可,再乘上强度系数s ss,6个扇区的三相桥臂占空比为:

至此 我们得到了svpwm函数,输入为线圈磁矢量角度θ和强度s,输出为D u , D v , D w 

将运行结果用折线图绘制出来,可以看到三相桥臂占空比结果,将占空比设置给单片机的pwm产生器就可以控制电机旋转了

分析2

eg:扇区1:Uref*Ts=U4*T4+U6 *T6+U0*T0(or U7*T7)

伏秒平衡的原则

控制三相实际发波如下(七段法)

SVPWM实现流程:

1. 判断合成矢量所在扇区

2. 计算相邻矢量作用时间

3. 计算各桥臂导通时间

4. 得到各相PWM占空比

5. 更新相应寄存器值

 SVPWM目标矢量是根据其所在扇区选择非零矢量与零矢量合成而成,有五段式、七段式、混合式。

七段式开关次数较多,谐波较小;五段式开关次数是七段式的一半,但谐波较大。

判断合成矢量所在扇区

合成矢量Uref在二相坐标系α轴和β轴的分量分别为Uα、Uβ,由合成矢量落在各扇区的充分必要条件分析可知,可按如下方法确定合成矢量所属扇区:

(根据SVPWM扇区详细的推导过程,这里直接使用其结论,可以根据以下计算式进行判断)

若U1>0,则A = 1,否则A=0;

若U2>0,则B = 1,否则B=0;

若U3>0,则C = 1,否则C=0;

N = 4C +2B+A

N值与扇区关系对应如下:

N

1

2

3

4

5

6

扇区

II

VI

I

IV

III

V

计算各相邻矢量作用时间

扇区

I

II

III

IV

V

VI

t1

-Z

Z

X

-X

-Y

Y

t2

X

Y

-Y

Z

-Z

-X

计算各桥臂导通时间及占空比

TCM为定时器寄存器

扇区

I

II

III

IV

V

VI

 TCM1

Ta

 Tb Tc  Tc  Tb Ta
 TCM2

 Tb

 Ta Ta  Tb Tc Tc

 TCM3

 Tc  TcTb Ta Ta  Tb

总结

本文汇总了FOC矢量控制原理和SVPWM原理介绍及算法实现,相关资料来自本站及网络并按照自己的思路理解予以调整。主要用于自己学习以备查询。后续根据不同学习阶段进行修改扩充。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOTBOT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值