《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的交流電動(dòng)機(jī)伺服控制系統(tǒng)的設(shè)計(jì)
基于FPGA的交流電動(dòng)機(jī)伺服控制系統(tǒng)的設(shè)計(jì)
陳炳成,謝 云,蔡述庭
摘要: 提出了一個(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 伺服控制 SPWM
Abstract:
Key words :

  摘 要: 提出了一個(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]。基于FPGA的、以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)榻刂埂S捎趖urn-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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。