SVPWM算法原理及详解
SVPWM算法原理及詳解
1.概述
? ? ? ? SVPWM是近年發展的一種比較新穎的控制方法,是由三相功率逆變器的六個功率開關元件組成的特定開關模式產生的脈寬調制波,能夠使輸出電流波形盡可能接近于理想的正弦波形。空間電壓矢量PWM與傳統的正弦PWM不同,它是從三相輸出電壓的整體效果出發,著眼于如何使電機獲得理想圓形磁鏈軌跡。SVPWM技術與SPWM相比較,繞組電流波形的諧波成分小,使得電機轉矩脈動降低,旋轉磁場更逼近圓形,而且使直流母線電壓的利用率有了很大提高,且更易于實現數字化。
? ? ? ? 通俗化理解:把PMSM想象成兩塊同心的磁鐵,兩塊磁鐵是相吸的,因此當用手撥動外面的磁鐵繞組圓心轉動時,里面的磁鐵也會跟著轉動,這其實就是PMSM的本質了。PMSM的轉子是永磁鐵,定子是繞組,我們用電路控制定子繞組產生旋轉的磁場,里面的轉子磁鐵就會跟著轉動,這個磁場的大小最好恒定,不然一會兒大一會兒小,轉子受到的牽引力也就一會兒大一會兒小,影響運動性能。好了,現在我們知道電機的本質是什么了。接下來,我們需要一個算法來控制定子繞組的輸出,使其產生一個恒定的旋轉磁場,這個算法就是SVPWM。
2.SVPWM基本原理
? ? ? ? 要得到一個恒定大小的旋轉磁場,可以先來得到一個恒定大小的旋轉電壓矢量。如下圖:
? ? ? ? 從上圖可知,我們可以通過互差120度,大小隨著時間按正弦規律變化的3個分矢量來合成一個大小不變旋轉的總矢量。于是問題又變成了:如何得到大小隨著時間按正弦規律變化的3個分矢量呢?我們先回到電機上,其實這3個分矢量就對應了電機的3個繞組,3個繞組就是互差120度的,只要再控制繞組上的電壓大小按照正弦規律變化,是不是就可以得到大小不變旋轉的總矢量呢?看下面電機定子的坐標系圖:
? ? ? ? 如果讓繞組上的電壓大小按照正弦規律變化呢?直接通交流電,就是正弦的呀,可不可以呢?驅動器的控制電路如下:
? ? ? ? 我們只能控制6個管子的開關而已,看來直接通交流電是不行了。于是我們只能控制PWM的占空比來等效正弦:
? ? ? ? 上面的圖是SPWM的,只需要懂意思就行了。其實就是占空比越大,電壓越大;占空比越小,電壓越小。讓占空比呈正弦變化,電壓值自然也就呈正弦變化了。
? ? ? ? 我們用公式來表示一下:定義這三個電壓空間矢量為UA(t)、UB(t)、UC(t),他們方向始終在各自的軸線上,而大小隨時間按正弦規律變化,時間相位上互差120度。假設Um為相電壓的有效值(相電壓呈正弦變化),f為電源頻率,則有:
? ? ? ? 可見U(t)是一個旋轉的空間矢量,它的幅值不變,為相電壓峰值的1.5倍(從上面的動態gif也可以看出來,總矢量的幅值是分矢量最大值的1.5倍),且以角頻率ω= 2πf按逆時針方向勻速旋轉的空間矢量。而SVPWM算法的目的就是使用三相橋的開關狀態把在空間中旋轉的U(t)矢量表示出來。
? ? ? ? 我們看到上面的式子多出來一個參數K,它值是個常數,根據不同的需求選擇不同的變換,K可以取不同的值。不同的需求如:要求功率不變、要求電壓電流幅值不變等。我們這里為了使合成的空間矢量在靜止的三相坐標軸上的投影和分矢量相等,取K值為2/3,這也是Park變換所采用的系數,于是上式變為了:
? ? ? ? 由于逆變器三相橋臂共有6個開關管,為了研究各相上下橋臂不同開關組合時逆變器輸出的空間電壓矢量,特定義開關函數Sx(x=a、b、c) 為:
? ? ? ? (Sa、Sb、Sc)的全部可能組合共有八個,包括 6個非零矢量Ul(001)、U2(010)、U3(011)、U4(100)、U5(101)、U6(110)、和兩個零矢量 U0(000)、U7(111),下面以其中一種開關組合為例分析,假設Sx(x=a、b、c)=(100),此時等效電路如圖:
因此相電壓可以表示為:(相電壓是每相相對于電機中間連接點的電壓)
同理可得,其他開關狀態三相的相電壓。另外線電壓是兩相之間的電壓差,如Uab=Ua-Ub。
如前面所說,三相相電壓矢量與合成矢量的關系如下:
當開關Sa=1時,UA(t)=Udc(A相相線通過上橋臂直通母線Udc);當開關Sb=1時,UB(t)=Udc;當開關Sc=1時,UC(t)=Udc。
當開關Sa=0時,UA(t)=0(A相相線通過下橋臂直通GND);當開關Sb=0時,UB(t)=0;當開關Sc=0時,UC(t)=0。
這樣,合成矢量的關系式就變成了橋臂的開關函數,因此上式可以寫成:
可以看到Uout的模值不變,改變的只是相位。
開關狀態與線電壓、相電壓、Uout列在一起:
把上面的8個電壓空間矢量按照Uout的相位關系放在扇區圖中:
上圖中,6個非零矢量幅值相同,相鄰的矢量間隔60度。兩個零矢量幅值為零,位于中心。
?
? ? 三相電壓給定所合成的電壓向量旋轉角速度為ω=2πf(即磁場旋轉角速度),則旋轉一周所需的時間為T=1/ f;若開關管載波頻率是 fs ,則頻率比為 R=fs / f。這樣將電壓旋轉平面等切割成R個小增量,亦即設定電壓向量每次增量的角度是:γ=2π/ R。(注:這里就是把電壓向量旋轉一周,均分為R份,用來R邊形來擬合圓形,同時這也代表了磁場旋轉一圈,進行R次運算。因此載波頻率越大,轉速越小,電壓旋轉平面越接近圓形,反之,越接近多邊形。當然載波頻率太高的話,管子的開關損耗就比較大,一般取5K-10K)
? ? 現在假設需要輸出一個空間矢量Uref,假設它在第I扇區,我們先把第I扇區單獨取出來,然后用和它相鄰的兩個電壓空間矢量來表示它:
? ? 得到以 U4、U6、U7 及 U0 合成的 Uref 的時間后,接下來就是如何產生實際的脈寬調制波形。在 SVPWM 調制方案中,零矢量的選擇是最具靈活性的,適當選擇零矢量,可最大限度地減少開關次數,盡可能避免在負載電流較大的時刻的開關動作,最大限度地減少開關損耗。因此,我們以減少開關次數為目標,將基本矢量作用順序的分配原則選定為:在每次開關狀態轉換時,只改變其中一相的開關狀態。并且對零矢量在時間上進行了平均分配,以使產生的 PWM 對稱,從而有效地降低 PWM 的諧波分量。可以發現當 U4(100)切換至 U0(000)時,只需改變 A 相上下一對切換開關,若由 U4(100)切換至 U7(111)則需改變 B、C 相上下兩對切換開關,增加了一倍的切換損失。因此要改變電壓向量 U4(100)、U2(010)、U1(001)的大小,需配合零電壓向量 U0(000),而要改變 U6(110)、U3(011)、U5(100), 需配合零電壓向量 U7(111)。這樣通過在不同區間內安排不同的開關切換順序, 就可以獲得對稱的輸出波形,其它各扇區的開關切換順序如表 2-2 所示。
? ? 因此就可以利用?U4、U6、U7 及 U0 的順序和時間長短的搭配來表示出Uref了。
? ? 以第Ⅰ扇區為例,其所產生的三相波調制波形在一個載波周期時間Ts內如圖 2-11 所示,圖中電壓向量出現的先后順序為 U0、U4、U6、U7、U6、U4、U0,各電壓向量的三相波形則與表 2-2 中的開關表示符號相對應。再下一個 載波周期Ts ,Uref 的角度增加一個γ,利用式(2-33)可以重新計算新的 T0、T4、T6 及 T7 值,得到新的類似圖 2-11 的合成三相波形;這樣每一個載波周期 TS 就會合成一個新的矢量,隨著 θ 的逐漸增大,Uref 將依序進入第Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ區。在電壓向量旋轉一周期后,就會產生 R 個合成矢量。
? ? 因此SVPWM會在每個載波周期進行一次計算。
? ? 通過以上 SVPWM 的法則推導分析可知要實現 SVPWM 信號的實時調制, 首先需要知道參考電壓矢量 Uref 所在的區間位置,然后利用所在扇區的相鄰兩電壓矢量和適當的零矢量來合成參考電壓矢量。
? ? 控制系統需要輸出的矢量電壓信號 Uref,它以某一角頻率 ω 在空間逆時針旋轉,當旋轉到矢量圖的某個 60°扇區中時,系統計算該區間所需的基本電壓空間矢量,并以此矢量所對應的狀態去驅動功率開關元件動作。當控制矢量在空間旋轉 360°后,逆變器就能輸出一個周期的正弦波電壓。
?
說完了SVPWM算法,我們再來對接FOC算法,框圖如下:
? ? ? ? 上圖中的第7部分就是SVPWM,其作為FOC最終的執行部分,接收FOC傳來的Uα 和Uβ,然后通過上面的過程轉換成開關管的控制信號,控制定子繞組產生旋轉磁場。
1.合成矢量Uref 所處扇區N 的判斷?
? ? 空間矢量調制的第一步是判斷由Uα 和Uβ所決定的空間電壓矢量所處的扇區。
? ? 假定合成的電壓矢量落在第 I 扇區,可知其等價條件如下: 0<arctan(Uβ/ Uα) <60
? ??落在第 I 扇區的充分必要條件為:Uα??> 0 ,Uβ ?> 0 且Uβ/Uα??<√3。
? ??同理可得到合成的電壓矢量落在其它扇區的等價條件,得出:
? ??Uref落在第Ⅱ扇區的充要條件為:Uβ>0 且Uβ/ Ua>√3;
? ??Uref落在第Ⅲ扇區的充要條件為:Ua<0 ,Uβ> 0 且-Uβ/Ua??<√3;
? ??Uref落在第Ⅳ扇區的充要條件為:Ua<0 ,Uβ ?< 0 且Uβ/Ua??<√3;
? ??Uref落在第Ⅴ扇區的充要條件為:Uβ<0 且 -Uβ/Ua>√3;
? ??Uref落在第Ⅵ扇區的充要條件為:Ua>0 ,Uβ<0且-Uβ/Ua??<√3;
? ? 若進一步分析以上的條件,可看出參考電壓矢量 Uref 所在的扇區完全由Uβ、√3Ua-Uβ、-√3Ua-Uβ三式決定,因此令:
? ? 再定義,若U1 > 0 ,則 A=1,否則 A=0;?
? ? ? ? ? ? ? ? ? 若U2?> 0 ,則B=1,否則 B=0;
? ? ? ? ? ? ? ? ? 若U3 > 0 ,則 C=1,否則 C=0。
? ? 可以看出 A,B,C 之間共有八種組合,但由判斷扇區的公式可知 A,B,C 不會同時為 1 或同時為 0,所以實際的組合是六種,A,B,C 組合取不同的值對應著不同的扇區,并且是一一對應的,因此完全可以由 A,B,C 的組合判斷所在的扇區。為區別六種狀態,令 N=4*C+2*B+A,則可以通過下表計算參考電壓矢量Uref所在的扇區。
?
? ? 采用上述方法,只需經過簡單的加減及邏輯運算即可確定所在的扇區,對于提高系統的響應速度和進行仿真都是很有意義的。如:已知Uref的Uβ>0,√3Ua-Uβ>0,-√3Ua-Uβ<0,即:A=1,B=1,C=0,N=3,所以扇區號為I。
2.基本矢量作用時間計算與三相 PWM 波形的合成?
? ? 在傳統 SVPWM 算法如式(2-34)中用到了空間角度及三角函數,使得直接計算基本電壓矢量作用時間變得十分困難。實際上,只要充分利用 Uα 和 Uβ 就可以使計算大為簡化。
以 Uref 處在第Ⅰ扇區時進行分析,根據圖 2-10 有:
Ud就是Udc,即母線電壓。下式的最后把I扇區兩邊的電壓矢量U4(100)和U6(110)的Uout式子帶進來了,分別是2/3Udc和2/3Udc*cos(π/3):
?
? ? ? ? 同理可求得Uref在其它扇區中各矢量的作用時間,結果如表2-4所示。表中兩個非零矢量作用時間的比例系數為K =√3Ts/Udc?。
?
? ? ? ? 到這里,FOC與SVPWM的對接就變成了,先根據N=4*C+2*B+A判斷合成矢量所在扇區,然后查表2-4得出兩非零矢量的作用時間,最后得出三相開關管PWM波的占空比,查表讓算法更高效。
?
C語言代碼的分析在這兒:https://blog.csdn.net/qlexcel/article/details/95227991
?
? ? 由公式(2-38)可知,
當兩個零電壓矢量作用時間為0時,一個PWM周期內非零電壓矢量的作用時間最長,此時的合成空間電壓矢量幅值最大,由下圖2-12可知其幅值最大不會超過圖中所示的正六邊形邊界。而當合成矢量落在該邊界之外時,將發生過調制,逆變器輸出電壓波形將發生失真。在SVPWM調制模式下,逆變器能夠輸出的最大不失真圓形旋轉電壓矢量為圖2-12所示虛線正六邊形的內切圓,其幅值為: (√3/ 2)x(2Udc/ 3) =√3Udc/3 。即逆變器輸出的不失真最大正弦相電壓幅值為√3Udc?/3 ,而若采用三相SPWM調制,逆變器能輸出的不失真?最大正弦相電壓幅值為Udc/2。顯然SVPWM 調制模式下對直流側電壓利用率更高,它們的直流利用率之比為(√3Udc/ 3) /(Udc/ 2) =1.1547 ,即SVPWM算法比SPWM算法的直流電壓利用率提高了15.47%。
?
? ? ? ? ?如圖當合成電壓矢量端點落在正六邊形與外接圓之間時,已發生過調制,輸出電壓將發生失真,必須采取過調制處理,這里采用一種比例縮小算法。定義每個扇區中先發生的矢量用為Tx,后發生的矢量為 Ty。當 Tx+Ty≤TS時,矢量端點在正六邊形之內,不發生過調制;當Tx+Ty>TS時,矢量端點超出正六邊形,發生過調制。輸出的波形會出現嚴重的失真,需采取以下措施:
? ? 設將電壓矢量端點軌跡端點拉回至正六邊形內切圓內時兩非零矢量作用時間分別為 Tx',Ty',則有比例關系:
使用上面的簡單比例關系,把兩個非零矢量作用時間矯正好。
taon、tbon、tcon的波形呈馬鞍形,如下:
?
總結
以上是生活随笔為你收集整理的SVPWM算法原理及详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全国大学生数学建模竞赛(CUMCM)历年
- 下一篇: 安卓APP_ 布局(6) —— Cons