基于A(yíng)VR的直流電機高精度數字控制系統
本控制系統以永磁式直流力矩電機為對象,其額定工作電壓為27 V,堵轉電流為5 A,最大轉速為900 r/min。
控制系統硬件平臺采用ATMEL公司的Atmega128單片機和ALTERA公司的EPM7128系列CPLD芯片以及直流電機控制芯片HIP4080。在硬件平臺上運行電機轉動(dòng)角度和速度的控制程序,實(shí)現高精度控制,并在PC機界面上觀(guān)察電機狀態(tài)。該系統具有精度高和通用性良好等特點(diǎn),在性?xún)r(jià)比方面有很大優(yōu)勢,可以應用于教學(xué)實(shí)驗。
1 控制系統的硬件設計
1.1 系統硬件結構
本系統主要由微控制器外圍電路、旋轉編碼器信號檢測電路和電機驅動(dòng)電路構成。系統的硬件結構如圖1所示。電機的控制邏輯由Atmega128實(shí)現。單片機采集CPLD對旋轉編碼器脈沖的計數值,得到電機轉動(dòng)角度進(jìn)而計算速度,將來(lái)自PC機的目標轉動(dòng)角度和目標速度代入控制算法中運算,根據運算結果向驅動(dòng)電路發(fā)送PWM和方向信號,驅動(dòng)電機向期望的方向轉動(dòng)或者運行在期望的速度上。
1.2 微控制器外圍電路的硬件設計
主要由Atmega128、下載電路和串口通信電路等組成。單片機實(shí)現控制功能,并通過(guò)串口接收PC機的指令并將電機的轉動(dòng)角度和速度發(fā)送給PC機實(shí)時(shí)顯示。
Atmega128單片機是一種高性能、低功耗的8位微處理器,指令大多數可以在一個(gè)時(shí)鐘周期內完成,執行速度快[1],其接口豐富,性?xún)r(jià)比高。
1.3 旋轉編碼器信號檢測電路的硬件設計
該電路的功能是采集編碼器信號,計算電機的角度和速度并傳輸給單片機。該電路設計采用三個(gè)思路[2]:(1)采用分立元器件及一些門(mén)電路,但使用的元件較多,影響電路的穩定性; (2)脈沖信號直接連接到單片機的計數器輸入端,由軟件進(jìn)行鑒向和計數,但加重了單片機負擔,還可能會(huì )出現漏計或誤計現象;(3)采用編碼器專(zhuān)用芯片,如奎克半導體的編碼器四倍頻和計數芯片,但專(zhuān)用芯片價(jià)格頗高,不經(jīng)濟。
因此,本文選用CPLD芯片EPM7128SLC84,用—片芯片實(shí)現增量式編碼器信號四倍頻和雙向計數,簡(jiǎn)化硬件電路設計,提高系統的精度和可靠性。該芯片具有128個(gè)邏輯宏單元,完全滿(mǎn)足需要;它具有ISP在系統可編程功能,可以對硬件進(jìn)行重新配置,方便系統后期擴展。
如圖2所示,光耦將旋轉編碼器A、B兩相脈沖信號與CPLD的信號隔離,防止EPM7128和旋轉編碼器的工作電壓不匹配。EPM7128對A、B兩相脈沖信號進(jìn)行四倍頻和雙向可逆計數的硬件描述程序可參考文獻[2]。圖中Lock是單片機發(fā)送給EPM7128的計數值鎖存信號,Chose0和Chose1是位選信號,控制EPM7128將鎖存的計數值的高8位和低8位分時(shí)發(fā)送到數據線(xiàn)Data0~Data7上。若編碼器輸出脈沖數為N,則系統的精度可以達到π/2N弧度。
1.4 電機的驅動(dòng)電路硬件設計
用單片機的PWM輸出對電機控制是實(shí)現電機數字控制的常用手段。目前常用的電機控制專(zhuān)用芯片是NS公司的LMD18200,其工作電壓55 V,連續輸出電流3 A,可接收300 kHz的PWM脈沖,但是本系統選用的直流力矩電機經(jīng)常工作在堵轉狀態(tài),LMD18200不能提供持續的5 A電流,若將LMD18200并聯(lián)來(lái)增大電流驅動(dòng)能力,又有燒壞芯片的風(fēng)險,所以本文選擇由一片HIP4080、4片MOS管IRF540構成的電機驅動(dòng)電路,如圖3所示。
HIP4080是一款專(zhuān)門(mén)用于控制H橋的高頻全橋驅動(dòng)芯片,正常工作電壓12 V,可接收高達1 MHz的PWM信號[3]。該芯片可以控制H橋工作在單極性驅動(dòng)方式,可以使H橋輸出電流波動(dòng)比較小,功率損耗更低。H橋由4片MOS管IRF540搭成,IRF540最大耐壓100 V,最大驅動(dòng)電流是28 A,勝任直流力矩電機經(jīng)常工作在堵轉狀態(tài)。如圖3所示,HIP4080接收單片機的PWM、電機轉向DIR和制動(dòng)信號DIS,控制H橋電路MOS管的導通時(shí)間和導通次序,從而控制電機兩端電壓的大小和方向,實(shí)現電機的調速。
圖4所示是驅動(dòng)電路接入負載時(shí),輸入PWM信號的占空比和輸出電壓的實(shí)測關(guān)系曲線(xiàn)??梢钥闯鲈撾娐返妮斎胼敵鲫P(guān)系線(xiàn)性度良好,適用于直流力矩電機的驅動(dòng)。
綜上所述,微控制器、編碼器信號檢測電路和電機驅動(dòng)電路采用數字電路實(shí)現。
2 控制系統的軟件設計
本系統的軟件主要包括控制性能驗證程序設計和PC機上界面的VC程序設計。
2.1 控制精度驗證程序
基于以上硬件平臺,采用普通算法編寫(xiě)電機轉動(dòng)角度和速度的控制程序,觀(guān)察控制效果,驗證控制性能。
2.1.1電機轉動(dòng)角度控制程序
如圖5所示,轉動(dòng)角度控制中Atmega128的串口接收PC機發(fā)來(lái)的電機目標轉動(dòng)角度。在主程序中將EPM7128發(fā)送來(lái)的電機的當前轉動(dòng)角度與目標轉動(dòng)角度比較,控制電機相應的轉動(dòng)或制動(dòng),直到電機轉到指定位置。
2.1.2電機的速度控制程序
如圖6所示,電機速度控制中,ATmega128接收PC機發(fā)來(lái)的電機目標速度,根據速度方向驅動(dòng)電機轉向,其定時(shí)器計算出實(shí)際速度后和目標速度比較,相應地增大或減小PWM占空比,改變速度大小,直到電機運行在期望的速度上。
程序運行后,實(shí)際測得角度控制的穩態(tài)誤差在±0.005 7 rad,速度控制的動(dòng)態(tài)誤差在±0.013 1 rad/s,具有較高的精度和穩定性。在實(shí)際使用中,可以采用先進(jìn)算法編制控制程序,進(jìn)一步提高系統的控制性能。
作為比較,將相同的控制算法在PC上實(shí)現,通過(guò)全數字直流伺服驅動(dòng)器上驅動(dòng)電機,測得角度控制的穩態(tài)誤差是±0.004 rad,速度控制的動(dòng)態(tài)誤差是±0.008 rad/s??梢?jiàn)本系統的控制精度與伺服驅動(dòng)器的控制精度接近,而成本低于后者,具有很大優(yōu)勢。
2.2 PC機控制界面的VC程序設計
PC機控制界面將目標轉動(dòng)角度和速度發(fā)送給單片機,同時(shí)接收單片機發(fā)來(lái)的實(shí)時(shí)角度和速度并以曲線(xiàn)形式顯示??刂平缑婊趯υ?huà)框的結構,使用VC自帶的MSComm控件和單片機通信[4]。該控件重要屬性設置如下:
①本文使用PC機的串口1通信,故串口編號CommPort設置為1;
②設單片機發(fā)來(lái)的一個(gè)有效角度或速度數據的字節數為n,則從輸入緩沖區一次讀取的字節數InputLen屬性設置為n;
③輸入緩沖區長(cháng)度InBufferSize設置為n的整數倍,防止讀取數據出錯;
④產(chǎn)生接收事件的閾值RThreadshold設置為n,表示緩沖區中有一個(gè)及以上有效數據時(shí)就接收;
⑤輸出緩沖區長(cháng)度OutBufferSize設置為n的整數倍;
⑥產(chǎn)生發(fā)送事件的閾值RThreadshold設置為n。
以上屬性設置完畢后打開(kāi)串口,在事件驅動(dòng)函數中接收數據,依次將其轉換為繪圖設備區域中Y軸上的像素值,同時(shí)順序連接各點(diǎn)繪制曲線(xiàn)并更新,實(shí)時(shí)表示電機轉動(dòng)角度和速度的變化。如圖7所示,是電機速度控制界面的截圖,橫軸表示時(shí)間,縱軸表示轉速,曲線(xiàn)的跳躍是電機速度方向的改變。
本文提出一種直流電機高精度數字控制系統的實(shí)現方法,設計了PC機上的控制界面。該系統硬件結構簡(jiǎn)單可靠、性?xún)r(jià)比高,系統可以達到很高的控制精度,并進(jìn)行了軟件驗證,采用先進(jìn)算法后可以進(jìn)一步提高控制性能。
參考文獻
[1] ATMEL. ATmega128 Data Sheet.Rev.2467R-AVR-06/08.
[2] 史曉娟,李海芹.基于CPLD的四倍頻鑒相計數電路在運動(dòng)控制器中的應用[J].制造技術(shù)與機床,2008(6):85-87.
[3] INTERSIL. HIP4080A Data Sheet. www.int-ersil.com.
[4] 張筠莉,劉書(shū)智.Visual C++實(shí)踐與提高.串口通信與工程應用篇[M].北京:中國鐵道出版社,2006:21-45.
評論