電機控制要點解疑:SPWM,SVPWM和矢量控制

雖然現在做自動駕駛去了,還是有必要把之前一年做電機控制的心得分享一下,也能方便自己日後的參考。

(以下針對反向電動勢爲正弦的永磁同步電機而言)


目錄:

1. SPWM和SVPWM

2. 矢量控制(Space Vector)



1. SPWM和SVPWM



拋開各種控制算法等細節,從最樸素的角度出發。我們只需要在A,B,C三相提供120相位差的正弦電壓,電機就會穩定的轉動起來,調節正弦電壓的幅值和頻率,就能調節電機的轉速和扭矩。這是我們所需要的輸出。而我們所提供的輸入是穩壓直流電源,電機控制中的控制二字指的就是通過6路PWM,控制6個MOS管的開斷,來達到直流電源變正弦交流的目的。


於是,這就引出了電機控制的核心手段:PWM。接下來介紹SPWM和SVPWM兩種技術,這代表了電機控制建模的兩種思路。

A. SPWM

先看圖:




SPWM的思路簡單粗暴,既然輸出你想要正弦波,那還不簡單,把正弦電壓採個樣,當前你要多大的電壓,我調調PWM的佔空比給你就是了。比如這一秒你要1.2V,我給個10%佔空比的PWM,12V的電源輸出不就成了你要的1.2V了嗎?電機參數,當前狀態什麼的,我才懶得管。


B. SVPWM

相比之下,SVPWM考慮問題的視角就完全不一樣了。表面上看我們要的輸出是三相正弦波,本質上講是正弦波產生的旋轉磁場在帶着轉子在轉動啊。既然要旋轉,那還是先看圖吧:



圖中的(001),(101)什麼的代表的是6個MOS管的開關狀態,你只需要把6個MOS管調到對應的狀態,就能得到該方向的電壓,作用到電機的轉子上帶動其旋轉,這裏就不深究了,到時候自己查表對着做就行了。這裏需要強調的是,SVPWM在控制時已經在考慮電機的狀態了,比如電機的轉子運動到了某個位置,這時需要一個落在扇區1方向的電壓來拖動轉子的運動,那我就在(100)和(110)之間切換,來合成我們想要的電壓唄。相較於SPWM的簡單粗暴,SVPWM就考慮的細緻入微了。

當然SVPWM的好處也是不言而喻的,在所需電壓轉動,扇區切換的途中(比如電壓從扇區1旋轉達到了扇區2),我們只需要把之前的(100)換成(010),而(110)完全不用動,這樣就避免的SPWM爲達目的,不擇手段段,在那瘋狂瞎JB變換MOS開斷的瘋狂行徑,能大大減少MOS開斷的損耗。


這裏提一句,爲什麼電機控制用的是中心對稱PWM而不是邊緣觸發,因爲按着SVPWM的思路走,每次狀態變換只需要改變一個MOS管的開關狀態,見下圖:



2. 矢量控制(Space Vector)

不多bb:



什麼Park,Clark變換我就不多說了,之所以我們費盡心思在這搞什麼矢量控制,座標變換,把好好的三相變成旋轉的兩相X,Y座標系裏面去,是因爲變過去了以後,你會發現 Ia, Ib 的幅值固定了,變量被分離到了旋轉角θ裏面去了。電流的期望值固定了,就可以用PID來控制啦!!! 對,折騰了這麼久,我們就是想用PID,這就是電機控制的核心,現代控制雖然好,工業界只愛PID :)


囉嗦一句,clark還是Park變換裏面有個2/3還是2/3 的係數變換,是在做相電壓與線電壓的變化,首先你要知道PMSM在控制時三相是一直在導通的,而不BLDC只有兩相同時導通。2/3具體推導見下圖:





Reference:

1. https://www.zhihu.com/question/26858454

2. https://read01.com/KA66o6.html#.WuyBO6Qvypo

3. https://www.ti.com/lit/an/spra588/spra588.pdf

4. https://www.nxp.com/docs/en/supporting-information/DWF13_AMF_AUT_T0526.pdf








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章