蔡 蒂,丁曉飛,曲德宇,張 鐵
(1.廣州供電局有限公司,廣州 510620;2.華南理工大學機械與汽車工程學院,廣州 510640)
移動機器人運動控制系統通常包含2 部分內容,其一是完成所需的控制功能和算法的定義,其二是這些功能在硬件和軟件上的實現[1-2]。運動控制是影響機器人性能的一個重要指標,國內外的很多相關學者都對移動機器人的運動控制系統作了大量的研究。
人們在機器人方面采用多種多樣的控制方式。有的為自主移動機器車設計了一種機器人速度控制系統,整個系統以安全為出發點,以Galil DMC-1000 為該控制系統的主控制器,其能夠完成對環境信息的處理,又能夠使用PID 控制算法完成對驅動電機的控制[3-4];有的團隊設計出一個互耦運動控制器[5],用于對移動機器人2個獨立驅動電機的控制,其控制原理是對驅動電機的控制不僅依賴于環境信息和該電機的運動狀態,而且還參考另一驅動電機的運動狀態,該控制器能減少驅動電機的固有誤差,具有較好的控制效果;又比如一種小型足球機器人TINYPHOON,該機器人控制系統以DSP芯片為控制核心,采用PID 控制算法,有優越的運動控制性能[6-7];還有一種基于單片機結合專用運動控制芯片的移動機器人控制器[8],采用PID控制算法,具有模塊化的優點,但硬件系統不夠簡潔,控制精度也有待提高;關于機器人的運動控制算法的研究,有學者提出了單神經元自適應PID 控制算法和基于Kalman 濾波的PID 控制算法,以及參數自調模糊控制算法[9-11];有的移動機器人采用高性能的ARM7 芯片,滿足所需生成PWM信號的精度要求[12-13]。
機器人的運動控制通常采用PID 控制,也有一些成果介紹了模糊控制。PID和模糊控制各有優缺點,如果使用PID控制,飽和性局限了其使用,另外控制的實時性也不能得到保障[14]。采用模糊控制,控制精度不夠高,不能滿足控制的要求。機器人在運動過程中,各種情況都處在變化之中,比如速度的目標值以及機器人所處的環境都在變化過程之中。除此之外,機器人的轉動慣量和重心也在不斷變化之中,并且其底盤驅動輪的驅動情況也存在差異[15]。
本文結合所研制的輪式移動機器人,提出了一種基于模糊自整定PID 控制的機器人運動軌跡控制方法,并基于通用計算機控制的機器人控制系統進行了實驗驗證。
移動機器人的底盤結構如圖1所示,位于前面的是2個隨動萬向輪,主驅動輪分別是位于后方的左驅動輪和右驅動輪,分別通過減速器同各自的驅動電機相連接。移動機器人的左右驅動輪是固定不可轉向的,并且兩者之間由不同的控制模塊進行控制,可以單獨控制各自的速度,相互獨立;在左右電機上分別安裝速度傳感器,用以獲取驅動輪的速度。
圖1 機器人的底盤結構
圖2 機器人的運動學模型
移動機器人采用獨立雙輪驅動模式,左右的速度控制器通過獨立控制左右驅動輪的轉速來實現機器人前進、后退、轉向等各種基本的動作。
圖2 所示為兩驅動輪的差動式移動機器人在某一時刻的運動示意圖,XOY為絕對坐標系,XvOvYv為機器人車體局部坐標,Vov為機器人質心的線速度,L為兩驅動輪之間的距離,O′為該時刻機器人的速度瞬心,θ為該時刻機器人的姿態角,ωV為該時刻機器人的轉動角速度,VL和VR分別為該時刻左右驅動輪的線速度,R 為該時刻機器人相對于速度瞬心的回轉半徑。
在絕對坐標系中,假定移動機器人的左右兩驅動輪與地面之間無滑動,也沒有側移,則運動學方程為:
用左右驅動輪的線速度來對角速度進行描述:
于是:
車體某一時刻的位姿可以表示為:
由式(2)~(3)可知,當VR(t)和VL(t)相等時,機器人的角速度為0,回轉半徑無窮大,機器人實現直線運動,當機器人的角速度和回轉半徑均不為0,機器人實現向左或向右轉彎運動,當VR(t)=-VL(t)時,機器人的角速度不為0,回轉半徑為0,于是,機器人做原地轉彎運動。由式(4)~(5)可知,通過檢測指定時間內的左右驅動輪的速度,可以計算出某一時刻機器人在工作環境中的位姿。由上面的分析可得,通過控制機器人左右驅動輪的速度就可以很方便地實現機器人的各種運動狀態,進而來跟蹤期望的運動路徑。所研究的機器人的姿態角θ通過電子羅盤獲得,機器人的位移通過機器人的里程計獲得。
把比例、積分和微分集合到一起對操作對象進行控制為PID控制[16],其控制系統的原理如圖3所示。
圖3 PID運動控制系統原理圖
離散的PID表達式為:
式中:k為采樣序號,k=0,1,2,…;u(k)為第k次采樣時刻的計算機輸出值;e(k)為第k次采樣時刻的輸入偏差值;e(k-1)為第k-1 次采樣時刻的輸入偏差值;KI為積分系數KI=KPT/TI;KD為微分系數KD=KPTD/T。
根據遞推方式整理,可以進一步得出增量式PID 的控制算法:
用式(6)減去式(7),可得:
式中:Δe(k)=e(k)-e(k-1)。
在機器人運動控制中,要整定PID參數KP、KI、KD。
移動機器人的具體控制運行過程中,很有多因素是不確定的,控制器參數隨著環境的改變而改變。當被控對象發生變化時,需要調節器參數做出相應的調整。如果采用傳統的PID控制方法,對參數的調整修改需要耗費大量的時間和精力[17]。既要保證控制的實時性又要保證控制的精確度,因此需要結合PID控制和模糊控制[18-19]。本文提出一種模糊參數自整定算法實現PID參數調整。
3.2.1 控制參數模糊控制器結構
在對機器人的控制參數采用模糊控制時,首先會給定一個控制目標,通過移動輪末端的傳感器測得左右輪實際速度,目標轉速和實際轉速作差得轉速偏差。該模糊控制器采用雙輸入單輸出結構,n0(k)為系統給定速度值,n(k)為電機轉速的反饋值;Ee、Eec為e和ec的量化值。
系統的模糊變量一共有3個,分別為:偏差變化率ec、輸入偏差e和控制量u。按照控制原理來看,控制系統中的變量越多,系統的控制精度更高,控制更為精細和復雜,相應的計算量和計算時間也增大,計算難度提高。控制器對偏差、偏差變化率、控制量的模糊集及論域作如下定義。
圖4 控制參數模糊控制器結構
Eec和U的模糊集均為:{正大,負大,正中,負中,正小,負小,零},即{PB,NB,PM,NM,PS,NS,O}。
Ee的模糊集為:{正大,負大,正中,負中,正小,負小,負零,正零},即{PB,NB,PM,NM,PS,NS,NO,PO}。
Ee和Eec的論域均為:{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。
U 的論域為:{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}。
上述的模糊集選取8 個元素。設偏差e的基本論域為{-xe,xe},偏差變化率ec的基本論域為{-xec,xec},輸出量的基本論域為{-yu,yu},則偏差的量化因子Ke=6/xe,偏差變化率的量化因子Kec=6/xec,輸出量的比例因子Ku=yu/7;輸出量的比例因子在解模糊過程中也需要用到,實現從控制量的模糊集論域到基本論域的變換,即解模糊后的精確控制值Δu=yui=Ku·u′。
3.2.2 模糊控制規則的建立
為了保證模糊控制的快速性和穩定性,需要滿足一定的規則:偏差小保證穩定性;偏差大減小偏差;當偏差負且正大或正中時,應控制變化率為0,不再增大控制量,避免系統出現超調現象[20]。模糊條件的數量可以根據Eec和Ee元素的乘積相得,共56條,其規則如下。
其中,Ai、Bi分別為輸入論域Ee、Eec上的模糊子集,Ci為輸出論域U上的模糊子集。
為了更加清晰明了地體現控制規則,把56條模糊控制規則歸納為如表1所示的控制規則表。
表1 U~ 的控制規則
3.2.3 模糊變量隸屬度表的確定
隸屬函數將量化值Ee和Eec模糊化為模糊判決的輸入量。隸屬函數曲線斜率越高分辨率越高,控制靈敏度越好。曲線斜率小穩定性好,更平穩。模糊集的分辨率要根據誤差的大小來選擇,誤差越大分辨率越低,誤差越小分辨率越高[21]。
隸屬函數在眾多形狀中,三角形的隸屬函數具有特殊性。偏差、偏差變化率和輸出控制量的隸屬函數均選擇為三角函數。Ee的隸屬度表如表2所示,Eec的隸屬度表如表3所示,U 的隸屬度表如表4所示。
表2 Ee 的隸屬度表
表3 Eec 的隸屬度表
表4 U 的隸屬度表
3.2.4 模糊控制表的建立
由上述模糊控制器的56條模糊控制規則,共有56條模糊關系;每條規則的模糊關系如式(9)所示,總的模糊關系如式(10)所示。由第i條語句所確定的模糊關系為:
模糊判決由式(11)實現,判決結果經過查詢隸屬函數后得到模糊控制查詢表中對應位置的值。
式中:符號“°”為模糊矩陣的乘法運算,其與普通矩陣的乘法運算過程相似,但將兩數間相減改為“取小”,相加改為“取大”運算;為的行向量依次排列而成的單列矩陣。按照最大隸屬度多控制器進行模糊決策,則有:
根據Ee、Eec的論域量化等級,可得如表5所示的模糊控制查詢表。
表5 u′模糊控制查詢表
由模糊控制查詢表得到的u′還是論域U中的一個等級值,還須乘上輸出量量化因子Ku,即Δu=u′·Ku,才是經模糊控制算法后得到的確切控制增量。
3.3.1 模糊控制程序
把模糊控制查詢表制成文件形式存儲起來,在后續根據輸入的情況來查表選擇具體的控制方式。具體的程序實現過程:讀取給定驅動輪的速度值n0(k)和測量到的速度值n(k),得出偏差e偏差變化率ec,再量化和模糊處理,再得到模糊值;根據此值查詢模糊控制表,得到控制量的模糊量,把該模糊量乘上比例因子轉換為精確量Δu,再同前一時刻控制量u(k-1)相加可得該時刻的實際控制量u(k)=u(k-1)+Δu(k)。算法的程序流程圖如圖5所示。
圖5 模糊控制算法程序流程圖
3.3.2 模糊自整定PID控制程序
模糊自整定PID控制程序可以看作是模糊控制程序和PID控制的疊加,在程序設計之前,先把的模糊控制查詢表制成文件形式存儲起來,控制程序根據輸入的偏差和偏差變化率量化值,查詢得到需要的控制策略,進而得到整定后的PID控制程序三參數,再通過PID控制,完成系統控制要求。具體的程序流程如圖6所示。
圖6 模糊自整定PID控制算法流程圖
搭建了移動機器人實驗平臺,如圖7所示,機身有2個直流電機獨立控制的5 寸驅動輪和1 個直徑40 mm 隨動的萬象輪,驅動輪上含有編碼器,可以反饋移動機器人運動速度。周邊有6 個紅外傳感器,底盤身上安裝控制卡、驅動器、開關和電池。骨架上有2個超聲波傳感器,1個電子羅盤和視覺傳感器,可進行360°的旋轉對周邊的環境進行監測。
圖7 移動機器人平臺
移動機器人的控制系統采用閉環結構,如圖8 所示,上位機發出的指令具有最高優先級,傳輸給控制卡解析后,帶動驅動器,使得直流電機轉動,帶動驅動輪旋轉即機器人的運動。從動輪也隨之運動,編碼器得出主動輪的轉速和從動輪的轉向角,再返回給控制卡。
圖8 控制系統閉環回路
在此平臺上進行機器人運動路徑跟蹤實驗。預設定了閉合的三角形的機器人的運動軌跡,如圖9(a)所示。機器人分別采用純PID 控制和模糊自整定PID 控制對預設的路徑上分別進行3 次跟蹤實驗,可得機器人的實際運動軌跡,如圖9(b)~9(c)所示,通過實驗數據分析,PID控制中終點定位誤差平均值為(406,-630),運動過程中x 軸平均誤差為344 mm,y軸平均誤差為-547 mm。模糊自整定PID控制中終點定位誤差平均值為(22,46),運動過程中x軸平均誤差為56 mm,y 軸平均誤差為37 mm。通過對比兩種控制方式的軌跡跟蹤可知,模糊自整定PID控制有效提高了控制精度。
圖9 移動機器人運動路徑跟蹤實驗
以移動機器人運動控制為研究對象,采用了PID 控制和模糊控制二者相結合的方法,提出了一種PID 參數模糊自整定控制。一方面建立了相應的模糊控制規則,根據速度偏差調整控制要求,另一方面建立了隸屬度表和模糊控制表,根據實際的控制變量選擇合適的參數。
最后在移動機器人平臺上對比了PID控制和PID參數模糊自整定控制的軌跡跟蹤實驗,通過終點定位和路徑誤差的對比,模糊自整定PID 控制有效提高了跟蹤精度,驗證了模糊自整定PID控制的可行性和準確性。