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