<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

          作者: 時(shí)間:2011-04-06 來(lái)源:網(wǎng)絡(luò) 收藏

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

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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

          基于AVR的直流電機(jī)高精度數(shù)字控制系統(tǒng)

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();