常周林
(廣東科技學院 機電工程系 廣東 東莞 523083)
機器人云臺控制中的PID技術應用
常周林
(廣東科技學院 機電工程系 廣東 東莞 523083)
PID是控制理論中一種最主流的控制算法,其優(yōu)點就是簡單高效,很多高級的控制算法也都是在PID的基礎上進行優(yōu)化和演變而來。在比賽機器人控制系統(tǒng)中,PID 被應用在很多場景下的運動狀態(tài)控制。運用PID技術控制機器或是機器人,系統(tǒng)可以通過MATLAB仿真驗證PID的控制效果。
機器人;云臺控制;PID實現(xiàn)
在日常生活中,我們每家每戶都有用的恒溫電器。比如空調(diào)、冰箱和電磁爐等,這些電器都能夠?qū)⒆约旱墓ぷ鳝h(huán)境穩(wěn)定在某一個溫度。我們設置空調(diào)為26℃,它就能將室內(nèi)溫度保持在26℃左右而不會是16℃;設置電磁爐為180℃,它也不會燒到280℃。這背后其實隱藏的,是一雙無形的手在控制著它們的工作,那就是PID(Proportion Integration Differentiation)控制技術。
在RoboMaster比賽中,為了讓機器人的槍口可以在一定角度內(nèi)自由調(diào)整,同時為了保證在不平坦的場地運行時,發(fā)射機構(gòu)能盡量穩(wěn)定,就會在機器人的底盤上加裝一套云臺。賽場上的云臺大多數(shù)是由無刷電機驅(qū)動的。通過改變電機的電流大小,可以調(diào)整電機運行的速度;通過改變電機的電流正負,可以調(diào)整電機的轉(zhuǎn)動方向。同時,電機內(nèi)部還有傳感器在記錄電機的轉(zhuǎn)動位置,再加上一定的算法處理,就可以知道云臺應該擺在哪個方向,也就是實際角度值。知道了實際角度,機器人身上的控制器(主控)再發(fā)送電流值給云臺電機,云臺就可以接近完美地擺到目標角度。
如果給云臺電機發(fā)送很大的電流值,云臺就可以快速往指定的方向運行,但這樣很容易剎不住車,超過預期的目標位置;如果發(fā)送的電流太小,又會導致云臺行動慢吞吞,跟不上大能量機關的數(shù)字刷新。因此,還要平衡云臺的速度和精確度。有效的辦法就是,根據(jù)距離目標值的遠近來調(diào)節(jié)云臺的速度,離得遠就轉(zhuǎn)快一些,離得近就慢一些。這樣就需要我們實時獲取云臺當前的實際角度,然后和目標角度做對比,根據(jù)差值來動態(tài)地調(diào)整云臺的速度和方向。只根據(jù)上述的參數(shù)來調(diào)節(jié)還不足以達到云臺控制的理想性能,為了讓云臺實現(xiàn)快速響應、減小誤差、消除擾動,在實際控制過程中我們需要使用PID控制器。
云臺運動一般采用閉環(huán)控制系統(tǒng),控制原理如圖1所示。主控獲得云臺電機的實時位置和目標位置后,告訴云臺電機應該怎么走。云臺的實際坐標被陀螺儀/編碼器(檢測裝置)記錄下來實時發(fā)送給控制器(主控),控制器獲知目標坐標后,通過計算得出目標電流值發(fā)送給云臺電機,云臺電機就運動一定角度。電機運動云臺實際坐標會改變,主控就知道接下來還差多少角度,再計算發(fā)送電流值,如此循環(huán)。
圖1 閉環(huán)PID控制系統(tǒng)原理圖
一般機器人比賽中的 PID 控制算法側(cè)重于軟件實現(xiàn)。在賽場上,PID 也同樣被應用在很多場景下的機器人狀態(tài)控制。下面是用PID 技術來控制云臺的軟件實現(xiàn)方法。我們可以用偽代碼描述一下其三個環(huán)節(jié)的工作:
{
本次誤差=目標值-實際值
P輸出o=Kpo*本次誤差
I輸出o+=oKi*本次誤差
D輸出o=Kdo*(本次誤差-上次誤差)/*由于軟件實現(xiàn)是個離散的,故用差分代替微分*/
PID輸出=P輸出+I輸出+D輸出
上次誤差=本次誤差o/*每次循環(huán)結(jié)束前記得更新上次誤差值喲~*/
}
在MATLAB中的Simulink組件中,可以找到用來仿真含有PID的系統(tǒng),下面我們通過一次仿真驗證PID的控制效果。
在PID控制器中僅改變Kpo的值,Kd、Kio保持為0,如圖2所示,通過示波器波形我們可以發(fā)現(xiàn):
圖2 改變Kp 時控制系統(tǒng)仿真波形圖
通過調(diào)節(jié)oKpo我們可以改變系統(tǒng)的響應速度及系統(tǒng)的穩(wěn)態(tài)誤差,隨著oKpo的增大,系統(tǒng)相應速度加快,靜態(tài)誤差也逐漸減小。聽起來似乎oKpo是越大越好,其實不然,Kpo的增大時系統(tǒng)的截止頻率隨之增大,但相頻特性不受oKpo影響,因此系統(tǒng)的相位裕度也會隨之減小,系統(tǒng)穩(wěn)定性減弱。
由于僅僅有比例環(huán)節(jié)無法消除系統(tǒng)靜態(tài)誤差,我們給系統(tǒng)加入積分環(huán)節(jié)。保持oKp=10,Kd=0,改變oKio的值,如圖3所示。
圖3 改變Ki 時控制系統(tǒng)仿真波形圖
通過示波器波形我們可以看到oKi過小時消除穩(wěn)態(tài)誤差所需時間較長,而oKi過大時則會引起系統(tǒng)振蕩。積分環(huán)節(jié)可以提高系統(tǒng)類型,消除穩(wěn)態(tài)誤差,但同時積分環(huán)節(jié)引入了-90°相位,降低了系統(tǒng)的穩(wěn)定性,Kio調(diào)節(jié)不當時甚至會造成系統(tǒng)不穩(wěn)定。
最后我們加上微分環(huán)節(jié),保持oKp=10,Ki=10,改變Kdo的值,如圖4所示。
圖4 改變Kd 時控制系統(tǒng)仿真波形圖
由示波器波形我們可以看出提高oKdo加快系統(tǒng)的動態(tài)響應,但是oKdo過大時在系統(tǒng)進入穩(wěn)態(tài)后會放大噪聲,減小系統(tǒng)的抗干擾能力。
由于PID結(jié)構(gòu)簡單、魯棒性好和可靠性高等優(yōu)點,是迄今為止自動控制中應用最為廣泛的控制方法。從近在身邊的空調(diào)溫度調(diào)節(jié),到遠在太空的宇宙飛船,都離不開PID。PID算法是最為經(jīng)典的控制理論,也是一種樸素簡單卻非常實用的算法。
[1]姚俊,謝克明.自動控制原理[M]電子工業(yè)出版社,2004年.
[2]張錫忠.淺析機電自動控制技術的應用[J].機電信息,2012(03).
[3]姚俊,馬松輝.Simulink建模與仿真[M]西安電子科技大學出版社,2004年.
[4]王科.自動控制技術的現(xiàn)狀及發(fā)展趨勢[J].中國科技信息,2011(20).
TP242 【文獻標識碼】A 【文章編號】1009-5624(2018)02-0061-03