直流電機(jī)高精度數(shù)字控制系統(tǒng)
2.1.2電機(jī)的速度控制程序
如圖6所示,電機(jī)速度控制中,ATmega128接收PC機(jī)發(fā)來的電機(jī)目標(biāo)速度,根據(jù)速度方向驅(qū)動(dòng)電機(jī)轉(zhuǎn)向,其定時(shí)器計(jì)算出實(shí)際速度后和目標(biāo)速度比較,相應(yīng)地增大或減小PWM占空比,改變速度大小,直到電機(jī)運(yùn)行在期望的速度上。
程序運(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),通過全數(shù)字直流伺服驅(qū)動(dòng)器上驅(qū)動(dòng)電機(jī),測(cè)得角度控制的穩(wěn)態(tài)誤差是±0.004 rad,速度控制的動(dòng)態(tài)誤差是±0.008 rad/s。可見本系統(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ā)來的實(shí)時(shí)角度和速度并以曲線形式顯示。控制界面基于對(duì)話框的結(jié)構(gòu),使用VC自帶的MSComm控件和單片機(jī)通信[4]。該控件重要屬性設(shè)置如下:
①本文使用PC機(jī)的串口1通信,故串口編號(hào)CommPort設(shè)置為1;
②設(shè)單片機(jī)發(fā)來的一個(gè)有效角度或速度數(shù)據(jù)的字節(jié)數(shù)為n,則從輸入緩沖區(qū)一次讀取的字節(jié)數(shù)InputLen屬性設(shè)置為n;
③輸入緩沖區(qū)長度InBufferSize設(shè)置為n的整數(shù)倍,防止讀取數(shù)據(jù)出錯(cuò);
④產(chǎn)生接收事件的閾值RThreadshold設(shè)置為n,表示緩沖區(qū)中有一個(gè)及以上有效數(shù)據(jù)時(shí)就接收;
⑤輸出緩沖區(qū)長度OutBufferSize設(shè)置為n的整數(shù)倍;
⑥產(chǎn)生發(fā)送事件的閾值RThreadshold設(shè)置為n。
以上屬性設(shè)置完畢后打開串口,在事件驅(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ī)速度方向的改變。
本文提出一種直流電機(jī)高精度數(shù)字控制系統(tǒng)的實(shí)現(xiàn)方法,設(shè)計(jì)了PC機(jī)上的控制界面。該系統(tǒng)硬件結(jié)構(gòu)簡單可靠、性價(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)蘩?劉書智.Visual C++實(shí)踐與提高.串口通信與工程應(yīng)用篇[M].北京:中國鐵道出版社,2006:21-45.
pwm相關(guān)文章:pwm是什么
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評(píng)論