劉衛(wèi)朋,邢關(guān)生,陳海永,孫鶴旭
( 1.河北工業(yè)大學 控制科學與工程學院,天津 300130; 2.青島科技大學 自動化與電子工程學院,山東 青島 266042)
機械臂動力學具有高度非線性和不確定性,目前針對機械臂軌跡的跟蹤控制問題已有很多可行的控制方案。為了便于設(shè)計且成本低廉,工業(yè)界習慣采用比例—積分—微分(Proportion Integration Differentiation, PID)控制器設(shè)計方法,然而傳統(tǒng)PID控制方法對不確定的工作環(huán)境、負載變化和未知外部擾動的適應(yīng)能力不足,需要采用先進的自適應(yīng)技術(shù)來提高控制器的工作性能。
近年來增強學習(又稱強化學習)逐漸受到研究者的重視。增強學習是一種非線性系統(tǒng)的直接自適應(yīng)最優(yōu)控制方法[1],該方法計算簡單,能夠賦予控制器學習能力,使控制器靈活應(yīng)對變化的外部環(huán)境。增強學習控制器通過與環(huán)境(包括動態(tài)模型未知的被控對象)相互作用,基于實際運行數(shù)據(jù)學習控制律,目的是獲得最大的長期回報,即使控制系統(tǒng)性能最優(yōu)。增強學習控制器設(shè)計不需要被控對象的動態(tài)模型,控制動作的產(chǎn)生是基于當前或歷史數(shù)據(jù)。已有一些研究工作將增強學習算法應(yīng)用于機械臂控制,例如,文獻[2]采用基于K-均值聚類的增強學習方法解決機械臂的避碰問題;文獻[3]采用Q-learning算法解決機械臂關(guān)節(jié)運動的軌跡跟蹤控制問題,研究增強學習中的各種函數(shù)逼近技術(shù),對比了模糊Q-learning控制[4]、神經(jīng)網(wǎng)絡(luò)Q-learning控制[5]、決策樹Q-learning控制[6]、支持向量機Q-learning控制[7]在負載變化、力矩擾動情況下的平均偏差、最大偏差等性能指標。
采用增強學習直接完成機械臂的控制存在兩方面困難[8-9]:①初始參數(shù)較難選擇,系統(tǒng)容易出現(xiàn)不穩(wěn)定,工程上難以實現(xiàn);②增強學習算法在應(yīng)用于連續(xù)系統(tǒng)的控制任務(wù)時,面臨著因狀態(tài)空間巨大而帶來的值函數(shù)泛化問題,即如何存儲和逼近一個蘊含著最優(yōu)控制目標的函數(shù)。本文提出基于SARSA(state-action-reward-state-action)算法的增強學習補償控制策略,并與傳統(tǒng)PD控制組合使用,利用PD控制完成基本的鎮(zhèn)定任務(wù),利用增強學習算法實現(xiàn)對未知干擾因素的補償,從而提高對不同情況的適應(yīng)能力。
在機械臂的軌跡跟蹤應(yīng)用中,無論是令機械臂末端運動到某個或某幾個位置點,還是令機械臂末端以某姿態(tài)沿給定軌跡運動,常常需要完成軌跡規(guī)劃和軌跡跟蹤兩步計算任務(wù)。軌跡規(guī)劃指利用機械臂的逆運動學模型,根據(jù)期望的末端位姿計算出各關(guān)節(jié)的期望轉(zhuǎn)角,進而規(guī)劃出各關(guān)節(jié)角和角速度隨時間變化的曲線。由于現(xiàn)實物理世界存在各種不可預測的干擾和不確定因素,規(guī)劃出的軌跡在執(zhí)行過程中很容易偏離,需要實時根據(jù)關(guān)節(jié)角、角速度的測量值和期望值之間的偏差進行調(diào)節(jié),使機械臂的各個關(guān)節(jié)盡可能按期望軌跡進行旋轉(zhuǎn)運動,這是軌跡跟蹤控制問題。
機械臂關(guān)節(jié)運動的軌跡跟蹤控制屬于多變量控制,機械臂關(guān)節(jié)間存在非線性耦合,而傳統(tǒng)的PD控制雖然容易實現(xiàn),但是任何一個作用于單一關(guān)節(jié)的PD控制器都難以克服其他關(guān)節(jié)帶來的干擾,控制性能不佳。之后出現(xiàn)的基于模型的計算力矩控制、魯棒控制和自適應(yīng)控制等方法大多需要已知機械臂的數(shù)學模型,然而大多數(shù)機械臂數(shù)學模型復雜、模型參數(shù)很難測定或代價較高,從而制約了這些高級控制方法的應(yīng)用。實用的解決方案是采用PD反饋與動態(tài)補償相組合的控制策略,或者PD反饋與逆??刂葡嘟M合的控制策略。
Lewis[7]使用三層前饋神經(jīng)網(wǎng)絡(luò)進行非線性補償,與PD控制器共同構(gòu)成機械臂的軌跡跟蹤控制系統(tǒng),控制系統(tǒng)基本結(jié)構(gòu)如圖1所示。神經(jīng)網(wǎng)絡(luò)用來逼近一個類似于計算力矩控制的控制律[8-9,11]。Ren等[12]為抵抗神經(jīng)網(wǎng)絡(luò)逼近誤差給跟蹤控制帶來的影響,提出帶有滑模控制的神經(jīng)網(wǎng)絡(luò)魯棒補償控制器,Xie等[13]完成了五自由度機械臂自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制器的設(shè)計和分析,并通過MATLAB/ADAMS聯(lián)合仿真驗證了方法的有效性;王良勇等[14]在系統(tǒng)離散化的情況下,將關(guān)節(jié)間的耦合影響看作干擾,使用徑向基函數(shù)(Radial Basis Function, RBF)神經(jīng)網(wǎng)絡(luò)逼近單個關(guān)節(jié)的干擾項,分散地實現(xiàn)了機械臂各關(guān)節(jié)的補償控制。
另外,PD與逆模控制的組合控制策略是利用逆動力學或逆動力學的近似動態(tài)消除機械臂的非線性,將控制系統(tǒng)變換為二階線性系統(tǒng),利用極點配置方法可設(shè)定PD控制器參數(shù)?;究刂瓶驁D如圖2所示。Pane等[15]采用執(zhí)行者—評價者結(jié)構(gòu)的增強學習算法補償PD控制器,每個關(guān)節(jié)有一個增強學習控制器,但是控制系統(tǒng)結(jié)構(gòu)比較復雜;Spong等[16]在其基礎(chǔ)上提出改進的控制器設(shè)計方案,以克服對慣性矩陣估計限制的條件;Kim等[17]采用多層前饋神經(jīng)網(wǎng)絡(luò)和一個鎮(zhèn)定的反饋控制器組合的控制方案,反饋控制器用于保證系統(tǒng)有界,前饋神經(jīng)網(wǎng)絡(luò)以在線學習的方式逼近機械臂的逆動態(tài),形成直接逆控制器;Tian等[18]采用遞歸神經(jīng)網(wǎng)絡(luò)逼近兩自由度柔性機械臂的逆模型,進而實現(xiàn)逆??刂疲籉ahmy等[19]將模糊神經(jīng)網(wǎng)絡(luò)用于機械臂逆動態(tài)建模,與模糊PID伺服控制共同構(gòu)成機械臂控制系統(tǒng);Ouyang等[11]對單軸柔性機械臂直接采用執(zhí)行者—評價者結(jié)構(gòu)的增強學習算法設(shè)計控制器,以保證系統(tǒng)在學習初期的穩(wěn)定性,但是執(zhí)行者和評價者的神經(jīng)網(wǎng)絡(luò)初始參數(shù)難以選擇。
補償控制和逆??刂凭上P(guān)節(jié)間耦合和重力作用產(chǎn)生的非線性項給控制系統(tǒng)帶來的反面作用,但是缺少對控制系統(tǒng)最優(yōu)性方面的考慮。本文采用增強學習這種自適應(yīng)最優(yōu)控制方法設(shè)計PD伺服控制的補償控制器,通過增強學習的自適應(yīng)能力,使其能夠靈活應(yīng)對關(guān)節(jié)間的耦合作用和不確定外部擾動,在控制過程中逐漸學習出令輸出誤差和控制輸入最小的補償控制律。
增強學習是一個智能體從經(jīng)驗數(shù)據(jù)中學習出控制或決策策略的過程,其經(jīng)驗來自于系統(tǒng)運行過程中環(huán)境給智能體回饋的獎勵或懲罰。獎勵可被看作是正向的增強信號,懲罰被認為是反向的增強信號,這種增強信號是對智能體在某一狀態(tài)下所采取的控制動作的評價(正面或負面)。試錯過程中,智能體在歷史經(jīng)驗中增強信號的刺激下,不斷選擇能夠在未來取得最多報酬的控制動作,即尋求報酬最大化,這是對生物界常見行為的模擬。
增強學習系統(tǒng)的基本框架如圖3所示,交互過程中的3個基本信號分別為狀態(tài)、控制動作和報酬。狀態(tài)指智能體所面對的外部環(huán)境的狀態(tài);動作是智能體做出的決定,施加在外部環(huán)境上,影響其狀態(tài)變化;報酬是動作被執(zhí)行后產(chǎn)生的效果的反饋。從控制的角度看,智能體可被認為是控制器,外部環(huán)境被看作被控對象,動作是基于狀態(tài)計算出的控制輸入,報酬信號由成本函數(shù)定義,控制成本減小是報酬,控制成本增大是懲罰,即目標是追求控制成本最小化。
SARSA算法是一種“在策略”(on-policy)的TD(temporal-difference)算法,狀態(tài)—行為值函數(shù)的估計和更新依賴于當前策略和狀態(tài)—行為對。通過對比兩種算法值迭代的過程,能夠很容易地理解SARSA與Q-learning的區(qū)別。一步SARSA的值函數(shù)迭代規(guī)則為
Qt+1(xt,ut)←Qt(xt,ut)+
α[rt+1+γQt(xt+1,ut+1)-Qt(xt,ut)]。
(1)
機械臂軌跡跟蹤控制系統(tǒng)采用PID和增強學習控制組合的控制系統(tǒng)結(jié)構(gòu),如圖4所示。
3.2基于SARSA算法的補償控制策略
(2)
(3)
期望值d已知,設(shè)式(3)可離散化為
(4)
設(shè)折扣型最優(yōu)值函數(shù)為
(5)
(6)
式中:ei=di-xi為跟蹤偏差,矩陣Q和R為對角矩陣且正定。式(4)的最優(yōu)值函數(shù)的迭代形式為
V*(xk,dk)=
(7)
在增強學習框架下,采用狀態(tài)行為值函數(shù)的定義
(8)
則最優(yōu)狀態(tài)行為值函數(shù)為
(9)
由式(7)和式(9)可知
(10)
尋找控制律就是為了計算出令最優(yōu)狀態(tài)行為值函數(shù)的值最小的控制輸入。設(shè)最佳的控制律為h*(xk,dk),則
(11)
(12)
本文采用一種具有內(nèi)部反饋結(jié)構(gòu)的遞歸型神經(jīng)網(wǎng)絡(luò)來提高迭代的速度,該網(wǎng)絡(luò)與已有研究工作所采用的前饋神經(jīng)網(wǎng)絡(luò)不同,具體結(jié)構(gòu)如圖5所示。這種神經(jīng)網(wǎng)絡(luò)包括輸入層、隱層和輸出層3層,其隱層神經(jīng)元的輸出被反饋至輸入層,這是與前饋神經(jīng)網(wǎng)絡(luò)不同的地方。
令v=[v1,v2,…,vNH,φ]T為從隱層到輸出層的權(quán)重,其中:vj表示第j個隱層單元到輸出層的權(quán)值,φ表示輸出層神經(jīng)元的閾值。隱層的激活函數(shù)采用非線性sigmoid函數(shù)表示為
(13)
需要解釋的是,如果式(13)中的a為列向量,則φ(a)表示分別以a中各元素為自變量,執(zhí)行式(13)的計算而得的列向量。輸出神經(jīng)元的激活函數(shù)是線性的。則神經(jīng)網(wǎng)絡(luò)所能存儲的值函數(shù)可參數(shù)化地表示為
(14)
(15)
根據(jù)反向傳播算法,先根據(jù)式(16)更新權(quán)重vj:
(16)
然后根據(jù)式(17)和式(18)更新權(quán)重wij:
(17)
(18)
類似地,神經(jīng)元閾值φ和θj的更新律分別為:
(19)
(20)
式中ε和γ分別為輸出層和隱層的學習率。
(21)
(22)
l=4n+i,i=1,2,…,n。
(23)
神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)選擇對增強學習控制器的設(shè)計非常重要。對于兩關(guān)節(jié)機械臂,神經(jīng)網(wǎng)絡(luò)外部輸入的個數(shù)NI=10,包括兩個關(guān)節(jié)的位置與速度4個量、期望位置與速度4個量,以及控制力矩2個量,隱層神經(jīng)元個數(shù)選擇為NH=20,則遞歸神經(jīng)網(wǎng)絡(luò)輸入層的神經(jīng)元個數(shù)Nw=NI+NH=30。由網(wǎng)絡(luò)結(jié)構(gòu)可知,輸入層到隱層的權(quán)重W是31×20矩陣,隱層到輸出層的權(quán)重v是21×1向量,這里的權(quán)重包含了各神經(jīng)元的閾值參數(shù)。神經(jīng)網(wǎng)絡(luò)權(quán)重W和v中各元素的初始值是在[-0.1,0.1]區(qū)間內(nèi)隨機產(chǎn)生的。
仿真實驗首先設(shè)計能夠使機械臂穩(wěn)定的PD控制器,然后增加增強學習補償控制,并對比分析增強學習控制的作用。
設(shè)計兩個PD控制器,分別操縱機械臂的兩個關(guān)節(jié),PD控制器的算式為
PD控制是機械臂穩(wěn)定的基礎(chǔ),通過增強學習控制器的補償作用能夠減小跟蹤誤差。跟蹤曲線的周期性可以使增強學習進行重復學習,且每次學習均在前次學習的基礎(chǔ)上更新存儲Q函數(shù)的神經(jīng)網(wǎng)絡(luò)權(quán)重。加入增強學習補償控制后,機械臂兩關(guān)節(jié)角的跟蹤誤差軌跡分別如圖10和圖11所示。
為了說明增強學習的補償作用,將兩次仿真實驗結(jié)果放置在一個坐標系內(nèi)進行比較,如圖12和圖13所示。
由圖12和圖13可見,在加入增強學習控制器后,兩個關(guān)節(jié)角的跟蹤誤差均減小,而且由于增強學習的持續(xù)學習作用,每個學習周期后,與前一學習周期相比,誤差在逐漸減小;而單純的PD控制下,誤差變化也存在周期性重復。這是增強學習控制學習能力的主要表現(xiàn)。
本文針對兩自由度機械臂的控制問題,提出一種基于SARSA算法的機械臂軌跡跟蹤控制策略,通過與傳統(tǒng)PD控制組合使用,利用PD控制完成基本的鎮(zhèn)定任務(wù),利用增強學習算法實現(xiàn)對未知干擾因素的補償,可以提供對不同情況的適應(yīng)能力。因為PI控制的積分作用使控制速度變慢,系統(tǒng)穩(wěn)定性變差,不適用于工業(yè)機器人,所以本文的PID控制器使用PD控制算法,以增強學習控制器作為補償控制。仿真實驗表明:
(1)引入增強學習后,機械臂可實現(xiàn)自主控制??刂破髟谶B續(xù)空間內(nèi)產(chǎn)生實值型控制量,提高了控制精度。
(2) 通過仿真實驗驗證了自適應(yīng)離散化的強化學習方法在機械臂軌跡跟蹤問題中的可行性和有效性,明顯提高了控制器的學習速度。