摘 要: 提出了一個基于FPGA的交流電動機伺服控制系統(tǒng)的設(shè)計方案。該伺服控制系統(tǒng)利用SPWM原理進行控制,通過驅(qū)動三相逆變器,從而達到控制三相交流電動機轉(zhuǎn)速的目的。實驗結(jié)果驗證了該交流電動機伺服控制系統(tǒng)的可行性。
關(guān)鍵詞: FPGA ;伺服控制系統(tǒng);SPWM;開關(guān)dead-time
由于SPWM逆變器具有輸出波形中低次諧波含量低、噪聲小等優(yōu)點,能將直流電源轉(zhuǎn)變?yōu)榉€(wěn)定的交流電源,近年來被廣泛地應(yīng)用在高速和大規(guī)模的工業(yè)控制領(lǐng)域,如UPS不間斷電源系統(tǒng)、ADS可調(diào)速驅(qū)動系統(tǒng)、可變交流傳動控制系統(tǒng)和交流電機伺服控制系統(tǒng)[1]。
隨著現(xiàn)場可編程門陣列FPGA與數(shù)字信號處理器DSP等高性能數(shù)字控制芯片的迅速發(fā)展,逆變電路的控制已由模擬控制、模數(shù)混合控制過渡到全數(shù)字控制階段[2]。采用DSP芯片進行控制,可以提高控制的精確度及穩(wěn)定性,但由于電路要達到足夠的頻率響應(yīng),復雜的控制算法,例如電流高速采樣,轉(zhuǎn)速控制和功率開關(guān)觸發(fā)信號的同時產(chǎn)生等,可能會帶來處理器運算量過大以及運算時間長的問題。FPGA具有高速運算和并行處理的特性,能夠克服DSP 芯片帶來的運算量大、占用CPU過多、運算時間長的缺點,所以,以FPGA實現(xiàn)數(shù)字電機伺服系統(tǒng)成為首選方案。本文就是利用FPGA芯片,實現(xiàn)SPWM驅(qū)動三相逆變器,從而控制三相交流電動機,以達到調(diào)整頻率命令進而調(diào)整電機轉(zhuǎn)速的目的[3-4]?;贔PGA的、以SPWM為驅(qū)動的伺服控制系統(tǒng)對三相逆變器的控制結(jié)構(gòu)圖如圖1所示。
1 系統(tǒng)原理及模塊設(shè)計
1.1 SPWM控制實現(xiàn)
SPWM (Sinusoidal PWM) 是一種比較成熟的、目前使用較廣泛的PWM控制方式。SPWM控制就是以“沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果基本相同”的理論為基礎(chǔ),用脈沖寬度按正弦規(guī)律變化而和正弦波等效的PWM波形即SPWM波形控制逆變電路中開關(guān)器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應(yīng)區(qū)間內(nèi)的面積相等,通過改變調(diào)制波的頻率和幅值對逆變電路輸出電壓的頻率和幅值進行控制。SPWM的一般實現(xiàn)方法有等面積法、硬件調(diào)制法、軟件生成法(包括自然采樣法和規(guī)則采樣法)和低次諧波消除法[5]。這里詳細介紹一下硬件調(diào)制法實現(xiàn)SPWM控制。
硬件調(diào)制法是為解決等面積法計算繁瑣的缺點而提出的,其原理就是把所希望的波形作為調(diào)制信號,把接受調(diào)制的信號作為載波,通過對載波的調(diào)制得到所期望的PWM波形。通常采用等腰三角波作為載波,當調(diào)制信號波為正弦波時,所得到的就是SPWM波形。其實現(xiàn)方法簡單,可以用模擬電路構(gòu)成三角波載波和正弦調(diào)制波發(fā)生電路,用比較器來確定它們的交點,在交點時刻對開關(guān)器件的通斷進行控制,就可以生成SPWM波。但是,這種模擬電路結(jié)構(gòu)復雜,難以實現(xiàn)精確的控制。
本文使用的SPWM實現(xiàn)方法,以硬件調(diào)制法為基礎(chǔ),利用VHDL硬件描述語言實現(xiàn)相應(yīng)模塊,做到全數(shù)字控制取代模擬控制,克服傳統(tǒng)硬件調(diào)制法模擬電路結(jié)構(gòu)復雜、難以精確控制的缺點。SPWM的具體實現(xiàn)方法可以用一個正弦調(diào)制波和一個等腰三角載波相交,由它們的交點確定逆變器的開關(guān)模式[6]。如圖2所示,當正弦波大于三角波時,使相應(yīng)的開關(guān)器件導通;當正弦波小于三角波時,使相應(yīng)開關(guān)器件截止。
1.2 三角波產(chǎn)生原理
三角波產(chǎn)生原理如圖3所示,三角載波可以通過加減計數(shù)器產(chǎn)生。計數(shù)器要求為7位二進制數(shù),三角載波的幅度值為8位二進制數(shù)(其中最高位為符號位,1表示正,0表示負)。計數(shù)器由clk分頻后產(chǎn)生的div進行觸發(fā)。計數(shù)器的幅值為128,計數(shù)器先從0遞增到128,符號位為正,此過程的數(shù)據(jù)與符號位作為三角載波前1/4周期(即0°~90°)的幅度值;接著計數(shù)器從128遞減到0,同時符號為正,此過程的數(shù)據(jù)與符號位作為三角載波第2個1/4周期(即90°~180°)的幅度值;然后計數(shù)器從0遞增到128,同時符號為負,此過程的數(shù)據(jù)與符號位作為三角載波第3個1/4周期(即180°~270°)的幅度值;最后計數(shù)器從128遞減到0,同時符號為負,此過程的數(shù)據(jù)與符號位作為三角載波第4個1/4周期(即270°~360°)的幅度值。此后的波形重復前面4個過程,因此完成一個周期的三角載波需要計數(shù)器計算128×4=512次,需要512個計數(shù)脈沖div。
1.3 正弦波產(chǎn)生原理
正弦波產(chǎn)生原理與三角波產(chǎn)生原理不同,正弦波不需要通過計數(shù)器得到。由于正弦波本身的對稱性,所以可以通過查值表得到波形,且只需要存儲第一個1/4周期(即0°~90°),其余部分可以由對稱性獲得,節(jié)省了資源。根據(jù)正弦波的精度要求的不同,可以設(shè)定相應(yīng)的二進制位數(shù)將波形進行細分。具體實現(xiàn)方法是:把0°~90°分成若干份(具體份數(shù)由數(shù)據(jù)精度決定,數(shù)據(jù)位數(shù)越多分得的份數(shù)越多,精度也越高),每一份對應(yīng)一個幅值,把對應(yīng)幅值存儲在寄存器內(nèi),其余的部分(90°~360°)通過對稱性得到。因此要得到一定頻率的正弦波,就要控制寄存器地址的產(chǎn)生頻率。而地址發(fā)生器又通過計數(shù)器實現(xiàn),所以只要控制計數(shù)脈沖的頻率為某一數(shù)值,就可以得到相應(yīng)頻率的正弦波。
1.4 Dead-time 死區(qū)時間處理
本數(shù)字伺服系統(tǒng)產(chǎn)生的PWM波形應(yīng)能達到同相輸出時上下開關(guān)互補,即上關(guān)時下開,上開時下關(guān),三相逆變電路如圖1所示。由于功率元件的turn-on時間一般小于turn-off 時間,所以在功率元件狀態(tài)變化時,將出現(xiàn)一段死區(qū),即不能達到同時互補的情況[7]。因此有必要在功率元件狀態(tài)轉(zhuǎn)換時加入一段死區(qū)時間,以防止出現(xiàn)短路情況,也能實現(xiàn)PWM波形的互補。死區(qū)時間的長短應(yīng)該根據(jù)功率元件的turn-off時間而定,一般設(shè)為turn-off時間的2~3倍。
2 系統(tǒng)硬件設(shè)計
本文提出的交流電動機伺服控制系統(tǒng)硬件結(jié)構(gòu)如圖4所示,其原理是將產(chǎn)生的三相正弦波與產(chǎn)生的三角波進行比較,從而產(chǎn)生PWM脈寬調(diào)制信號,脈寬調(diào)制信號再經(jīng)過Dead-time發(fā)生器和隔離電路,觸發(fā)控制三相逆變電路中的MOS晶體管的通斷[8]。f為外部輸入的改變頻率值的命令或信號,用0~255的8位二進制數(shù)表示三相正弦波的頻率值變化輸入信號,三相正弦波頻率值設(shè)定在10 Hz~100 Hz。三角波發(fā)生器按照輸出幅度大小設(shè)置為-127~128的8位二進制數(shù)運算,載波頻率設(shè)置為10 kHz。三相正弦波的產(chǎn)生是以VHDL硬件描述語言中的when-else語法建立三相正弦波查值表為基礎(chǔ)來實現(xiàn)的。
3 系統(tǒng)的軟件設(shè)計
本文提出的交流電動機伺服控制系統(tǒng)的系統(tǒng)軟件能實現(xiàn)交流電動機的速度控制。交流電動機各模塊采用VHDL語言設(shè)計實現(xiàn),且各模塊通過功能仿真。在這里給出三相PWM電路與Dead-time死區(qū)時間產(chǎn)生電路的代碼實現(xiàn)及其模塊的仿真波形。
3.1 三相PWM電路的軟件實現(xiàn)
三相PWM電路的VHDL實現(xiàn)代碼如下所示:
entity comparator is ----比較器entity聲明,4輸入信號,6輸出信號
port(clk:in std_logic;
va,vb,vc:in std_logic_vector(7 downto 0);
pwm_a_on,pwm_a_off,pwm_b_on,pwm_b_off,pwm_c_on,pwm_c_off:out std_logic);
end comparator;
architecture rtl of comparator is 比較器邏輯功能描述
……
process(clk) ----三角波產(chǎn)生
……
end process;
process(cnt,va) ----第1相正弦波與三角波比較
……
end process;
process(cnt,vb) ----第2相正弦波與三角波比較
……
end process;
process(cnt,vc) ----第3.相正弦波與三角波比較
……
end process;
end rtl;
三相PWM電路實現(xiàn)原理如圖2和圖4所示,VHDL實現(xiàn)代碼中有clk、va、vb、vc 4個輸入信號,pwm_a_on、pwm_a_off、pwm_b_on、pwm_b_off、pwm_c_on 、pwm_c_off 6個輸出信號。輸入時鐘clk設(shè)定為40 MHz,va,vb,vc為三相電壓的pwm控制命令,代表正弦波的幅值,如圖5所示,用8位二進制數(shù)表示。pwm_a_on、pwm_a_off、pwm_b_on、pwm_b_off、pwm_c_on 、pwm_c_off為正弦波與三角波比較后,正反相輸出的PWM信號。整個電路功能的實現(xiàn)由4個process來完成,包括process(clk)、process(cnt,va)、process(cnt,vb)和process(cnt,vc)。process(clk)負責利用計數(shù)器產(chǎn)生三角波,原理如圖3所示,共用到了512個計數(shù)脈沖(即CNTB),因為要與8位正弦波作比較,所以三角波幅值用對應(yīng)的8位二進制數(shù)表示為-128~127(即A);process(cnt,va)負責第1相的正弦波與三角波比較,判斷對應(yīng)輸出;process(cnt,vb)負責第2相的正弦波與三角波比較,判斷對應(yīng)輸出;process(cnt,vc)負責第3相的正弦波與三角波比較,判斷對應(yīng)輸出。
三相PWM電路的仿真波形圖如圖6所示。
3.2 Dead-time死區(qū)時間產(chǎn)生電路的軟件實現(xiàn)
Dead-time死區(qū)時間產(chǎn)生電路的VHDL實現(xiàn)代碼如下所示:
entity dead_time is ----死區(qū)時間產(chǎn)生電路entity聲明,4輸入信號,2輸出信號
port(RST,CLK1,pwm_on,pwm_off:in STD_LOGIC;
pwm_on_dt,pwm_off_dt:out STD_LOGIC);
end dead_time;
architecture RTL of dead_time is ----死區(qū)時間產(chǎn)生電路的邏輯功能描述
……
process(CLK1,RST,pwm_on,pwm_off)
begin
……
end process;
end RTL;
Dead-time死區(qū)時間產(chǎn)生電路實現(xiàn)原理如圖1所示,VHDL實現(xiàn)代碼有RST、CLK1、pwm_on、pwm_off 4個輸入信號,pwm_on_dt,pwm_off_dt 2個輸出信號。對于a點的2個MOS管s1、s2,當輸入控制命令pwm_a_on為0、pwm_a_off為1時,s1管截止,s2管導通;當輸入控制命令pwm_a_on 由0變?yōu)?,pwm_a_off由1變?yōu)?時,s1管將由截止變?yōu)閷?,而s2管由導通變?yōu)榻刂?。由于turn-on時間小于turn-off時間,在2個MOS管狀態(tài)變化時,可能會產(chǎn)生短路現(xiàn)象,即不能確保2個MOS管之間達到狀態(tài)互補,因此需要對輸入控制信號做出Dead-time時間的輸入補償。具體做法如代碼所示,當MOS管由截止變導通時,應(yīng)使MOS管延遲Dead-time時間導通,即pwm_on信號延遲為pwm_on_dt輸出,pwm_off信號同理延遲為pwm_off_dt輸出,避免短路的發(fā)生。pwm控制命令加入Dead-time前后的時序圖如圖7所示,Dead-time死區(qū)時間產(chǎn)生電路仿真波形如圖8所示。
4 實驗結(jié)果
將上述數(shù)字伺服控制系統(tǒng)在Quartus II上經(jīng)過仿真編譯后,下載到Altera DE2開發(fā)板,從而驗證對交流電動機的轉(zhuǎn)速控制。當頻率輸入命令取10 Hz和20 Hz時,SPWM控制信號驅(qū)動逆變器產(chǎn)生的電流響應(yīng)分別如圖9(a)和圖9(b)所示。
實驗結(jié)果表明該伺服控制系統(tǒng)可實現(xiàn)對交流電動機的轉(zhuǎn)速控制。
本文提出了一個基于FPGA的交流電動機伺服控制系統(tǒng)的設(shè)計方案,該伺服控制系統(tǒng)利用SPWM原理進行控制,通過驅(qū)動三相逆變器,從而達到控制三相交流電動機轉(zhuǎn)速的目的。實驗表明,該伺服控制系統(tǒng)設(shè)計方案能較好地實現(xiàn)交流電動機的轉(zhuǎn)速控制,且結(jié)構(gòu)簡單,易于實現(xiàn)。
參考文獻
[1] ZHANG Kai, KANGYong, XIONG Jian, et al, Repetitive waveform correction technique for CVCF-SPWM inverters[J].2000 IEEE 31 st Annual, vol.1 , P153-158.
[2] 嚴帥,楊明,貴獻國,等.基于DSP和FPGA的永磁交流伺服系統(tǒng)研究[J].微電機,2007,40(4):28-31.
[3] JUNG S L, CHANG M Y, JYANG J.Y, Design and implementation of an FPGA-based control IC for AC-voltage regulation[J].IEEE Trans. Power Electron.,1999, 14(3):522-532.
[4] TSAI M F,CHEN H C. Design and implementation of a CPLD-based SVPWM ASIC for variable-speed control of AC motor drives[J].IEEE PEDS’01, Bali, Indonesia ,2001,322-328.
[5] PEIDYNI F, BOGLIETTI A, GRIVA G.et al.Space vector and sinusoidal PWM techniques comparison keeping in account the secondary effects[J].AFRICON ’92 Proceedings., 3 rd AFRICON Conference :394-399.
[6] XU Xiang Lian,ZOU Yun Ping,DING Kai,et al.A Sstatcom based on cascade multilevel inverter with phase-shift SPWM[J], Power System Technology ,2004 International Conference, vol. 1:145-149.
[7] Tzou Y Y,HSU H J, FPGA-based SVPWM control IC for PWM inverters[J], IEEE Transaction on. Power Electronics, vol .12:953-963.
[8] 楊貴杰, 孫力, 崔乃政.空間矢量脈沖調(diào)制方法的研究[J].中國電機工程學報, 2001, 21(5): 79-83.