• 【电机控制】PMSM无感FOC控制-双电阻以及三电阻电流采样法

    针对永磁同步电机双电阻以及三电阻电流采样的问题给出了具体的实现思路,双电阻采样通过限制电压的方式避免进入非观测区,三电阻采样则根据PWM波形,动态设置电流采样点、对PWM进行移相重构电机电流,以避免在非观测区采集不到准确电流的情况发生。 目录 1. 双电阻采样 1.1 双电阻采样原理 1.2 双电阻采样时刻分析 1.3 双电阻电流重构方法 2. 三电阻采样 2.1 三电阻采样原理 2.2 三电阻采样时刻分析 2.3 三电阻电流重构方法 2.4 PWM移相及电流采样触发点计算流程图 目前,永磁同步电机的电流信号采样方法应用较多的是分流电阻采样,包括单电阻、双电阻以及三电阻采样法。这章讲双电阻以及三电阻电流采样法。 1. 双电阻采样 1.1 双电阻采样原理 双电阻采样相电流方法是在全桥逆变电路的任意两个下桥臂分别串联一个采样电阻,从采样电阻R1、R2两端采集电压信号,经过后端的运放以及A-D器件,后通过计算得到相电流的大小,双电阻采样电路如图1-1所示。 图1-1 双电阻采样电路图 1.2 双电阻采样时刻分析 采样时刻的分析过程与上一章单电阻采样类似,首先分析8个基础矢量下流过各个采样电阻的电流;最终确定采样时刻为矢量V000作用时进行采样,此时三相上桥臂截止的时刻,此时相电流通过二极管进行续流,通过采样续流电流可以得到真实的相电流,如下图1-2所示。(采样也可以放在PWM的前半段V000作用时间进行,没有强制要求) 图1-2 基础矢量V000作用时电流流向及采样时刻 采集到其中两相电流后,通过计算得到全部的相电流信息,从而实现三相电流的重构。 1.3 双电阻电流重构方法 双电阻电流重构方法是采样得到的两相电流后根据公式Ia + Ib + Ic = 0得到第三相电流,但双电阻采样也是有非观测区的。 在上一章节我们讲过采样时需要时间的,电流采样有一个最小脉宽时间Tmin,所以我们在采样时一定要留出足够的采样窗口,这样我们才能采集到准确的相电流。从图1-2我们可以知道,我们是在V000作用时进行采样的,并且是放在载波的后半段进行采样,也就是说我们是在占空比最大的PWMH为低电平后进行采样。 那么如果占空比最大的那一相,它的占空比过高的话,留给我们采样的时间就过短,这就又形成上一章我们提到的非观测区,如图1-3所示; 图1-3 双电阻采样非观测区与PWM波形图 如图1-3(a)所示,双电阻采样他的非观测区也是由两部分组成:扇区过渡区、高压调制区;落在非观测区的电压矢量它的基本矢量V000的作用时间过短,导致无法采集到准确的相电流进行重构。 所以采用双电阻电流重构方法的话,通常会约束电压最大相占空比在95%左右(可根据Tmin进行调整,不一定时95%),保证电流采样有充足的空间。 2. 三电阻采样 2.1 三电阻采样原理 三电阻采样相电流方法是在全桥逆变电路的三个下桥臂分别串联一个采样电阻,从采样电阻R1、R2、R3两端采集电压信号,经过后端的运放以及A-D器件,后通过计算得到相电流的大小,三电阻采样电路如图2-1所示。 图2-1 三电阻采样电路图 2.2 三电阻采样时刻分析 三电阻采样的时刻与双电阻采样时刻一样,为矢量V000作用时进行采样,此时三相上桥臂截止的时刻,此时相电流通过二极管进行续流,通过采样续流电流可以得到真实的相电流,如下图2-2所示。 图2-2 基础矢量V000作用时电流流向及采样时刻 三电阻采样与双电阻采样极其相似,并且他们的非观测区也一样,不过三电阻对于电的重构方法与双电阻有很大的区别,因为多出来的一个电阻使得三电阻采样对于采样时间的选择有了更多灵活性。 2.3 三电阻电流重构方法 双电阻可以通过限幅的方法将SVPWM最终生成的PWM占空比限制到一定范围内(比如上文提到的95%),防止V000电压矢量的工作时间过短导致电流采集发生在非观测区而产生数据错误。 但是这种方法由于空间矢量的最大范围受到限制,直接导致了电机电压降低,使得电机无法达到最大输出,电源利用率被降低。 为了解决非观测区三电阻采样问题,三电阻采样通过改变采样点位置以及移相(非对称PWM输出)的操作,从而预留出足够的窗口给AD器件采样,且保持占空比不变,保证要合成的电压矢量Uref不变。 举两个例子说明一下: 例一:以扇区1为例,高压调制区的PWM波形如图2-3所示; 图2-3 三电阻采样高压调制区PWM波形图 如图2-3(a)所示,某一个电压矢量Uref落在第一扇区的高压调制区,它的PWM波形如图2-3(b)所示,Uref的A相PWM1H占空比大于一定值,导致V000矢量作用时间很短,此时三相电流均无法正确采样。但是载波后半段V100矢量的作用时间大于Tmin,可以将采样点设置在图2-4所示的区间,采集B相电流Ib和C相电流Ic,再通过Ia + Ib + Ic = 0重构出A相电流Ia。 图2-4 V00矢量作用下电流流向及采样区间变更对比 如图2-4(a)所示,再矢量V100作用时三电阻采样能够正确采集到其中两相电流,从而重构出第三相电流,采样区间变更如图2-4(b)所示。 例二:以扇区1为例,扇区过渡区的PWM波形如图2-5所示; 图2-5 三电阻采样扇区过渡区PWM波形图 扇区过渡区的PWM波形如图2-5所示,A相PWM1H占空比大于一定值,使得载波后半段矢量V000的作用时间t1小于Tmin,且载波后半段矢量V100的作用时间t2也小于Tmin,均无法正确采集三相电流。 此时需要将B相PWM整体左移,将B相PWM上升沿与A相PWM下降沿对齐,如图2-6所示,使得采样窗口时间t2'大于Tmin,从而改变采样区间的,采集到B相电流Ib和C相电流Ic,再通过Ia + Ib + Ic = 0重构出A相电流Ia。 图2-6 移相后PWM波形及采样触发点变更对比 如图2-6(a)所示,B相的PWM整体向左移动了Δt,拓宽了采样窗口的值,在矢量V100作用时进行电流采样,采集到B、C相电流后计算出A相电流。 2.4 PWM移相及电流采样触发点计算流程图 PWM移相及电流采样触发点所在区间计算程序流程图如图2-7所示。 图2-7 PWM移相及电流采样触发点所在区间计算程序流程图

    前天 67浏览
  • 硬件设计常用接口引脚定义

    常用接口引脚定义 RS232(DB9) RS422/RS485(DB9) CAN(DB9) PS2 USB type - C STAT MSATA SD卡/TF卡 以太网 VGA DVI HDMI mPCIe PCI-e JTAG RS232(DB9) RS422/RS485(DB9) CAN(DB9) PS2 USB type - C STAT MSATA SD卡/TF卡 以太网 VGA DVI HDMI mPCIe PCI-e JTAG

    04-18 97浏览
  • 48张高清电工电路彩图,你真不一定都会!

    1、倒顺开关的接线 2、200smart与变频器通讯接线 3、继电控制与PlC控制的区别 4、三相电机正反转接线 5、红外感应电路 6、逆变器电路 7、插卡取电接线 8、接触器的单开双控 9、plc与继电器接线 10、功放电路 11、楼梯开关 12、行程限位做液位控制 13、浮球开关控制单相水泵 14、星三角降压启动主电路接线 15、开关电源、电磁阀、气缸接线 16、空调外机接线 17、三相四线电表直接接线 18、单相电表直接接线 19、单相电表接线注意与读数 20、家用电表接线 21、三相四线电表直接接线 22、三相四线电表互感器接线 23、加热管接线方法 24、三相加热管的两种接线方法 25、三相与单相加热管的接线方法 26、水箱加热管 27、时控开关通过接触器控制电机 28、时控开关控制照明灯 29、时控开关外观按钮介绍 30、微电脑时控开关控制接触器 31、家用三挡风扇接线 32、压力开关式小型空压机接线 33、时控开关控制路灯接线 34、经典自锁电路 35、卷扬机点动控制接线。 36、时间继电器,控制接触器延时闭合。 37、双开双控灯接线。 38、星三角降压启动控制回路接线星三角降压启动控制回路接线 39、共用水泵接线 40、有热保护的自锁电路。 41、电流的快速估算 42、家装电线应该如何选择? 43、倒顺开关控制双电容电机接线。 44、电流估算公式 45、三相四线电能表互感器接线。 46、家用配电箱的接线标准 47、一个简单的双电源电路。 48、继电器实现断相与相序保护的一个原理。

    04-16 120浏览
  • 【电机控制】PMSM无感FOC控制(SVPWM)

    本章主要讲了SVPWM的原理、各个矢量作用时间的推导、七段式调制方式;没有讲解如何讲SVPWM如何和MCU的PWM模块结合 目录 0. 前言 1. 什么是SVPWM 1.1 SVPWM的概念 2. SVPWM(空间矢量脉宽调制)如何产生所需的空间矢量 2.3.1 矢量的合成 2.3.2 矢量的合成的范围 2.1 合成空间矢量需要的八个基础矢量 2.2 SVPWM的六个扇区 2.3 SVPWM空间矢量的合成 2.4 如何求解SVPWM基础矢量的作用时间 3. 七段式SVPWM 0. 前言 本章节会详细介绍SVPWM,计划在下一章讲解过调制。学完这一章你就会理解第一章里面PID控制器输出的dq轴电压经过变换后得到的αβ轴电压的真正含义,为什么会会输出αβ轴电压,αβ轴电压是怎么被SVPWM利用的。 之前我们讲过FOC是磁场定向控制,在进入SVPWM之前我们要清楚,这个定向的磁场是由什么产生的?怎么被控制的? 定向的磁场是由什么产生的? 上图是电机的刨面图,可以看到电机的定子是由一圈圈的线圈组成的,当线圈中有电流流过时就产生了磁场。那么要产生定向的磁场就需要产生特定的电流,要产生特定的电流就需要特定的电压。空间矢量脉宽调制(SVPWM)可以产生电压矢量,激发出电流流过线圈的绕组,从而产生磁场矢量。到这里我们已经知道了,磁场是怎么被产生的,它是由电压矢量激发出的电流流过线圈所产生的。我们通过控制电压矢量,生成一个不断旋转的磁场矢量就可以带动电机转动了。 最后一个问题这个磁场是怎么被控制的? 在描述这个问题以及进入后续的内容之前我们需要了解一些名词,端电压、线电压、相电压。 端电压:端电压就是电机三相线端相对于GND的电压,A相端电压记作UA,B相端电压记作UB,C相端电压记作UC; 线电压:线电压就是相相之间的电压Uab = UA - UB,Ubc = ...; 相电压:相电压就是电机三相线端相对于连接点N的电压,UAN = UA - UN,UBN = ...; 首先先大家要理解Uα和Uβ代表的是αβ坐标系下的一个电压矢量。其次要理解FOC是磁场定向控制。线圈中有电流流过时就会产生磁场,所以我们要产生一个定向的磁场时就需要控制电机的三相上的相电流,通过控制三相静止坐标系中的三相电流我们就可以产生出在这个平面内的任意方向的磁场,这样就可以完成磁场的定向控制。那怎么控制三相的电流呢?那就是通过控制三相的相电压,不同大小的相电压可以激励出不同大小的相电流。 第一章节我们说了为什么foc的控制流程的最后是SVPWM,而不是反Clark变换,因为通过PID控制以及反Park变换后得来的Uα和Uβ刚好又可以反Clark变换成我们想要的三相电压UAN、UBN、UCN。但是我们通过逆变电路能直接控制三相电压吗?很显然是不能的,逆变电路控制的是三相的端电压,那我们怎么通过三相的端电压来控制三相的相电压呢? SVPWM刚好可以胜任这份任务,空间矢量脉宽调制(SVPWM)中的空间矢量指的就是磁场矢量,这个磁场矢量是由电压矢量产生的。Uα和Uβ代表的是αβ坐标系下的一个电压矢量,SVPWM通过控制逆变器的开关状态(也就是控制端电压),合成所需电压矢量,从而产生转动电机转子所需的磁场矢量。 1. 什么是SVPWM 1.1 SVPWM的概念 SVPWM(Space Vector Pulse Width Modulation)是一种空间矢量脉宽调制技术,也称为电压空间矢量脉宽调制技术。它是电力电子技术中一种非常重要的调制方法,广泛应用于交流电机控制、电力电子变换等领域。 SVPWM的基本思想是以三相对称正弦波电压供电时三相对称电动机定子理想磁链圆为参考标准,用逆变器不同的开关模式所产生的实际磁链矢量来追踪基准圆磁链矢量。具体实现方法是通过控制逆变器的开关状态,合成所需的电压矢量,使得电机的定子绕组中产生相应的电流矢量,从而产生所需的磁场矢量。 相比于传统的SPWM方法,SVPWM具有更高的直流电压利用率和更好的动态性能,因此在电力电子领域中得到了广泛应用。 2. SVPWM(空间矢量脉宽调制)如何产生所需的空间矢量 2.1 合成空间矢量需要的八个基础矢量 前面我们说过SVPWM通过控制逆变器的开关状态(也就是控制三相的端电压),合成所需电压矢量,从而产生转动电机转子所需的磁场矢量。在了解具体的合成过程之前我们首先要了解合成空间矢量所需要的8个基本矢量、8个基本矢量对应的驱动电路的6个开关管的状态、以及8个基本矢量对应的相电压。 首先我们知道电机驱动器的逆变电路有六个开关管,每两个开关管对应控制电机的一相的端电压,M1、M2控制A相的端电压UA,M3、M4控制B相的端电压UB,M5、M6控制C相的端电压UC。 我们可以定义一个开关函数Sx (x = a, b, c),当Sx等于1时代表x相的上管导通,下管断开(x相的端电压等于Vdc);当Sx等于0时代表x相的上管断开,下管导通(x相的端电压等于GND)。 Sa = 1代表M1导通,M2断开,Sa = 0代表代表M1断开,M2导通; Sb = 1代表M3导通,M4断开,Sb = 0代表代表M3断开,M4导通; Sc = 1代表M5导通,M6断开,Sc = 0代表代表M5断开,M6导通。 上下管是不能同时导通的,上管导通时下管就只能关断,下官导通时上管就只能关断,因为如果上下管同事导通了,那么Vdc就和GND直接接到了一起,电源就短路了,会烧坏电路以及电源。 那么通过对这三对开关管的状态进行组合我们就能得出8种不同的状态,这8种不同的状态代表了8个基础矢量Vx(x = 0,1,2,3,4,5,6,7),x的值与开关管的状态相关,我们可以把开关管的状态看成一个三位二进制数,Sa代表最高位,Sc代表最低位,当Sa = 1,Sb = 0,Sc = 0时x = 100(二进制表示),换算成十进制表示就是x = 4; 接下来我们要去计算这8种状态下的三相的相电压(计算这八个基础矢量的相电压是为了在三相静止坐标系(A-B-C)内画出这八个基础矢量),首先来分析V4(100)矢量的相电压情况,V4矢量代表着A相的上管导通,下管断开(A相端电压等于Vdc);B相的上管断开,下管导通(B相端电压等于GND),C相的上管断开,下管导通(C相端电压等于GND)。 因为三相星型电机一般都是对称绕组,相电阻一样,所以我们可以化简上图,用R代表三相绕组的阻抗如下图: 根据分压的原理可得出以下结论: 另外七种矢量的相电压推导过程同上,最后我们能得出如下表格: 2.2 SVPWM的六个扇区 在第一章我们学了三个坐标系,其中有一个坐标系叫做三相静止坐标系(A-B-C),现在我们知道每个基础矢量对应的相电压,就可以在这个坐标系以三相的相电压为坐标轴中画出这8个基础矢量。 根据三相系统向两相系统变换保持幅值不变的 原则定子电压的空间矢量可表示为: 式中 我们首先根据上面的表格在坐标系(正半轴用实线表示,负半轴用虚线表示)里画出V4矢量的各个相电压: 根据矢量合成的平行四边形法则,我们最终得到了一个在A轴正方向上,大小为Vdc的矢量,由于等幅值变换需要乘以一个2/3的系数,最终得到的矢量大小为2/3Vdc,如下: 我们按照上述的方法画出另外七个矢量,最终得到了如下的图形(其中V0和V7是坐标系零点上的两个点): 然而光只有这八个矢量还是不行的,SVPWM的目的是要在这个平面空间里面产生更多的矢量轨迹,从而使得电机平滑转动。 为了讲解后面的如何在这个平面内合成任意矢量,我们需要回顾一下PWM来做个过渡,我们知道如果电源电压为10V我们想得到1v的电压需要使用PWM脉宽调制,调整一个载波周期内高电平占空比为10%,如果想要得到10v的电压就要调整一个载波周期内高电平的占空比为100%。 SVPWM也是类似的思想,如果想在平面内得到方向与V4的矢量相同,大小为2/3Vdc大小的矢量,那我们必须控制开关管处于Sa = 1,Sb = 0,Sc = 0的状态持续一整个载波周期;如果想得到方向与V4的矢量相同,大小为1/3Vdc大小的矢量,就需要控制一个载波周期内的V4矢量的作用时间占整个载波周期的50%(也就是开关管一半时间为100状态),零矢量(V0和V7矢量称为零矢量)的作用时间占到50%(一半时间为111和000的状态)。 回到上面的图,这六个矢量将这个平面空间划分成了六份,这个平面内我们想合成的任意一个矢量都会落在这六个扇区的其中一个扇区,并且任意一个扇区的矢量我都可以通过这个扇区的两个矢量来合成,比如扇区1内的矢量我们可以通过调整V4、V6以及零矢量(V0、V7)的作用时间来合成。 2.3 SVPWM空间矢量的合成 2.3.1 矢量的合成 接下来我们定义载波周期为时间T,按照我们之前讲的,我们控制开关管处于100状态持续一整个载波周期T就能得到与V4矢量方向相同,大小为2/3Vdc的矢量。如果我们想在扇区一与α轴夹角30°的地方生成下图的黑色矢量(矢量长度为√3/3Vdc)。就需要先控制开关管处于100状态(V4矢量)作用1/2T,然后再控制开关管处于110状态(V6矢量)作用1/2T的时间,这样我们就能生成一个与黑色箭头方向一致的磁场。 如果我们是想在扇区一与α轴夹角30°的地方合成长度为√3/6Vdc矢量,那是不是先控制开关管处于100状态(V4矢量)作用1/4T,然后再控制开关管处于110状态(V6矢量)作用1/4T的时间,最后留下的1/2T的时间控制开关管处于000和111的状态(零矢量)。 第一个矢量(V4)的作用时间是t1 = 1/4T; 第二个矢量(V6)的作用时间是t2 = 1/4T; 零矢量(V0、V7)的作用时间是t0 = 1/2T; 现在大家理解SVPWM是怎么合成矢量了吧,其实就是在控制开关管不同的状态持续时间,从而合成出平面内的矢量。 2.3.2 矢量的合成的范围 上面一节我们知道了SVPWM调制怎么合成不同的电压矢量,那通过上述的方法我们可以合成这个平面内的任意一个矢量吗? 解答上个问题之前,我们先达成一个共识,SVPWM调制是为了产生不同的电压矢量合成,产生的一个在空间中旋转的电压矢量的轨迹,从而产生一个旋转的磁场带动电机转子转动。这个轨迹是个圆形,我们把它叫做矢量圆,它的半径反映了在标准的SVPWM调制下,能够达到的最大电压矢量幅值。 我个人理解这个矢量圆的半径反应了能够产生的磁场的大小,因为产生磁场是因为电流流过了线圈,电压矢量不会无限大,产生的电流也就不会无限大,因此生成的磁场也不会无限大。 那么SVPWM调制的矢量圆的半径最大是多大呢?答案就是我们上一节里面合成的第一个矢量,它的长度为√3/3Vdc。 那这是为什么呢? 我们看下面的图,当三角形OAB的B点落在由边长为Vdc的六边形上时,我们OA + AB刚好等于2/3Vdc,也就是说: 矢量OA的作用时间t1 + 矢量AB的作用时间t2 = 载波周期T; 这也就表明了,我们不能合成超过这个六边形范围外的矢量,那我们矢量圆的半径是不是就确定了就是这个六边形的内切圆,半径为√3/3Vdc。 当然通过某些手段我们可以把矢量圆的半径拓宽到2/3Vdc,这个方法就是过调制,这个我们后面再讲。 2.4 如何求解SVPWM基础矢量的作用时间 假设我们要合成如图所示的扇区1中的矢量OB,我们怎么求出矢量V4的作用时间t1和矢量V6的作用时间t2? 首先我们知道三角形的每条边与它对角的正弦值的比值相等即: 我们可以知道;代入上式得: 先分析 ,把代入得: 接下来分析,把代入得: 上面t1、t2得等式中T、Vdc是已知的,那么我们只要知道OB以及θ的值就能求出t1、t2的值了。 大家回想一下第一章我们讲的FOC框图里面SVPWM模块的输入是什么? 是不是Uα和Uβ?那么通过Uα和Uβ我们能不能算出t1、t2? 答案是可以的,因为Uα = OB × cosθ,Uβ = OB × sinθ,那么上面t1、t2的式子就可以化简为: 同理我们能计算出另外五个扇区的t1、t2矢量的作用时间如下表,令得: 既然我们知道了每个扇区的矢量都是有两个基础矢量和零矢量合成出来的,在知道两个基本矢量的作用时间后,就可以求出零矢量的作用时间t0 = T - t1 - t2。 3. 七段式SVPWM 以上图为例,我们要合成该黑色的矢量,矢量V4和矢量V6的作用时间是0.25T,矢量V4的作用时间为t1,矢量V6的作用时间为t2,零矢量的作用时间为t0。 根据t0 + t1 + t2 = T,可得t0 = 0.5T,通过之前的知识我们可以得知零矢量分为两种分别是V0(000)和V7(111),在这0.5T的时间内V0和V7各自作用力0.25T的时间。 什么式七段式SVPWM?就是我们把一个周期T划分成7段,每一段对应着一个矢量状态,通过七次矢量合成最终得到目标矢量。 既然通过七段式合成上面需要4个矢量(V4、V6、V0、V7),这4个矢量对应着六个管子不同的动作,功率管要开关那肯定会开关损耗,因此我们需要找出一种开关损耗最小的开关方式。 为了保证这七个状态切换时,开关损耗最好,我们每次要尽可能让开关的动作次数最少。 如下下图(下图的波形我们可以看成Sa、Sb、Sc的状态,也可以看成三个上桥臂的PWM波的波形): 我们要合成扇区1里面的黑色矢量,分7段(其实图中的时间段分为了八段,但是中间的111连续视为一段,这样的话就只有七段了): 第1段:合成矢量V0(000)作用时间1/8T(t0/4); 第2段:合成矢量V4(100)作用时间1/8T(t1/2); 第3段:合成矢量V6(110)作用时间1/8T(t2/2); 第4段:合成矢量V7(111)作用时间1/4T(t0/2); 第5段:合成矢量V6(110)作用时间1/8T(t2/2); 第6段:合成矢量V4(100)作用时间1/8T(t1/2); 第7段:合成矢量V0(000)作用时间1/8T(t0/4); 每一段切换时我们都只改变了Sa、Sb、Sc其中的一个状态,也就是只改变了一个半桥上的两个开关管,如果我们把第3段和第2段对调,那么开关的次数是不是就增多了,开关损耗就增加了。 总结一下六个扇区内各自矢量的合成方式如下(可以看成三相上的PWM每个载波周期内的占空比中心对称): 那么有人可能会疑惑了,既然都是零矢量,那作用效果都是一样的为什么不只用其中一个矢量?这就是七段式和五段式SVPWM的区别了,七段式的零矢量多一个,开关管的切换次数会比五段式多,开关损耗会比五段式大,但是七段式的谐波会比五段式小。在这里我们只讲七段式,对五段式感兴趣的小伙伴自己下去可以了解一下。

    04-15 117浏览
  • 电源纹波测试全攻略

    电源纹波是衡量电源质量的重要指标,过大的纹波可能导致电路不稳定。下面是超详细的测试步骤和避坑指南,新手也能轻松掌握!

    04-14 146浏览
  • 旁路,去耦,滤波,耦合电容大总结

    电容的应用大概分成这四类,那怎么区分他们呢?

    04-10 185浏览
  • 嵌入式硬件杂谈:推挽、开漏、高阻态、上拉电阻

    对于嵌入式硬件这个庞大的知识体系而言,太多离散的知识点很容易疏漏,因此对于这些容易忘记甚至不明白的知识点做成一

    04-09 207浏览
  • PMSM无感FOC控制

    本文介绍了永磁同步电机的FOC控制,涵盖FOC算法、坐标变换、PID控制器、SVPWM、电流检测和转子位置提取等内容,概述了控制流程和原理,帮助读者入门电机控制技术 目录 0. 前言 1. 什么是FOC 2. FOC控制和六步换相控制的区别 3. FOC的原理 4. FOC到底在控制什么 5. FOC涉及到的坐标变换 4.1 Clark变换(三相静止坐标系 to 两相静止坐标系) 4.2 Park变换(两相静止坐标系 to 两相旋转坐标系) 4.3 反Park变换(两相旋转坐标系 to 两相静止坐标系) 6. FOC如何控制的电机的转速 0. 前言 前段时间做了一个永磁同步电机无感控制的项目,想总结一下,做个比较基础易懂的文章方便大家入门,主要介绍以下几个方面: 1.FOC控制算法、坐标变换 2.PID控制器 3.SVPWM 4.过调制 5.相电流检测及重构(单电阻、双电阻及三电阻采样) 6.转子位置及速度提取(滑膜观测器、低通滤波器、锁相环) 7.PMSM无感控制的启动 计划写完上述内容后再开始写一些别的控制算法(MTPA、弱磁控制、电流前馈补偿、高频注入等) 1. 什么是FOC FOC 是一种电机控制技术,全称为 Field Oriented Control(磁场定向控制),也称作矢量控制。该技术可以提高电机的效率、控制稳定性和精度,广泛应用于电机驱动系统中,是目前无刷直流电机(BLDC)、永磁同步电机(PMSM)、感应电机的高效控制的最优方法之一。 2. FOC控制和六步换相控制的区别 控过无刷直流电机BLDC的小伙伴应该都知道有六步换相控制,FOC控制和六步换相控制都是用来控制电机的方法,但它们的原理和控制方式略有不同。 六步换相控制是一种较为简单的电机控制方法,它将电机的六个电极分为三个相,每个相对应两个电极,然后通过依次通电、断电,来实现电机的转动。这种控制方式对电机的控制比较粗略,不能实现对电机转速和转矩的精确控制。 FOC控制则是一种更为精确、先进的控制方式。它将电机的空间磁场分解成水平和垂直两个分量,然后对这两个磁场分量分别进行控制。通过调节两个磁场分量的大小和相位差,就可以实现对电机的精确控制,包括转速、转矩、效率等方面。相对于六步换相控制,FOC控制可以使电机效率更高,噪音更小,并且可以实现更佳的控制性能。缺点是FOC控制需要更高的计算能力和控制算法,因此复杂度比六步控制要高,对控制芯片会有更高的要求。 3. FOC的原理 FOC的双环控制(电流环、速度环)内环为电流环,外环为速度环。 双环控制通过控制电流的大小可以实现电机转速的精确控制,整个双环控制的框图如下图所示: 图中foc的内环分为六个步骤(Step1、Step2、Step3、Step4、Step5、Step6),涉及三个坐标系(三相静止坐标系(A-B-C)、两相静止坐标系(α-β)、旋转坐标系(d-q))、三种坐标变换方法(Clark变换、Park变换、反Park变换)、一个控制算法(PID控制算法)、一个脉宽调制方法(SVPWM)、一个转子位置及角速度估算方法,大家先记住有这些东西,不理解没关系,我们先对着框图梳理一下FOC的整个流程,之后再给大家一一讲解。 FOC的整个过程是这样的: 1.采集三相电流IA、IB、IC; 2.将三相电流进行Clark变换得到两相静止坐标系下的电流Iα、Iβ; 3.再将Iα、Iβ进行Park变换得到旋转坐标系下的电流Id、Iq; 4.利用Iα、Iβ和Uα、Uβ利用观测器估算出转子的转速Speed_est以及角度θ; 5.计算转子的实际转速Speed_est与设定的目标转速Speed_ref的误差 6.将误差丢入PI控制器,执行器输出Iq_ref;(肯定会有人疑问为什么Id_ref=0,这个后面会讲到) 7.计算Id、Iq与设定值Id_ref、Iq_ref的误差; 8.将误差分别丢入PI控制器,执行器分别输出Ud、Uq; 9.Ud、Uq进行反Park变换得到Uα、Uβ; 10.最后Uα、Uβ经过SVPWM变成作用在三相上的电压UA、UB、UC; 看完这里肯定有人一头雾水,FOC控制它到底在控制什么???这些变换到底是在干么???为什么要变来变去??? 大家先了解一下这个框图就行,看完后面的内容再回过头来看这个框图就会恍然大悟了。上面这些问题接下来我会一一讲解。 4. FOC到底在控制什么 我们用手或者外部的其他机构匀速转动PMSM,用示波器观察它的三相电压,会看到如下的波形: 波形是三个两两相差120°的正弦电压波形,那么反过来我们在三相上输入三个相位相差120°的正弦电压,电机就会匀速转动起来。那我们输入的电压是正弦的那激励出来的电流是不是也是正弦,这样的话我们通过采集电流的波形,控制电流按照正弦波去变化,电机就能旋转起来了。(在这里先埋两个坑,后面讲SVPWM时再给填上,大家想一下SVPWM模块输出的端电压波形是不是正弦的???是不是只有正弦的端电压才能激励出正弦的相电流???) 综上所述FOC控制其实就是在控制三相电流按照正弦变化,同时控制三个变量按照幅值不变的正弦波一样变化是很困难的,控制器设计也很复杂,因此我们需要简化控制变量,这时候就轮到Clark和Park变换出场了。 现在大家知道FOC控制的变量什么了吧,就是在控三相电流,让三相电流按照正弦变化。 5. FOC涉及到的坐标变换 4.1 Clark变换(三相静止坐标系 to 两相静止坐标系) 首先我们要定义一个三相静止坐标系,以电机A相的方向画出三相静止坐标系的A轴,逆时针相差120°画出B轴,同样这样画出C轴。这三个轴上的基向量是非正交的,我们是不是可以通过某种变换将三相静止坐标系里面的向量变换到两相静止坐标系? 通过Clark变换我们可以达到上述目的,变换后的坐标系命名为两相静止坐标系 α-β ,α轴的方向与电机A相的方向相同,β轴垂直于α轴,变换公式如下(乘以2/3是为了等幅值变换): 把我们要控制的三相电流进行Clark变换,变换后的波形依旧是正弦波,不过我们要控制的变量少了一个。 变换前后的波形如下: 虽然说我们要控制的变量少了一个,但是被控量依旧是两个非线性的量,不适合用PID这类线性控制器,因此我们要想办法把它线性化,通过Park变换我们可以达成该目的。 4.2 Park变换(两相静止坐标系 to 两相旋转坐标系) 接下来我们要建立一个新的坐标系两相旋转坐标系 d-q,它是随着电机的转子不停旋转的,我们以转子的磁场方向(转子N极方向)为d轴正方向,以垂直于转子磁场的方向为q轴方向,d轴可以称为直轴,q轴称为交轴,旋转坐标系 d-q与两相静止坐标系 α-β的夹角是θ。 我们可以把两相静止坐标系上的电流变换到旋转坐标系上,变换公式如下: 把α-β坐标系下的电流进行Park变换,变换后我们会发现,两相旋转坐标系下两个控制变量都被线性化了: 那么原来需要我们控制的三个非线性的量,就被我们简化成了两个线性的量,所以接下来我们就可以使用线性控制器PID了,用这两个值作为反馈控制的对象,通过反馈不断的调整Ud和Uq,从而使激励出来的电流Id、Iq达到我们想要的参考值Id_ref、Iq_ref。 4.3 反Park变换(两相旋转坐标系 to 两相静止坐标系) 第2章开头我们讲了FOC的内环(电流环)控制框图,我们可以看到Step#3的PI控制器的输出是Ud和Uq,但是Ud和Uq是不能直接作用在电机的三相上面的,所以我们得再将dq轴的电压向量再反变换回去,得到能作用在电机三相上的相电压Ua、Ub、Uc。这时有人会问了,那反变换回去不是首先反Park变换再反Clark变换就行了,为什么最后一步是SVPWM而不是反Clark变换??? 这个我们后面讲SVPWM时再讲为什么不是反Clark,我们先看一下反Park变换。反Park变换顾名思义是将Park变换后得到的dq轴上的向量给变换回去得到αβ轴上的向量。 其变换公式如下: 变换前后的波形如下图所示: ok到这里foc的大致流程就过了一遍,下一篇文章我会详细讲解PID控制器的作用原理,在之后就来填上SVPWM埋下的坑。 6. FOC如何控制的电机的转速 前面我们将了FOC其实就是在控制电机的电流大小来使得电机转动的,由于控制三相电流比较麻烦,所以我们用了Clark和Park变换,使得控制的电流线性化了,得到了Id和Iq。 那么Id和Iq是如何影响电机转动的呢?如果想让电机加速或者减速我们应该怎么控制Id和Iq的大小呢? 首先我们知道电机转动,是因为受到了力的作用,这个力是由磁场产生的,我们叫它电磁转矩,记作Te,Te的公式如下: 式中P为极对数,Ψf为永磁体磁链,Ld、Lq分别为d、q轴的电感,id、iq分为别为d、q轴电流。 对于表贴式的电机Ld和Lq是相等的,内嵌式的电机Ld一般小于Lq; 如果我们控制的是表贴式的电机大括号里的第二项就消掉了,电磁转矩Te的大小只与Iq相关,增大Iq,Te随之增大,电机的角加速度随之变大; 如果我们控制的是内嵌式的电机,电磁转矩Te的大小与Id、Iq相关,增大Iq,Te随之增大,电机的角加速度随之变大,并且若Id为负值时,可以产生正向的电磁转矩,负地越大,Te越大,电机的角加速度越大。 本系列文章都是针对表贴式电机来讲解地,因此Ld与Lq相等,只需要把Id电流控制到0就可以了,这也就是为什么前面FOC框图里面地Id_ref = 0的原因。 7. 总结 本节主要讲了FOC的大致流程,带大家先了解FOC到底是个什么东西在做什么,各个模块具体的原理会放到后面的章节详细讲解。 FOC其实就是通过控制,相电流按照正弦变化,从而产生出旋转的磁场,控制电机转子转动。具体流程包括以下几个步骤: 通过测量电机运行时的三相定子电流,得到Ia、Ib、Ic。 将三相电流通过Clark变换转化为两相电流Iα和Iβ,这是两个正交的电流信号。 Iα和Iβ通过Park变换得到旋转坐标系下的电流Id和Iq。 Id的参考值决定了电机转子磁通量,Iq的参考值决定了电机的转矩输出大小。二者各自的实际值与参考值进行比较得到的误差,作为电流环PI控制器的输入。通过PI控制计算输出得到Vd和Vq,即要施加到电机绕组上的电压矢量。 利用观测到的电机角度,Vd和Vq经过Park逆变换到两相静止坐标系上。该计算将产生下一个正交电压值Vα、Vβ。再采用SVPWM算法判定其合成的电压矢量位于哪个扇区,计算出三相各桥臂开关管的导通时间。最后经过三相逆变器驱动模块输出电机所需的三相电压。

    04-07 170浏览
  • 从“0”到大神,嵌入式软件学习路线攻略

    从“0”到大神,嵌入式软件学习路线攻略

    04-07 181浏览
  • 屏幕接口类型集锦(MCU,RGB,MIPI,LVDS,HDMI)

    ????查看更多目录????一、内部接口(板载接口,用于嵌入式系统)1. 并行接口(1)MCU接口MCU 接口(微控制

    04-03 202浏览
正在努力加载更多...
广告