姜學嶺,??玛?/p>
(華北電網冀北電力公司承德供電分公司,河北 承德067400)
SVPWM算法因其較高的直流電壓利用率和易于數字電路實現的優點,在變頻電源、電機控制等多種場合下得到廣泛的應用。但傳統的SVPWM算法比較復雜[1,2],包含坐標轉換、扇區判斷、基本矢量作用時間及開關時間計算、飽和處理及PWM脈沖輸出。通常要用到四則運算或者是求根運算。本文根據SVPWM算法比較原理,采用了基于調制函數的算法[3],直接計算三相調制函數,避免了求根和除法等運算,能夠方便地在數字系統實現。
文中給出了算法的Matlab/Simulink環境下搭建的模型,將其運用在電機控制開環系統中,進行了仿真,驗證了算法的正確性。并將算法在FPGA芯片上實現,突出了算法易于數字化實現的特點,完成了軟件仿真和硬件測試。
典型的SVPWM算法的原理在文獻[1,2]中已經給出了詳細的描述,其實質是一種對在三相正弦波中注入了零序分量的隱含調制波(鞍形波)進行規則采樣的變型SPWM[4,5]。而基 于調制 函數的SVPWM 算法[3]就是要通過簡單的計算得到三相調制波的調制函數和每相電壓在一個PWM周期中的占空比。
圖1顯示了扇區劃分方式,判斷參考電壓矢量Ur位于哪個扇區時,需按公式(1)先計算其在xyz三相系下的分量。為計算方便,這里將對參考矢量做標么化處理,以其最大值作為標準值,這樣可將公式(1)簡化為式(2)。


則Ur所在扇區編號為


圖1 扇區劃分
各扇區參考矢量的調制函數如式(4)~(6)所示。式(4)為101、010扇區的計算公式:

式(5)為100、011扇區的計算公式:

式(6)為110、001扇區的計算公式:

對參考電壓矢量過飽和的處理,僅需令調制函數滿足

上述算法,在扇區判斷與調制函數計算時,只需計算出三個變量x、y、z,和三個變量的加減運算即可,與傳統算法相比,計算量減少了將近一半;在做飽和處理時,只需做限幅約束即可,而傳統算法要依據式(8)

計算,相比省去了復雜的除法。
圖2中SVPWM模塊為本算法在 Matlab/Simulink下的仿真模型,給模塊輸入三相交流信號Ia、Ib、Ic,輸出PWM脈沖經逆變器接PMSM電機模型。圖3中給出了仿真結果,其中(a)顯示的是調制函數fA、fB、fC的波形;圖(b)是輸出PWM脈沖接濾波函數濾波后的波形;圖(c)是電機輸出的三相電流波形。

圖2 基于調制函數的SVPWM算法及其在電機開環系統中的仿真模型
由圖4可知,本算法實現由中間變量模塊、扇區判斷模塊、調制函數計算模塊、三角載波生成模塊、比較單元、死區生成模塊組成。整個設計過程是在QuartusⅡ7.2環境下實現,采用VHDL語言與.bdf原理圖編寫,各數據量均采用定點Q值格式,系統時鐘頻率設置為50 MHz。
在這里,設定輸入變量Uα、Uβ為經過標么化處理后的值,故其范圍為[-1~1],采用16位1Q14格式。由式(2)知,中間變量x、y、z絕對值的最大值為+1,在1Q14格式表示范圍內。將用多個2-n的和來逼近,≈1+2-1+2-2-2-5,而2-n可以用移位運算實現。這樣,整個運算就移位和加減法即可。省去了復雜的乘法和除法運算。



圖3 基于調制函數的SVPWM算法的仿真結果
在進行扇區判斷時,由于數據均采用有符號的格式,所以,數據首位即可反映出其正負性。因此,按照式(3),用VHDL編寫扇區 K≤not(X(wth-1))&not(Y(wth-1))&not(Z(wth-1))。

圖4 算法的FPGA實現框圖
根據式(4)~(6),利用加減法即可得;然后根據式(7)進行限幅處理。
三角波的周期T為逆變器件的開關周期;幅值范圍為[-1~1];利用片內PLL對系統時鐘進行倍頻,得到頻率為160 MHz的clk_tri作為本模塊的時鐘。這里,采用米立型(Mealy)狀態機實現,如圖5中所示,定義三角波上升狀態為S0,下降狀態為S1,加減計數器的計數值為tri(數據采用Q11格式),周期結束信號為t_done。模塊實現邏輯如表1所示,其中current state和tri(n)為當前狀態和數據;next state和tri(n+1)、t_done是下一狀態和輸出值。

圖5 三角載波波形

表1 三角載波生成模塊實現邏輯
模塊功能主要是對三角載波tri和調制函數fA、fB、fC進行比較,從而根據式(9)輸出PWM脈沖。

當每一個三角波周期結束時,即到達圖5中的B點時,三角載波生成模塊就會產生一個脈沖信號t_done,將此信號作為比較單元的使能信號,在其上升沿到來時,將本周期的調制函數fA、fB、fC載入比較單元。
模塊功能:為防止同一橋臂的兩個開關管同時導通,應先關斷其中一個之后再打開另外一個。
這里利用計數器來實現死區時間。本設計中設定死區時間為4μs;由圖4知,模塊時鐘clk的頻率為50 MHz,從而可得死區計時器的計數上限為200。
將以上各功能模塊連接,即可得到如圖6所示的SVPWM算法的設計圖。

圖7 設計仿真結果
在QuartusⅡ7.2開發環境下對上述設計文件進行綜合仿真,并下載至芯片進行板級仿真,用signal tap測得輸出PWM波形如圖7所示。

圖8 輸出PWM波形

圖9 低通濾波后的PWM波形
用示波器對輸出波形進行觀察,可得到圖8和圖9。其中,圖8(a)為同一相上下橋臂的PWM波形,圖8(b)為放大后的波形,可清楚的看到上下橋臂的死區設置;圖9為三相PWM波經過阻容濾波后得到的馬鞍波。
本文依據基于調制函數的SVPWM算法理論,給出了算法實現的框圖,在Matlab/Simulink環境下進行了建模和仿真,并將算法在FPGA上實現,通過仿真和硬件測試結果驗證了算法的正確性,同時也說明了該算法非常易于數字化實現,適合在工程實際中采用。
[1] 陳伯時.電力拖動自動控制系統[M].北京:機械工業出版社,2009.
[2] 曾 聰,劉滌塵.空間矢量脈寬調制技術的算法及其仿真研究[J].電力科學與工程,2009,25(8):5-9.
[3] 陸海峰,瞿文龍,張 磊,等.基于調制函數的SVPWM算[J].電工技術學報,2008,23(2):37-43.
[4] 文小玲,尹項根,張 哲.三相逆變器統一空間矢量PWM 實現方法[J].電工技術學報,2009,(10):87-93.
[5] 周衛平,吳正國,唐勁松,等.SVPWM的等效算法及SVPWM與SPWM的本質聯系[J].中國電機工程學報,2006,26(2):133-137.