沈孝龍,王吉芳,秦宇飛,曹佳慶
(北京信息科技大學(xué)機(jī)電工程學(xué)院,北京 100192)
機(jī)械手系統(tǒng)在運(yùn)行中不可避免的會(huì)產(chǎn)生振蕩,使系統(tǒng)穩(wěn)定性與軌跡控制效果變差,還會(huì)消耗額外能量。在固定時(shí)間定點(diǎn)位置運(yùn)動(dòng)中,運(yùn)動(dòng)軌跡不同產(chǎn)生的振蕩也不同。因此,有必要研究出一種最優(yōu)軌跡控制器使系統(tǒng)運(yùn)行平穩(wěn),降低不必要能量消耗。
因軌跡規(guī)劃屬最優(yōu)化問(wèn)題,常規(guī)法很難求得全局最優(yōu)解,而智能優(yōu)化算法處理此類問(wèn)題表現(xiàn)出色,并且可用來(lái)優(yōu)化各種形式的定點(diǎn)運(yùn)動(dòng),受到眾多學(xué)者的研究。萬(wàn)子剛等[1]采用差分進(jìn)化和前饋補(bǔ)償方法對(duì)模糊PID控制系統(tǒng)進(jìn)行優(yōu)化,提高了并聯(lián)液壓機(jī)械臂運(yùn)動(dòng)軌跡追蹤精度。徐慶增等[2]利用自適應(yīng)差分進(jìn)化算法對(duì)采摘機(jī)械臂軌跡進(jìn)行優(yōu)化,提高了動(dòng)作穩(wěn)定性與軌跡跟蹤精度。史義等[3]改造基本差分進(jìn)化算法控制參數(shù)和變異策略,提高了機(jī)械手軌跡運(yùn)行穩(wěn)定性與跟蹤精度。王琦等[4]基于改進(jìn)差分進(jìn)化算法降低了平面四桿機(jī)構(gòu)運(yùn)動(dòng)軌跡誤差,性能勝于傳統(tǒng)軌跡規(guī)劃方法。余陽(yáng)等[5]提出一種罰函數(shù)與修復(fù)的混合遺傳算法,提高了機(jī)械臂工作效率與軌跡運(yùn)行平穩(wěn)性。黃自鑫等[6]利用遺傳算法與差分進(jìn)化算法的融合,改進(jìn)滑模變結(jié)構(gòu)控制器以跟蹤機(jī)械臂軌跡,性能顯著提升。韓亞軍等[7]將差分進(jìn)化與粒子群融合優(yōu)化B樣條曲線規(guī)劃?rùn)C(jī)械臂運(yùn)動(dòng),使角位移跟蹤誤差較小,誤差峰值降低48.2%。
上述學(xué)者大都基于常規(guī)規(guī)劃方法與智能優(yōu)化算法相結(jié)合設(shè)計(jì)機(jī)械手的軌跡規(guī)劃器,提高系統(tǒng)穩(wěn)定性與控制精度,少有考慮機(jī)械手運(yùn)行過(guò)程中因振蕩產(chǎn)生的額外能量消耗問(wèn)題且優(yōu)化性能出色的差分進(jìn)化算法仍有改進(jìn)空間?;诖?,設(shè)計(jì)一種基于改進(jìn)差分進(jìn)化算法的機(jī)械手最優(yōu)軌跡控制器,并進(jìn)行不同方法的仿真實(shí)驗(yàn)對(duì)比,證明所提算法能使機(jī)械手運(yùn)行軌跡精度更高、能量消耗更少,魯棒性更強(qiáng)。
n關(guān)節(jié)機(jī)械手動(dòng)力學(xué)方程描述[8]如下:
(1)
(2)
PD控制律為:
(3)
式中,Kp>0;Kd>0。
(4)
即:
(5)
取Lyapunov(李雅普諾夫)函數(shù)為:
(6)
由D(q)及Kp正定性知,V亦正定,則:
(7)
(8)
假設(shè)參考軌跡是在定點(diǎn)運(yùn)動(dòng)的擺線軌跡上[3],方程如下:
(9)
(10)
(11)
機(jī)械手最優(yōu)軌跡可由優(yōu)化軌跡與擺線軌跡間的偏差間接獲取。假如系統(tǒng)最終運(yùn)動(dòng)到穩(wěn)定狀態(tài)的最長(zhǎng)時(shí)間為Tmax,根據(jù)能量守恒定理,可用非保守力做功表示機(jī)械手系統(tǒng)在運(yùn)行過(guò)程中消耗的能量W,故第i關(guān)節(jié)目標(biāo)函數(shù)定義為[8]:
(12)
式中,i為關(guān)節(jié)數(shù);αi為權(quán)值;τi為控制輸入;Δhi為實(shí)際軌跡與理想軌跡間偏差,Δhi=qopi(tj)-qri(tj)。n關(guān)節(jié)機(jī)械手總目標(biāo)函數(shù)為:
W=W1+W2+...+Wn
(13)
運(yùn)行本文不同改進(jìn)算法來(lái)優(yōu)化式(13),使W值最小,獲得最優(yōu)能量消耗。通過(guò)優(yōu)化算法可得到任意關(guān)節(jié)機(jī)械手的最優(yōu)離散軌跡:
(14)
為得到連續(xù)軌跡,選擇三次樣條插值使軌跡連續(xù)化,其表達(dá)式為:
qi(t)=at3+bt2+ct+d,i=1,2,...,n-1
(15)
為確定系數(shù)a、b、c、d,根據(jù)插值的邊界條件可得:
(16)
插值節(jié)點(diǎn)為:
(17)
將插值產(chǎn)生的連續(xù)函數(shù)qopi(m)當(dāng)作第i個(gè)機(jī)械手關(guān)節(jié)角度跟蹤的最優(yōu)軌跡。
差分進(jìn)化(differential evolution,DE)是一種處理最優(yōu)化問(wèn)題行之有效的算法,與經(jīng)典遺傳算法一脈相承[11]。但因其有出色的全局優(yōu)化性和魯棒性,廣泛在連桿機(jī)構(gòu)、機(jī)械臂軌跡規(guī)劃、混合流水車間調(diào)度問(wèn)題等工程優(yōu)化領(lǐng)域運(yùn)用。算法通過(guò)模擬達(dá)爾文“優(yōu)勝劣汰、適者生存”思想,利用上代向量間差分的原理進(jìn)行種群的進(jìn)化更新產(chǎn)生變異新個(gè)體以求得所優(yōu)化問(wèn)題的最優(yōu)解[12]。算法優(yōu)劣主要由初始種群產(chǎn)生策略和變異、交叉策略決定,眾多學(xué)者對(duì)此進(jìn)行了大量研究和改進(jìn)。
經(jīng)典DE算法采用隨機(jī)分布法產(chǎn)生初始種群,種群內(nèi)個(gè)體多樣性差,使最優(yōu)解質(zhì)量與收斂速度并不理想[13]。混沌運(yùn)動(dòng)獨(dú)特的隨機(jī)性和遍歷不重復(fù)性對(duì)生成多樣性的個(gè)體有優(yōu)勢(shì),可以促使初始種群內(nèi)個(gè)體盡可能均勻分布于搜索空間。為提升最優(yōu)解質(zhì)量和保持群落里個(gè)體多樣性,采用混沌映射對(duì)初始種群及子代種群進(jìn)行改造,以提升算法優(yōu)化能力。
一維Logistic映射原理如下:
xμ+1=δxμ(1-xμ),x∈[0,1]
(18)
式中,xμ為混沌變量,當(dāng)δ=4時(shí),系統(tǒng)表現(xiàn)為混沌態(tài),xμ于[0,1]范圍隨機(jī)取值。(0,0.25,0.5,0.75,1)稱作一維Logistic映射的5個(gè)不動(dòng)點(diǎn)。對(duì)群落初始化的改造其實(shí)就是將混沌映射與隨機(jī)分布法產(chǎn)生的兩個(gè)群落內(nèi)的個(gè)體元素適應(yīng)值逐一相互比較,挑出前Np個(gè)最優(yōu)個(gè)體當(dāng)作初始群落,方法如下:
步驟1:隨機(jī)分布法生成群落A;
xmn,1=xnmin+rand×(xnmax-xnmin)
(19)
式中,m=1,2,...,NP;n=1,2,...,D;rand∈[0,1];xnmax、xnmin為第n個(gè)變量的上屆與下屆。
步驟2:隨機(jī)產(chǎn)生數(shù)x1∈(0,1),但x1不可以為上述5個(gè)不動(dòng)點(diǎn),從x1起,根據(jù)式(18)產(chǎn)生混沌序列;
{x1,x2,...,xNP×D}
(20)
步驟3:將式(20)按行排生成混沌矩陣;
(21)
步驟4:把式(21)的元素映射到種群個(gè)體每一維,xmn∈[xnmin,xnmax],得到混沌初始群落B;
xmn=xnmin+xm,n×(xnmax-xnmin)
(22)
步驟5:計(jì)算群落A∪B中所有元素的適應(yīng)度值,從小到大排,選擇前NP個(gè)元素作為最終初始群落P。
隨著迭代的不斷進(jìn)行,種群中隨機(jī)分布的個(gè)體會(huì)逐漸聚集,此時(shí)可能發(fā)生局部收斂情況,從而難搜索到全局最優(yōu)解。為此,本文每隔一定代數(shù)M重構(gòu)種群,在迭代過(guò)程中,剔除部分高聚集個(gè)體,通過(guò)遷移因子產(chǎn)生一些新個(gè)體補(bǔ)償,來(lái)保持種群多樣性,使搜索能跳出局部最優(yōu)解,提高全局收斂能力。
假設(shè)當(dāng)前最優(yōu)個(gè)體的適應(yīng)值為best_unit_value,M代前最優(yōu)個(gè)體的適應(yīng)值為lastbest_unit_value,用二者之比表示進(jìn)化效果,即:
(23)
σ越小,進(jìn)化效果越好,反之亦然。當(dāng)σ>ε時(shí),通過(guò)二次混沌映射對(duì)子代群落進(jìn)行重建,ε為設(shè)定的閾值,方法如下:
步驟1:執(zhí)行3.1節(jié)的步驟2與步驟3;
步驟2:把式(21)的元素映射到群落個(gè)體每一維,xmn∈[xnmin,xnmax],產(chǎn)生混沌遷移量;
(24)
步驟3:基于子代群落P,按下式進(jìn)行混沌遷移,生成一新群落C。g∈[ 0,1 ]為遷移度;
(25)
步驟4:計(jì)算群落P∪C中元素的適應(yīng)值,從小到大排,挑出前NP個(gè)元素到下次迭代的父代群落PG+1。
影響DE算法優(yōu)化性能的主要參數(shù)有縮放因子F、交叉概率CR和種群規(guī)模NP。通常F對(duì)優(yōu)化結(jié)果影響最大,一般F∈[0.5,1],CR∈[0.8,1],NP∈[5D,10D],D為問(wèn)題空間維數(shù)[14]。最優(yōu)參數(shù)值選取常常與求解的問(wèn)題相關(guān),為擺脫這一束縛,應(yīng)使控制參數(shù)在迭代過(guò)程中在一定范圍內(nèi)自適應(yīng)變化。
3.3.1 自適應(yīng)縮放因子
在變異操作時(shí),隨機(jī)從種群內(nèi)選取三個(gè)個(gè)體,并且保證這三個(gè)個(gè)體互異,則基本變異方法為:
hij(t+1)=xp1j(t)+F(xp2j(t)-xp3j(t))
(26)
式中,xp2j(t)-xp3j(t)為差異化向量;F為變異因子,是控制種群內(nèi)個(gè)體多樣性與收斂性重要參數(shù)。閱讀相關(guān)文獻(xiàn)后發(fā)現(xiàn),F(xiàn)一般取值在[0.3,0.6]之間優(yōu)化效果最好。在迭代初期F取較大值,有利于全局搜索,維持種群個(gè)體多樣性,但收斂速度減慢。在迭代后期,收斂時(shí)希望F較小有利于局部搜索,提高搜索精度。故提出自適應(yīng)F如下:
(27)
式中,G為最大迭代數(shù);m為當(dāng)前迭代數(shù)。大量實(shí)驗(yàn)表明當(dāng)Fmin=0.40,Fmax=0.55優(yōu)化性能好。
3.3.2 自適應(yīng)交叉概率
基本DE算法的交叉概率為固定值,不利于算法優(yōu)化性能的提升。一般希望交叉概率能隨適應(yīng)值變化而自適應(yīng)的在一定范圍內(nèi)變化。在迭代前期適應(yīng)值大應(yīng)取較小值,有利于適應(yīng)度好的個(gè)體進(jìn)入下一代。在后期算法局部收斂前,取較大值,加速新個(gè)體的生成,保持種群多樣性。故提出自適應(yīng)CR如下:
(28)
大量實(shí)驗(yàn)結(jié)果表明當(dāng)CRmin=0.6,CRmax=0.9時(shí)優(yōu)化性能好。
經(jīng)變異操作后的試驗(yàn)個(gè)體可能會(huì)越出邊界范圍,需要對(duì)這些個(gè)體處理,運(yùn)用最多的方法是隨機(jī)再初始化法,但隨機(jī)性強(qiáng),易丟失原變異個(gè)體信息。而對(duì)稱映射法能將越界個(gè)體轉(zhuǎn)換成一個(gè)相對(duì)于邊界對(duì)稱的數(shù)值,減小隨機(jī)性,保留原部分變異個(gè)體信息,提高算法收斂精度。方法如下:
(29)
為驗(yàn)證差分進(jìn)化算法出色的優(yōu)化性能及所提算法的有效性,在MATLAB仿真軟件中分別進(jìn)行基本差分進(jìn)化(DE)、自適應(yīng)差分進(jìn)化(ADE即只采用文章中3.3節(jié)改進(jìn)方法)、混沌-自適應(yīng)差分進(jìn)化(CADE即采用文章第3大節(jié)所述改進(jìn)方法)以及基本GA算法[5-6]的仿真實(shí)驗(yàn)。為對(duì)比公平,相同非改進(jìn)參數(shù)取值相同。插值點(diǎn)橫坐標(biāo)固定選取,縱坐標(biāo)在始末點(diǎn)間隨機(jī)選取。仿真對(duì)象為二關(guān)節(jié)機(jī)械手系統(tǒng),參數(shù)如表1所示。
表1 仿真參數(shù)設(shè)置
仿真試驗(yàn)中,所有算法使用MATLAB R2016 b進(jìn)行編程,PC配置為:Intel Core i5-4210H、2.9 GHz、12 GB、Windows10。
將各算法分別獨(dú)立連續(xù)運(yùn)行20次取平均值作為實(shí)驗(yàn)結(jié)果,驗(yàn)證算法可靠性。各算法仿真試驗(yàn)的最優(yōu)適應(yīng)值(fbest)、最差適應(yīng)值(fworst)、第50代平均適應(yīng)值(F50)及標(biāo)準(zhǔn)差ξ如表2所示;各算法平均適應(yīng)值變化曲線如圖1所示;各算法最優(yōu)適應(yīng)值對(duì)應(yīng)的優(yōu)化效果如圖2~圖4所示。
表2 不同算法的性能指標(biāo)統(tǒng)計(jì)
圖1 不同算法平均適應(yīng)值變化
(a) 關(guān)節(jié)角度跟蹤 (b) 關(guān)節(jié)優(yōu)化路徑
(c) 控制信號(hào)輸入圖2 GA算法實(shí)驗(yàn)結(jié)果
(a) 關(guān)節(jié)角度跟蹤 (b) 關(guān)節(jié)優(yōu)化路徑
(c) 控制信號(hào)輸入圖3 DE算法實(shí)驗(yàn)結(jié)果
(a) 關(guān)節(jié)角度跟蹤 (b) 關(guān)節(jié)優(yōu)化路徑
(c) 控制信號(hào)輸入圖4 CADE算法實(shí)驗(yàn)結(jié)果
由表2及圖2可知,遺傳算法相比差分進(jìn)化算法的全局優(yōu)化能力差,標(biāo)準(zhǔn)差最大,若使用遺傳算法優(yōu)化機(jī)械手運(yùn)行軌跡難以取得理想效果。由表2及圖3可知,基本DE算法相比GA算法標(biāo)準(zhǔn)差降低10倍左右,優(yōu)化效果較好,但角度跟蹤與關(guān)節(jié)路徑優(yōu)化還有欠缺,誤差較大。不同改進(jìn)DE算法標(biāo)準(zhǔn)差與平均能量逐漸降低。由表2及圖4可知,CADE算法相比基本DE算法平均能量降低17.43%,且該算法對(duì)于末端關(guān)節(jié)優(yōu)化效果顯著,在保證能量消耗較小時(shí),第2關(guān)節(jié)最優(yōu)軌跡近似與參考軌跡重合,第1關(guān)節(jié)優(yōu)化效果較基本DE算法也有所提升,控制信號(hào)輸入穩(wěn)定,有利于滿足對(duì)跟蹤精度與動(dòng)作穩(wěn)定性要求高的作業(yè)任務(wù)。
由圖1可知,基本GA算法比基本DE算法各代平均適應(yīng)值都大且收斂速度較慢,再結(jié)合圖2與圖3的優(yōu)化效果看,GA算法的優(yōu)化結(jié)果并不理想,DE算法在保證較低適應(yīng)值同時(shí),優(yōu)化性能強(qiáng)于GA算法,表明DE算法有出色的全局優(yōu)化性與魯棒性。不同改進(jìn)DE算法收斂速度較快,整體平均適應(yīng)值逐漸降低,其中CADE算法優(yōu)化效果最出色,由圖4可知,關(guān)節(jié)路徑化效果好,角度跟蹤誤差小,魯棒性強(qiáng),算法收斂速度較快,證明本文所提算法的有效性。
為提高機(jī)械手系統(tǒng)運(yùn)行穩(wěn)定性與關(guān)節(jié)角跟蹤精度,設(shè)計(jì)一種基于改進(jìn)差分進(jìn)化算法的最優(yōu)軌跡規(guī)化器,并運(yùn)用MATLAB仿真軟件檢驗(yàn)算法有效性,得到如下結(jié)論:
(1)運(yùn)用MATLAB軟件對(duì)機(jī)械手系統(tǒng)進(jìn)行仿真,可以對(duì)系統(tǒng)輸出效果進(jìn)行模擬,驗(yàn)證算法的有效性,為接下來(lái)研究6DOF機(jī)械臂最優(yōu)軌跡規(guī)劃與控制奠定基礎(chǔ)。
(2)對(duì)比GA算法,仿真結(jié)果表明,同屬遺傳原理的差分進(jìn)化算法優(yōu)化性能更好。不同改進(jìn)DE算法中CADE算法的軌跡優(yōu)化收斂速度較快,魯棒性強(qiáng),各評(píng)價(jià)指標(biāo)最優(yōu),系統(tǒng)運(yùn)行消耗的能量最小。