專利名稱::基于fpga的空間矢量脈寬調(diào)制方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及交流電機(jī)控制領(lǐng)域,具體來說,涉及到FPGA(可編程邏輯門陣列)技術(shù)在交流電機(jī)控制領(lǐng)域的應(yīng)用,提出了一種通用型空間矢量脈寬調(diào)制在FPGA上的實(shí)現(xiàn)方案。技術(shù)背景空間矢量脈寬調(diào)制(SVPWM)的思想在上世紀(jì)80年代首次由VanDerBroeck提出,其理論和算法在后來得到了很大發(fā)展。目前SVPWM是一種最流行的高性能交流伺服驅(qū)動系統(tǒng)實(shí)現(xiàn)技術(shù)之一。隨著FPGA技術(shù)的進(jìn)步和成本的下降,為SVPWM算法的實(shí)現(xiàn)提供了另一可選的途徑。FPGA硬件的并行處理方式保證了系統(tǒng)運(yùn)行的高速度和高精度,其靈活豐富的外部引腳為控制多個電機(jī)提供了方便,同時FPGA硬件電路的穩(wěn)定性和抗干擾性使其能夠勝任一些特殊條件下的控制任務(wù),這些優(yōu)勢決定了FPGA技術(shù)必將廣泛的進(jìn)入交流伺服控制領(lǐng)域。算法的實(shí)現(xiàn)方法通常要根據(jù)所選實(shí)現(xiàn)工具的特點(diǎn)來進(jìn)行設(shè)計,目前空間矢量脈寬調(diào)制(SVPWM)算法一般是在DSP上實(shí)現(xiàn),TI公司推出的2000系列DSP就是專門用來控制電機(jī)的。目前現(xiàn)有的空間矢量脈寬調(diào)制(SVPWM)算法實(shí)現(xiàn)方案在計算上較為復(fù)雜,憑借DSP強(qiáng)大的計算能力才得以在DSP上實(shí)現(xiàn),而這些復(fù)雜的計算在FPGA上實(shí)現(xiàn)起來比較困難。本發(fā)明提出的這種方案解決了SVPWM算法在FPGA上難以實(shí)現(xiàn)這一問題。
發(fā)明內(nèi)容本發(fā)明的目的是尋求一種適合在基于FPGA的空間矢量脈寬調(diào)制方法。使得在交流伺服系統(tǒng)中FPGA能更好的勝任控制任務(wù)。按照本發(fā)明提供的技術(shù)方案,所述基于FPGA的空間矢量脈寬調(diào)制方法包括如下步驟步驟一,時序控制時序控制模塊采用大小可調(diào)的增減計數(shù)器產(chǎn)生的同步脈沖,輸送給定標(biāo)模塊、狀態(tài)機(jī)及后續(xù)模塊,作為同步工作信號;通過檢測同步脈沖的下降沿來觸發(fā)電路保證各個模塊的同步,同步脈沖的周期為脈寬調(diào)制器輸出調(diào)制波的周期,同時又作為空間矢量脈寬調(diào)制器的輸出,用于交流伺服系統(tǒng)中不同功能模塊之間的同步;所述后續(xù)模塊包括扇區(qū)判斷模塊、矢量選擇模塊、時間計算模塊、過調(diào)制模塊、脈寬調(diào)制器、死區(qū)調(diào)節(jié)模塊;步驟二,定標(biāo)定標(biāo)模塊在步驟一產(chǎn)生的同步脈沖控制下,將輸入空間矢量脈寬調(diào)制器的參考矢量Ua、Up進(jìn)行預(yù)處理,使參考矢量UcuUP能夠直接進(jìn)入后續(xù)模塊;步驟三,扇區(qū)判斷扇區(qū)判斷模塊在步驟一產(chǎn)生的同步脈沖控制下,對經(jīng)過步驟二處理后的參考矢量UcuU卩進(jìn)行進(jìn)一步的處理,對參考矢量UcuU卩所處的扇區(qū)進(jìn)行判斷;步驟四,矢量選擇與時間計算矢量選擇和時間計算模塊根據(jù)步驟三中對扇區(qū)判斷的結(jié)果,根據(jù)相關(guān)計算式得到相應(yīng)扇區(qū)的作用矢量及其有效時間;步驟五,過調(diào)制過調(diào)制模塊對步驟四中矢量選擇和時間計算的結(jié)果進(jìn)行判斷,確定是否出現(xiàn)過調(diào)制,如果檢測出現(xiàn)過調(diào)制,則進(jìn)行過調(diào)制處理;步驟六,狀態(tài)機(jī)與脈寬調(diào)制器調(diào)制波輸出狀態(tài)機(jī)模塊根據(jù)步驟一產(chǎn)生的同步脈沖、步驟五中時間計算模塊中的時間輸出和輸入量模式選擇信號實(shí)現(xiàn)對脈寬調(diào)制器的調(diào)制信號輸出進(jìn)行控制;步驟七,死區(qū)調(diào)節(jié)死區(qū)調(diào)節(jié)模塊對經(jīng)過步驟六處理的調(diào)制信號加入死區(qū),形成一個可直接用于逆變器的調(diào)制信號。所述同步脈沖的頻率大小還用于控制參考矢量Ua、U(3的采樣率。在步驟七中,死區(qū)調(diào)節(jié)模塊分別對經(jīng)過步驟六處理的調(diào)制信號的下降沿和上升沿加入延遲,將上升沿延遲信號作為逆變器的上橋臂控制信號,將下降沿延遲取反后作為逆變器的下橋臂控制信號。本發(fā)明提出了一種能充分發(fā)揮FPGA邏輯實(shí)現(xiàn)能力及并行處理能力的實(shí)現(xiàn)方案,如圖1所示。從圖中可以看出本次設(shè)計方案分為定標(biāo)、時序控制、扇區(qū)判斷、狀態(tài)機(jī)、矢量選擇、時間計算、過調(diào)制、PWM輸出和死區(qū)調(diào)節(jié)等九個模塊。其中定標(biāo)模塊是將圖1中參考矢量A^在cuP軸上的投影UouUP的數(shù)值轉(zhuǎn)化成統(tǒng)一的有效位數(shù)和小數(shù)點(diǎn)位置。相關(guān)參數(shù)由圖1中的比例因數(shù)配置。時序控制模塊用于產(chǎn)生系統(tǒng)的同步脈沖,以保證模塊間時序一致,圖1中PL1、PL2和PL3三塊由同步脈沖的下降沿觸發(fā),從而構(gòu)成三級流水線。扇區(qū)判斷模塊用來判斷定標(biāo)后的Ua、U|3所在的扇區(qū)。狀態(tài)機(jī)和矢量選擇模塊用來產(chǎn)生輸出PWM波形的形狀,并可以在狀態(tài)機(jī)模式中選擇對稱和非對稱兩種PWM輸出方式。時間計算模塊用來控制該波形在某個狀態(tài)下持續(xù)的時間,時間控制由計數(shù)器來完成。過調(diào)制模塊用來處理過調(diào)制狀態(tài)下的時間分配問題。PWM輸出模塊負(fù)責(zé)輸出PWM波形。死區(qū)調(diào)節(jié)模塊用硬件電路完成了死區(qū)處理,避免了上下橋臂直接導(dǎo)通的危險。本發(fā)明的優(yōu)點(diǎn)是避免了反正切、三角函數(shù)等復(fù)雜計算,能夠很容易的將較復(fù)雜的空間矢量脈寬調(diào)制(SVPWM)算法用硬件描述語言(HDL)在FPGA上實(shí)現(xiàn)。硬件描述語言(HDL)獨(dú)立于設(shè)備和廠商,在不同的平臺上可以兼容,并且不需要任何大的修改便可以在任何的FPGA上進(jìn)行綜合,HDL直接面向硬件實(shí)現(xiàn),編程靈活、簡單。圖1為基于FPGA的空間矢量脈寬調(diào)制(SVPWM)的實(shí)現(xiàn)框圖;圖2為扇區(qū)判斷示意圖;圖3為PWM輸出波形;圖4為狀態(tài)機(jī)示意圖;圖5為加死區(qū)調(diào)節(jié)后PWM波形。具體實(shí)施方式本發(fā)明提出的一種在FPGA上實(shí)現(xiàn)空間矢量脈寬調(diào)制(SVPWM)算法的方法,該方法運(yùn)用FPGA模塊化的設(shè)計思想將SVPWM算法分為如圖1所示的九個模塊,下面將詳細(xì)介紹各個模塊具體實(shí)施的方法。步驟一,時序控制。時序控制模塊采用大小可調(diào)的增減計數(shù)器產(chǎn)生的同步脈沖,該同步脈沖同時作用于圖1中PL1、PL2和PL3三塊,包括該方案中其他所有模塊。通過檢測同步脈沖的下降沿來觸發(fā)電路保證各個模塊的同步,PLKPL2和PL3三塊電路構(gòu)成三級流水線。同步脈沖的周期Ts即為PWM波的周期,又考慮到SVPWM只是一個完整的交流伺服系統(tǒng)中的一個功能模塊,于是將此同步脈沖作為SVPWM模塊的輸出,用于交流伺服系統(tǒng)中不同功能模塊之間的同步。步驟二,定標(biāo)。定標(biāo)模塊在步驟一產(chǎn)生的同步脈沖控制下將輸入數(shù)據(jù)參考矢量Uot、U(5進(jìn)行一些預(yù)處理。由圖2中可見,Ua、Up是參考矢量《"在a、卩軸上的投影,在各個具體的系統(tǒng)中,Ua、U(3的數(shù)值及其表達(dá)形式都不盡相同,且由于FPGA不適合于浮點(diǎn)數(shù)的運(yùn)算,這就需要定標(biāo)模塊將其轉(zhuǎn)化成統(tǒng)一的有效位數(shù)和小數(shù)點(diǎn)位置。再者,逆變器的直流電壓Udc在某一個具體的系統(tǒng)中通常為一定值,因此將ma二Ua/Udc,m(3=U|3/Udc作為定標(biāo)模塊的輸出。相關(guān)參數(shù)由圖1中的比例因數(shù)配置。步驟三,扇區(qū)判斷。扇區(qū)判斷模塊在步驟一產(chǎn)生的同步脈沖控制下對經(jīng)過步驟二處理后的數(shù)據(jù)進(jìn)行進(jìn)一步的處理。由表1可知,不同扇區(qū)的作用矢量和有效時間都是不同的,因此需要對參考矢量所處的扇區(qū)進(jìn)行判斷,從圖2中可知如下的判斷方式0"p<哉如果插<o則參考矢量"^在扇區(qū)I或、>_7^且{/<o則參考矢量^^/在扇區(qū)n;u。^V^且f^則參考矢量《《在扇區(qū)m;則參考矢量《"在扇區(qū)IV;<.仏則參考矢量^"/在扇區(qū)V;如果'如果'如果-v^/^^",則參考矢量《^在扇區(qū)vi。不難發(fā)現(xiàn),其中^^^多次出現(xiàn),可開辟一個專用的計算模塊以提高速度和精度,因?yàn)閊《1+2-、2-、2、2-5,所以可將乘法轉(zhuǎn)換成移位加運(yùn)算。表l各扇區(qū)矢量選擇及時間計算<table>tableseeoriginaldocumentpage5</column></row><table><table>tableseeoriginaldocumentpage6</column></row><table>步驟四,矢量選擇與矢量時間。矢量選擇和矢量時間模塊根據(jù)步驟三中扇區(qū)判斷結(jié)果以及表l中的相關(guān)計算式,得到相應(yīng)扇區(qū)的作用矢量及其有效時間。由于時間計算中不可避免的要用到乘法,通常在FPGA中進(jìn)行乘法運(yùn)算時需要占用較多的時鐘,不利于系統(tǒng)的快速性,也可能造成多級流水線在時序上的錯誤,因此需要調(diào)用FPGA內(nèi)部的硬件乘法器。一般FPGA內(nèi)部都集成了硬件乘法器可供選用°步^五,過調(diào)制。過調(diào)制模塊在步驟四中矢量分配和矢量時間計算的基礎(chǔ)上檢測是否出現(xiàn)過調(diào)制出現(xiàn),如果檢測出現(xiàn)過調(diào)制則進(jìn)行數(shù)據(jù)處理。當(dāng)系統(tǒng)處于線性調(diào)制區(qū)域時零向量分別為<formula>formulaseeoriginaldocumentpage6</formula>與之對應(yīng),的有效時間為,01=f。2=(K/2-r。-,J/2當(dāng)檢測到時間滿足如下式子時7^/2<a。則判斷已出現(xiàn)過調(diào)制,此時前述的有關(guān)零向量的計算不再成立。對此,本設(shè)計提出了兩種處理辦法方案。方案一<formula>formulaseeoriginaldocumentpage6</formula>方案二如果<formula>formulaseeoriginaldocumentpage6</formula>方案一的處理效果比較好,經(jīng)過調(diào)制處理后參考向量的運(yùn)行軌跡仍能近似是一個圓,但由于要使用到除法運(yùn)算,為了提高運(yùn)算速度,使用對數(shù)查找表,將其轉(zhuǎn)化為對數(shù)減法,占用較多的片上資源。相對的,方案二運(yùn)算非常簡單,效果也就相應(yīng)的較差,但仍能保證系統(tǒng)正常運(yùn)行。可根據(jù)不同場合選用不同的方案。步驟六,狀態(tài)機(jī)與PWM輸出。狀態(tài)機(jī)模塊根據(jù)步驟一產(chǎn)生的同步脈沖、步驟五中時間計算模塊中的時間輸出和輸入量模式選擇信號實(shí)現(xiàn)對PWM輸出進(jìn)行控制。從圖3和圖4中可以看到受狀態(tài)機(jī)控制的PWM的波形,當(dāng)檢測到同步脈沖的下降沿初始化狀態(tài)機(jī),并作為狀態(tài)機(jī)的觸發(fā)輸出一個PWM周期,當(dāng)模式信號為高電平時輸出對稱的PWM波,反之為不對稱的PWM波。兩張圖中的S0-S3表示狀態(tài)機(jī)的四個狀態(tài),S0和S3分別表示零矢量^/。2,Sl表示&,S2表示6。前態(tài)信號保存前一狀態(tài)的信息,用于確定下一狀態(tài)。當(dāng)減計數(shù)器到零時,即達(dá)到相應(yīng)矢量的作用時間,完成狀態(tài)切換,即U、V、W三相輸出電平變化。步驟七,死區(qū)調(diào)節(jié)。死區(qū)調(diào)節(jié)模塊在步驟六作用下的PWM輸出波形進(jìn)行進(jìn)一步處理。在實(shí)際的應(yīng)用中,需要在每一對上、下橋臂的PWM波中加人死區(qū),以避免上、下橋臂的直接導(dǎo)通。加人死區(qū)的PWM波形如圖5所示。從圖5a中可見,分別對死區(qū)調(diào)節(jié)模塊的輸入信號的下降沿和上升沿加入延遲,將上升沿延遲信號作為上橋臂信號,將下降沿延遲取反后作為下橋臂信號。td為死區(qū)時間,可通過初始配置調(diào)整,用計數(shù)器實(shí)現(xiàn)。當(dāng)輸入信號電平切換時間小于死區(qū)時間時,如圖5b和5c。以圖5b為例,當(dāng)檢測到輸入信號的下降沿,死區(qū)計數(shù)器開始計數(shù),計數(shù)未完成時又檢測到上升沿,初始死區(qū)計數(shù)器,下降沿延遲信號不變化。這樣的處理旨在保證不會出現(xiàn)上、下橋臂直通的情形。權(quán)利要求1.一種基于FPGA的空間矢量脈寬調(diào)制方法,其特征在于,所述方法包括如下步驟步驟一,時序控制時序控制模塊采用大小可調(diào)的增減計數(shù)器產(chǎn)生的同步脈沖,輸送給定標(biāo)模塊、狀態(tài)機(jī)及后續(xù)模塊,作為同步工作信號;通過檢測同步脈沖的下降沿來觸發(fā)電路保證各個模塊的同步,同步脈沖的周期為脈寬調(diào)制器輸出調(diào)制波的周期,同時又作為空間矢量脈寬調(diào)制器的輸出,用于交流伺服系統(tǒng)中不同功能模塊之間的同步;所述后續(xù)模塊包括扇區(qū)判斷模塊、矢量選擇模塊、時間計算模塊、過調(diào)制模塊、脈寬調(diào)制器、死區(qū)調(diào)節(jié)模塊;步驟二,定標(biāo)定標(biāo)模塊在步驟一產(chǎn)生的同步脈沖控制下,將輸入空間矢量脈寬調(diào)制器的參考矢量Uα、Uβ進(jìn)行預(yù)處理,使參考矢量Uα、Uβ能夠直接進(jìn)入后續(xù)模塊;步驟三,扇區(qū)判斷扇區(qū)判斷模塊在步驟一產(chǎn)生的同步脈沖控制下,對經(jīng)過步驟二處理后的參考矢量Uα、Uβ進(jìn)行進(jìn)一步的處理,對參考矢量Uα、Uβ所處的扇區(qū)進(jìn)行判斷;步驟四,矢量選擇與時間計算矢量選擇和時間計算模塊根據(jù)步驟三中對扇區(qū)判斷的結(jié)果,根據(jù)相關(guān)計算式得到相應(yīng)扇區(qū)的作用矢量及其有效時間;步驟五,過調(diào)制過調(diào)制模塊對步驟四中矢量選擇和時間計算的結(jié)果進(jìn)行判斷,確定是否出現(xiàn)過調(diào)制,如果檢測出現(xiàn)過調(diào)制,則進(jìn)行過調(diào)制處理;步驟六,狀態(tài)機(jī)與脈寬調(diào)制器調(diào)制波輸出狀態(tài)機(jī)模塊根據(jù)步驟一產(chǎn)生的同步脈沖、步驟五中時間計算模塊中的時間輸出和輸入量模式選擇信號實(shí)現(xiàn)對脈寬調(diào)制器的調(diào)制信號輸出進(jìn)行控制;步驟七,死區(qū)調(diào)節(jié)死區(qū)調(diào)節(jié)模塊對經(jīng)過步驟六處理的調(diào)制信號加入死區(qū),形成一個可直接用于逆變器的調(diào)制信號。2、根據(jù)權(quán)利要求1所述基于FPGA的空間矢量脈寬調(diào)制方法,其特征是所述同步脈沖的頻率大小還用于控制參考矢量UouU|3的采樣率。3、根據(jù)權(quán)利要求1所述基于FPGA的空間矢量脈寬調(diào)制方法,其特征是在步驟七中,死區(qū)調(diào)節(jié)模塊分別對經(jīng)過步驟六處理的調(diào)制信號的下降沿和上升沿加入延遲,將上升沿延遲信號作為逆變器的上橋臂控制信號,將下降沿延遲取反后作為逆變器的下橋臂控制信號。全文摘要本發(fā)明提出一種基于FPGA的空間矢量脈寬調(diào)制算法的實(shí)現(xiàn)方案。該方案按照FPGA模塊化設(shè)計思想將空間矢量脈寬調(diào)制(SVPWM)調(diào)節(jié)器劃分為如下九個模塊定標(biāo)、時序控制、扇區(qū)判斷、狀態(tài)機(jī)、矢量選擇、時間計算、過調(diào)制、PWM輸出和死區(qū)調(diào)節(jié)。該方案充分利用了FPGA并行處理特點(diǎn)、邏輯實(shí)現(xiàn)及硬件乘法器資源,主要采用邏輯判斷及一些乘法計算,避免了反正切、三角函數(shù)等復(fù)雜計算。該方案支持過調(diào)制、死區(qū)調(diào)節(jié)、對稱PWM和非對稱PWM模式。文檔編號H02M7/48GK101272123SQ20081002552公開日2008年9月24日申請日期2008年4月29日優(yōu)先權(quán)日2008年4月29日發(fā)明者沈艷霞,星陳申請人:江南大學(xué)