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