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

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

目錄:

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為達目的,不擇手段段,在那瘋狂瞎變換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. SVPWM是我們通常說的矢量控制麼?

2. read01.com/KA66o6.html#

3. ti.com/lit/an/spra588/s

4. nxp.com/docs/en/support


推薦閱讀:
相關文章