永磁同步电机控制与Matlab建模(2) 空间矢量脉宽调制SVPWM算法原理与Simulink实现

2.空间矢量脉宽调制SVPWM算法原理与Simulink实现

写在前面:在理解SVPWM算法原理后会发现其实就是问题转换,将抽象的困难的问题转换拆分成几个好做的小问题。带着这个思想,去确定每一个变量的作用是什么、每个模块的功能是什么、模块之间的联系是什么,转换的思想是什么。算法理解就会简单一些,我个人的阅读流程先是跟着UP复现Simulink模块[2],此时是大概知道有什么但不知道意义是什么。然后看了书[1],此时理解了一些数学原理但不多,但还是要看,看书的过程就是对自己提问对书提问,知道自己的疑惑在哪,自己去思考每个功能以及数学是什么意思,最后再看知乎回答[3],我就理解了每个模块的功能、原理以及变换的思想了,当然还是要对自己提问,对文章提问,再去思考和总结就会形成我这篇自己的理解。

对于我来讲SVPWM算法非常难,书籍上写的内容略微简略以及该算法涉及到的变换与子模块过多,细枝末节太多,对于一个刚入门的小白来讲非常不友好,比如SVPWM输入的和输出是什么、SVPWM的实际作用是什么、那么多新定义的变量有什么用?当我看了解说视频,独自看了书[1]这些问题都出现在我的脑子里没有解决,当在浏览器搜索该算法时,偶然搜索到了大神的知乎回答[3],他的讲解非常符合我的逻辑,从实体应用出发,从细枝末节出发,巧妙地结合了原理和自己的理解将该算法的每个部分讲通,在读完后我也大概能用我的思维来讲述这个算法和这个算法很多小东西的用处。接下来我也只是简略的讲一下我对该算法的认识和理解,对于详细数值的内容还请参考知乎回答[3]

我的思维是什么呢?是实体应用思维,因为这个本身是要落到单片机上的,那就要思考的单片机是如何链接的,单片机的输入和输出是什么?以及到单片机上如何将这些连续的数学公式离散成单片机上的代码?

我理解SVPWM算法的本质就是在三相电压误差通过Clark转换为α-β作为SVPWM的输入,在给定PWM周期和参考电压后经过SVPWM算法运算得到三相PWM波给逆变器来产生三相正弦电压。这时候要问如何产生的三相正弦电压,在数学上正弦函数是一个连续的波形,但现实世界是离散的,我们可以将正弦波切割成一个个小的点,只要切割的够细这个正弦波就足够圆滑,我们则需要在给定的时间点给出合适占空比的PWM波就可以生成一个个组成正弦波的点,若正弦波周期为T1,将其分割成n个点,那么PWM的周期T2=T1/n。所以SVPWM的本质就是通过分析α-β输入来生成合适的多路PWM,算法内部的一切分析变换都是为了这个服务。

2.1 逆变器与SVPWM算法的关系

一个完整的PMSM控制系统应该由PMSM、DC电源、逆变器、控制板、传感器组成。从逆变器讲起,逆变器的功能是将DC电源的直流电转换为三相交流电供电机使用。要想实现这个功能需要其接收来自单片机的多路PWM信号控制电路板上的电路有序导通,也就是弱电控制强电。电路理解不是我的强项,对于逆变器如何产生三相可控电流还要参照博主写的内容[3]。但我只要理解逆变器可以通过输入PWM占空比来控制此刻一相的电压,对于一个周期为T1的正弦波电压,我只要能控制生成n不同的占空比周期为T2=T1/n PWM波就能生成一个周期的正弦波电压。因此我们只要将我们想要的三相交流电作为SVPWM算法的输入,SVPWM算法就会输出对应的PWM波来控制逆变器产生我们想要的三相交流电。

2.2 从输入输出的角度和顺序来分解SVPWM算法

2.2.1 SVPWM的输入

我们从SVPWM头部开始,通过以上的变换我们可以将自然坐标系ABC三相转换到静止坐标系α-β两项来表达,在仿真中我们以想要的三相交流电压Uinput的α-β形式作为SVPWM的输入。

2.2.2 三相电的空间矢量表示

在三相逆变器中,每一相桥臂上的两个开关状态是互补的。如果该相上开关是导通的,那么下开关必然是切断的。那么由此可知三相逆变器每一相都有0和1两个状态,我们假设一个三路PWM1(这里的命名是为了帮助分辨目前的PWM和后面通过扇区和时长控制产生的最终输出PWM)来控制三个开关的导通(实际上是六个开关因为每一相的两个开关是有约束的),在PWM1占空比都为100%的情况下三相通过组合可以得到可以得到八种组合。

图11 三相开关组合表 [3]

