SVPWM趣味概述
Posted mrl杨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVPWM趣味概述相关的知识,希望对你有一定的参考价值。
链接:https://www.zhihu.com/question/26858454/answer/266275376
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
PWM波是一个“神器”...
它实现了直流电与交流电的等效转化...
使电压“逆变”具有可操作性...
然而...
作为“矢量控制”这个控制系统的“执行”环节...
我们怎么把直流电压转化为三相交流电压...
而且还拥有较高的电压利用率呢?
打个不恰当的比方...
如果我们想吃“蒜薹肉丝”这道菜...
而猪肉是一整块的...
所以...
首先要把肉块切成肉丝...
但是...
在这个过程中...
一斤的肉块如果切成了半斤的肉丝...
那就造成浪费了...
所以...
想吃到美味而且有嚼劲的肉丝...
好的刀法是关键...
一方面要切出完美的肉丝...
不能是肉片...
也不能是肉泥...
一方面尽可能的减少下刀次数...
这样黏在刀锋上的肉屑(损耗)就会减少...
这样一斤的猪肉可能会吃到八两的肉丝...
这个不外传的厨艺绝学...
就是传说中的“SVPWM”
![技术分享图片](https://pic4.zhimg.com/50/v2-655caa0b6dc80ee42be2b4a9e661d998_hd.jpg)
不管什么样的教科书...
说起SVPWM...
都是满满的计算公式...
以及各种状态表、扇区、持续时间的确定...
霍金他老人家说过...
每多写一个公式就吓跑一半读者...
![技术分享图片](https://pic4.zhimg.com/50/v2-c7e241df85f26d560e29e92766ba7a4b_hd.jpg)
好吧...
为了多留读者...
小神试试不写公式...
能不能把SVPWM说明白...
![技术分享图片](https://pic2.zhimg.com/80/v2-e17746029e3b9505aad4257fac87eecc_hd.jpg)
先看上图...
通过这个经典的三相逆变桥式电路...
我们经过周密复杂的计算和推导...
可以得出这样的结论...
上桥和下桥的开关(IGBT)是不能同时导通的(短路)...
![技术分享图片](https://pic3.zhimg.com/50/v2-611c220327d8b402dd19e099c211b67e_hd.jpg)
好吧...
我们简单点...
来点初中物理学的知识...
这个直流母线的电压值我们假定为Ud...
三路上下桥开关同时关断的情况先不考虑...
上桥开通下桥关断定义为状态0...
上桥关断下桥开通定义为状态1...
这样...
这三路开关状态两两拼凑组合...
就变成了八种开关状态...
![技术分享图片](https://pic3.zhimg.com/80/v2-e429376e9b17cebfc6caa449826752b3_hd.jpg)
但是...
不管组合有多少种...
输出去三相ABC中两辆引线的电压值...
在这八种开关状态下...
不是Ud就是-Ud...
或者就是0...
也就是说...
电机的线电压值在某一时刻只能有Ud、-Ud和0三种状态...
是没有中间状态的...
那么...
电机的相电压是多少呢?
![技术分享图片](https://pic4.zhimg.com/50/v2-670b923f9601292684e69f3ef4588a54_hd.jpg)
显然不能这样算...
相电压的定义是该相与“中性点”之间的电压...
而“中性点”我们还不知道选在哪里...
不过我们可以把三个相电压用未知数的形式假设出来...
根据基尔霍夫电流定律(KCL)...
列个方程组...
来求出相电压的值...
这个算法很简单...
小神就不多说了...
最大值就是传说中的2/3Ud...
OK...
我们可以动手画这八个开关状态的电压矢量图了...
![技术分享图片](https://pic3.zhimg.com/80/v2-a2b51050bd43a55a19a4fc03f1d62a3f_hd.jpg)
咦?
为什么不是圆形?
是个六边形!!!
答:
因为相电压只能在这六个状态(向量)...
出现这个最大值2/3Ud...
其他角度的电压矢量是靠这六个状态合成出来的...
是达不到这个最大值的...
那么...
为什么是六个顶点呢?(八个开关状态啊)
答:
因为000和111这两个开关状态...
ABC三相不管哪两路的线电压都是0...
所以...
只能“龟缩”在原点了...
![技术分享图片](https://pic4.zhimg.com/80/v2-bbd0187c83b06a2f28064993a258c974_hd.jpg)
别着急,精彩继续...
三相正弦交流是可以合成一个旋转矢量的...
同样...
三相正弦电压也是可以合成一个旋转的矢量Us的...
期望电流Id和Iq通过PI调节器得到Ud和Uq...
位置检测装置(旋转变压器)又给了转子位置θ...
Ud和Uq就华丽的蜕变成Uα和Uβ...(帕克变换)...
Us2又恰好等于Uα2+Uβ2...
So...
Us就成为了已知量...
好了...
Us我们知道了...
Us旋转的范围界限(六边形)我们也知道了...
接下来...
挥舞你的菜刀(IGBT)...
尽情的演绎你的厨艺(SVPWM)吧...
![技术分享图片](https://pic3.zhimg.com/50/v2-34fa2205ba3c1fe30525a72442588e2e_hd.jpg)
这个世界是一个连续的世界...
然而...
你眼睛里的世界...
却可能是离散的...
在看电影时...
如果把时间缩小到足够小...
画面就会一帧一帧的播放...
但你却认为画面的场景是“连续”的...
![技术分享图片](https://pic4.zhimg.com/50/v2-6b20a9c7c15262fd454c85a8a4cc6d95_hd.jpg)
不不不...
不要在意这些细节...
再来个比喻...
一个电灯泡...
只能处于“亮”和“不亮”的状态...
但你嫌灯泡太亮了...
想让它处于“较亮”的状态...
怎么办?
选一个10ms的时间周期...
前5ms让它处于“亮”的状态...
后5ms让它处于“不亮”的状态...
因为时间足够短...
在你眼中呈现的状态...
就是“较亮”...
![技术分享图片](https://pic2.zhimg.com/50/v2-aaf04ee0a3ce63afd8ed0f5d5d44dbca_hd.jpg)
调制一个Us也是同样的道理...
六边形可以划分成六个扇区...
为了减小电压谐波...
这个调制合成电压Us的旋转范围会留一些余量...
是这个多边形的内切圆...
![技术分享图片](https://pic3.zhimg.com/80/v2-5684a245bc3c2685bceacb95a0e91f25_hd.jpg)
或略小于这个内切圆(IGBT的死区影响)...
当Us的相位和幅值确定以后...
我们就能确定Us的起始位置在哪个扇区...
这样就知道用哪两个相邻的边(开关状态)来合成...
然后...
再把这个圆分成有限个(R个)、足够小的等面积小扇区...
这个R其实就是所设定的载波频率...
也就是Us旋转这个动作的“分辨率”...
像灯泡一样...
在一个载波周期内...
通过两个开关状态的先后顺序...
每个状态持续一定时间(占空比)...
再配上000和111的这种全部关断的0矢量状态...
最终合成Us的起始状态.
当Us旋转至下一个位置时...
就是下一个载波周期...
同样开关状态的占空比就会稍微校正一下...
来合成下一个步长的Us...
如果Us旋转的位置跨越了大扇区...
两个相邻的边(开关状态)就会切换...
当然这种切换也是有规则的...
为了保证每次状态切换只开通和关闭一个管子...
就形成了传说中的“七段式SVPWM”...
比如Us在扇区I...
那就必须用100和110的开关状态来合成电压矢量...
加上零矢量状态(111、000)...
会拆分成七次切换来满足合成矢量...
![技术分享图片](https://pic3.zhimg.com/80/v2-a83e19e8df6bd93ebb515bed10c76431_hd.jpg)
这种调制出来的Us...
经过之前所讲的逆Clark、Park变换...
分解出的三相电压正弦度还是很高的...
当然...
这个相电压是PWM正弦波...
![技术分享图片](https://pic2.zhimg.com/50/v2-0933ba04aa8e56ad7218622cbd4d93c7_hd.jpg)
然而...
把本来是四种开关状态(相邻两边开关状态、000、111)...
分成了七段...
你的“下刀”次数还是太多...
不免还是有些损耗...
所以就有了五段式SVPWM...
也就是传说中的DPWM技术...
![技术分享图片](https://pic4.zhimg.com/80/v2-c99ce19398d11e7f6a5e94c2b686ae80_hd.jpg)
开关损耗减小了30%有木有....
不过....
调制出的电压正弦度反而不怎么高了...
谐波会大量提升...
![技术分享图片](https://pic4.zhimg.com/80/v2-943d6ed79546efb1f76fdea52855701f_hd.jpg)
控制器的效率提升了...
电机的效率却下降了...
拆了东墙补了西墙...
So...
一般人不这么干...
所以七段式SVPWM还是比较广泛的...
当然...
有的吃瓜群众会问...
Us旋转的 "分辨率"(载波频率)是死的...
旋转的速度确是跟电压的频率(电机的转速)有关的.....
电机高速时你的"分辨率"就低了...
低速时你的"分辨率"就有可能高了...
那岂不是高速时谐波多...
低速时控制性能好吗?
![技术分享图片](https://pic3.zhimg.com/50/v2-af7f15752a415ce77f0e551fa36059cf_hd.jpg)
所以就诞生了变载频算法...
低速载频可以低一点...
高速载频高一些...
也是提升电机系统效率的手段嘛...
又一个围观群众发问了...
为什么Us的旋转范围不能是外接圆?
进一步提升调制出来的电机相电压...
这样...
电机在弱磁区的弱磁电流就会小一些...
电机的损耗就变小了....
这不就是提升电机系统效率的手段嘛...
![技术分享图片](https://pic3.zhimg.com/50/v2-27ebb7b5a85e0e020d83ce6e07f9a429_hd.jpg)
好吧...
这就是传说中的过调制算法...
毕竟六边形是能力...
外接圆是期望...
如果Us的旋转超出了六边形的区域...
还是得采用一定手段(算法)让它收收心...
把Us“勒”回到六边形的边长上的...
![技术分享图片](https://pic2.zhimg.com/50/v2-47e0271a4a51618b08a9b18ca2e651e7_hd.jpg)
好了...
小神今天码的有点多...
算作弥补更新时间长的愧疚了...
SVPWM算法再看不懂...
那你的智商只能去翻教科书了...
至于Us起始位置的扇区确定...
开关状态的时间计算...
IGBT的死区补偿...
电流采样的误差校正...
这些书上都有套路公式...
网上也有编程模板...
这些没有“技术含量”的东东...
小神就不在赘述了...
最后...
小神再解释一下...
为什么那么多教科书(甚至百度百科)....
都写了SVPWM的电压利用率比SPWM提升了15%...
因为...
根据电压利用率的定义(“调制”出来的交流电的线电压与直流电压之比)...
SVPWM使电机的线电压幅值达到了Udc...
而SPWM调制的三相相电压幅值最多达到Udc/2...
那么..
它的线电压幅值就是Udc/2 * √3 = 0.866Udc...
比一下...
1/0.866就是1.15...
就是这样提升了15%...
就酱...
![技术分享图片](https://pic4.zhimg.com/50/v2-f77761e4b34b1b6c1882212636ad2ffc_hd.jpg)
参考资料:
1. 《svpwm的仿真实现》;
2. 部分图片来源于百度;
3. 部分GIF制作于SooGif,如有侵权,请联系我删除。
微信公众号:超神约
电机学也是一种艺术...
以上是关于SVPWM趣味概述的主要内容,如果未能解决你的问题,请参考以下文章