《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于AVR的直流電機高精度數(shù)字控制系統(tǒng)
基于AVR的直流電機高精度數(shù)字控制系統(tǒng)
來源:微型機與應(yīng)用2010年第24期
薛沛祥,, 袁少強
(北京航空航天大學(xué) 自動化科學(xué)與電氣工程學(xué)院, 北京100191)
摘要: 提出了一種基于微控制器Atmega128,、CPLD技術(shù)和電機驅(qū)動芯片HIP4080的直流電機數(shù)字控制系統(tǒng)的實現(xiàn)方法,。該系統(tǒng)實現(xiàn)對電機角度和速度的高精度控制,,并可在PC機界面上觀察電機狀態(tài),。
關(guān)鍵詞: avr Atmega128 CPLD 直流電機 VC界面
Abstract:
Key words :

摘  要:提出了一種基于微控制器Atmega128,、CPLD技術(shù)和電機驅(qū)動芯片HIP4080的直流電機數(shù)字控制系統(tǒng)的實現(xiàn)方法,。該系統(tǒng)實現(xiàn)對電機角度和速度的高精度控制,,并可在PC機界面上觀察電機狀態(tài),。
關(guān)鍵詞: Atmega128,; CPLD; 直流電機,; VC界面

    本控制系統(tǒng)以永磁式直流力矩電機為對象,,其額定工作電壓為27 V,,堵轉(zhuǎn)電流為5 A,最大轉(zhuǎn)速為900 r/min,。
    控制系統(tǒng)硬件平臺采用ATMEL公司的Atmega128單片機和ALTERA公司的EPM7128系列CPLD芯片以及直流電機控制芯片HIP4080,。在硬件平臺上運行電機轉(zhuǎn)動角度和速度的控制程序,實現(xiàn)高精度控制,,并在PC機界面上觀察電機狀態(tài),。該系統(tǒng)具有精度高和通用性良好等特點,在性價比方面有很大優(yōu)勢,,可以應(yīng)用于教學(xué)實驗,。
1 控制系統(tǒng)的硬件設(shè)計
1.1 系統(tǒng)硬件結(jié)構(gòu)

    本系統(tǒng)主要由微控制器外圍電路、旋轉(zhuǎn)編碼器信號檢測電路和電機驅(qū)動電路構(gòu)成,。系統(tǒng)的硬件結(jié)構(gòu)如圖1所示,。電機的控制邏輯由Atmega128實現(xiàn)。單片機采集CPLD對旋轉(zhuǎn)編碼器脈沖的計數(shù)值,,得到電機轉(zhuǎn)動角度進而計算速度,,將來自PC機的目標轉(zhuǎn)動角度和目標速度代入控制算法中運算,根據(jù)運算結(jié)果向驅(qū)動電路發(fā)送PWM和方向信號,驅(qū)動電機向期望的方向轉(zhuǎn)動或者運行在期望的速度上,。

1.2 微控制器外圍電路的硬件設(shè)計
    主要由Atmega128,、下載電路和串口通信電路等組成。單片機實現(xiàn)控制功能,,并通過串口接收PC機的指令并將電機的轉(zhuǎn)動角度和速度發(fā)送給PC機實時顯示,。
    Atmega128單片機是一種高性能、低功耗的8位微處理器,,指令大多數(shù)可以在一個時鐘周期內(nèi)完成,,執(zhí)行速度快[1],其接口豐富,,性價比高,。
