直流電機高精度數(shù)字控制系統(tǒng)
2.1.2電機的速度控制程序
如圖6所示,電機速度控制中,ATmega128接收PC機發(fā)來的電機目標速度,根據(jù)速度方向驅動電機轉向,其定時器計算出實際速度后和目標速度比較,相應地增大或減小PWM占空比,改變速度大小,直到電機運行在期望的速度上。
程序運行后,實際測得角度控制的穩(wěn)態(tài)誤差在±0.005 7 rad,速度控制的動態(tài)誤差在±0.013 1 rad/s,具有較高的精度和穩(wěn)定性。在實際使用中,可以采用先進算法編制控制程序,進一步提高系統(tǒng)的控制性能。
作為比較,將相同的控制算法在PC上實現(xiàn),通過全數(shù)字直流伺服驅動器上驅動電機,測得角度控制的穩(wěn)態(tài)誤差是±0.004 rad,速度控制的動態(tài)誤差是±0.008 rad/s。可見本系統(tǒng)的控制精度與伺服驅動器的控制精度接近,而成本低于后者,具有很大優(yōu)勢。
2.2 PC機控制界面的VC程序設計
PC機控制界面將目標轉動角度和速度發(fā)送給單片機,同時接收單片機發(fā)來的實時角度和速度并以曲線形式顯示。控制界面基于對話框的結構,使用VC自帶的MSComm控件和單片機通信[4]。該控件重要屬性設置如下:
①本文使用PC機的串口1通信,故串口編號CommPort設置為1;
②設單片機發(fā)來的一個有效角度或速度數(shù)據(jù)的字節(jié)數(shù)為n,則從輸入緩沖區(qū)一次讀取的字節(jié)數(shù)InputLen屬性設置為n;
③輸入緩沖區(qū)長度InBufferSize設置為n的整數(shù)倍,防止讀取數(shù)據(jù)出錯;
④產(chǎn)生接收事件的閾值RThreadshold設置為n,表示緩沖區(qū)中有一個及以上有效數(shù)據(jù)時就接收;
⑤輸出緩沖區(qū)長度OutBufferSize設置為n的整數(shù)倍;
⑥產(chǎn)生發(fā)送事件的閾值RThreadshold設置為n。
以上屬性設置完畢后打開串口,在事件驅動函數(shù)中接收數(shù)據(jù),依次將其轉換為繪圖設備區(qū)域中Y軸上的像素值,同時順序連接各點繪制曲線并更新,實時表示電機轉動角度和速度的變化。如圖7所示,是電機速度控制界面的截圖,橫軸表示時間,縱軸表示轉速,曲線的跳躍是電機速度方向的改變。
本文提出一種直流電機高精度數(shù)字控制系統(tǒng)的實現(xiàn)方法,設計了PC機上的控制界面。該系統(tǒng)硬件結構簡單可靠、性價比高,系統(tǒng)可以達到很高的控制精度,并進行了軟件驗證,采用先進算法后可以進一步提高控制性能。
參考文獻
[1] ATMEL. ATmega128 Data Sheet.Rev.2467R-AVR-06/08.
[2] 史曉娟,李海芹.基于CPLD的四倍頻鑒相計數(shù)電路在運動控制器中的應用[J].制造技術與機床,2008(6):85-87.
[3] INTERSIL. HIP4080A Data Sheet. www.int-ersil.com.
[4] 張筠莉,劉書智.Visual C++實踐與提高.串口通信與工程應用篇[M].北京:中國鐵道出版社,2006:21-45.
pwm相關文章:pwm是什么
脈沖點火器相關文章:脈沖點火器原理
評論