馬澤楠, 張長勝, 殷淑靜, 陳標發(fā)
(1.昆明理工大學(xué) 信息工程與自動化學(xué)院, 云南 昆明 650500;2.西安工業(yè)大學(xué) 光電工程學(xué)院, 陜西 西安 710021;3.廣州科伺智能科技有限公司, 廣東 廣州 510000)
選擇順應(yīng)性裝配機器手臂(Selective Compliance Assembly Robot Arm,SCARA)構(gòu)造簡易,靈活性好,定位運動精度高,主要用于碼垛、裝配、搬運等快速取放作業(yè)領(lǐng)域[1]。機械臂在運動過程中,按照期望軌跡進行重復(fù)性位移。機械臂控制系統(tǒng)的不確定性及外界干擾,導(dǎo)致機械臂在重復(fù)運動后的實際軌跡與期望軌跡出現(xiàn)偏差,影響作業(yè)精度。因此對機械臂關(guān)節(jié)的位置、速度跟蹤誤差進行快速精確地控制非常重要[2-5]。
國內(nèi)外學(xué)者針對機械臂控制器參數(shù)KP、KD尋優(yōu)方法的深入研究,提出了不同的策略。文獻[6]通過在閉環(huán)PD型迭代學(xué)習(xí)控制算法中引入動態(tài)擴張-收縮因子,解決了收斂速度慢且收斂精度不高的問題。文獻[7]采用改進的PD控制算法,使用遺忘因子改進收斂條件,得到的誤差跟蹤曲線更平滑,在迭代誤差跟蹤方面具有一定的優(yōu)越性,相比于一般算法更具有效性。針對二自由度SCARA機器人位置跟蹤控制,文獻[8]設(shè)計了基于端口受控哈密頓與反步法的協(xié)調(diào)控制方案,有效地結(jié)合兩者的優(yōu)點,使系統(tǒng)的動態(tài)性能和穩(wěn)態(tài)性能良好且抑制干擾的能力較強。文獻[9]利用神經(jīng)網(wǎng)絡(luò)辨識后的動力學(xué)模型,對機械臂進行單神經(jīng)元PID控制,改進的自適應(yīng)神經(jīng)網(wǎng)絡(luò)PID控制相較于傳統(tǒng)方法提高了收斂速度與精度,對目標偏移量的跟蹤速度更快。文獻[10]中的機械臂在未知環(huán)境下對其采用了一種魯棒自適應(yīng)迭代學(xué)習(xí)控制算法,該方法使機械臂的跟蹤性能有了明顯地改善,收斂速度有一定程度的提升,具有較高的控制精度。文獻[11]針對機器人末端位置跟蹤誤差較大的問題,提出了一種PD滑模控制方法,根據(jù)偏差的大小動態(tài)地調(diào)整增益參數(shù),進而減小外界擾動的影響。文獻[12]在機械臂運動時將重力參數(shù)加入自適應(yīng)項中,給出了一種優(yōu)化后的PD控制方式,提高了機械臂運動時的軌跡精度。
本文針對一般的迭代學(xué)習(xí)控制算法會受到學(xué)習(xí)參數(shù)的影響,從而使系統(tǒng)收斂性和收斂速度達不到理想要求,降低生產(chǎn)效率,提出基于鯨魚優(yōu)化的自適應(yīng)迭代學(xué)習(xí)算法,并在鯨魚算法中引入遺傳算法,把兩者各自的優(yōu)勢相結(jié)合,應(yīng)用于機械臂控制器參數(shù)KP、KD尋優(yōu)中,以期能提高尋優(yōu)的全局性,使系統(tǒng)跟蹤達到較好效果。
根據(jù)n連桿的動力學(xué)模型,得到SCARA的動力學(xué)方程:
(1)
將SCARA機器人簡化為雙關(guān)節(jié)的機械臂,把末端負載與小臂視為一個整體,只計算大臂和小臂,模型如圖1所示。
(a) SCARA實物
(b) SCARA雙關(guān)節(jié)簡化模型
根據(jù)Lagrange法得出動力學(xué)方程:
(2)
由上式可得控制力矩驅(qū)動方程:
(3)
(4)
式中I表示連桿的質(zhì)心情況,m為桿的質(zhì)量,l表示應(yīng)力臂的長度,lc表示應(yīng)力臂質(zhì)心位置,θ表示應(yīng)力臂轉(zhuǎn)角。
式(1)—式(4)可以寫成統(tǒng)一形式:
(5)
式中M(qk(t))∈Rn×n為機器人的慣性矩陣,下標k∈Z+表示迭代次數(shù),t∈[0,T]為時間,τk(t)∈Rn表示控制力矩,dk(t)∈Rn表示系統(tǒng)擾動。
設(shè)計如下控制律:
(6)
(7)
根據(jù)式(6)可得,控制力矩的前兩項為PD反饋項,第三項為迭代項且系數(shù)δk依據(jù)上次迭代系數(shù)與本次跟蹤誤差變化而變化,體現(xiàn)出該算法的“學(xué)習(xí)”特性。
機器人系統(tǒng)參數(shù)為[13]m1=m2=1 kg,l1=l2=0.5 m,lc1=lc2=0.25 m,I1=I2=0.1 kg·m2,g=9.8 m/s2,干擾和系統(tǒng)不確定項總和dk=rank(k)sint,rank(k)是[0,1]內(nèi)的隨機數(shù)。
兩個關(guān)節(jié)的指令信號分別是sin(2πt)和cos(2πt)。為了保證機械臂初始輸出與指令初值一致,設(shè)機械臂的初始狀態(tài)為x(0)=(0,2π,1,0)T。
圖2 雙關(guān)節(jié)5次迭代后仿真效果
一般情況下,使用實驗的方法來整定PID控制器參數(shù),調(diào)試過程中的多次嘗試是非常重要的,數(shù)據(jù)如表1所示。在對同一系統(tǒng)不同的KP、KD控制器參數(shù)設(shè)置的情況下,算法對系統(tǒng)期望軌跡的跟蹤效果會出現(xiàn)缺陷。不同參數(shù)設(shè)置情況下跟蹤誤差對比曲線圖如圖3所示。
表1 不同參數(shù)設(shè)置迭代后的誤差數(shù)據(jù)
通過數(shù)據(jù)實驗,得到在不同的參數(shù)設(shè)置下,自適應(yīng)迭代學(xué)習(xí)控制在前期收斂速度出現(xiàn)了差異,后期收斂精度受到影響。為了使系統(tǒng)跟蹤效果達到最佳,要對參數(shù)進行尋優(yōu)操作,找到合適的參數(shù)。
圖3 不同參數(shù)設(shè)置跟蹤誤差曲線對比圖
遺傳算法(Genetic Algorithm,GA)通過觀察生物界中的選擇、遺傳機理,對自然進化算法過程進行最優(yōu)解搜索,屬于進化算法(Evolutionary Algorithm,EA)的一種。選擇、交叉和變異是遺傳算法的3個算子。其中,群體(population)是由一定數(shù)量的個體(individual)組成,生物體被稱為個體,適應(yīng)值(fitness)表示對環(huán)境的適應(yīng)度,取決于個體的染色體(chromosome),用一串?dāng)?shù)字表示染色體,每一位數(shù)字對應(yīng)一個基因(gene)。新的群體由所有個體進行選擇、交叉和變異生成,稱作新一代(new generation)。算法流程[14]如下:
步驟一 對初始種群、交叉率、變異率等參數(shù)進行初始化;
步驟二 對種群此時的每個待解個體的適應(yīng)度進行計算;
步驟三 將待解個體在適應(yīng)度條件下進行篩選或通過交叉變異產(chǎn)生新一代個體;
步驟四 再對父代個體采用均勻交叉、單點交叉等方法,產(chǎn)生新候選個體;
步驟五 對部分個體的基因值通過變異概率方法改變其值;
步驟六 判斷當(dāng)前值是否滿足條件,滿足退出,不滿足返回步驟二。
鯨魚算法(Whale Optimization Algoritm,WOA)受自然界中鯨魚捕食過程啟發(fā),主要有環(huán)繞式捕食、泡泡網(wǎng)捕食和搜索捕食3個階段[15]。
3.2.1 環(huán)繞式捕食
算法中的個體是每一只鯨魚,算法的解是每個個體在搜索空間的位置。通過回聲定位鯨魚能夠識別到獵物的位置,然后對獵物進行圍獵,根據(jù)公式(8)對個體的位置進行更新:
(8)
A=2a·rand1-a,
(9)
C=a·rand2,
(10)
其中rand1和rand2為[0,1]范圍內(nèi)均勻分布產(chǎn)生的隨機數(shù),a為收斂因子,隨迭代次數(shù)t從2線性減小到0,即
a=2-2t/tmax,
(11)
圖4 鯨魚的泡泡網(wǎng)捕食行為圖
式中tmax為最大迭代次數(shù)。
3.2.2 泡泡網(wǎng)捕食
鯨魚是以螺旋式向上運動并不斷收縮包圍圈來攻擊獵物。鯨魚泡泡網(wǎng)捕食行為如圖4所示。
根據(jù)式(9)中收斂因子a的減小實現(xiàn)對獵物進行收縮包圍與系數(shù)向量A的波動范圍的縮小相關(guān)。在進行迭代時,收斂因子a從2減小到0時,系數(shù)向量A的波動范圍為[-a,a]。系數(shù)向量A隨機地在[-1,1]內(nèi)產(chǎn)生,個體在t+1時刻的位置始終在收縮范圍內(nèi),可以是t時刻的位置和t時刻全局最優(yōu)位置之間的任意位置,在捕食時,鯨魚根據(jù)公式(12)以螺旋運動向獵物游動更新位置,數(shù)學(xué)表達式如下:
(12)
自然界中的鯨魚以螺旋形運動逐步向獵物逼近,對此行為進行模擬時,均假設(shè)選擇收縮包圍機制和螺旋更新位置概率為0.5,此過程由公式(13)表示:
(13)
式中p為[0,1]范圍內(nèi)均勻分布產(chǎn)生的隨機數(shù)。
3.2.3 搜索捕食
鯨魚如果在收縮包圍圈外游動時,此時系數(shù)向量|A|>1,個體根據(jù)相互位置進行隨機搜索,此過程由公式(14)表示:
(14)
WOA算法的全局搜索和局部開發(fā)能力主要受算法中的系數(shù)向量參數(shù)A的影響,同時參數(shù)A的值也取決于a的變化。當(dāng)|A|>1時,為WOA算法的全局搜索能力,此時種群搜索范圍增大,以找到更好的候選解;當(dāng)|A|≤1時,為WOA算法的局部開發(fā)能力,此時種群搜索范圍減小,在小范圍內(nèi)進行精細搜索。收斂因子a較大時,算法具有較好的全局搜索能力,能有效改善易陷入局部最優(yōu)的缺點;收斂因子a較小時,算法具有較強的局部搜索能力,提高了算法的收斂速度。
由于鯨魚算法在控制參數(shù)尋優(yōu)時會出現(xiàn)實際的優(yōu)化搜索過程不能完全體現(xiàn),導(dǎo)致容易使全局搜索與局部開發(fā)能力難以控制,在迭代后期種群的多樣缺失,個體都開始向局部最優(yōu)聚集。因此,將遺傳算法與鯨魚算法各自擅長的尋優(yōu)能力組合,提升算法的收斂效果,算法流程如下:
(1)對候選解群、迭代次數(shù)t進行初始化,設(shè)置GA和WOA的初始閾值r,當(dāng)前迭代次數(shù)t=0;
(2)根據(jù)(KP,KD)初始連接對改進的鯨魚算法采用初始編碼;
(3)以誤差為適應(yīng)度值進行選擇、交叉、變異、泡泡網(wǎng)捕食等操作,直至達到條件;
(4)獲得最優(yōu)權(quán)值和閾值;
(5)計算誤差更新權(quán)值和閾值,輸出誤差結(jié)果。
由于PID控制器的參數(shù)整定本質(zhì)是多維函數(shù)的優(yōu)化問題,而鯨魚算法所采用的編碼方式為實數(shù)編碼,對于自適應(yīng)迭代學(xué)習(xí)控制算法中的PD參數(shù)直接進行編碼(KP,KD):
X={KP,KD}。
(15)
自適應(yīng)迭代學(xué)習(xí)控制算法增益參數(shù)優(yōu)化目標就是使誤差趨近于零,這樣系統(tǒng)有較快的響應(yīng)速度和較低的超調(diào)量。因此將誤差的絕對值和時間的積分作為目標函數(shù):
(16)
式中e(t)表示實際輸出與期望輸出的誤差,t為時間。當(dāng)自適應(yīng)迭代算法進行20次的迭代之后,鯨魚算法對自適應(yīng)迭代算法中的增益參數(shù)進行一次更新,用于后續(xù)的迭代控制,這樣當(dāng)找到最佳組合值時,停止搜索。
基于遺傳-鯨魚優(yōu)化算法的自適應(yīng)迭代學(xué)習(xí)控制算法仿真的實驗系統(tǒng)架構(gòu)如圖5所示,得出仿真結(jié)果如圖6所示,并對結(jié)果進行分析。
圖5 實驗系統(tǒng)架構(gòu)
圖6 仿真結(jié)果
由圖6(a)、(b)可知,在關(guān)節(jié)1和關(guān)節(jié)2的位置誤差跟蹤上,基于GA-WOA算法的自適應(yīng)迭代學(xué)習(xí)控制在第1次時就收斂到期望值,而WOA算法的自適應(yīng)迭代學(xué)習(xí)控制需要約2次;由圖6(c)、(d)可知,在關(guān)節(jié)1和關(guān)節(jié)2的速度跟蹤誤差上,基于GA-WOA算法的自適應(yīng)迭代學(xué)習(xí)控制在第1次分別收斂到0.11和0.03,而WOA算法的自適應(yīng)迭代學(xué)習(xí)控制在第1次時針對關(guān)節(jié)1和關(guān)節(jié)2的速度跟蹤誤差分別為0.58和0.23。因此,在對機械臂控制時,相較于WOA算法的控制,GA-WOA算法的控制對機械臂控制具有收斂速度快、精度高的優(yōu)勢。
為驗證算法的有效性設(shè)定兩組期望軌跡分別為A組:q1=sin(2πt),q2=cos(2πt);B組:q1=sin(3πt),q2=cos(3πt)。按照對SCARA機器人進行的簡化分析,將優(yōu)化后的算法與期望軌跡進行對比,系統(tǒng)跟蹤軌跡和誤差收斂曲線如圖7所示。
圖7 系統(tǒng)跟蹤軌跡和期望軌跡對比仿真結(jié)果
圖8 多次迭代跟蹤誤差
由圖7可知,A組與B組軌跡在經(jīng)過5次迭代以后誤差明顯減小,對期望軌跡能進行有效跟蹤。由圖8的結(jié)果可以看出,在第1次時系統(tǒng)跟蹤誤差收斂于期望軌跡,在5次時完全跟蹤期望軌跡,驗證了基于遺傳-鯨魚優(yōu)化算法的自適應(yīng)迭代學(xué)習(xí)控制算法對改善系統(tǒng)性能具有良好的作用。
本文針對SCARA控制,提出了基于改進鯨魚算法的自適應(yīng)迭代學(xué)習(xí)策略。在鯨魚算法中引入遺傳算法,把GA與WOA各自的優(yōu)勢相結(jié)合,提高了尋優(yōu)的全局性,使系統(tǒng)跟蹤達到較好效果。仿真結(jié)果分析表明,對控制器參數(shù)進行優(yōu)化后,減少了迭代次數(shù),提高了跟蹤誤差的收斂速度,證明了GA-WOA算法的自適應(yīng)迭代學(xué)習(xí)控制能有效減小執(zhí)行重復(fù)運動任務(wù)機器人的跟蹤誤差,能夠?qū)ο到y(tǒng)期望軌跡進行精確跟蹤。