1.3 旋轉(zhuǎn)編碼器信號檢測電路的硬件設(shè)計
    該電路的功能是采集編碼器信號,計算電機的角度和速度并傳輸給單片機,。該電路設(shè)計采用三個思路[2]:(1)采用分立元器件及一些門電路,,但使用的元件較多,影響電路的穩(wěn)定性,; (2)脈沖信號直接連接到單片機的計數(shù)器輸入端,,由軟件進行鑒向和計數(shù),但加重了單片機負擔,,還可能會出現(xiàn)漏計或誤計現(xiàn)象,;(3)采用編碼器專用芯片,如奎克半導(dǎo)體的編碼器四倍頻和計數(shù)芯片,,但專用芯片價格頗高,,不經(jīng)濟,。
    因此,本文選用CPLD芯片EPM7128SLC84,用—片芯片實現(xiàn)增量式編碼器信號四倍頻和雙向計數(shù),,簡化硬件電路設(shè)計,,提高系統(tǒng)的精度和可靠性。該芯片具有128個邏輯宏單元,,完全滿足需要,;它具有ISP在系統(tǒng)可編程功能,可以對硬件進行重新配置,,方便系統(tǒng)后期擴展,。
    如圖2所示,光耦將旋轉(zhuǎn)編碼器A、B兩相脈沖信號與CPLD的信號隔離,,防止EPM7128和旋轉(zhuǎn)編碼器的工作電壓不匹配,。EPM7128對A、B兩相脈沖信號進行四倍頻和雙向可逆計數(shù)的硬件描述程序可參考文獻[2],。圖中Lock是單片機發(fā)送給EPM7128的計數(shù)值鎖存信號,Chose0和Chose1是位選信號,,控制EPM7128將鎖存的計數(shù)值的高8位和低8位分時發(fā)送到數(shù)據(jù)線Data0~Data7上,。若編碼器輸出脈沖數(shù)為N,則系統(tǒng)的精度可以達到π/2N弧度,。

1.4 電機的驅(qū)動電路硬件設(shè)計
    用單片機的PWM輸出對電機控制是實現(xiàn)電機數(shù)字控制的常用手段,。目前常用的電機控制專用芯片是NS公司的LMD18200,其工作電壓55 V,,連續(xù)輸出電流3 A,,可接收300 kHz的PWM脈沖,但是本系統(tǒng)選用的直流力矩電機經(jīng)常工作在堵轉(zhuǎn)狀態(tài),,LMD18200不能提供持續(xù)的5 A電流,,若將LMD18200并聯(lián)來增大電流驅(qū)動能力,又有燒壞芯片的風(fēng)險,,所以本文選擇由一片HIP4080,、4片MOS管IRF540構(gòu)成的電機驅(qū)動電路,如圖3所示,。
    HIP4080是一款專門用于控制H橋的高頻全橋驅(qū)動芯片,,正常工作電壓12 V,可接收高達1 MHz的PWM信號[3],。該芯片可以控制H橋工作在單極性驅(qū)動方式,,可以使H橋輸出電流波動比較小,功率損耗更低,。H橋由4片MOS管IRF540搭成,,IRF540最大耐壓100 V,,最大驅(qū)動電流是28 A,勝任直流力矩電機經(jīng)常工作在堵轉(zhuǎn)狀態(tài),。如圖3所示,,HIP4080接收單片機的PWM、電機轉(zhuǎn)向DIR和制動信號DIS,,控制H橋電路MOS管的導(dǎo)通時間和導(dǎo)通次序,,從而控制電機兩端電壓的大小和方向,實現(xiàn)電機的調(diào)速,。

    圖4所示是驅(qū)動電路接入負載時,,輸入PWM信號的占空比和輸出電壓的實測關(guān)系曲線??梢钥闯鲈撾娐返妮斎胼敵鲫P(guān)系線性度良好,,適用于直流力矩電機的驅(qū)動。

    綜上所述,,微控制器,、編碼器信號檢測電路和電機驅(qū)動電路采用數(shù)字電路實現(xiàn)。
2 控制系統(tǒng)的軟件設(shè)計
    本系統(tǒng)的軟件主要包括控制性能驗證程序設(shè)計和PC機上界面的VC程序設(shè)計,。
2.1 控制精度驗證程序
    基于以上硬件平臺,,采用普通算法編寫電機轉(zhuǎn)動角度和速度的控制程序,觀察控制效果,,驗證控制性能,。
2.1.1電機轉(zhuǎn)動角度控制程序
    如圖5所示,轉(zhuǎn)動角度控制中Atmega128的串口接收PC機發(fā)來的電機目標轉(zhuǎn)動角度,。在主程序中將EPM7128發(fā)送來的電機的當前轉(zhuǎn)動角度與目標轉(zhuǎn)動角度比較,,控制電機相應(yīng)的轉(zhuǎn)動或制動,直到電機轉(zhuǎn)到指定位置,。

