There is a zombie on your lawn.

图图曾是香草榜第一

FOC框图

在这里引用下稚晖君的文章中的电流环框图。
在这里插入图片描述
图中的SVPWM部分是什么意思?为什么输出是一个马鞍波?今天仔细聊聊。

六边形战士

SVPWM引入

Space Vector Pulse-Width-Modulation,空间矢量脉冲宽度调制。首先PWM是什么?脉冲宽度调制。假设我的电源电压是10V,要驱动一个8v的灯泡,要怎么做?我们可以输出一个脉冲波,幅值为10V,其中每个周期内80%的时间为10V,剩下20%不作输出,即占空比为80%,就可以等效出一个8V的电源,通过改变占空比也可以改变电源输出。当然前提是这是一个惯性系统,比如灯泡没电不会马上熄灭,电机没电不会马上停转。这也需要单片机中的定时器和外部的驱动电路共做作用。
在正式开始之前,先明确一下SVPWM的输出输入。从框图中可以看到SVPWM环节的输入是Uα和Uβ,输出是电机驱动信号,但其实是三相PWM的占空比。我们要通过SVPWM是为了生成一个输出效率更高的旋转磁场。
首先来看看三相半桥电路。单片机的引脚不足以驱动电机,所以外部需要通过MOS管搭建半桥电路。引用一下B站up主澄远FOC的视频中的图片。驱动电机时就是通过MOS管的开关来在电机上施加电压。将每个半桥上管导通下管截止的状态定义为1,反之为0,就可以有8种状态组合。
图中是SaSbSc=100,就是电流从电机A相流入,再从BC两相流出。
在这里插入图片描述
那就可以以此分析出相电压和线电压的情况。
补充:线电压是指电机任意两相线之间的电压,相电压是电机任意一相与电机中性点(虚拟)之间的电压,端电压是指电机任意一相与参考地之间的电压。
所以在此时这种情况下合成出了一个幅值为2/3Udc的电压。为什么要乘2/3,因为我们后续要放在Clark坐标系中计算,为了等幅值的考虑,需要补偿回来。不做会有影响吗?也不会,因为最终为了计算得到的占空比都是一样的。可以参考知乎的这篇文章解答下疑惑。
在这里插入图片描述
通过切换MOS管的开关顺序,可以得出六个矢量,相位相差60°,且幅值均为2/3Udc。在000和111的情况下,无法形成回路,所以产生了两个零矢量。
但目前为止只是单纯地开关MOS管,所以有磁力菇会奇怪这不还是六部换向法吗?PWM调制和旋转磁场的思想在哪里体现?别急。首先如下图所示,有六个向量,对应六种电路状态。
在这里插入图片描述
这六个矢量划分出了六个扇区。我们想要生成一个旋转磁场,可以通过两个矢量进行合成。同时参与合成的两个矢量大小不会一样,不然只是从六步换向变成十二步换向。怎么做到?就是使用三个PWM分别控制三个半桥开关的时间做到DA输出。具体来说,在每个PWM周期中有四个矢量参与合成,除了两个电压矢量,还有两个零矢量参与。
现在可以得出几个结论:

  1. 尽管机械结构上只是产生六个方向的电压,但是我们可以通过PWM调制各矢量大小进行矢量合成,从而得到想要的可控大小,可控方向的磁场。
  2. PWM的周期会影响控制效果。越短的周期越能使磁场快速响应,作出更细腻的旋转运动,类似于割圆术,但是留给单片机计算定时值的时间就越短。
  3. 合成的矢量大小可控,但是幅值最大为√3/3Udc。并非不能合成更高的矢量,三相PWM一直为100时就是一个2/3Udc的基础矢量,但是PWM为100和110,占空比各位50%,产生一个30°的矢量时,只能合成一个√3/3Udc的矢量,没有办法更大。所以为了保证合成的磁场可以大小稳定地旋转,√3/3Udc就是最大不失真电压。这个圆就是六边形的内切圆。
  4. MOS管的切换顺序。为了减少开关MOS管导致的损耗,每次切换都会只切换一个半桥,这样可以有最少的切换次数。假设在0-60°的第一扇区进行调制,切换顺序就是000->100->110->111->110->100->000,每一次只会有一位发生变化,这就是七段式开关。若是只有一个零矢量参与,那就是五段式开关。
    引用一下稚晖君的文章中给出的切换图。这就是生成第一扇区内磁场的,三相PWM的输出时间示意。每个区域竖着看,就是000->100->110->111->110->100->000的顺序。图中使用了单片机的中央对齐模式。
    在这里插入图片描述
    在其他扇区也是这样的切换流程。但是不同扇区有不同的时间计算公式,所以想要计算时间,还得知道扇区判断。

扇区判断与时间计算

引用一下B站up主澄远FOC的视频中的图片。详细的推导这里就不展开了,直接给出结论。,MD文档写公式太累了
在这里插入图片描述
简单说说两种判断扇区的方法吧。

  1. 我们已经将这个计算置于αβ坐标系中,所以目标矢量通过αβ轴上的矢量进行合成。每个扇区囊括了60°的范围,所以tanθ=Uβ/Uα经常会和tan60°比较。SVPWM的输入就是Uβ和Uα,所以比较Uβ,Uα的符号以及大小关系就可以判断扇区。
  2. 每次会将Uβ和Uα计算成上图的XYZ三个中间变量进行比较,得到扇区。这所谓的中间变量,其实就是我们要求的两个基础矢量作用时间。

