摘 要: 提出了一個基于FPGA的交流電動機伺服控制系統(tǒng)的設計方案。該伺服控制系統(tǒng)利用SPWM原理進行控制,通過驅動三相逆變器,從而達到控制三相交流電動機轉速的目的。實驗結果驗證了該交流電動機伺服控制系統(tǒng)的可行性。
關鍵詞: FPGA ;伺服控制系統(tǒng);SPWM;開關dead-time
由于SPWM逆變器具有輸出波形中低次諧波含量低、噪聲小等優(yōu)點,能將直流電源轉變?yōu)榉€(wěn)定的交流電源,近年來被廣泛地應用在高速和大規(guī)模的工業(yè)控制領域,如UPS不間斷電源系統(tǒng)、ADS可調速驅動系統(tǒng)、可變交流傳動控制系統(tǒng)和交流電機伺服控制系統(tǒng)[1]。
隨著現場可編程門陣列FPGA與數字信號處理器DSP等高性能數字控制芯片的迅速發(fā)展,逆變電路的控制已由模擬控制、模數混合控制過渡到全數字控制階段[2]。采用DSP芯片進行控制,可以提高控制的精確度及穩(wěn)定性,但由于電路要達到足夠的頻率響應,復雜的控制算法,例如電流高速采樣,轉速控制和功率開關觸發(fā)信號的同時產生等,可能會帶來處理器運算量過大以及運算時間長的問題。FPGA具有高速運算和并行處理的特性,能夠克服DSP 芯片帶來的運算量大、占用CPU過多、運算時間長的缺點,所以,以FPGA實現數字電機伺服系統(tǒng)成為首選方案。本文就是利用FPGA芯片,實現SPWM驅動三相逆變器,從而控制三相交流電動機,以達到調整頻率命令進而調整電機轉速的目的[3-4]?;贔PGA的、以SPWM為驅動的伺服控制系統(tǒng)對三相逆變器的控制結構圖如圖1所示。
1 系統(tǒng)原理及模塊設計
1.1 SPWM控制實現
SPWM (Sinusoidal PWM) 是一種比較成熟的、目前使用較廣泛的PWM控制方式。SPWM控制就是以“沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果基本相同”的理論為基礎,用脈沖寬度按正弦規(guī)律變化而和正弦波等效的PWM波形即SPWM波形控制逆變電路中開關器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應區(qū)間內的面積相等,通過改變調制波的頻率和幅值對逆變電路輸出電壓的頻率和幅值進行控制。SPWM的一般實現方法有等面積法、硬件調制法、軟件生成法(包括自然采樣法和規(guī)則采樣法)和低次諧波消除法[5]。這里詳細介紹一下硬件調制法實現SPWM控制。
硬件調制法是為解決等面積法計算繁瑣的缺點而提出的,其原理就是把所希望的波形作為調制信號,把接受調制的信號作為載波,通過對載波的調制得到所期望的PWM波形。通常采用等腰三角波作為載波,當調制信號波為正弦波時,所得到的就是SPWM波形。其實現方法簡單,可以用模擬電路構成三角波載波和正弦調制波發(fā)生電路,用比較器來確定它們的交點,在交點時刻對開關器件的通斷進行控制,就可以生成SPWM波。但是,這種模擬電路結構復雜,難以實現精確的控制。
本文使用的SPWM實現方法,以硬件調制法為基礎,利用VHDL硬件描述語言實現相應模塊,做到全數字控制取代模擬控制,克服傳統(tǒng)硬件調制法模擬電路結構復雜、難以精確控制的缺點。SPWM的具體實現方法可以用一個正弦調制波和一個等腰三角載波相交,由它們的交點確定逆變器的開關模式[6]。如圖2所示,當正弦波大于三角波時,使相應的開關器件導通;當正弦波小于三角波時,使相應開關器件截止。
1.2 三角波產生原理
三角波產生原理如圖3所示,三角載波可以通過加減計數器產生。計數器要求為7位二進制數,三角載波的幅度值為8位二進制數(其中最高位為符號位,1表示正,0表示負)。計數器由clk分頻后產生的div進行觸發(fā)。計數器的幅值為128,計數器先從0遞增到128,符號位為正,此過程的數據與符號位作為三角載波前1/4周期(即0°~90°)的幅度值;接著計數器從128遞減到0,同時符號為正,此過程的數據與符號位作為三角載波第2個1/4周期(即90°~180°)的幅度值;然后計數器從0遞增到128,同時符號為負,此過程的數據與符號位作為三角載波第3個1/4周期(即180°~270°)的幅度值;最后計數器從128遞減到0,同時符號為負,此過程的數據與符號位作為三角載波第4個1/4周期(即270°~360°)的幅度值。此后的波形重復前面4個過程,因此完成一個周期的三角載波需要計數器計算128×4=512次,需要512個計數脈沖div。
1.3 正弦波產生原理
正弦波產生原理與三角波產生原理不同,正弦波不需要通過計數器得到。由于正弦波本身的對稱性,所以可以通過查值表得到波形,且只需要存儲第一個1/4周期(即0°~90°),其余部分可以由對稱性獲得,節(jié)省了資源。根據正弦波的精度要求的不同,可以設定相應的二進制位數將波形進行細分。具體實現方法是:把0°~90°分成若干份(具體份數由數據精度決定,數據位數越多分得的份數越多,精度也越高),每一份對應一個幅值,把對應幅值存儲在寄存器內,其余的部分(90°~360°)通過對稱性得到。因此要得到一定頻率的正弦波,就要控制寄存器地址的產生頻率。而地址發(fā)生器又通過計數器實現,所以只要控制計數脈沖的頻率為某一數值,就可以得到相應頻率的正弦波。
1.4 Dead-time 死區(qū)時間處理
本數字伺服系統(tǒng)產生的PWM波形應能達到同相輸出時上下開關互補,即上關時下開,上開時下關,三相逆變電路如圖1所示。由于功率元件的turn-on時間一般小于turn-off 時間,所以在功率元件狀態(tài)變化時,將出現一段死區(qū),即不能達到同時互補的情況[7]。因此有必要在功率元件狀態(tài)轉換時加入一段死區(qū)時間,以防止出現短路情況,也能實現PWM波形的互補。死區(qū)時間的長短應該根據功率元件的turn-off時間而定,一般設為turn-off時間的2~3倍。
2 系統(tǒng)硬件設計
本文提出的交流電動機伺服控制系統(tǒng)硬件結構如圖4所示,其原理是將產生的三相正弦波與產生的三角波進行比較,從而產生PWM脈寬調制信號,脈寬調制信號再經過Dead-time發(fā)生器和隔離電路,觸發(fā)控制三相逆變電路中的MOS晶體管的通斷[8]。f為外部輸入的改變頻率值的命令或信號,用0~255的8位二進制數表示三相正弦波的頻率值變化輸入信號,三相正弦波頻率值設定在10 Hz~100 Hz。三角波發(fā)生器按照輸出幅度大小設置為-127~128的8位二進制數運算,載波頻率設置為10 kHz。三相正弦波的產生是以VHDL硬件描述語言中的when-else語法建立三相正弦波查值表為基礎來實現的。
3 系統(tǒng)的軟件設計
本文提出的交流電動機伺服控制系統(tǒng)的系統(tǒng)軟件能實現交流電動機的速度控制。交流電動機各模塊采用VHDL語言設計實現,且各模塊通過功能仿真。在這里給出三相PWM電路與Dead-time死區(qū)時間產生電路的代碼實現及其模塊的仿真波形。
3.1 三相PWM電路的軟件實現
三相PWM電路的VHDL實現代碼如下所示:
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) ----三角波產生
……
end process;
process(cnt,va) ----第1相正弦波與三角波比較
……
end process;
process(cnt,vb) ----第2相正弦波與三角波比較
……
end process;
process(cnt,vc) ----第3.相正弦波與三角波比較
……
end process;
end rtl;
三相PWM電路實現原理如圖2和圖4所示,VHDL實現代碼中有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設定為40 MHz,va,vb,vc為三相電壓的pwm控制命令,代表正弦波的幅值,如圖5所示,用8位二進制數表示。pwm_a_on、pwm_a_off、pwm_b_on、pwm_b_off、pwm_c_on 、pwm_c_off為正弦波與三角波比較后,正反相輸出的PWM信號。整個電路功能的實現由4個process來完成,包括process(clk)、process(cnt,va)、process(cnt,vb)和process(cnt,vc)。process(clk)負責利用計數器產生三角波,原理如圖3所示,共用到了512個計數脈沖(即CNTB),因為要與8位正弦波作比較,所以三角波幅值用對應的8位二進制數表示為-128~127(即A);process(cnt,va)負責第1相的正弦波與三角波比較,判斷對應輸出;process(cnt,vb)負責第2相的正弦波與三角波比較,判斷對應輸出;process(cnt,vc)負責第3相的正弦波與三角波比較,判斷對應輸出。
三相PWM電路的仿真波形圖如圖6所示。
3.2 Dead-time死區(qū)時間產生電路的軟件實現
Dead-time死區(qū)時間產生電路的VHDL實現代碼如下所示:
entity dead_time is ----死區(qū)時間產生電路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ū)時間產生電路的邏輯功能描述
……
process(CLK1,RST,pwm_on,pwm_off)
begin
……
end process;
end RTL;
Dead-time死區(qū)時間產生電路實現原理如圖1所示,VHDL實現代碼有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)變化時,可能會產生短路現象,即不能確保2個MOS管之間達到狀態(tài)互補,因此需要對輸入控制信號做出Dead-time時間的輸入補償。具體做法如代碼所示,當MOS管由截止變導通時,應使MOS管延遲Dead-time時間導通,即pwm_on信號延遲為pwm_on_dt輸出,pwm_off信號同理延遲為pwm_off_dt輸出,避免短路的發(fā)生。pwm控制命令加入Dead-time前后的時序圖如圖7所示,Dead-time死區(qū)時間產生電路仿真波形如圖8所示。
4 實驗結果
將上述數字伺服控制系統(tǒng)在Quartus II上經過仿真編譯后,下載到Altera DE2開發(fā)板,從而驗證對交流電動機的轉速控制。當頻率輸入命令取10 Hz和20 Hz時,SPWM控制信號驅動逆變器產生的電流響應分別如圖9(a)和圖9(b)所示。
實驗結果表明該伺服控制系統(tǒng)可實現對交流電動機的轉速控制。
本文提出了一個基于FPGA的交流電動機伺服控制系統(tǒng)的設計方案,該伺服控制系統(tǒng)利用SPWM原理進行控制,通過驅動三相逆變器,從而達到控制三相交流電動機轉速的目的。實驗表明,該伺服控制系統(tǒng)設計方案能較好地實現交流電動機的轉速控制,且結構簡單,易于實現。
參考文獻
[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] 楊貴杰, 孫力, 崔乃政.空間矢量脈沖調制方法的研究[J].中國電機工程學報, 2001, 21(5): 79-83.