2.1.2電機的速度控制程序
    如圖6所示,電機速度控制中,,ATmega128接收PC機發(fā)來的電機目標速度,根據(jù)速度方向驅(qū)動電機轉(zhuǎn)向,其定時器計算出實際速度后和目標速度比較,,相應(yīng)地增大或減小PWM占空比,,改變速度大小,直到電機運行在期望的速度上,。

    程序運行后,實際測得角度控制的穩(wěn)態(tài)誤差在±0.005 7 rad,,速度控制的動態(tài)誤差在±0.013 1 rad/s,具有較高的精度和穩(wěn)定性,。在實際使用中,,可以采用先進算法編制控制程序,進一步提高系統(tǒng)的控制性能。
    作為比較,,將相同的控制算法在PC上實現(xiàn),,通過全數(shù)字直流伺服驅(qū)動器上驅(qū)動電機,測得角度控制的穩(wěn)態(tài)誤差是±0.004 rad,,速度控制的動態(tài)誤差是±0.008 rad/s,。可見本系統(tǒng)的控制精度與伺服驅(qū)動器的控制精度接近,,而成本低于后者,,具有很大優(yōu)勢。
2.2  PC機控制界面的VC程序設(shè)計
  PC機控制界面將目標轉(zhuǎn)動角度和速度發(fā)送給單片機,,同時接收單片機發(fā)來的實時角度和速度并以曲線形式顯示,。控制界面基于對話框的結(jié)構(gòu),,使用VC自帶的MSComm控件和單片機通信[4],。該控件重要屬性設(shè)置如下:
  ①本文使用PC機的串口1通信,故串口編號CommPort設(shè)置為1,;
  ②設(shè)單片機發(fā)來的一個有效角度或速度數(shù)據(jù)的字節(jié)數(shù)為n,,則從輸入緩沖區(qū)一次讀取的字節(jié)數(shù)InputLen屬性設(shè)置為n;
  ③輸入緩沖區(qū)長度InBufferSize設(shè)置為n的整數(shù)倍,,防止讀取數(shù)據(jù)出錯,;
  ④產(chǎn)生接收事件的閾值RThreadshold設(shè)置為n,表示緩沖區(qū)中有一個及以上有效數(shù)據(jù)時就接收,;
  ⑤輸出緩沖區(qū)長度OutBufferSize設(shè)置為n的整數(shù)倍;
  ⑥產(chǎn)生發(fā)送事件的閾值RThreadshold設(shè)置為n,。
    以上屬性設(shè)置完畢后打開串口,,在事件驅(qū)動函數(shù)中接收數(shù)據(jù),依次將其轉(zhuǎn)換為繪圖設(shè)備區(qū)域中Y軸上的像素值,,同時順序連接各點繪制曲線并更新,,實時表示電機轉(zhuǎn)動角度和速度的變化。如圖7所示,,是電機速度控制界面的截圖,,橫軸表示時間,縱軸表示轉(zhuǎn)速,,曲線的跳躍是電機速度方向的改變,。

    本文提出一種直流電機高精度數(shù)字控制系統(tǒng)的實現(xiàn)方法,設(shè)計了PC機上的控制界面,。該系統(tǒng)硬件結(jié)構(gòu)簡單可靠,、性價比高,系統(tǒng)可以達到很高的控制精度,并進行了軟件驗證,,采用先進算法后可以進一步提高控制性能,。
參考文獻
[1] ATMEL. ATmega128 Data Sheet.Rev.2467R-AVR-06/08.
[2] 史曉娟,李海芹.基于CPLD的四倍頻鑒相計數(shù)電路在運動控制器中的應(yīng)用[J].制造技術(shù)與機床,2008(6):85-87.
[3] INTERSIL. HIP4080A Data Sheet. www.int-ersil.com.
[4] 張筠莉,劉書智.Visual C++實踐與提高.串口通信與工程應(yīng)用篇[M].北京:中國鐵道出版社,2006:21-45.

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