吳曉光 張?zhí)熨n 韋 磊 李艷會 王挺進 張 波
1.燕山大學(xué)河北省測試計量技術(shù)及儀器重點實驗室,秦皇島,066004 2.中國唐山機車車輛有限公司,唐山,063000
隨著雙足機器人技術(shù)的發(fā)展,高效、穩(wěn)定、準確的控制策略已成為雙足機器人研究中的重要方向,多種行之有效的控制方法相繼被提出[1?4],然而上述方法大多建立在機器人系統(tǒng)已知的基礎(chǔ)上。雙足機器人自身固有的變結(jié)構(gòu)、強耦合特性[5],以及足地碰撞引發(fā)的連續(xù)與離散混合特性[6],使得準確建立模型變得非常困難。實現(xiàn)雙足機器人的高效穩(wěn)定控制,需要構(gòu)造一個確定的非線性映射來代替原系統(tǒng),即雙足機器人系統(tǒng)辨識。因此,辨識技術(shù)成為機器人不確定系統(tǒng)高效控制中亟待解決的關(guān)鍵問題。
為將系統(tǒng)辨識技術(shù)有效地應(yīng)用于雙足機器人的高效控制,研究人員嘗試了多種適宜于復(fù)雜非線性系統(tǒng)的辨識方法,如采用最小二乘法[7]、支持向量機[8]、神經(jīng)網(wǎng)絡(luò)[9]來辨識雙足機器人的運動軌跡。在各類型神經(jīng)網(wǎng)絡(luò)中,徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(radial basis function neural network,RBFNN)以其強大的非線性函數(shù)逼近能力、自學(xué)習(xí)適應(yīng)能力,受到眾多學(xué)者的青睞。CAPI等[10]針對不同任務(wù)下機器人步態(tài)的具體要求,利用RBFNN實現(xiàn)了運動軌跡的辨識,并成功應(yīng)用于雙足機器人確定步態(tài)的行走控制。CHALODHORN等[11]利用RBFNN辨識雙足機器人的逆動力學(xué)模型,并基于該辨識模型預(yù)測給定位姿下的最優(yōu)關(guān)節(jié)轉(zhuǎn)矩,從而實現(xiàn)機器人的穩(wěn)定行走。然而,上述研究所采用的辨識方法僅針對主動機器人的連續(xù)運動軌跡而忽略了足地接觸碰撞的影響,不能充分表征雙足機器人動力學(xué)本質(zhì);摒棄了運動過程中步態(tài)的多樣性,不適用于步態(tài)柔順、自然的混合動力學(xué)機器人系統(tǒng)。因此有必要引入一種有效的、針對離散足地碰撞的建模方法作為上述研究的補充,將二者有機結(jié)合,實現(xiàn)對雙足機器人動力學(xué)本質(zhì)的更深層次表達。
動態(tài)模糊神經(jīng)網(wǎng)絡(luò)(dynamic fuzzy neural network,DFNN)是目前常用的離散系統(tǒng)建模工具之一。DFNN作為一種改進的模糊神經(jīng)網(wǎng)絡(luò),具有強大的泛化能力與對動態(tài)系統(tǒng)的在線辨識與預(yù)測能力[12?13]。WU等[14]設(shè)計一種 DFNN并應(yīng)用于非線性離散時間序列的辨識。徐春梅等[15]利用學(xué)習(xí)速率自適應(yīng)調(diào)整的DFNN,成功實現(xiàn)了動態(tài)非線性離散系統(tǒng)的快速辨識與準確預(yù)測。因此,可以利用基于DFNN的離散建模方法,對足地碰撞階段進行準確的辨識。此外,混沌步態(tài)作為雙足步行中的最為復(fù)雜步態(tài)表現(xiàn)形式,不僅具有深層次的復(fù)雜特性,同時蘊含著深層次的系統(tǒng)動力學(xué)特性[16],因而可將雙足機器人系統(tǒng)的混沌步態(tài)作為辨識目標,以充分體現(xiàn)雙足機器人混合系統(tǒng)的動力學(xué)特性。
本文針對雙足機器人混合動力學(xué)系統(tǒng)的辨識問題,以雙足機器人運動過程中最為復(fù)雜的混沌步態(tài)作為辨識對象,提出一種基于混沌粒子群優(yōu)化算法[17]優(yōu)化的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(CPSO?RBFNN)和DFNN的雙足機器人混合動力學(xué)系統(tǒng)辨識方法。
本文立足于雙足機器人擺動階段與碰撞階段之間存在的變量耦合、轉(zhuǎn)換關(guān)系,從雙足機器人軌道漸進穩(wěn)定性角度推導(dǎo)該混合系統(tǒng)的整體可辨識條件。
考慮雙足機器人系統(tǒng)擺動階段的微分方程:
其中,x為系統(tǒng)的狀態(tài)變量,x∈X;X是Rn中一連通的開子集;u(t)為系統(tǒng)控制輸入,u(t)∈u?Rm;f為不確定參數(shù)的光滑非線性函數(shù);g為系統(tǒng)非線性方程。假定:①系統(tǒng)中的所有狀態(tài)均可測;②對于任意合理有界初始條件,系統(tǒng)在μ的作用下一致有界;③f、g為連續(xù)函數(shù)且滿足局部Lip?schitz條件,則式(1)的解x(t)唯一。
R。最后令Φ∶F→Χ。則對于存在碰撞作用的混合動力學(xué)模型,有
方程 φ:[t0,tf)→ Χ,tf∈R?{∞},tf>t0為式(2)的解。如果:
(1)φ(t)在[t0,tf)上右連續(xù);
(2)區(qū)間(t0,tf)上任一點的左極限存在;
(3)存在一個閉的離散子集Γ?[t0,∞);則滿足:
(1)對于任意t? Γ,φ(t)均可微且dφ(t)dt=f(φ (t))+g(φ (t))u(t);
(2)如果t∈Γ,φ(t-)∈ F且φ(t+)= Φ(φ(t-)),則碰撞時間集為閉集,且僅有一個碰撞點。
若u(t)=0,則式(2)為時不變系統(tǒng)。對任意ε>0,若O存在一個開鄰域P使得任意p∈P,則式(2)存在一個解φ:[0,∞)→Χ滿足φ(0)=p,并且對于所有t≥0,若滿足二者間距離δ(φ(t),O)<ε,則周期軌道O為李雅普諾夫穩(wěn)定。如果O存在一個開鄰域P,使得對于任意p∈P,式(2)存 在 一 個解 φ:[0,∞)→Χ 滿足0,則軌道O是吸引的。如果軌道O既是穩(wěn)定的,也是吸引的,則軌道O是李雅普諾夫漸進穩(wěn)定的。
由式(2)可知,碰撞集合F={ |x∈Χ H(x)=0},其中,H∶Χ→R為連續(xù)可微。如果式(1)的解與F交集的閉僅為一個點xˉ∶=Oˉ?F,且道Oˉ穿過F而不是與F相切,其中,Oˉ為軌道O的閉集。
對于存在碰撞作用的時不變雙足機器人系統(tǒng):
采用龐加萊截面法拓展上述非平凡的周期軌道,使其穿越F,并令φ為滿足x˙=f(x)的解。
為實現(xiàn)這一拓展需作如下假設(shè):①f(x)在Χ上連續(xù);②對于給定的任意初始條件,式(4)的解唯一且連續(xù)依賴于初始條件;③存在一個可微的函數(shù)H∶Χ→R,使得F={ |x∈ Χ H(x)=0},連續(xù)的,其中,F(xiàn)為源自于X的子集拓撲。
定義碰撞時間函數(shù)TI(x0)∶Χ→R?{∞}為
引理1 如果假設(shè)①~③成立,則TI在點x0連續(xù),其中,0<TI(x0)< ∞且LfH(φ (TI(x0),x0))≠ 0[18]。
在滿足假設(shè)①~④的條件下,取定龐加萊截面為碰撞開始時刻對應(yīng)的狀態(tài)空間,則龐加萊回歸映射P(x)∶=φ(TI(Φ(x)),Φ(x))是連續(xù)的。由于x0作為軌道迭代的初值,并且是相軌跡與龐加萊截面的交點,具有唯一性,即x0=Oˉ? ~F,因此可以利用x0作為自變量去映射一整條周期軌道O(Φ (x0))。
引理2 滿足假設(shè)①~③時,d∶~X→R在O上連續(xù)[18]。
定理1 如果假設(shè)①~④均滿足,則下列命題成立:①如果O是式(3)穿越F的周期軌道,則存在點x0∈~F生成O;②當(dāng)且僅當(dāng)Φ(x0)生成的周期軌道穿越F時,x0∈~F為P的不動點;③當(dāng)且僅當(dāng)軌道O(Φ(x0))是李雅普諾夫穩(wěn)定的,x0∈~F為xk+1=P(xk)的穩(wěn)定平衡點;④當(dāng)且僅當(dāng)軌道O(Φ (x0))是李雅普諾夫漸進穩(wěn)定的,x0∈ ~F為xk+1=P(xk)的漸進穩(wěn)定平衡點[18]。
若O是穿越F的給定周期軌道,且x∈~X,TI(x),滿足 φ(t-,x)= φ(t,x)。
對于式(2)所表示的雙足機器人系統(tǒng),g(·):R2n+1→Rn是不確定非線性連續(xù)函數(shù)。由于g(·)與控制輸入u為連續(xù)函數(shù),故上述理論推導(dǎo)同樣適用于式(2)。將第n次足地間碰撞時刻記為tn,碰前碰后時刻分別由tn、t+n表示。對于t∈[0,∞)時刻機器人的步態(tài)x(t),顯然存在自然數(shù)n,使得tn≤t<tn+1。設(shè)?為第n次碰撞后到當(dāng)前狀態(tài)的相對時間。令t=?+tn,?≥0,則步態(tài)x(t)可以表示為
本文利用CPSO?RBFNN強大的逼近能力與快速學(xué)習(xí)能力對雙足步行中的擺動階段建模,從而達到對該階段動力學(xué)模型的準確辨識。RBFNN一般由輸入層、隱含層和輸出層組成[19]。假設(shè)網(wǎng)絡(luò)輸入Xn=[xn1xn2… xnm],實際輸出Yn=[yk1yk2… yks],那么該網(wǎng)絡(luò)的輸入輸出映射關(guān)系可表述為
式中,n為訓(xùn)練樣本數(shù);S為輸出單元個數(shù);I為隱含層節(jié)點數(shù);Xi為基函數(shù)的中心,Xi=[xi1xi2… xim]∈R1×m;θj為網(wǎng)絡(luò)閾值;ωij為網(wǎng)絡(luò)連接權(quán)值;σ為基寬。
式(9)中的基函數(shù)φ為高斯函數(shù),RBFNN的精度主要由中心節(jié)點、基寬、閾值等參數(shù)決定。
CPSO算法是在粒子群優(yōu)化(particle swarm optimization,PSO)算法[20]的基礎(chǔ)上發(fā)展而來的一種新型群智能仿生優(yōu)化算法,它在每次迭代尋優(yōu)的過程中由混沌序列隨機產(chǎn)生若干粒子并映射至原有解空間,從中選取適應(yīng)度較高的個體替換原有粒子,作為下次迭代的初始種群。該算法能大大增加粒子種群多樣性,避免陷入局部最優(yōu)值,提升算法在解空間的尋優(yōu)能力與收斂速度[21]。因此,本文采用CPSO算法對RBFNN的Xi、σ和ωij同時優(yōu)化,從而得到最優(yōu)的擺動階段動力學(xué)辨識模型。
CPSO?RBFNN訓(xùn)練主要包括以下幾個步驟:
(1)粒子群參數(shù)初始化,主要包括種群規(guī)模、最大迭代次數(shù)、慣性權(quán)重、學(xué)習(xí)因子、位置和速度取值區(qū)間等。
(2)建立RBFNN并生成粒子群,利用混沌序列初始化粒子種群與速度。
(3)計算粒子適應(yīng)度函數(shù)值,對于本文,第i個粒子適應(yīng)度計算公式為
式中,yk為神經(jīng)網(wǎng)絡(luò)實際輸出值;y^k為期望輸出值;N為種群個數(shù)。
計算種群內(nèi)各個粒子適應(yīng)度,并把當(dāng)前種群中適應(yīng)度最低的粒子位置設(shè)置為全局最優(yōu)位置。
(4)按照標準粒子群算法更新粒子的位置與速度[20]。對于適應(yīng)度函數(shù)值小于種群平均適應(yīng)度值的粒子,利用Logistic映射進行混沌優(yōu)化。具體優(yōu)化過程見文獻[22]。
(5)當(dāng)?shù)螖?shù)小于最大迭代次數(shù)時,返回步驟(3),否則結(jié)束粒子群尋優(yōu)。將最優(yōu)粒子解碼后,賦值給RBF中心、基寬向量和網(wǎng)絡(luò)權(quán)值,得到最優(yōu)的辨識網(wǎng)絡(luò)。
在雙足步行中,理想化的碰撞階段可視為單次迭代過程[23]。鑒于機器人混沌步態(tài)對初值的敏感性,需尋找一類泛化能力強的神經(jīng)網(wǎng)絡(luò)識別未訓(xùn)練樣本,以彌補辨識結(jié)果的誤差,防止后續(xù)迭代中的誤差累計使辨識結(jié)果迅速偏離原有混沌軌道。為此,本文采用DFNN來辨識該碰撞階段。該網(wǎng)絡(luò)由輸入層、模糊化層、規(guī)則層、結(jié)論層和清晰化層組成。網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示,其本質(zhì)是代表一個基于TS模型的模糊系統(tǒng),其中,x1、x2、…、xr為網(wǎng)絡(luò)輸入,y是系統(tǒng)的輸出,Mij是第i個輸入變量的第j個隸屬函數(shù),Rj表示第j條模糊規(guī)則,Nj是第j個歸一化節(jié)點,wj是第j個規(guī)則的結(jié)果參數(shù)或者連接權(quán),u為系統(tǒng)總規(guī)則數(shù)。對該網(wǎng)絡(luò)更詳細的描述見文獻[14]。
圖1 動態(tài)模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of dynamic fuzzy neural network
DFNN訓(xùn)練過程主要包括以下幾個步驟:①選取訓(xùn)練樣本中的第一組數(shù)據(jù)作為系統(tǒng)觀測數(shù)據(jù),建立系統(tǒng)的模糊規(guī)則,得到對應(yīng)的規(guī)則強度。②對高斯隸屬度函數(shù)的中心和寬度進行修正,使系統(tǒng)性能指標達到期望值。③依次把訓(xùn)練樣本中的數(shù)據(jù)送入DFNN,并重復(fù)步驟①、②。利用每次迭代學(xué)習(xí)的過程,增加有用或者剔除無效模糊規(guī)則,不斷修正現(xiàn)有的規(guī)則庫,使神經(jīng)網(wǎng)絡(luò)滿足辨識精度要求。當(dāng)達到最大迭代次數(shù)之后,網(wǎng)絡(luò)訓(xùn)練結(jié)束。④利用修正的網(wǎng)絡(luò)模型去預(yù)測碰撞結(jié)果,進而實現(xiàn)雙足機器人碰撞階段的準確辨識。整個辨識原理如圖2所示。
圖2 碰撞階段辨識原理圖Fig.2 Schematic diagram of identification in collision stage
分別利用CPSO-RBFNN和DFNN對雙足機器人碰撞階段、擺動階段準確辨識后,利用兩階段之間存在的變量耦合、轉(zhuǎn)換關(guān)系,實現(xiàn)對機器人動力學(xué)系統(tǒng)的整體辨識與步態(tài)預(yù)測。聯(lián)合辨識算法如下:
(1)設(shè)定雙足機器人初始狀態(tài)變量;
(2)設(shè)定預(yù)測步數(shù)S0,并令初始步數(shù)S=0;
(3)將初始狀態(tài)點送入CPSO-RBFNN,辨識擺動階段動力學(xué)方程系數(shù)矩陣;
(4)利用四階Runge-Kutta思想完成辨識方程求解,求解終止條件為θ1= θ2-2β3;
(5)記錄擺動終止時機器人各狀態(tài)變量,送入DFNN得到碰撞后各狀態(tài)值;
(6)左右腿角色互換,即θ+1=θ+2和θ+2=θ+1,其中,θ1、θ2分別表示支撐腿與擺動腿角度,上角標“-”和“+”分別表示碰撞瞬間的前后時刻,下同;
(7)判斷是否滿足辨識步數(shù)要求,即是否S=S0,若滿足,則算法停止;否則令S←S+1,返回步驟(3)。
雙足機器人行走步態(tài)主要包括極限環(huán)步態(tài)、倍周期分岔和混沌步態(tài)[24],其中,混沌步態(tài)作為雙足步行中最為復(fù)雜的步態(tài)表現(xiàn)形式,最能體現(xiàn)雙足機器人動力學(xué)系統(tǒng)的復(fù)雜本質(zhì)。若能解決雙足機器人混沌步態(tài)的辨識問題,自然能把該方法推廣至其他類型的步態(tài)辨識中。因此,本文以兩連桿被動雙足步行機器人所產(chǎn)生的混沌步態(tài)為辨識對象來驗證DFNN與CPSO?RBFNN的聯(lián)合辨識效果。
本文的雙足被動機器人模型如圖3所示,該模型由2個完全相同的剛性直腿組成,兩腿由髖關(guān)節(jié)點H相連。模型詳細參數(shù)與取值見文獻[18]。
圖3 機器人模型示意圖Fig.3 Model structural diagram of biped robot
在對雙足機器人運動過程做出若干理想化假設(shè)后[23],分別利用拉格朗日法和角動量守恒關(guān)系推導(dǎo)運動中擺動階段和碰撞階段模型,得到該模型混合動力學(xué)方程:
其中,M(q)為2× 2正定質(zhì)量慣性矩陣;H(q,q˙)為重力、離心力和哥氏力之和;矩陣Q-、Q+由角動量守恒關(guān)系得到。
碰撞后兩腿的角色互換,故有
式(9)、式(10)構(gòu)成了完整的雙足機器人混合動力學(xué)模型。
為準確描述雙腿運動過程,首先通過調(diào)整斜坡傾角γ使機器人呈現(xiàn)混沌步態(tài)。利用龐加萊映射的方法,分析機器人步態(tài)隨γ變化的情況。取足地碰撞后的瞬間為龐加萊截面,圖4為斜坡傾角γ ∈[0.13,0.172](rad)時,龐加萊截面上 θ1的分岔圖。由圖4可知,隨著γ的逐漸增加,機器人步態(tài)逐漸從單周期過渡到倍周期分岔直至混沌。把圖4中矩形窗口區(qū)域進一步放大,可得圖5。由圖 5可知,當(dāng)γ∈[0.164729,0.172](rad)時,機器人步態(tài)表現(xiàn)為完全混沌。在此,本文利用γ=0.171rad時機器人混沌步態(tài)所產(chǎn)生的狀態(tài)點列作為CPSO-RBFNN的辨識樣本集。
圖4 龐加萊截面θ1分岔圖Fig.4 The final state diagram ofθ1on the Poincaré section
圖5 混沌終態(tài)區(qū)域Fig.5 Chaotic terminal region
為得到較為豐富的擺動階段神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)樣本集,從任意合適的初值狀態(tài)點開始迭代2萬次,以充分遍歷混沌區(qū)域。隨機選取其中5 000組數(shù)據(jù)點集,并依次代入式(9),得到5 000組擺動方程各項系數(shù)點列{M11,M12,M21,M22,H1,H2},把前 4 500組數(shù)據(jù)作為訓(xùn)練樣本集,后500組數(shù)據(jù)作為測試樣本集。考慮到擺動階段動力學(xué)方程中M12=M21且M22為定值,因此確定神經(jīng)網(wǎng)絡(luò)輸入輸出參數(shù)集分別為[θ1,θ˙1,θ2,θ˙2]和{M11,M12,H1,H2}。
訓(xùn)練中,CPSO?RBFNN各項參數(shù)取值如下:種群規(guī)模n=50,慣性權(quán)重w=0.7,學(xué)習(xí)因子c1=c2=2,最大迭代次數(shù)imax=80,神經(jīng)網(wǎng)絡(luò)隱層節(jié)點數(shù)設(shè)為60。圖6所示為適應(yīng)度函數(shù)的收斂過程。神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成后,利用測試樣本檢驗網(wǎng)絡(luò)辨識與預(yù)測性能,其中,M11預(yù)測誤差曲線見圖 7。取定 [θ1,θ˙1,θ2,θ˙2]=[0.607 6,-1.794 7,-0.607 6,6.081 2](rad),利用四階Runge-Kutta法完成對辨識所得動力學(xué)方程的求解。圖8所示分別為機器人角度與角速度的辨識結(jié)果,可見擺動階段辨識結(jié)果具有較高準確度。
圖6 適應(yīng)度曲線Fig.6 Fitness curve
圖7 M11項預(yù)測誤差Fig.7 Prediction error ofM11
圖8 擺動階段辨識Fig.8 Identification in swing stage
雙足機器人碰撞階段模型描述為x(t+)=Φ(x(t-)),因此碰撞階段可視為單次的迭代。為獲得碰撞階段的辨識樣本,從斜坡傾角γ∈[0.165,0.172](rad)的范圍中均勻選取 20個值。對于每個斜坡傾角,記錄300個步態(tài)周期碰撞后1 000組作為測試集。由于碰撞前后僅角速度產(chǎn)生突變而角度保持不變,因此選取輸入?yún)?shù)集為[θ-1,θ˙-1,θ˙-2],輸出參數(shù)集為[θ˙+1,θ˙+2]。
鑒于雙足機器人碰撞階段對網(wǎng)絡(luò)辨識精度具有較高要求,故把學(xué)習(xí)系統(tǒng)的輸入輸出變量的定義域精細劃分為9個區(qū)間。以θ-1為例,圖9表示θ-1的初始隸屬函數(shù)曲線與學(xué)習(xí)后的修正隸屬函數(shù)曲線。圖10所示為學(xué)習(xí)后輸入輸出變量的映射關(guān)系。訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)輸入輸出變量的隸屬函數(shù)模糊標記為9個,分別用阿拉伯?dāng)?shù)字2~8表示,其中,1表示最小,9表示很大,最終得到的模糊規(guī)則如表1所示。
圖10 輸入-輸出變量學(xué)習(xí)后的映射關(guān)系Fig.10 Mapping relationship of input”output variables after learning
表1 自適應(yīng)學(xué)習(xí)后模糊規(guī)則與其隸屬函數(shù)Tab.1 Fuzzy rules and its membership function after self-adaptive learning
在分別獲得了機器人行走步態(tài)碰撞階段、擺動階段的高精度辨識后,將兩個階段進行結(jié)合,采用第4節(jié)的聯(lián)合辨識算法,實現(xiàn)對機器人混沌步態(tài)的完整辨識。
為驗證聯(lián)合辨識算法的有效性與精確度,同樣選取斜坡傾角γp=0.171rad下的混沌步態(tài)作為辨識目標。由圖11可知,在雙足機器人初始行走的10步內(nèi),辨識步態(tài)幾乎完全匹配混沌步態(tài)。10步之后的混沌步態(tài)辨識中,由于每次迭代過程中的誤差累計,辨識精度會逐減降低,但辨識軌跡仍然緊緊跟隨混沌軌道,直至20步左右,仍然具有較高準確度,體現(xiàn)出該辨識方法的有效性。
雙足機器人是一個高度非線性的混合動力學(xué)系統(tǒng),對雙足機器人系統(tǒng)的準確辨識顯得尤為困難。本文提出一種基于CPSO-RBFNN與DFNN的聯(lián)合辨識方法,針對雙足機器人行走過程中連續(xù)擺動階段與離散碰撞階段所具有的不同特點,充分發(fā)揮神經(jīng)網(wǎng)絡(luò)對復(fù)雜非線性系統(tǒng)的逼近能力來擬合雙足機器人系統(tǒng)。仿真結(jié)果表明,該方法能夠充分表征雙足機器人系統(tǒng)的動力學(xué)特性,準確辨識和預(yù)測出雙足步行運動中的混沌步態(tài),從而為基于步態(tài)預(yù)測的控制方法提供一條新的思路。
圖11 混沌步態(tài)辨識曲線Fig.11 Identification of chaotic gait