尚建人,田云娜
(延安大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西 延安 716000)
進(jìn)化算法是基于隨機(jī)搜索和自然啟發(fā)的優(yōu)化方法[1-3].這些算法遵循與生物進(jìn)化相結(jié)合和適應(yīng)機(jī)制的規(guī)則,如繁殖、突變、重組和選擇[4].這些算法許多來自分子進(jìn)化、群體遺傳學(xué)、免疫學(xué)等[5].在涉及處理到不精確度、噪聲和復(fù)雜數(shù)據(jù)的設(shè)計(jì)的情況下,這些算法提供了比傳統(tǒng)方法更好的解決方案.本文研究的主要目的是提供對已知進(jìn)化算法的計(jì)算有效性和效率的比較分析.針對2自由度 RP機(jī)器臂設(shè)計(jì)了細(xì)菌覓食(bacterial foraging, BFO)算法.設(shè)計(jì)目的是在存在參數(shù)不確定性和外部干擾的情況下提高機(jī)械臂的跟蹤能力.
n關(guān)節(jié)剛體機(jī)器人機(jī)器臂的動(dòng)力學(xué),即高耦合和非線性系統(tǒng),可從Euler-Lagrangian理論[6]得到:
M(q)q″+C(q,q′)+G(q)=τ,
(1)
式中:q∈Rn×1表示n關(guān)節(jié)位置的坐標(biāo)系,q′∈Rn×1是一個(gè)關(guān)節(jié)速度的向量,M(q)∈Rn×n是有界、對稱和正定慣性矩陣,C(q,q′)∈Rn×1代表Coriolis和離心矩陣,G(q)∈Rn×1是重力向量和τ∈Rn×1代表應(yīng)用在關(guān)節(jié)上控制矩陣的向量.通常機(jī)器人臂的動(dòng)力學(xué)是將矩陣作為輸入,實(shí)際位置作為輸出,可以用將式(1)重新表示為:
q″=M-1(q){τ-C(q,q′)-G(q)}.
(2)
使用具有一個(gè)外卷和柱狀關(guān)節(jié)的2自由度平面機(jī)械臂,如圖1所示.動(dòng)態(tài)方程式(2)中使用的矩陣M(q)、C(q,q′)和G(q)給出如下:
式中:q=[q1q2]T,q1是旋轉(zhuǎn)關(guān)節(jié)變量,q2是菱角關(guān)節(jié)變量.矩陣M(q)和C(q,q′)控制具有以下結(jié)構(gòu)特性的操作臂的慣性特性.
x′=Ax+Bu+Eh,y=Cx.
值得注意的是,x3=f是二階系統(tǒng)的擴(kuò)展?fàn)顟B(tài),f′=h,即不確定的變化率,被認(rèn)為是未知的和有界的函數(shù).如果不確定性的連續(xù)時(shí)間導(dǎo)數(shù)可用,則觀測器可以評估更復(fù)雜的擾動(dòng).增加ESO的順序?qū)⑹蛊渚哂袑υ肼暩舾械娜秉c(diǎn),因此更加難以調(diào)諧.雖然ESO設(shè)計(jì)有各種各樣的方法可用[7],但是類似于Luenberger觀測器的線性ES(LESO)程序[8]被設(shè)計(jì)為:
BFO算法是被廣泛接受的優(yōu)化算法,它是由大腸桿菌的社會(huì)覓食行為而得到的啟發(fā)[9].每個(gè)細(xì)菌都嘗試通過避免有毒物質(zhì)搜索營養(yǎng)物質(zhì)來進(jìn)行覓食,并最大限度地獲取每單位時(shí)間的能量.與此同時(shí),細(xì)菌具有個(gè)體之間的溝通渠道.細(xì)菌覓食行為的三個(gè)主要步驟包括趨化、繁殖和群集.細(xì)菌趨化作用的位置更新計(jì)算公式為:
考慮到機(jī)械臂實(shí)際控制情況,在趨化操作中引入群集操作,數(shù)學(xué)表達(dá)式為:
J(i,k,l)=J(i,j,k,l)+JCC(θi(j+1,k,l),P(j+1,k,l)).
最佳位置的細(xì)菌吸引其他細(xì)菌,隨著化學(xué)引誘劑的釋放而增加其強(qiáng)度.細(xì)菌i的健康度函數(shù)為
提出的優(yōu)化控制原理框圖如圖2所示.其中:q為系統(tǒng)輸出;Mp為系統(tǒng)超調(diào)量;qd為角位置設(shè)定值;ts為系統(tǒng)過渡時(shí)間;τ為控制器輸出.為降低超調(diào)量和減小過渡時(shí)間,防止控制能量過大,提高機(jī)械手臂系統(tǒng)的動(dòng)態(tài)性能,選取的適度函數(shù)為:
表1 本文算法流程Tab.1 The algorithm flow in this paper
ω2·τ2+ω3·Mp+ω4·τs,
本文的目的是最大限度地減少機(jī)械臂跟蹤誤差,提高整個(gè)系統(tǒng)的穩(wěn)定性.本文算法流程見表1.在機(jī)械臂BFO算法實(shí)際控制中要設(shè)置的參數(shù)為細(xì)菌數(shù)量、趨化步數(shù)Ne、移動(dòng)長度Ns、再生步長Nre、消除分散事件數(shù)量S、消除/分散的概率Ped.
智能算法的性能特征在于最優(yōu)點(diǎn)收斂時(shí)的基本特征,如最佳值的精度、計(jì)算時(shí)間、算法的簡單性等.考慮到外部干擾和傳感器噪聲的影響,模擬動(dòng)態(tài)模型計(jì)算目標(biāo)函數(shù).當(dāng)末端效應(yīng)的期望值和實(shí)際位置之間的誤差為零時(shí),性能指標(biāo)達(dá)到有限值.從文獻(xiàn)中選擇BFO參數(shù)的值,然后調(diào)整到達(dá)最終值,從而提供質(zhì)量和速度方面的最佳解決方案,最終參數(shù)值列于表2.
表2 BFO優(yōu)化算法中使用的參數(shù)Tab.2 The Parameters used in the BFO optimization algorithm
表3給出了BFO算法在動(dòng)態(tài)行為和收斂特性方面的統(tǒng)計(jì)指標(biāo)平均值(Σ),由下式給出:
式中:J(gi)是在第i次迭代中獲得的適應(yīng)度值,n是所選擇的解決方案的大小.BFO算法計(jì)算效率見表3.
表3 BFO算法計(jì)算效率Tab.3 The calculation efficiency of BFO algorithm
表4 由BFO算法得到的優(yōu)化參數(shù)Tab.4 The optimization parameters obtained by the BFO algorithm
表4顯示了所提出的控制器調(diào)諧參數(shù)的優(yōu)化值以及由BFO和PSO收斂的時(shí)間.
為了測試本文方法的應(yīng)用性能,進(jìn)行了仿真實(shí)驗(yàn)研究.實(shí)驗(yàn)采用Matlab 7仿真軟件設(shè)計(jì).用于Matlab Simulink平臺(tái)仿真中機(jī)械手的參數(shù)如表5所示.
表5 用于2-DOF機(jī)器人手臂仿真的參數(shù)Tab.5 The parameters for 2-DOF robot arm simulation
為了進(jìn)一步對本文方法進(jìn)行測試,將其與文獻(xiàn)[10]的傳統(tǒng)方法作對比分析,所有的控制參數(shù)均不改變.得到機(jī)械臂作業(yè)的關(guān)節(jié)運(yùn)動(dòng)軌跡跟蹤曲線如圖3所示.
由圖3兩種方法的軌跡跟蹤曲線對比可以看出,采用傳統(tǒng)方法得到的期望軌跡與實(shí)際軌跡相差較大.而采用本文方法進(jìn)行機(jī)械手臂自動(dòng)控制,具有較好的軌跡擬合控制精度.證明了本文方法具有較強(qiáng)的抑制干擾能力.
在實(shí)時(shí)工程問題中,最重要的控制目標(biāo)是抑制固有內(nèi)部(參數(shù)或未建模動(dòng)力學(xué))和外部(擾動(dòng))的不確定性.在這方面,控制工程師的主要目標(biāo)是選擇能夠獲得所需性能規(guī)范和針對動(dòng)作擾動(dòng)具有魯棒性的相關(guān)控制方法.目前已經(jīng)提出了一些較好的方法,如自適應(yīng)控制和魯棒控制等,以解決與實(shí)際系統(tǒng)內(nèi)外擾動(dòng)有關(guān)的問題.然而,這些方法中所需要系統(tǒng)的數(shù)學(xué)模型是完全已知的,這在實(shí)際中是不可行的.本文提出了一種方法,通過進(jìn)化算法來提高機(jī)械臂的跟蹤能力,獲得了令人滿意的結(jié)果.未來希望能進(jìn)一步完善本文方法,以期得到更優(yōu)越的控制品質(zhì).