如下图就是矢量的作用时间。其中Ts就是PWM的周期,Uβ和Uα与Udc是一个量纲。本质上就是求得Ts中有多少留给了非零矢量,有多少给了零矢量。Uβ和Uα也是由目标值决定的。目标转速越高,就越大。在上图的三相PWM输出图中,000与111在末尾和中间,共同分割了零矢量的作用时间。
在这里插入图片描述

矢量切换点

在知道了空间矢量的作用时间后,我们就要思考怎么在正确输出PWM信号,满足想要的七段式开关顺序。计算出正确的矢量切换点,也可以说确定PWM的占空比。
在这里插入图片描述
下图给出了矢量作用时间的公式,以第一扇区的切换作为例子。000->100->110->111->110->100->000,所以A相占空比最大,C相最小。
在PWM模式2中,计数值小于CCR时,单片机输出无效电平,即低电平。所以图中求得的TP1,TP2,TP3就是单片机定时器的CCR值。
只要能满足矢量的通电时间能满足要求,怎么切换MOS顺序都是可行的。但正如前面所讲,为了降低MOS管开关损耗,每一次都会尽量减少开断MOS管的数量。目前这种对称的模式一是能减少MOS管的切换次数,二是中间时刻一直都是111,即截止状态,这段时间就可以预留给单片机进行计算。
在这里插入图片描述

查漏补缺常看常新

写一点做SVPWM遇到的问题,以后想到会持续加上。

  1. 利用率问题?
    在讨论利用率之前,首先要知道利用率到底指什么?电机是一个动态系统,而且电机工作只看相线上的电压。尽管在分析中会提到相电压,但是中性点本就是虚拟出来的模型,现实中不可能在电机中心插根万用表笔。所以利用率是线电压幅值/母线电压幅值。
    有人会误解这是不是类似于功率利用率这种,不是的!由定义可以知道利用率是指母线电压可以逆变出更高的线电压。
    SPWM方式利用率只有√3/2,使得电机上的线电压最多只有0.86倍母线电压,但是SVPWM却可以做到100%。详细的推导过程网上很多,这里不多赘述。
  2. 马鞍波形状?
    SVPWM靠什么提高利用率?在框图中曾展示单片机进行SVPWM计算时会输出马鞍波。新磁力菇会误解单片机是不是直接输出马鞍波?这是容易掉坑的地方,单片机输出的是PWM,本质是DAC。马鞍波在哪里体现?答案是CCR值。每一个周期都会计算更新定时器的CCR,在单片机输出时就得进行下一次的计算。如果抓取CCR的波形,就会获得一个马鞍波图形。实际上,电机的端电压是马鞍波,但是一定要记住电机的驱动还是看线电压。
    在这里插入图片描述
    这张图里面有很多信息。首先有磁力菇会好奇,为什么SVPWM环节还是马鞍波,但是到了电机的线电压就变成了正弦波?不要忘掉线电压是两两端电压之间的压差。三组马鞍波是相位差120°的波形,两个相差120°的马鞍波合成之后是什么,答案是正弦波。两两相差120°,作差后会把3次谐波以及3的倍数次谐波中和掉,从而得到正弦波。详细推导可以看看b站或者知乎。3*120°就是三角函数的周期。所以会考虑在信号中添加三次谐波或更高。一是最终仍能得到正弦波,二是提高了利用率。
    图中标注的数字就是扇区。每次进入波谷时就是换区时刻。这三个波形就是我将上面提到的公式交给单片机计算得到的CCR值。换言之,正是因为上面提到的的扇区变换和矢量选择,使得我们输出了马鞍波。所以不少磁力菇有误区,马鞍波产生的原因。但在我看来,马鞍波正是SVPWM调制算法产生的结果。
    这个结果好吗?首先它并不会影响电机的工作。其次图中的阴影部分也可以展现如何提高利用率的。黑色阴影和红色阴影面积相等。但是将正弦波的大波峰削成了马鞍波的小波峰意味着能输出更高的线电压。这也是SVPWM和SPWM的效率差异所在。
  3. PWM输出模式?
    中央对齐模式下,有PWM mode1和mode2,该怎么选择?不管怎么选择,输出是不会变换的,所以这得看选择的是怎样的算法。如果是计算得矢量切换时间,那就是mode2,先低后高。如果是计算的高电平时间,那就是mode1的先高后低。有区别吗?这两个时间加起来就是PWM的周期,我想不会影响,还是要看实际的电路设计。
  4. 输出占空比范围?
    如果占空比为100%,那就是刚好在基础矢量的状态上。但是不会这么做。前面提到过,要输出不失真的旋转磁场。范围还是要联系实际,但是为了电机的正常工作要注意限制范围。

写到最后

今天简单写了下SVPWM的知识,说到底就是将计算放于αβ轴中(输入Uβ和Uα)根据向量合成分解的原理计算出想要的合成磁场,最终是为了求得单片机定时器的CCR值。SVPWM通过调制算法输出马鞍波得以提高利用率,如此天马行空的设计不禁让人感叹前人的智慧。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