直流電機高精度數字控制系統
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.
pwm相關(guān)文章:pwm是什么
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評論