作者:超神約
鏈接:https://www.zhihu.com/question/26858454/answer/266275376
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
PWM波是一個“神器”...
它實現了直流電與交流電的等效轉化...
使電壓“逆變”具有可操作性...
然而...
作為“矢量控制”這個控制系統的“執行”環節...
我們怎么把直流電壓轉化為三相交流電壓...
而且還擁有較高的電壓利用率呢?
打個不恰當的比方...
如果我們想吃“蒜薹肉絲”這道菜...
而豬肉是一整塊的...
所以...
首先要把肉塊切成肉絲...
但是...
在這個過程中...
一斤的肉塊如果切成了半斤的肉絲...
那就造成浪費了...
所以...
想吃到美味而且有嚼勁的肉絲...
好的刀法是關鍵...
一方面要切出完美的肉絲...
不能是肉片...
也不能是肉泥...
一方面盡可能的減少下刀次數...
這樣黏在刀鋒上的肉屑(損耗)就會減少...
這樣一斤的豬肉可能會吃到八兩的肉絲...
這個不外傳的廚藝絕學...
就是傳說中的“SVPWM”
不管什么樣的教科書...
說起SVPWM...
都是滿滿的計算公式...
以及各種狀態表、扇區、持續時間的確定...
霍金他老人家說過...
每多寫一個公式就嚇跑一半讀者...
好吧...
為了多留讀者...
小神試試不寫公式...
能不能把SVPWM說明白...
先看上圖...
通過這個經典的三相逆變橋式電路...
我們經過周密復雜的計算和推導...
可以得出這樣的結論...
上橋和下橋的開關(IGBT)是不能同時導通的(短路)...
好吧...
我們簡單點...
來點初中物理學的知識...
這個直流母線的電壓值我們假定為Ud...
三路上下橋開關同時關斷的情況先不考慮...
上橋開通下橋關斷定義為狀態0...
上橋關斷下橋開通定義為狀態1...
這樣...
這三路開關狀態兩兩拼湊組合...
就變成了八種開關狀態...
但是...
不管組合有多少種...
輸出去三相ABC中兩輛引線的電壓值...
在這八種開關狀態下...
不是Ud就是-Ud...
或者就是0...
也就是說...
電機的線電壓值在某一時刻只能有Ud、-Ud和0三種狀態...
是沒有中間狀態的...
那么...
電機的相電壓是多少呢?
顯然不能這樣算...
相電壓的定義是該相與“中性點”之間的電壓...
而“中性點”我們還不知道選在哪里...
不過我們可以把三個相電壓用未知數的形式假設出來...
根據基爾霍夫電流定律(KCL)...
列個方程組...
來求出相電壓的值...
這個算法很簡單...
小神就不多說了...
最大值就是傳說中的2/3Ud...
OK...
我們可以動手畫這八個開關狀態的電壓矢量圖了...
咦?
為什么不是圓形?
是個六邊形!!!
答:
因為相電壓只能在這六個狀態(向量)...
出現這個最大值2/3Ud...
其他角度的電壓矢量是靠這六個狀態合成出來的...
是達不到這個最大值的...
那么...
為什么是六個頂點呢?(八個開關狀態啊)
答:
因為000和111這兩個開關狀態...
ABC三相不管哪兩路的線電壓都是0...
所以...
只能“龜縮”在原點了...
別着急,精彩繼續...
三相正弦交流是可以合成一個旋轉矢量的...
同樣...
三相正弦電壓也是可以合成一個旋轉的矢量Us的...
期望電流Id和Iq通過PI調節器得到Ud和Uq...
位置檢測裝置(旋轉變壓器)又給了轉子位置θ...
Ud和Uq就華麗的蛻變成Uα和Uβ...(帕克變換)...
Us²又恰好等於Uα²+Uβ²...
So...
Us就成為了已知量...
好了...
Us我們知道了...
Us旋轉的范圍界限(六邊形)我們也知道了...
接下來...
揮舞你的菜刀(IGBT)...
盡情的演繹你的廚藝(SVPWM)吧...
這個世界是一個連續的世界...
然而...
你眼睛里的世界...
卻可能是離散的...
在看電影時...
如果把時間縮小到足夠小...
畫面就會一幀一幀的播放...
但你卻認為畫面的場景是“連續”的...
不不不...
不要在意這些細節...
再來個比喻...
一個電燈泡...
只能處於“亮”和“不亮”的狀態...
但你嫌燈泡太亮了...
想讓它處於“較亮”的狀態...
怎么辦?
選一個10ms的時間周期...
前5ms讓它處於“亮”的狀態...
后5ms讓它處於“不亮”的狀態...
因為時間足夠短...
在你眼中呈現的狀態...
就是“較亮”...
調制一個Us也是同樣的道理...
六邊形可以划分成六個扇區...
為了減小電壓諧波...
這個調制合成電壓Us的旋轉范圍會留一些余量...
是這個多邊形的內切圓...
或略小於這個內切圓(IGBT的死區影響)...
當Us的相位和幅值確定以后...
我們就能確定Us的起始位置在哪個扇區...
這樣就知道用哪兩個相鄰的邊(開關狀態)來合成...
然后...
再把這個圓分成有限個(R個)、足夠小的等面積小扇區...
這個R其實就是所設定的載波頻率...
也就是Us旋轉這個動作的“分辨率”...
像燈泡一樣...
在一個載波周期內...
通過兩個開關狀態的先后順序...
每個狀態持續一定時間(占空比)...
再配上000和111的這種全部關斷的0矢量狀態...
最終合成Us的起始狀態.
當Us旋轉至下一個位置時...
就是下一個載波周期...
同樣開關狀態的占空比就會稍微校正一下...
來合成下一個步長的Us...
如果Us旋轉的位置跨越了大扇區...
兩個相鄰的邊(開關狀態)就會切換...
當然這種切換也是有規則的...
為了保證每次狀態切換只開通和關閉一個管子...
就形成了傳說中的“七段式SVPWM”...
比如Us在扇區I...
那就必須用100和110的開關狀態來合成電壓矢量...
加上零矢量狀態(111、000)...
會拆分成七次切換來滿足合成矢量...
這種調制出來的Us...
經過之前所講的逆Clark、Park變換...
分解出的三相電壓正弦度還是很高的...
當然...
這個相電壓是PWM正弦波...
然而...
把本來是四種開關狀態(相鄰兩邊開關狀態、000、111)...
分成了七段...
你的“下刀”次數還是太多...
不免還是有些損耗...
所以就有了五段式SVPWM...
也就是傳說中的DPWM技術...
開關損耗減小了30%有木有....
不過....
調制出的電壓正弦度反而不怎么高了...
諧波會大量提升...
控制器的效率提升了...
電機的效率卻下降了...
拆了東牆補了西牆...
So...
一般人不這么干...
所以七段式SVPWM還是比較廣泛的...
當然...
有的吃瓜群眾會問...
Us旋轉的 "分辨率"(載波頻率)是死的...
旋轉的速度確是跟電壓的頻率(電機的轉速)有關的.....
電機高速時你的"分辨率"就低了...
低速時你的"分辨率"就有可能高了...
那豈不是高速時諧波多...
低速時控制性能好嗎?
所以就誕生了變載頻算法...
低速載頻可以低一點...
高速載頻高一些...
也是提升電機系統效率的手段嘛...
又一個圍觀群眾發問了...
為什么Us的旋轉范圍不能是外接圓?
進一步提升調制出來的電機相電壓...
這樣...
電機在弱磁區的弱磁電流就會小一些...
電機的損耗就變小了....
這不就是提升電機系統效率的手段嘛...
好吧...
這就是傳說中的過調制算法...
畢竟六邊形是能力...
外接圓是期望...
如果Us的旋轉超出了六邊形的區域...
還是得采用一定手段(算法)讓它收收心...
把Us“勒”回到六邊形的邊長上的...
好了...
小神今天碼的有點多...
算作彌補更新時間長的愧疚了...
SVPWM算法再看不懂...
那你的智商只能去翻教科書了...
至於Us起始位置的扇區確定...
開關狀態的時間計算...
IGBT的死區補償...
電流采樣的誤差校正...
這些書上都有套路公式...
網上也有編程模板...
這些沒有“技術含量”的東東...
小神就不在贅述了...
最后...
小神再解釋一下...
為什么那么多教科書(甚至百度百科)....
都寫了SVPWM的電壓利用率比SPWM提升了15%...
因為...
根據電壓利用率的定義(“調制”出來的交流電的線電壓與直流電壓之比)...
SVPWM使電機的線電壓幅值達到了Udc...
而SPWM調制的三相相電壓幅值最多達到Udc/2...
那么..
它的線電壓幅值就是Udc/2 * √3 = 0.866Udc...
比一下...
1/0.866就是1.15...
就是這樣提升了15%...
就醬...
參考資料:
1. 《svpwm的仿真實現》;
2. 部分圖片來源於百度;
3. 部分GIF制作於SooGif,如有侵權,請聯系我刪除。
微信公眾號:超神約
電機學也是一種藝術...