摘 要:目前絕大多數的正弦脈寬調制(SPWM)波的仿真仍采用模擬方式實現。為了便于數字化控制系統中SPWM波的仿真,在此基于SPWM波的產生機理,在PSIM仿真環境下,結合VISUAL C++開發了純數字實現的SPWM波通用仿真模型。利用該模型,可以任意仿真不同載波頻率,調制波頻率,死區時間及調制比下的雙極性SPWM波。最后,以全橋逆變電路中常見的死區效應分析為例,利用該模型搭建仿真電路進行了仿真分析。仿真結果表明了該模型的正確性和合理性。關鍵詞:SPWM; PSIM仿真; Matlab; 死區效應
中圖分類號:TN919-34文獻標識碼:A
文章編號:1004-373X(2010)22-0187-04
Study on Versatile Simulation Model for Digital SPWM with Dead-time Function
ZHENG Bi-wei1, CUI Fu-jun2, CAI Feng-huang1,2, WANG Wu1,2
(1. College of Electrical Engineering and Automation, Fuzhou University, Fuzhou 350108, China;
2. Zhangzhou Kehua Technology Co. Ltd., Zhangzhou 363000, China)
Abstract: The simulation of the majority sinusoidal pulse-width modulation (SPWM) waveform is implemented in analog mode at present. For convenience of SPWM waveform simulation in digital control system, a versatile simulation model implemented with pure digit for SPWM wave is developed in PSIM simulation environment based on the generation mechanism of SPWM waveform. By the model, the bipolar SPWM waveform can be simulated arbitrarily at any different carrier frequency, modulating frequency, dead time and modulation ratio. taking the analysis of common dead-time effect in FB DC-AC circuit for example, a simulation circuit built with this model is utilized for analysis. The simulation results show the correctness and rationality of the model. Keywords: SPWM; PSIM simulation; Matlab; dead-time effect
0 引 言
近幾十年,隨著電力電子技術的迅猛發展,各式的電子仿真軟件也爭相出現,仿真技術日益成熟,仿真不僅可以縮短電力電子設備的研發時間,提高研發效率,還能節約大比的研發資金,達到事半功倍的效果。
脈寬調制(PWM)技術是利用半導體器件的導通與關斷把直流電壓變成電壓脈沖列,并通過控制脈沖寬度或周期以達到改變電壓的目的,從而使需要的輸出電壓在不同負載下或變化的輸入電壓下保持恒定[1]。得益于電力電子技術的發展,PWM技術也更為廣泛地應用于各于領域。正弦脈寬調制(SPWM)技術可算是PWM技術的一個特例,在各種逆變電源中,為了得到更高精度的正弦輸出波形,廣泛地運用著SPWM技術,SPWM實現方法很多,早期通常用模擬方法實現,這幾年,隨著數字技術的日益成熟,數字SPWM逐漸替代常規的模擬SPWM成為一項非常熱門的SPWM實現方法[2]。
對于實際中用數字SPWM實現控制的系統的軟件仿真上,許多文章仍以模擬方式來實現,即用一個三角波發生源和一個正弦波發生源來比較產生SPWM信號,這種方法可以大致仿真出整個電路所起的效果,但是對軟件編寫者來說卻要花很多時間在電路的搭建及參數調整上,而最終搭出來的模擬仿真電路卻又跟實際的數字電路相差甚遠。Matlab\\Simulink等部分仿真軟件有可以直接利用的SPWM波發生模塊,但這些模塊通常參數是固定的,也就是說仿真初始化設定了一些SPWM參數后,在仿真開始之后便無法根據系統的需要來改變這些參數,這樣使得這些模塊對實際中需要對SPWM波的輸出進行閉環控制的電路的仿真上應用意義不大,另外由于仿真軟件通常都將開關器件等理想化,所以通常這些軟件自帶的SPWM模塊都缺乏死區單元設置,使得仿真結果跟實際帶死區的SPWM波控制系統產生的結果卻又有一定的差距。
本文研究了SPWM在仿真軟件上的數字實現,基于PSIM仿真軟件建立了SPWM數字發生模塊,該模塊可以實現載波頻率,調制波頻率以及死區時間,調制比的外部輸入,以此來產生標準的SPWM波,為了驗證模塊的正確性和可用性,最后采用該模塊對單相電壓型全橋SPWM逆變器的死區效應進行了簡單仿真研究。
1 SPWM的實現
常規模擬SPWM的實現是將標準正弦波和三角波進行比較來確定功率開關點的開關時刻。數字化SPWM實現是通過CPU內部計算直接產生需要的PWM波形輸出。目前常用的數字化SPWM實現方法主要有規則采樣法,自然采樣法,等效面積法以及特定諧波消除法等,不同的方法有著各自不同的優缺點。另外SPWM驅動又可分為單極性驅動和雙極性驅動,不同的驅動方式適用的場合也各不相同。由于本文主要研究的是SPWM仿真的數字實現,對其優缺點的說明就不具體展開,具體可以參照文獻[3]。為了方便說明,在SPWM的驅動上選擇的是常用的雙極性驅動,數字實現方法采用對稱規則采樣法。其他方法可以參照本文方法進行。對稱規則采樣法是在一個三角載波周期內,只利用三角波的一個峰值點或谷值點所對應的正弦函數值來求取脈沖,其實現方式如圖1所示。在圖1中,以Ur,Uc分別表示調制波和載波幅值,若Uc=1,則調制度即為正弦波的幅值,即m=Ur,由圖1的幾何關系可得出,一個載波周期(Tc)內的脈寬時間(ton)為:
ton=(Tc)/2[1+msin(wrtd)](1)
圖1 對稱規則采樣法
2 PSIM仿真軟件及數字SPWM仿真模塊建立
2.1 PSIM軟件簡介
PSIM是由美國的Powersim公司開發的面向電力電子技術的仿真軟件,適合電力電子電路和系統的仿真軟件很多,但是PSIM具有其獨特的優勢和特點:PSIM的仿真時間步長是固定的,所以不容易出現開關動作時的不收斂問題,可以進行快速仿真;用于電力電子專用的模型庫很豐富,可以搭建同實際電路同樣的電路模型;可以搭建模擬和數字電路混合的控制電路;半導體器件都采用的是理想開關[4]。另外,PSIM有別于一般的電力電子仿真軟件很好的一點是外置了DLL功能塊(動態鏈接庫),允許用戶用C語言或C++或FORTRAN語言編程,用Microsoft C或C++,Borland C++或Digital Visual Fortran 來匯編,并用 PSIM 連接起來,這些功能塊可用于電力電路和控制電路中。PSIM最大的缺點是數據處理能力不夠強大,包括繪圖功能等,但PSIM提供了與Matlab的接口,通過內置的控件可以方便地將PSIM與Matlab連接起來,這使得可以充分利用PSIM在功率仿真方面的能力和Matlab/Simulink在控制仿真方面的能力。基于以上的特點使得PSIM更適合于進行功率電路分析設計和控制回路的設計[5]。
2.2 基于PSIM數字SPWM仿真模塊建立
基于前面介紹的SPWM波的實現方法,在PSIM仿真環境下,運用DLL功能塊,結合Microsoft visual C++進行編程,建立了數字SPWM波的通用仿真模塊。圖2為數字SPWM仿真模型的封裝圖,其中,spwm.dll表示該模型要調用的動態鏈接庫文件,該文件由Microsoft visual C++編程產生,主要用來進行SPWM波脈寬的數字計算和輸出,fc,fr,Td,Modu則分別表示外部輸入給模塊要產生的SPWM波的載波頻率,調制波頻率、死區時間及調制比。Driver1和Driver2則分別表示由該模塊產生的具有Td死區時間的兩路SPWM驅動信號。該模塊的實現步驟如下:
(1) DLL文件生成。根據式(1),利用Microsoft visual C++對SPWM波的實現方式進行編程,具體流程圖如圖3所示,流程圖中count,Ncount,Ncount_dead分別表示脈寬時間計數值、載波周期計數值及死區時間的計數值,Flag_cal_next是當前脈寬計數是否結束的標志位,Npulse,Npulse_next則分別表示當前載波周期的脈寬計數值及下一周期的脈寬計數值,gating1,gating2分別表示要輸出的驅動信號。編程完成并順利編譯通過后,將會產生一個我們需要的DLL文件。
圖2 數字SPWM仿真模塊的封裝
(2) PSIM下鏈接DLL文件。在PSIM仿真環境中,選取Elements\\other\\Function Blocks下的DLL模塊,由于PSIM的DLL模塊的引腳不能自由定義,只能選擇系統自帶的幾種固定引腳數的DLL模塊,為了滿足輸入輸出需要,選擇6輸入6輸出的DLL模塊。將(1)中產生的DLL文件拷到PSIM的當前工作目錄,雙擊模塊,在File Name欄中輸入DLL文件的全名,便完成了DLL文件與DLL模塊的鏈接。
圖3 VC++數字SPWM脈寬計算及輸出程序流程圖
(3) 模塊輸入輸出定義。選擇DLL模塊的前4個輸入端,分別作為載波頻率,調制波頻率以及死區時間,調制比的輸入接口,選擇模塊的前2個輸出端口作為輸出兩路驅動的輸出接口,對沒用到的端口,需要將其接地。為了方便最后的模塊實現效果分析,本文將模塊與Matlab相連接,選擇Elements\\Control\\SimCoupler Module下的In Link Node模塊,分別加在4個輸入端口上,選擇Out Link Node模塊,分別加在2個輸出端口上,這樣,一個完整的PSIM仿真環境下的數字SPWM模塊便建立完成。
3 數字SPWM仿真模塊在逆變系統仿真中的應用
把上述的數字SPWM仿真模塊用于單相電壓型全橋SPWM逆變器的死區效應分析仿真中,建立的PSIM全橋逆變仿真電路如圖4(a)所示,在Matlab\\Simulink仿真環境下,利用Simcoupler Module模塊與PSIM進行數據連接,Matlab的仿真模型如圖4(b)所示。
設定Matlab\\Simulink仿真模型中SimCoupler_SPWM模塊的輸入載波頻率fc=20 kHz,調制波頻率fr=50 Hz,死區時間Td分別為0 s,2 μs,調制比為0.9,仿真結果如圖5和6所示。從仿真結果可以看出,死區時間為0時,輸出電壓的理想波形主要是基波分量,其他一些高次諧波可以忽略不計,死區時間的加入使得輸出電壓波形在過零處產生了“交越失真”,產生了很多的附加諧波,低次諧波全為奇次諧波,THD變大,因此,死區效應對SPWM逆變器的影響不可忽略,實際應用中常采用一些死區補償措施[6]。
圖4 PSIM及Matlab/Simulink仿真模型
圖5 無死區時的仿真結果
4 結 語
正弦脈寬調制(SPWM)在電力電子各個領域運用越來越廣泛,隨著數字芯片的發展和普及,基于DSP或單片機等芯片的數字SPWM也越來越多地得到推廣和應用,本文根據SPWM波的產生機理,提出一種基于PSIM仿真軟件的數字SPWM產生方法,相對其他一些模塊可編程的軟件,如Matlab\\Simulink等。
圖6 加入0.2 μs死區時的仿真結果
該方法運用Microsoft visual C++軟件來編程,算法經仿真電路仿真調整后,最后的源程序只需少許修改便可直接運用到實際電路中以C或C++語言來編程的控制芯片中,不僅大大減少了軟件開發者的工作,而且仿真電路跟實際電路更為接近,仿真結果也更加接近實際結果。
該模塊以產生雙極性SPWM波,只需將軟件少許修改,便可產生單極性SPWM波等,方法類似。 另外,對需要用到數字閉環的場合,只需往程序里添加數字閉環程序,便可輕松地實現數字閉環仿真應用極為廣泛。
參考文獻
[1]張芳.正弦脈寬調制(SPWM)算法技術的研究[J].火控雷達技術,2008(4):105-107.
[2]彭力,張凱,康勇,等.數字控制PWM逆變器性能分析及改進[J].中國電機工程學報,2006,26(18):65-70.
[3]李剛,艾良.基于SPWM的正弦波設計與實現[J].現代電子技術,2008,31(13):154-155.
[4]野村弘,藤原憲一郎,吉田正伸.使用PSIMTM學習電力電子技術基礎[M].胡金庫,賈要勤,王兆安,譯.西安:西安交通大學出版社,2009.
[5]KAMIRISK B,WEJRZANOWSKIK,KOCZARA W.An application of PSIM simulation software for rapid prototyping of DSP based power electronics control systems [C]//IEEE 35th Annual of Power Electronics Specialists Conference. Poland: PESC,2004, 1: 336-341.
[6]梁希文,蔡麗娟.逆變器死區效應傅里葉分析與補償方法[J].電力電子技術,2006,40(6):118-120.
[7]林呈輝,楊洪耕,袁鋒.基于調制分量卡爾曼濾波的短時擾動檢測[J].電網與清潔能源,2008,24(5):15-20.
[8]章偉康,褚君浩,章聞曦.單級式光伏逆變研究與MPPT方法 [J].電網與清潔能源,2009,25(11):7-12.