如下图所示的,是FOC算法的整体流程图,下面图中最重要的部分就是SVPWM和3相全桥电路,和送给SVPWM进行运算,运算之后的结果为三个相差120°的马鞍波,然后将这三相马鞍波作为控制全桥MOS开关的三个PWM波的占空比,之后3相全桥电路在PWM波的控制下产生三相相差120°的正弦波。
FOC的其他算法,例如park、repark、clark、reclark变换等都是经过数学变换计算的公式,都是对三相正弦波的解耦计算,中间存在等幅值变换条件。FOC的闭环控制中需要获得电机的角度、速度信息,需要根据不同的编码器进行计算;FOC的位置闭环控制,需要使用到精度比较高的编码器,如果使用三相的霍尔编码器是无法实现位置闭环运算的。
下面将针对上面的框图进行算法的分块描述。
一、clark、reclark
clark是对三相相差120°的正弦波的第一层的解耦,将ia、ib、ic三相交流信号解耦到和两种正弦信号。
(1)自然坐标系
如下图所示的,是三相正弦波在无刷电机的三相上的电流,三个电流以正弦波的形式在无刷电机的三相上产生三个方向上的磁场,三个方向上的磁场的合磁场就是下面左图的蓝色线所示。
如下图所示的在三相上产生的磁场的矢量和,就是一个整体的绕圆旋转的矢量磁场。
(2)αβ 坐标系【clark变换】
三相相差120°的交流信号的控制运算是比较困难的,所以需要对三相交流信号进行解耦。首先进行第一步解耦,自然坐标系解耦到αβ 坐标系。
首先知道iA、iB、iC的电流值(ADC采样获得),将三者的大小由自然坐标ABC坐标系,投影到αβ 坐标系;根据基尔霍夫电流定律,可以知道三相上的电流在三相的交点上的和是为0的。就可以得到下面的公式:
将上面的公式化简之后得到:
上面的clark变换之后,和的幅值相对于IA、IB、IC的值会有增加,为了等幅值变换(等幅值变换的目的为了将相电流的幅值信号传递给电流闭环PI控制器,PI控制器在输出控制变量限制幅值的时候相对使用幅值),等幅值变换一般乘以2/3就可以。
(3)reclark【反clark变换】
如果使用数学的方式计算出来SVPWM的6个扇区的周期以及周期的判断生成马鞍波,那么就使用不到reclark;如果使用使用正弦波+反向三角波结合生成马鞍波的方式,就需要使用到reclark变换(两种信号合成的方式生成马鞍波,计算量比较小,适用于低性能单片机)。
按照下图所示的将和向量分布到IA、IB、IC向量上进行计算得到下面的reclark的公式:
(4)clark和reclark的matlab的simulink的仿真模型
下面是clark的simulink模型
下面是reclark的simulink的仿真模型
二、park、repark
park的作用实在clark解耦的基础上再次进行解耦运算,将和的正弦波解耦为线性数据Id、Iq,解耦成线性数据之后就可以使用PID控制器进行控制了。
park变换是将αβ 坐标系的两个正弦波映射到一个旋转坐标系(旋转的坐标系是跟随着转子在旋转的),最终如下图所示的,q-d轴两个定值在旋转的情况下合成的磁场矢量就是无刷电机整体的磁场矢量。
如下图所示的,将αβ 坐标系和投影到q-d轴,得到park的变换矩阵为:
转换成矩阵为:
此为正方形矩阵它的逆矩阵则为:
所以反park的公式为:
(1)matlab的park的simulink仿真模型
(2)matlab的repark的simulink仿真模型
三、SVPWM
结合开头提供的FOC架构,SVPWM的主要作用就是将和两个正弦波经过计算转化为马鞍波,马鞍波的值作为PWM波占空比的值。SVPWM生成马鞍波的方式有两种:(1)使用数学计算的方式;(2)使用正弦波与反向三角波合成的方式。下面将针对这两种方式进行讲解。
3.1、SVPWM的基础知识
SVPWM的作用就是生成马鞍波,就是利用马鞍波调节的值调节PWM的占空比,从而达到7段式中不同的典型开关状态切换,从而实现矢量式控制转子的目的。
(1)全桥电路
利用全桥电路的MOS管的开关组合实现不同开关状态的切换,从而实现电机的矢量控制。全桥电路的MOS管的开关组合由8中状态,其中两种状态是零电压状态,上桥臂全部打开、下桥臂全部打开,电机中都是没有电流的。
将3对磁极进行编码:1(上桥臂打开,下桥臂关闭);0(上桥臂关闭,下桥臂打开)。
如下图所示的是MOS管的8种状态,其中V0和V7两种状态是零电压的状态,其他的6种状态可以产生如下图中六边形种箭头所示的磁场。
(2)六种典型矢量合成扇区矢量
逆变电路中,不能让MOS处于一种状态一直导通,这样电感就没有了阻抗,就容易把电机烧掉,但是一般控制系统都会有过流保护电路。
如下图第一扇区所示的,通过V6和V4两个矢量的合成任意矢量,也就是快速的将V4的MOS管状态与V6的MOS管状态进行快读的切换,在惯性的作用下,就相当于两个力同时作用拉着转子,就会让转子悬停在某一个状态,但此时的电机是一直在抖动的,只要控制好两个力的大小(也就是控制两个力所占的时间),就可以让转子在一个周期内丝滑转动。
(3)七段式和五段式的矢量合成
上面所说的控制相邻两个典型矢量在一个定时器的定时周期内所占的时间,两个矢量所占时间的不同就可以控制合成矢量的角度。但是大部分使用的还是七段式的比较多。
注意:如上图所示的七段式SVPWM中,在100、110这两段时间都是在变化的,并不是一直不变的,三相马鞍波作为PWM的占空比,三相马鞍波是在变化的,PWM的占空比也是在变化的。
下面的两张图是所有的扇区的七段式图。
(4)六边形内圆的合成磁场矢量
如上图所示,