SVPWM信號發(fā)生器的VHDL實現(xiàn)
近年來,DSP在SVPWM(空間矢量脈寬調(diào)制)控制領(lǐng)域得到了廣泛應(yīng)用。
但是使用DSP單核心的控制方法仍然存在一些缺陷:基于軟件的:DSP在實現(xiàn)SVPWM觸發(fā)信號時需要較長的時鐘周期;微處理器中不確定的中斷響應(yīng)會導致PWM脈沖的相位抖動。針對以上問題,本文提出了一種利用FPGA實現(xiàn)的SVPWM信號發(fā)生器,系統(tǒng)結(jié)構(gòu)如圖1所示。作為DSP的外圍接口電路,該信號發(fā)生器能夠屏蔽DSP內(nèi)部錯誤中斷對輸入時間信號的影響,保證輸出完整的SVPWM觸發(fā)信號波形,其三相并行處理結(jié)構(gòu)還能夠有效提升系統(tǒng)的動態(tài)響應(yīng)速度。
SVPWM簡介
SVPWM的主要思想在于利用逆變器空間電壓矢量的切換合成參考電壓矢量。具體方法如下:在橋式電路中,同一橋臂上兩個開關(guān)的工作狀態(tài)在任意時刻都是互補的,所以可以用二值邏輯函數(shù)表示6個 開關(guān)的工作狀態(tài):
由式1可見,3組開關(guān)的工作狀態(tài)共有23=8種,不同的開關(guān)工作狀態(tài)對應(yīng)著不同的三相輸出電壓。這8種工作狀態(tài)分別對應(yīng)著8條基本空間電壓矢量,任意區(qū)域內(nèi)的空間電壓參考矢量都可以由2條非零矢量以及2條零矢量合成。在進行電壓矢量合成時,規(guī)定每一次開關(guān)動作只能有一相橋臂的工作狀態(tài)發(fā)生轉(zhuǎn)換,目的是為了降低電路中的諧波含量,確定基本電壓矢量的切換順序。
SVPWM信號發(fā)生器的設(shè)計
基本原理
圖1中DSP采集逆變器交流側(cè)輸出電壓值,并通過計算得到橋式電路開關(guān)的狀態(tài)保持時間。SVPWM信號發(fā)生器將DSP的輸入時間信號轉(zhuǎn)換為開關(guān)觸發(fā)信號,在結(jié)構(gòu)上可以分為數(shù)據(jù)鎖存器和有限狀態(tài)機兩個模塊,其頂層文件原理圖如圖2所示。
在狀態(tài)機的一個工作周期內(nèi),輸入時間信號的突變會使狀態(tài)機的工作狀態(tài)發(fā)生不規(guī)則跳變,對輸出信號造成巨大影響,無法得到所需要的SVPWM 觸發(fā)信號。因此,圖2中LATCH鎖存器模塊的作用就是鎖存輸入時間數(shù)據(jù)TIME1_A、TIME0_A、TIME1_B、TIME0_B、TIME1_C 、TIME0_C,直至狀態(tài)機的當前工作周期結(jié)束(即"ORDER"命令有效),從而避免外界對狀態(tài)機工作狀態(tài)的影響,保證狀態(tài)機按照輸入時間數(shù)據(jù)要求完成工作狀態(tài)的轉(zhuǎn)換。
利用有限狀態(tài)機的方法設(shè)計FPGA,只須控制三相橋臂開關(guān)狀態(tài)的保持時間,就可以實現(xiàn)SVPWM 觸發(fā)信號。圖2中FSMS主要由1個基準計數(shù)器和3個比較器構(gòu)成,輸入時間數(shù)據(jù)預存在3個比較器內(nèi),通過比較基準計數(shù)器當前值和比較器中的預存數(shù)據(jù)控制FSMS工作狀態(tài)的轉(zhuǎn)換, 同時根據(jù)不同的比較結(jié)果生成不同的三相橋臂開關(guān)驅(qū)動信號。如果基準計數(shù)器當前值等于預存輸入時間,說明狀態(tài)機當前工作狀態(tài)已經(jīng)完成,要轉(zhuǎn)入下一個工作狀態(tài),相應(yīng)的觸發(fā)信號也要改變;如果基準計數(shù)器當前值不等于預存輸入時間,說明狀態(tài)機當前工作狀態(tài)尚未完成,需要繼續(xù)保持當前工作狀態(tài),相應(yīng)的觸發(fā)信號也保持不變。狀態(tài)機按照輸入時間信號的要求轉(zhuǎn)換自身工作狀態(tài),使觸發(fā)信號產(chǎn)生相應(yīng)變化,從而實現(xiàn)時間信號向SVPWM 觸發(fā)信號的轉(zhuǎn)變。另外,由于FSMS內(nèi)部比較器參照同一基準計數(shù)器,因此三相觸發(fā)信號之間不存在時間延遲,得到的是并行的三相觸發(fā)信號。
設(shè)計方法
本設(shè)計采用自頂向下、層次化、模塊化的設(shè)計思想。
LATCH鎖存器模塊由6個并行的6位數(shù)據(jù)鎖存器構(gòu)成,所有鎖存器均使用圖2中的"ORDER"作為數(shù)據(jù)鎖存信號,具體規(guī)定如下:
1)"ORDER" 信號作為鎖存器工作進程的唯一敏感信號參量,只有其信號值發(fā)生變化時才會啟動鎖存器的工作進程,否則鎖存器不做出任何響應(yīng);
2)當"ORDER"信號發(fā)生變化,且當前值為1時,鎖存器中的存儲數(shù)據(jù)得以釋放,被輸入FSMS,新的時間數(shù)據(jù)同時輸入鎖存器;
3)當"ORDER"信號發(fā)生變化,且當前值為0時,鎖存器鎖存已輸入時間數(shù)據(jù),保持FSMS的時間輸入數(shù)據(jù)不變, 同時拒絕新數(shù)據(jù)輸入;
4)鎖存器的數(shù)據(jù)鎖存時間等于FSMS中基準計數(shù)器的一個工作周期。當基準計數(shù)器完成一個工作周期時,"ORDER"信號將被置'1',其余時間,"ORDER"信號被置'0'。
為了得到三相并行輸出的SVPWM觸發(fā)信號.FSMS模塊內(nèi)部設(shè)計了3個狀態(tài)機分別控制A、B、C相輸出。根據(jù)式1,假設(shè)上橋臂每個開關(guān)在一個周期內(nèi)工作狀態(tài)的轉(zhuǎn)換順序都是"1-0-1",因此可以將每個狀態(tài)機都設(shè)計為3種狀態(tài).分別代表每一相開關(guān)在一個周期內(nèi)的3個工作狀態(tài),工作狀態(tài)的保持時間由輸入時間決定。當輸入時間信號發(fā)生變化時,F(xiàn)SMS 工作進程啟動。具體流程如圖3所示。
以A相橋臂為例(另外兩相橋臂的控制方法與A相橋臂類似),狀態(tài)機進程啟動后,基準計數(shù)器開始計時,比較器實時比較計數(shù)器當前值和比較器內(nèi)部預存的時間。計數(shù)器的一個工作周期可以分為三個階段:
1)計數(shù)器當前值小于輸入時間TIME1_A時.狀態(tài)機處于"00"態(tài).A相上橋臂輸出為'1';
2)計數(shù)器當前值大于等于輸入時間TIME1_A而小于TIME1_A與TIME0_A的和時,狀態(tài)機處于"01"態(tài),A相上橋臂輸出為'0';
3)計數(shù)器當前值大于等于TIME1_A與TIME0_A的和時,狀態(tài)機處于"10"態(tài),A相上橋臂輸出為'1'。
如果狀態(tài)機處于非法狀態(tài)"11",則圖2中管腳A和NOTA輸出為高阻態(tài)。
仿真結(jié)果
利用MAX+PLUS II軟件對本設(shè)計的邏輯功能進行仿真驗證,仿真時間為0~120us,時鐘頻率為1MHz。
采用EPM3256ATC144-7FPGA芯片進行邏輯編程后,共占用166個邏輯單元,芯片利用率為64%,具有較大的擴展空間。仿真結(jié)果如圖4所示。
圖4中輸出信號A和NOTA,B和和NOTB,C和NOTC分別代表橋式電路3組互補開關(guān)的驅(qū)動命令,輸入信號time1_A、time1_B、time1_C和time0_A,time0_B、time0_C分別代表各開關(guān)高低電平狀態(tài)的保持時間。通過仿真波形可以看到,FPGA實現(xiàn)了空間矢量的轉(zhuǎn)換,開關(guān)的狀態(tài)保持時間取決于輸入信號time0_A、time0_B、time0_C和time1_A、time1_B、time1_C,完全實現(xiàn)了時間信號到觸發(fā)信號的轉(zhuǎn)換。而且,A相橋臂有效地抵抗了外界干擾,沒有受到輸入時間信號突變的影響,表明SVPWM信號發(fā)生器具有良好的抗干擾能力。
結(jié)語
本文用VHDL硬件描述語言設(shè)計了一種由鎖存器陣列和有限狀態(tài)機構(gòu)成的SVPWM信號發(fā)生器,該信號發(fā)生器不僅成功實現(xiàn)了輸入時間信號到SVPWM觸發(fā)信號的轉(zhuǎn)換,而且具有良好的抗干擾能力。此外,其并行處理結(jié)構(gòu)可以保證三相橋臂開關(guān)同時動作,有效地提升了控制系統(tǒng)的整體性能。由于SVPWM信號發(fā)生器是用VHDL硬件描述語言實現(xiàn)的IP核.因而可簡便地應(yīng)用于逆變器控制系統(tǒng)中。