陳 梅, 方 偉
(合肥工業(yè)大學(xué) 電氣與自動化工程學(xué)院,安徽 合肥 230009)
小腦模型關(guān)節(jié)控制器(cerebellar model articulation controller,CMAC)最初由文獻(xiàn)[1]于1975年提出,是一種基于神經(jīng)生理學(xué)的、快速收斂的神經(jīng)網(wǎng)絡(luò),能夠?qū)W習(xí)任意非線性映射。與BP網(wǎng)絡(luò)之類的全局逼近方法相比,CMAC具有局部逼近、學(xué)習(xí)算法簡單、收斂速度快、易于硬件實現(xiàn)等優(yōu) 點,特 別 適 合 于 實 時 控 制[2-6]。 但 是,在CMAC神經(jīng)網(wǎng)絡(luò)實際應(yīng)用中,主要缺陷是訓(xùn)練網(wǎng)絡(luò)需要大量的內(nèi)存空間。CMAC神經(jīng)網(wǎng)絡(luò)的內(nèi)存大小由量化精度和輸入矢量維數(shù)決定。存儲單元的數(shù)量隨輸入維數(shù)的增加呈指數(shù)增長[7],使得CMAC在解決一些高維輸入矢量的問題中代價過高。
機械手是一個狀態(tài)變量多、高度耦合的對象,模型的非線性和參數(shù)的不確定性使得基于模型的機械手軌跡控制難以滿足要求。神經(jīng)網(wǎng)絡(luò)具有逼近任意非線性映射的能力,且信息分布式存儲提升了網(wǎng)絡(luò)的容錯性能,其與自適應(yīng)控制、滑??刂埔约澳婺?刂频冉Y(jié)合,在機械手軌跡控制中表現(xiàn)出很好的效果[8]。
本文針對CMAC在進(jìn)行機械手逆模控制時所需輸入量較多的情況,提出一種單輸入CMAC策略,有效地減少了輸入維數(shù),提高了訓(xùn)練速度。仿真實驗表明,這種CMAC網(wǎng)絡(luò)可以達(dá)到期望的控制精度,改善了系統(tǒng)靜、動態(tài)性能。
Albus CMAC神經(jīng)網(wǎng)絡(luò)是一種模擬人類小腦組織結(jié)構(gòu)的網(wǎng)絡(luò),本質(zhì)上是智能查表技術(shù),屬于局部逼近神經(jīng)網(wǎng)絡(luò),具有很好的局部泛化能力。一般CMAC神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示[9]。
圖1 CMAC神經(jīng)網(wǎng)絡(luò)的一般結(jié)構(gòu)
由圖1可以看出,CMAC神經(jīng)網(wǎng)絡(luò)由4個基本單元組成:輸入空間S、虛擬聯(lián)想空間A、物理存儲空間W和輸出y。它的工作方式為:連續(xù)輸入量經(jīng)過量化后得到離散的輸入矢量組成輸入空間S;每個輸入矢量激活聯(lián)想空間A中的C個單元(C是泛化參數(shù),其大小對網(wǎng)絡(luò)的泛化性能起關(guān)鍵作用),被激活的C個ai的值為1,其余為0;C個被激活的ai對應(yīng)的權(quán)值wi線性相加就是網(wǎng)絡(luò)的輸出y,即
CMAC神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法是最小均方差算法,依據(jù)網(wǎng)絡(luò)期望輸出值與網(wǎng)絡(luò)實際輸出值之間的誤差最小原則來調(diào)整存儲單元的權(quán)值[10]。設(shè)為網(wǎng)絡(luò)期望輸出值,y為網(wǎng)絡(luò)實際輸出值,e=-為輸出誤差,則網(wǎng)絡(luò)學(xué)習(xí)算法可由(2)式表示,即
對于一個n自由度關(guān)節(jié)的機械手,可由拉格朗日方程得到其動力學(xué)方程[11]為:
其中,q、˙q、¨q分別為n×1維關(guān)節(jié)角度、角速度和角加速度向量;M(q)為慣性矩陣,是一個對稱、正定矩陣,表示各關(guān)節(jié)之間的轉(zhuǎn)動慣量;V(q,˙q)為哥氏力和離心力矩陣;G(q)為重力矩陣;d為外界擾動向量;τ為n×1維關(guān)節(jié)力矩向量。
對2自由度機械手,則有:
2自由度機械手如圖2所示。其中,m1、m2為臂1和臂2的質(zhì)量,假設(shè)質(zhì)量集中于臂的末端;l1、l2為臂1和臂2的長度;τ1、τ2分別為作用在關(guān)節(jié)1和關(guān)節(jié)2上的驅(qū)動力矩;q1、q2為關(guān)節(jié)1和關(guān)節(jié)2在τ1、τ2作用下轉(zhuǎn)過的角度。
圖2 2自由度機械手
對于具有多個自由度的多關(guān)節(jié)機械手而言,每個關(guān)節(jié)的驅(qū)動力矩都由伺服驅(qū)動器根據(jù)各個關(guān)節(jié)的期望軌跡得到。本文結(jié)合CMAC神經(jīng)網(wǎng)絡(luò)和逆??刂频奶攸c,提出了一種單輸入CMAC的神經(jīng)網(wǎng)絡(luò)逆??刂品桨?,設(shè)計的控制系統(tǒng)結(jié)構(gòu)如圖3所示。其中,qd、˙qd為期望機械手位置、速度矢量;q為實際機械手位置、速度矢量。整個系統(tǒng)由反饋控制器和CMAC神經(jīng)網(wǎng)絡(luò)構(gòu)成,τc為常規(guī)PID控制器輸出,用以保證控制系統(tǒng)的穩(wěn)定性,同時提供神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的誤差信號,因此,網(wǎng)絡(luò)的學(xué)習(xí)和控制可同時進(jìn)行。隨著神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的進(jìn)行,反饋控制器輸出τc逐漸趨于0,神經(jīng)網(wǎng)絡(luò)在控制系統(tǒng)中起主導(dǎo)作用。
圖3 單輸入CMAC逆??刂葡到y(tǒng)
與常規(guī)CMAC網(wǎng)絡(luò)逆??刂撇煌?,本文引入測量變量ds[12-13],將二維輸入(q,˙q)轉(zhuǎn)變?yōu)橐痪S輸入ds,減少了CMAC網(wǎng)絡(luò)的存儲空間。變量ds表示實際輸入狀態(tài)點(q,˙q)到切換直線L的測量距離,其幾何示意圖如圖4所示,計算公式為:
其中,λ為常數(shù)。
圖4 測量變量ds幾何示意圖
反饋控制器輸出為:
CMAC神經(jīng)網(wǎng)絡(luò)輸出為:
又有:
則CMAC的學(xué)習(xí)誤差τe的計算公式為:
由此,CMAC網(wǎng)絡(luò)權(quán)值修正公式可變?yōu)椋?/p>
文獻(xiàn)[11]將切換直線轉(zhuǎn)換為n維切換超平面,得到廣義測量變量Ds,對于本文的機械手逆
??刂疲D(zhuǎn)換n維輸入測量變量Ds可定義為:
切換超平面為:
為了驗證本文提出的逆??刂品桨傅挠行裕x擇圖2所示的2自由度平面機械手作為控制對象進(jìn)行軌跡控制的仿真研究。機械手參數(shù)設(shè)置為:m1=10kg,m2=2kg,l1=1.1m,l2=0.8m。初始條件為:q1(0)=q2(0)=0,˙q1(0)=˙q2(0)=0。期望軌跡qd1(t)=sin(2πt),qd2(t)=cos(2πt)。采用2個獨立的單輸入CMAC神經(jīng)網(wǎng)絡(luò)分別控制機械手的2個臂,其中,CMAC1輸入為ds1,輸出為τN1;CMAC2輸入為ds2,輸出為τN2;λ=1.5,學(xué)習(xí)率η1=η2=0.1,網(wǎng)絡(luò)初始權(quán)值W1(0)=W2(0)=0,加入的外界隨機擾動d1、d2的幅值為20nm。關(guān)節(jié)1和關(guān)節(jié)2的軌跡跟蹤曲線如圖5所示,跟蹤誤差曲線如圖6所示。
由圖5和圖6可以看出,經(jīng)過短暫的學(xué)習(xí)很好地實現(xiàn)了對2個關(guān)節(jié)的軌跡跟蹤,單輸入CMAC逆??刂茰p少了網(wǎng)絡(luò)的存儲空間,達(dá)到了期望的控制性能,具有很好的魯棒性。
圖5 軌跡跟蹤曲線
圖6 跟蹤誤差曲線
本文將傳統(tǒng)PID反饋控制與CMAC網(wǎng)絡(luò)逆??刂葡嘟Y(jié)合,利用CMAC網(wǎng)絡(luò)在線辨識機械手逆動力學(xué)模型。針對CMAC網(wǎng)絡(luò)在進(jìn)行機械手逆??刂茣r所需輸入量較多的缺點,提出了一種單輸入CMAC網(wǎng)絡(luò)的逆模控制策略,引入測量變量,使網(wǎng)絡(luò)輸入由多維轉(zhuǎn)換為1維,很好地減少了神經(jīng)網(wǎng)絡(luò)所需存儲空間,提高了學(xué)習(xí)速度。仿真實驗結(jié)果表明,本文的控制策略實現(xiàn)了對機械手的非線性控制,是行之有效的。
[1] Albus J S.A new approach to manipulator control:the cer-ebellar model articulation controller(CMAC)[J].Journal of Dynamic Systems,Measurement,and Control,1975,5(2):220-227.
[2] Miller T,Glanz F.An associative neural network alternative to backpropagation[J].Proceedings of IEEE,1990,78(10):1561-1567.
[3] Miller T.Real-time application of neural networks for sensor-based control of robots[J].IEEE Transactions on Systems and Cybernetics,1989,19(4):825-831.
[4] Wong Y,Sideris A.Learning convergence in the cerebellar model articulation controller[J].IEEE Transactions on Neural Networks,1992,3(1):115-121.
[5] 曹 晶,張良均,鄭 巍,等.基于新型模糊CMAC神經(jīng)網(wǎng)絡(luò)的Agent外貿(mào)協(xié)商模型[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2006,29(11):1420-1424.
[6] Miller T,Box B A,Whitney E C,et al.Design and implementation of a high speed CMAC neural network[C]//Proceedings of the Conference on Advances in Neural Information Processing Systems,1990:1022-1027.
[7] Albus J S.Data storage in the cerebellar model articulation controller(CMAC)[J].Journal of Dynamic Systems,Measurement,and Control,1975,5(2):228-233.
[8] 馬 航,楊俊友,馬 飛.基于神經(jīng)網(wǎng)絡(luò)的逆控制研究綜述[J].控制工程,2005,12(Z1):72-74.
[9] 潘 曄,顧幸生,盧勝利.基于信度分配的并行集成CMAC及其在建模中的應(yīng)用[J].控制理論與應(yīng)用,2010,27(2):211-215.
[10] 鮑 瓊,顧幸生.基于信度分配的串行集成CMAC及其仿真[J].華東理工大學(xué)學(xué)報:自然科學(xué)版:2008,34(5):751-754.
[11] 于乃功,李 明,李建更.機械手軌跡規(guī)劃的神經(jīng)網(wǎng)絡(luò)逆??刂疲跩].控制工程,2008,15(3):225-228.
[12] Choi B J,Kwak S W,Kim B K.Design of a single-input fuzzy logic controller and its properties[J].Fuzzy Sets Syst,1999,106(97):299-308.
[13] Choi B J,Kwak S W,Kim B K.Design and stability analysis of single-input fuzzy logic controller[J].IEEE Transactions on Systems,Man,and Cybernetics,Part B:Cybernetics,2000,30(2):303-309.