王飛,葛瓊璇,王曉新,劉洪池
(中國科學(xué)院 電工研究所,北京 100190)
隨著大功率交流調(diào)速系統(tǒng)在鋼鐵和高速鐵路中得到越來越廣泛的應(yīng)用,高可靠性的控制系統(tǒng)成為研究者日益關(guān)注的問題。近年來,隨著計算機技術(shù)和實時操作系統(tǒng)的快速發(fā)展,嵌入式系統(tǒng)為工業(yè)控制的實時性和可靠性提供了有力的支持。在諸多的嵌入式體系中,基于VME總線的控制系統(tǒng)因其開放性、可靠性和對多種操作系統(tǒng)的支持,占據(jù)了廣泛的市場,并且被成功地應(yīng)用于交流調(diào)速控制系統(tǒng)中。本文以美國GE公司生產(chǎn)的VME總線單板計算機7750作為核心控制器,利用自行開發(fā)的基于FPGA的電機控制板卡實現(xiàn)了一個高性能、低成本的電機控制系統(tǒng)。
開發(fā)基于VME總線的電機控制系統(tǒng)主要包括兩個部分:總線接口邏輯和變頻器脈沖發(fā)生器,本文所使用的總線接口為A24D16(即AM=39)的VME slave接口,脈沖發(fā)生器則為兩電平電壓空間矢量調(diào)制算法,整個系統(tǒng)基于 FPGA來完成。本文通過將接口邏輯功能和脈沖產(chǎn)生結(jié)合在單個FPGA上構(gòu)成片上系統(tǒng)(system on chip)節(jié)省了空間和成本。實驗結(jié)果表明,本系統(tǒng)具有良好的電機控制效果。
VME總線規(guī)范是由Motorola公司制定的Versabus(邏輯、電氣特性)和歐洲的Eurocard標準(機械特性)構(gòu)成的,是一種開放式系統(tǒng)結(jié)構(gòu)[1]。該系統(tǒng)結(jié)構(gòu)支持多種實時操作系統(tǒng),如 UNIX、VxWorks等,在控制系統(tǒng)領(lǐng)域具有廣泛的市場,并且被成功地應(yīng)用于交流調(diào)速控制系統(tǒng)中。
VME總線包括地址線、數(shù)據(jù)線和控制線3類,有多種數(shù)據(jù)傳輸模式,并且支持塊傳輸和七級中斷,數(shù)據(jù)傳輸采用主從模式。本文所使用的總線數(shù)據(jù)格式為24位地址和16位數(shù)據(jù)寬度。進行數(shù)據(jù)傳輸時,首先通過專用的總線控制器來分配機箱中主控制板(Master)對總線的控制權(quán),當Master獲得總線控制后,將按照數(shù)據(jù)格式驅(qū)動所要讀寫的地址、數(shù)據(jù)以及相應(yīng)的控制信號線,待電平穩(wěn)定后通過拉低AS和 DS信號開始對從卡(Slave)進行讀/寫操作,操作完成后Slave通過DTACK信號示意Master釋放對總線的控制。
本文中所開發(fā)的Slave接口邏輯用Verilog狀態(tài)機[2]來實現(xiàn),該狀態(tài)機各狀態(tài)及其轉(zhuǎn)換關(guān)系如圖1所示。
圖1 VM E總線Slave接口邏輯狀態(tài)機Fig.1 State machine for VME slave interface
狀態(tài)機各個狀態(tài)的具體操作分別為:1)空閑狀態(tài),接口邏輯判斷總線的地址信號是否與板卡地址位以及修飾碼(AM)相同,FPGA板卡采用的地址和數(shù)據(jù)線寬為 A24D16,即地址修飾位AM[5∶0]為0x39;2)地址匹配狀態(tài),地址判斷無誤后狀態(tài)機進入地址匹配狀態(tài),在本狀態(tài)下檢測AS和DS信號線來判斷是否有Master的數(shù)據(jù)傳輸啟動信號;3)啟動數(shù)據(jù)操作,判斷地址線上的寄存器地址位來確定片選信號以及片上寄存器地址,還將通過讀/寫信號線來確定數(shù)據(jù)方向,此后轉(zhuǎn)入讀寫操作,等待狀態(tài)讀寫操作完成后狀態(tài)機進入結(jié)束狀態(tài);4)結(jié)束狀態(tài),接口邏輯拉低DTACK信號線,示意數(shù)據(jù)操作完成,并監(jiān)視AS和DS獲取Master響應(yīng)來判斷是否繼續(xù)進行讀寫操作或者完成操作釋放對總線的訪問權(quán),Slave接口邏輯進入空閑狀態(tài),等待下一次數(shù)據(jù)傳輸。
為了使設(shè)計的系統(tǒng)具有通用性,合理的劃分嵌入式系統(tǒng)的軟硬件功能是非常必要的。在本文中,VME主控制器完成數(shù)據(jù)采集以及控制算法,產(chǎn)生相應(yīng)的電壓控制信號,為電壓參考矢量在靜止兩相坐標系上的分量,見圖2。
圖2 兩電平電壓空間矢量Fig.2 2 level voltage space vectors
在通過VME接口邏輯接收到總線數(shù)據(jù)后,FPGA通過三相兩電平電壓空間矢量調(diào)制產(chǎn)生逆變器驅(qū)動信號。
本文利用Verilog語言編寫狀態(tài)機來實現(xiàn)基于FPGA實現(xiàn)的電壓空間矢量調(diào)制算法。狀態(tài)機如圖3所示。
圖3 電壓空間矢量調(diào)制狀態(tài)機Fig.3 State machine of SVPWM
具體各個狀態(tài)描述為:復(fù)位,啟動后的狀態(tài),當接收到運行命令以及到達采樣時刻后進入讀取數(shù)據(jù)狀態(tài)。讀取,讀取由VME總線傳送的數(shù)據(jù)。由于所采用的FPGA器件只能進行定點運算,所以必須首先規(guī)定CPU板卡與FPGA之間數(shù)據(jù)的格式。上位機產(chǎn)生的電壓控制信號進行相應(yīng)的定標,定標方法為
式中,hcarrier-Δ為三角載波的最大值。
這樣定標的好處是可以方便比較計算出來的調(diào)制波與載波。
表1 扇區(qū)判斷,各扇區(qū)對應(yīng)的非零開關(guān)狀態(tài)及其作用時間Tab.1 Secto r judgment,effective voltage vectors and their dwell time applied for each sector
判斷扇區(qū),按照表1來判斷給定電壓矢量所在扇區(qū),并確定用來合成電壓指令的非零開關(guān)狀態(tài)Va和Vb。
時間計算,按照伏秒平衡原理一個開關(guān)周期內(nèi)電壓指令的作用可以用相鄰的兩個開關(guān)狀態(tài)合成,表1給出了每個扇區(qū)的判斷條件,各扇區(qū)對應(yīng)的開關(guān)狀態(tài)及其持續(xù)時間,由于V*a和V*b為對應(yīng)三角載波的定標值,所以計算得到的為Ta和Tb在周期Ts內(nèi)的定標。用采樣周期減去 Ta和Tb則是零矢量的持續(xù)時間T0,當開關(guān)指令位于線性區(qū)(T0>0)則狀態(tài)機接下來計算調(diào)制波并確定開關(guān)序列,若T0<0則需要按照過調(diào)制的算法重新計算Ta和Tb。
過調(diào)制,當調(diào)制比大于0.907時空間矢量調(diào)制進入超調(diào)區(qū)域Ⅰ,這時T0<0。為了增加對直流母線電壓的利用率,設(shè)T0=0并采用以下方程來重新確定Ta和Tb[3]:
確定調(diào)制波,計算的 T0,Ta和Tb決定了2個非零矢量和零矢量分別的持續(xù)時間,接著按照調(diào)制策略來選擇相應(yīng)的開關(guān)序列。本文中開關(guān)序列的確定方式采用傳統(tǒng)的7段式,如圖4所示。
圖4 7段式開關(guān)狀態(tài)序列Fig.4 Seven segment switching pattern
本系統(tǒng)硬件采用美國GE公司的VME總線CPU板卡VMIVME7750,7750配有1.26 GHz Intel Pentium III CPU、128M 內(nèi)存和Intel 815E芯片組,運行 VxWorks實時操作系統(tǒng),針對該CPU卡采用的開發(fā)工具是IOWorks。FPGA板卡上采用 Xilinx公司SPARTAN 3 xc3s400芯片,開發(fā)軟件采用 ISE WebPACK 9.2i和Chip Scope評估版本。異步電機的參數(shù)為額定電壓=380 V,額定功率 =3 kW,額定轉(zhuǎn)速 =2 880 r/min。
控制算法采用開環(huán)V/f比控制,開關(guān)頻率為1 kHz,7750板卡的主要工作是根據(jù)速度曲線和設(shè)定的V/f比值產(chǎn)生速度指令和與之相對應(yīng)的電壓參考矢量,將該矢量在靜止兩相坐標系中的分量對母線電壓進行定標并分別通過VME總線傳遞給相應(yīng)的地址。FPGA板卡的Slave接口邏輯通過總線進行譯碼并讀取電壓分量,接著通過空間矢量調(diào)制算法輸出驅(qū)動脈沖來對逆變器進行控制。系統(tǒng)框圖如圖5所示。
圖5 實驗系統(tǒng)框圖Fig.5 Experimental system diagram
為了方便調(diào)試FPGA內(nèi)部程序的運行,使用了Xilinx公司的ChipScope軟件對器件內(nèi)部寄存器進行采樣驗證。ChipScope可以將邏輯分析儀軟件核(ILA)方便地加入到所開發(fā)的模塊中,從而可以查看FPGA中任何寄存器變量的值[4]。圖6為用ChipScope得到的線性調(diào)制(ma=0.8)和超調(diào)(ma=0.94)時的三相相電壓調(diào)制波。采集時ChipScope中的觸發(fā)脈沖設(shè)定為三角調(diào)制載波的下溢信號,即當三角波到達0時對調(diào)制波進行采樣,每采集512次后將數(shù)據(jù)通過JTAG口傳送給PC進行繪圖。FPGA寄存器內(nèi)部的數(shù)據(jù)由7750板卡通過VME總線寫入,從圖5可以看出VME接口數(shù)據(jù)傳輸準確無誤。
圖6 FPGA計算得到的調(diào)制波波形Fig.6 Modulation waveforms calculated by FPGA
圖7和圖8分別是線性調(diào)制(ma=0.8)和超調(diào)(ma=0.94)時由FPGA輸出的A相,B相上橋臂的觸發(fā)脈沖,同時圖7、圖8中還給出了示波器計算出的線電壓波形。
圖7 線性調(diào)制(ma=0.8)時A,B相上橋臂觸發(fā)脈沖以及線電壓Fig.7 Pulse waveforms for upper legs of phase A,B and line voltage in linear modulation(ma=0.8)
圖9為利用本控制器對1臺15 kW異步電機的實驗結(jié)果,圖9中由上到下分別為A相上橋臂驅(qū)動脈沖,電機A相電流以及AB線電壓。由圖9可見波形良好,試驗結(jié)果表明基于FPGA的VME總線電機控制系統(tǒng)可以很好地完成控制任務(wù)。
圖8 過調(diào)制(ma=0.94)時A,B相上橋臂觸發(fā)脈沖以及線電壓Fig.8 Pulse waveforms for upper legs of phase A,B and line voltage in overmodulation(ma=0.94)
圖9 異步電機實驗波形Fig.9 Induction motor ex periment waveforms
本文詳細介紹了基于FPGA的VME總線從卡接口和兩電平電壓空間矢量調(diào)制算法,作為研究VME總線交流調(diào)速系統(tǒng)的第一階段成果,本系統(tǒng)具有良好的控制性能,并且大大地節(jié)省了系統(tǒng)成本。下一步工作是針對目前的系統(tǒng)開發(fā)中斷接口,實現(xiàn)高性能的控制算法。
[1]ANSI/IEEE Std 1014-1987.A Versatile Backplane Bus:VMEbus[Z].1987.
[2]Donald E T homas,Philip R Moorby.T he Verilog·Hardware Description Language[M].Springer,1996.
[3]Zhou Zaoy ong,Li Tiecai,Takahashi T,et al.Design of a U-niversal Space Vector PWM Controller Based on FPGA[C]∥Applied Power Electronics Conference and Exposition,APEC2004.Nineteenth Annual IEEE,2004,3:1698-1702.
[4]Xilinx Inc.ChipScope Pro Software and Cores User Guide[Z].2007.