将这八个组合的电压合成起来并在静止坐标系下表示可以发现其顶点能够组合成一个六边形,形成六个电压扇区。此时我们将输入的一个时刻(离散化的时间长度为Ts=T1/n)的Uinput放入这个六边形中,首先判断Uinput在哪个电压扇区N并找到它两边的电压U1,U2,然后在Ts的时间内产生T3时长的U1、T4时长的U2、T5时长的U0(0电压),那么我们可以通过矢量组合出我们想要的此时刻的Uinput。当然我这个是总结简化版本,这个的原理还涉及到平均值等效原理即:TsUinput=T3U1+T4U2+T5U0。

图12 电压空间矢量合成示意图 [1]

由以上理论可知如果想要控制生成我们想要的电压输出,就要通过计算得到期望电压在哪个扇区N以及两条边电压和零电压各要维持多长的时间(T3,T4,T5),同时还要明确每一相从哪个时刻由0变化为1,再由1变化为0的。同时为了提高效率以及降低各种损耗(从物理和电路开关的角度来讲),因为平均值等效原理并未要求是先生成T3时间的U1还是先生成T时间的U0,所以我们还可以将T3,T4,T5进行拆分和组合,使得每一次逆变器开关变化都只改变一相的开关状态,因此通过分析可得到每个扇区的固定切换顺序,最后再结合不同的T3,T4,T5就可以生成该扇区任意角度的电压了。由于我们将T3,T4,T5进行拆分和组合所以此处才会生成一个占空比变化的PWM2也就是图中的abc三相,这个PWM2才是我们最终的输出。

图13 拆分组合后优化的最终扇区电压生成组合 [3]

由此我们将生成期望电压的任务转换为期望电压扇区判定、扇区内相邻两个非零向量和零向量作用时间计算、以及0、1切换时间点的问题。

2.2.3期望电压扇区判断

接下来的内容我都是结合博主的回答的第3.1部分[]来进行一些细化补充,而不是从原理底层讲起,博主讲的已经很好了。期望电压扇区判断的核心思想是什么?变换计算,这部分首先就是定义了三个变量Vref1,Vref2,Vref3,这三个变量由输入的期望电压组成,通过判断这三个值正负的组合来判断其在哪个扇区N。

2.2.4扇区内相邻两个非零向量和零向量的作用时间的计算

这里的核心思想也一样,就是变换计算。也是先定义了三个变量X,Y,Z这三个变量由输入的期望电压组成,通过期望电压所在扇区来判断和计算其三个作用时间,得到公式后查表做选择就好。

2.2.5确定切换时间

这里的核心思想是什么?是数形结合。该算法形象的将上文提到的abc三相PWM的数值和一个等边三角波结合起来,我们假设这个等边三角波的底为PWM2周期Ts高为Ts/2,同时设a相切换时间为Ta,b相切换时间为Tb,c相切换时间为Tc。将等边三角波与PWM2对齐,我们会发现当三角波的值小于Ta时,a相为0,大于Ta时,a相为1。同样的当三角波的值小于Tb时,b相为0,大于Tb时,b相为1,当三角波的值小于Tc时,c相为0,大于Tc时,c相为1。结合前面计算的作用时间以及T1,T2,T3拆分组合我们就可以通过对比三角波的值来确定每一相高低电平切换的时间。

2.3 SVPWM算法建模

由以上分析可知SVPWM输入是期望电压(还要确定参考电压以及PWM周期),输出是三相PWM。其由期望电压扇区判断子模块(N caculate),扇区内相邻两个非零向量和零向量的作用时间的计算子模块(T1 T2 caculate(一般将这个模块再进行拆分先计算X,Y,Z再结合X,Y,Z,N来计算T)),切换时间确定模块(PWM caculate)组成。

2.3.1 期望电压扇区判断子模块(N caculate)

输入为期望电压的α-β两相,输出为判断的期望电压扇区。

只要结合博主的公式和做好判断就好。也只用到了Fnc和Switch这些模块。

图14 期望电压扇区判断子模块建模 [2]

2.3.2 扇区内相邻两个非零向量和零向量的作用时间的计算子模块(T1T2 caculate)

首先是X,Y,Z计算子模块,输入为期望电压的α-β两相、PWM周期、参考电压(逆变器电压?),输出为公式中的XYZ时间。

图15 作用时间的计算子模块XYZ计算子模块建模 [2]

然后是最后的作用时间计算,输入就是X,Y,Z,判断扇区以及PWM周期。输出是每个边电压的持续时间。要注意这里要做一个过调制处理。

图16 作用时间的计算子模块作用时间子模块建模 [2]

2.3.3 切换时间确定子模块(T2 caculate)

输入为 扇区判断N,作用时间T1,T2,PWM周期Tpwm,输出为三相或者六相PWM(六相的意思是指逆变器每一相有一个对称的开关,当上半区为开,下半区一定为关)。

图17 切换时间确定子模块建模 [2]

以上是我参考视频[2]搭建的效果,也可以参照博主[3]的搭建方法,更符合基础原理。

引用
[1]《现代永磁同步电机控制原理及matlab仿真》袁雷
[2]《永磁同步电机矢量控制详细搭建过程》烟雨洲不冷言
[3] 《彻底吃透SVPWM如此简单》玻璃伞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值