FOC控制算法
前言:介绍一下两种常见电机
1.直流有刷电机
出现得比较早,主要通过电刷和换向器的机械接触来改变电流方向,从而驱动转子旋转,产生固定方向的转矩。你给它通上电,它就转;电压越高,转得越快(当然也不能超过它的最大电压)。定子一般是U型永磁体(通常与电机外壳固定一起的部分);转子是线圈,也就是电磁体,通电就会产生磁场。
由“安培环路定理”可以知道,通电的线圈会在周围产生磁场,而磁场方向,我们可以通过“右手螺旋定则" 去判断:用右手握住线圈(螺线管),让右手四指的弯曲方向与线圈中电流的环绕方向一致,此时,拇指所指的那一端就是螺线管的N极。
直流有刷电机它的优点就是控制极其简单,正负电压接通便可以转动,成本低廉,启动扭矩大。
但是它也有很多缺点:电刷时刻与换向器滑动接触,会有物理摩擦,意味着会有较大磨损,电刷是作为消耗品的,寿命有限;换向时产生电火花,带来电磁干扰;高速运转时摩擦噪音刺耳,声音非常大,如果说想要静音的产品,比如风扇,无人机啊,肯定也是不能用它的。
这里说一个点,有刷电机一般最低要求三个线圈,上图的两个线圈会有力矩为0的“死区”位置:当转子旋转到某个特定角度(即线圈平面垂直于磁场方向,且电刷恰好位于两个换向片之间的缝隙时),两个线圈产生的力矩正好大小相等、方向相反,总力矩为零。如果转子恰好停在这个“死区”位置,通电后电机无法自行启动,必须用手拨动一下才能转起来。而三个线圈在空间上相隔120°分布。在任何时刻,电刷只能同时接触到其中两个换向片(给两个线圈通电),而第三个线圈处于断开换向的瞬间。由于三相的几何对称性,无论转子停在哪个角度,通电的线圈产生的合力矩都不可能同时为零,因此电机可以自启动。
2.直流无刷电机
直流无刷电机没有物理碳刷,可以分成三个部分:电机本体(定子和转子)、采样电路、驱动控制电路。它与直流有刷电机结构有所不同,它的定子变成了线圈(电磁体),转子变成了永磁体。
由同极相斥,异极相吸;当给线圈依次通上电后,转子(永磁体)便会被电磁体排斥或者吸引,从而开始旋转。
但是这里又引入了一个新问题,我们不知道转子的位置,不知道需要给哪个线圈通电。因此我们需要加入一个传感器来检测转子的实时位置,也就是霍尔传感器,这个我们就知道该控制哪个线圈进行通断电了。
当依次给线圈通电后,线圈便会转起来,我们也不可能一直手动给线圈通断电,这样效率太低了,这时候我们就需要增加一个主控芯片来帮我们完成这项“重复枯燥”的动作;电子传感器采样(霍尔传感器,编码器)实时获取转子位置,发给主控芯片,主控芯片通过控制绕组依次通电产生磁场,吸引转子旋转。
无刷电机的优点很明显:没有物理摩擦,效率高、寿命长、噪音低、转速可以做得极高。
那肯定也有缺点:一方面控制难度大。有刷电机通电就转,无刷电机必须实时知道转子位置,并按精确的顺序给绕组通电,它才能转起来。另一方面无刷电机的造价也会比有刷电机贵好多。
这里补充一点:上述所说是有感控制,现在也有一些无感控制的技术出现,主要是为了应对复杂环境的。比如说:反向电动势检测法(Back-EMF Detection Method),它不使用物理位置传感器(如霍尔传感器),而是通过检测电机绕组中产生的反向电动势来估算转子的位置和速度。还有线反电动势法(检测线电压)、观测器法(构建数学模型)等。
(1)普通直流无刷电机(BLDC)
采用梯形波反电动势;转子永磁体通常呈瓦片形。常用六步换向法进行控制(方波驱动)。
转子磁场:通过特殊设计(如径向充磁的永磁体),使气隙磁场尽可能接近方波或梯形波分布,以匹配梯形波反电动势。
优点:控制算法较简单;控制算法简单,对传感器(霍尔元件)和微控制器(MCU)要求较低;成本低廉。转矩惯量比大,动态响应快。
缺点:存在换向转矩脉动,导致低速运行时噪音和振动较大,效率和控制精度不及PMSM。
应用:对成本敏感、性能要求中等的场合,如家用风扇、电动工具、水泵等。
(2)永磁同步电机(伺服电机PMSM)
输入是直流,但是电机控制仍然采用三相交流电进行控制,通过特殊设计(如表贴式瓦片磁钢)和充磁方式使气隙磁场呈正弦分布。常用矢量控制/FOC(正弦波驱动)。
优点:转矩脉动极小,运行极其平稳安静;控制精度高,适合高性能伺服控制。
缺点:控制算法复杂,对MCU要求高;需要高分辨率位置传感器(如编码器);永磁体成本高,有高温退磁风险。
应用:追求高性能的领域,如电动汽车、工业机器人、精密机床等。
一、无刷电机驱动方式
1.六步换向法
六步换相法(Six-step commutation),亦称方波驱动,是驱动无刷直流电机(BLDC)最经典且硬件成本最低的方案。方法就是将逆变器的6个功率开关管分为3个桥臂,每个桥臂的上、下管互补导通(同桥臂上下管同时导通可能会造成短路),但任意时刻只有两个桥臂的上管或下管导通(第三相悬空),电流从一相流入,从另一相流出,第三相不参与励磁。
一个完整的电周期(360°电角度)被等分为6个扇区(可以参考图四),每个扇区跨度为60°电角度。每当转子转过60°,控制器根据位置传感器(通常为3个霍尔元件)的信号切换一次开关状态,定子磁动势(MMF)发生一次跳跃。
优点易于控制,缺点也很明显,换相的瞬间,磁场不是平滑旋转而是跳跃前进,产生转矩脉动——电机抖动、有“颗粒感”,低速时尤其明显,还会发出高频噪音。在云台、机械臂、无人机吊舱这些需要极致平稳的场合,六步换相法不适用。
2.FOC控制(磁场定向控制)
由于各行业对电机提出了更高要求,比如低噪音,低速平滑运行,高效率,扭矩可控,传统的六步换相法已经不足以支持电机做到这些了,故诞生了FOC控制算法。
FOC(Field Oriented Control,磁场定向控制),也叫矢量控制。它主要是通过坐标变换,把复杂耦合的三相交流电流,分解成两个独立的直流分量——励磁电流Id和转矩电流Iq。FOC的效果很好,极低转速下依然平稳顺滑、动态响应极快、扭矩输出恒定、效率更高。
三、FOC理论基础
FOC控制过程:采样,坐标变换(clark变换,park变换),闭环控制(PI闭环),反park变换,SVPWM。我们逐个来讲。
1.采样
1. 转子位置采集:高精度编码器(光电/磁编码)获取实时转子机械角度,换算电角度,精度远高于开关型霍尔;
2. 母线/相电流采样:通过采样电阻+运放电路采集两相定子相电流、
,由基尔霍夫定律计算
。
2.坐标变换
(1) Clark变换
Clark变换可以概括为一句话:三相静止ABC → 两相静止α-β坐标系。
至于为什么要进行Clark变换:这是因为电机定子通入三相相位差120°交变电流,合成旋转磁场。三相电流任意一相改动,会同时影响磁场强弱+输出扭矩,两项物理量耦合过深,想加扭矩,一定会顺带改变磁场大小;想调节励磁磁场,扭矩也会跟着变。无法精确调节某一物理量,通过Clark变化可以将其解耦,将三个互相耦合的变量(、
、
)简化为两个正交的独立变量(
,
),大大降低了控制算法的复杂度。
clark变换公式推导
设b轴与β轴的夹角为θ,则有:
Iα=Ia-Ib*sin(θ)-Ic*sin(θ);
Iβ=Ib*cos(θ)-Ic*cos(θ);
又由基尔霍夫定律可以得到:
Ia+Ib+Ic=0→Ic=-Ia-Ib
进而可以得到:
Iα=Ia-Ia*sin(θ);
Iβ=2*Ib*cos(θ)+Ia*cos(θ);
我们使用120度角度进行矢量合成与分解,可以得出以下关系:
Iα=3/2Ia;
Iβ=(√3)*Ib+(√3/2)*Ia;
将空间互差120°的三相耦合交流电,换算为正交两相静止坐标系分量,
,消除三相耦合关系,公式基于对称三相绕组空间矢量投影。
通常进行Clark变换后还会进行一次等幅值或者等功率变换。
| 幅值变换 | 2/3 | 变换前后,电压或电流的幅值保持不变。 | 在电机控制算法中更为常见,便于理解和计算。 |
| 等功率变换 | √(2/3) | 变换前后,系统的功率保持不变。 | 在系统仿真和功率计算中更为严谨。 |
(2)Park变换(两相静止α-β → 两相同步旋转d-q坐标系)
Clark变换仅仅把三相ABC转换成静止正交α、β坐标系,但α、β电流依旧是随转子不停交变的正弦交流信号。
PI控制器适合稳定直流恒定值,对周期性交流做闭环控制会出现稳态误差、频繁震荡,没法精准控制扭矩。
故我们需要把纠缠在一起的励磁、扭矩拆开。调Iq只扭矩,调Id只改磁场,二者互不干扰。
以转子永磁磁极方向定义d轴(直轴,励磁轴,和磁体重合),垂直方向为q轴(交轴,转矩轴,和磁体垂直),依托转子电角度θ做旋转变换:
Id:直轴电流,负责调控定子励磁磁场,不输出机械转矩;Id>0增磁,Id<0弱磁(高速弱磁升速核心);
Iq:交轴电流,决定电机输出电磁转矩。
park变换公式推导
设磁体旋转的角度为θ,由矢量合成与分解可得
Iq=cos(θ)*Iβ-sin(θ)*Iα;
Id=sin(θ)*Iβ-cos(θ)*Iα;
这个θ是需要我们通过传感器去读取的。
至此,原本随时间正弦变化的交流量,变成了恒定的直流量。直流控制意味着可以使用最简单的PI控制器实现无静差跟踪。
3.闭环控制
一般使用双环或者三环PI控制,当然也有PD控制等方式。
速度环(外环):将目标转速与实测转速的差值,输入PI控制器,输出作为(转矩电流给定值)。主要是调节电机输出多大的扭矩。如果负载变重导致转速下降,速度环就会增大
。
电流环(内环):快速响应。电流环是内环,响应速度极快(一般是微秒级),能瞬间抑制电网波动或负载突变对电流的冲击。主要是分别对Id和Iq进行闭环控制。
Iq环:将速度环给出的与反馈的
Iq做差,经过PI计算,输出所需的Vd(直轴电压)和Vq(交轴电压)。
Id环:通常目标值设为0(除非需要弱磁提速),强行将励磁电流压到零。
知道了所需要输出的电压,但是电机不是直接输入电压的,我们还需要将电压矢量转成三相交流电。
这里说一个小点:为什么PI输出变成了电压?
因为电机的被控对象(电感 L)是一个积分环节。如果施加一个恒定的电压,电流会线性上升()。因此,为了消除电流误差,调节器必须输出一个能够决定电流上升斜率的电压值。如果PI输出还是电流,那就会变成“电流控制电流”,在物理上无法作用于电机实体。
4. 反Park变换+SPWM调制(或SVPWM)
逆Park变换:利用转子角度θ,将旋转坐标系下的Vd, Vq反变换回两相静止坐标系下的Vα, Vβ。
我们依旧以该图为参考,不过这次是对矢量电压,也就是直轴电压和交轴电压进行矢量合成与分解,可得:
SPWM:将Vα, Vβ合成一个空间电压矢量,并计算逆变器(IGBT/MOSFET)中6个开关管的导通时间和顺序,生成对应的PWM波形。
工作原理:控制器内部生成三路互差120°的标准正弦波(调制波),与一个高频等腰三角波(载波)进行比较。当正弦波高于三角波时,输出高电平;反之输出低电平。
交点决定了开关的切换时刻,输出的PWM脉冲宽度按照正弦规律变化。经过电感滤波后,电压的平均值就呈现为正弦波。
本质特征:
SPWM是“逐相独立控制”的,即分别控制A、B、C三相,互不干涉。
缺点:在SPWM中,逆变器输出的相电压峰值最大只能达到母线电压(Vdc)的一半,即。这意味着,如果你的母线电压是48V,SPWM最多只能输出峰值为24V的正弦波相电压。母线电压的利用率极低(最大只有50%),大量的直流电压被浪费掉了
更常用的另外一种方式是SVPWM。
SVPWM:
工作原理:
SVPWM不再分别看三相,而是将Vα和Vβ看作一个在复平面上旋转的电压矢量(Vs)。
图中是一个正六边形
逆变器的6个功率管(看图五)只有8种开关组合:6个非零矢量(001、010、011、100、101、110,绿色箭头部分),2个零矢量(000、111,零矢量中心电压和为0,算是图中的原点),相邻间隔60°。
SVPWM要做的,就是在一个极短的PWM周期内,挑选相邻的两个矢量和零矢量,通过计算它们的作用时间(T1,T2,T0),将它们拼凑出一个平均值,使其等于目标矢量 Vs。
比如在1us期间,α矢量占0.5us,d矢量占0.5s,就可以合成紫色箭头的矢量Vs1,调节非零矢量,我们就可以合成任意方向的目标矢量。
在1us期间,α矢量占0.25us,d矢量占0.25s,零矢量占0.5s;就可以合成紫色箭头的矢量Vs2,在调节非零矢量的基础上,我们再加入零矢量,及可调节目标矢量的任意方向和大小。
优势:为了合成旋转的圆形磁场,SVPWM在计算三相调制波时,巧妙地给每一相都注入了零序分量(三次谐波)。
虽然每相的波形变得“马鞍形”(不再是标准正弦),但注入的三次谐波在三相星形连接的负载中恰好相互抵消,负载线电压依然是完美的正弦波。而这注入的三次谐波将调制波的峰值“压扁”了,使得母线电压可以被利用到极限。
效率飞跃(工程价值):
SVPWM使得相电压峰值可以达到。
相比SPWM,SVPWM将直流母线电压的利用率提高到 57.7%。(提升了约15.47%)
三相逆变器:根据SVPWM产生的PWM信号,驱动功率管高速开关,将直流母线电压(如48V电池)逆变成频率和幅值可变的三相交流电,供给电机绕组,本质上是对MCU的微弱信号进行一个功率放大。
