戚榮志,鄭 欣,丁 力
(1.江蘇理工學(xué)院 機械工程學(xué)院,江蘇 常州 213001;2.江蘇優(yōu)埃唯智能科技有限公司,江蘇 常州 213001)
空中機械臂是一種由旋翼飛行器加裝機械臂組成的機器人系統(tǒng)。與常規(guī)旋翼飛行器相比,空中機械臂能對環(huán)境施加主動影響,并抵達復(fù)雜危險環(huán)境執(zhí)行設(shè)備安裝、科學(xué)采樣等作業(yè)任務(wù)[1-2]。傳統(tǒng)的機械臂存在質(zhì)量大、能耗高以及轉(zhuǎn)動慣量大等問題,不適用于空中機械臂系統(tǒng)[3]。針對這些問題,本文引入了繩驅(qū)動技術(shù),將驅(qū)動電機放置于基座處,從而降低了機械臂的慣量和能耗。空中機械臂的控制器優(yōu)化設(shè)計依賴于準(zhǔn)確的系統(tǒng)模型,但由于空中機械臂是一個多變量、強耦合的非線性系統(tǒng),同時,繩驅(qū)動技術(shù)的引入帶來了機理建模上的困難,造成獲取其適用數(shù)學(xué)模型的難度頗大。因此,對繩驅(qū)動空中機械臂進行系統(tǒng)辨識的研究尤為重要。
繩驅(qū)動空中機械臂是一個復(fù)雜的非線性系統(tǒng),對于非線性系統(tǒng)的辨識,傳統(tǒng)算法受限于機理建模誤差等因素,往往效果不佳。為此,國內(nèi)外學(xué)者提出了諸多智能辨識算法,如神經(jīng)網(wǎng)絡(luò)算法[4]、遺傳算法[5]、小波分析算法[6]等。其中,神經(jīng)網(wǎng)絡(luò)算法因具有強大的非線性映射能力、泛化能力、容錯能力和自學(xué)習(xí)能力,以及能較好體現(xiàn)系統(tǒng)模型的本質(zhì),而在非線性系統(tǒng)辨識領(lǐng)域得到了學(xué)者們的廣泛青睞。然而,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)存在學(xué)習(xí)速率慢、局部收斂等缺陷,因此,亟需引入各種算法進行改進。Subudhi等人[7]采用基于對立差分進化的前饋神經(jīng)網(wǎng)絡(luò)對單自由度雙轉(zhuǎn)子系統(tǒng)進行辨識,結(jié)果顯示該算法精度較高;Yu等人[8]提出了一種基于世界杯算法和流體搜索算法混合優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)辨識算法,該算法提高了質(zhì)子交換膜燃料電池模型參數(shù)估計的效率和精度;楊維新等人[9]采用遺傳算法對小波神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)進行優(yōu)化,精確地辨識出了光電穩(wěn)定平臺的系統(tǒng)模型。但是,對于將改進的神經(jīng)網(wǎng)絡(luò)應(yīng)用到繩驅(qū)動空中機械臂系統(tǒng)辨識的研究,目前還較為少見。
蝴蝶優(yōu)化算法(Butterfly optimization algorithm,BOA)是Arora等人[10]為解決多變量優(yōu)化問題而提出的一種元啟發(fā)式智能優(yōu)化算法。本文將BOA與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了一種基于BOA-BP神經(jīng)網(wǎng)絡(luò)的辨識算法。首先,分析了繩驅(qū)動空中機械臂的輸入、輸出變量以及系統(tǒng)的耦合效應(yīng);其次,引入BOA對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值、閾值參數(shù)進行尋優(yōu);最后,采用BOA-BP神經(jīng)網(wǎng)絡(luò)辨識算法對系統(tǒng)進行辨識。結(jié)果表明,辨識出的模型具有較高的精度。
如圖1所示,繩驅(qū)動空中機械臂的三維模型由四旋翼飛行器和二自由度繩驅(qū)動機械臂組成,具體包括:飛控器、GPS、螺旋槳、旋翼電機、起落架、機械臂電機、編碼器等。由于空中機械臂系統(tǒng)本身的高維度、欠驅(qū)動和強耦合特性,一體式建模的實驗大多難以在計算資源有限的實際嵌入式系統(tǒng)中實現(xiàn)[11];因此,本文參考分離式策略[11],將繩驅(qū)動空中機械臂分為四旋翼飛行器和繩驅(qū)動機械臂兩個子系統(tǒng)進行分析,而將子系統(tǒng)間的耦合作為外界干擾處理。
圖1 繩驅(qū)動空中機械臂三維模型
如圖2所示,建立繩驅(qū)動空中機械臂虛坐標(biāo)系。采用Lagrange方程[12]建立四旋翼飛行器的動力學(xué)模型,即:
圖2 繩驅(qū)動空中機械臂虛坐標(biāo)系
式中:L(·)為拉格朗日函數(shù);χ=[x,y,z,?,θ,ψ]T為廣義坐標(biāo);ε=[x,y,z]T為三軸位置;?,θ,ψ為三軸歐拉角;v=[p,q,r]T為三軸角速度;I=[Ix,Iy,Iz]T為轉(zhuǎn)動慣量矩陣;m為四旋翼飛行器質(zhì)量;g為重力加速度。在小擾動前提下,三軸歐拉角變化率約等于三軸角速度。
四旋翼飛行器的控制輸入與旋翼拉力和力矩的數(shù)學(xué)關(guān)系為:
式中:Fi和Mi(i=1,2,3,4)分別為螺旋槳產(chǎn)生的拉力和力矩;L為槳轂中心到飛行器質(zhì)心的垂直距離;τu為旋翼總拉力;τ?、τθ和τψ分別為四旋翼飛行器橫滾力矩、俯仰力矩和偏航力矩。
單個螺旋槳拉力、力矩與無刷電機轉(zhuǎn)速的關(guān)系為:
式中:R、A分別為槳盤半徑與面積;ρ為當(dāng)?shù)乜諝饷芏?;CT、CQ分別為螺旋槳的升力系數(shù)和反扭矩系數(shù);Ωi為第i個無刷電機轉(zhuǎn)速。
綜合式(1)至式(3),并考慮外界干擾,可得四旋翼飛行器的非線性動力學(xué)模型為:
如圖3所示,為所設(shè)計的二自由度繩驅(qū)動機械臂三維模型。2臺驅(qū)動機械臂的直流減速無刷電機安裝于基座處,鋼絲繩從電機處驅(qū)動輪出發(fā),經(jīng)過張緊輪、導(dǎo)向輪等裝置到達關(guān)節(jié)輪處,實現(xiàn)了力矩的遠(yuǎn)程傳遞。
圖3 繩驅(qū)動機械臂三維模型
通過Lagrange-Euler法可得繩驅(qū)動機械臂的動力學(xué)模型:
式中:θ、?分別為電機轉(zhuǎn)角向量、角速度向量和角加速度向量;q、?分別為關(guān)節(jié)角向量、角速度向量和角加速度向量;M為關(guān)節(jié)轉(zhuǎn)動慣量矩陣;C為哥氏力和離心力矩陣;G為重力項;τdis為干擾力矩向量;J為電機轉(zhuǎn)動慣量矩陣;D為電機阻尼矩陣;Kc表示柔繩傳動矩陣;Kf表示關(guān)節(jié)和滑輪的總摩擦矩陣;Ks、Kd分別為各個關(guān)節(jié)的阻抗系數(shù)矩陣;Kτ為電機的力矩系數(shù);i=[i1,i2]T為電機驅(qū)動電流向量。
由于本文建模僅用于分析系統(tǒng)的輸入輸出變量,并未對繩驅(qū)動結(jié)構(gòu)進行詳細(xì)的機理建模,故引入一個對角增益矩陣來代表系統(tǒng)的動態(tài)特性。聯(lián)立式(5)、式(6)可得二自由度繩驅(qū)動機械臂的動力學(xué)模型為:
依據(jù)空中機械臂的分離式策略,如圖4所示為系統(tǒng)的運行原理。此時,繩驅(qū)動空中機械臂可分為兩種運行模態(tài)。
圖4 繩驅(qū)動空中機械臂運行圖
模態(tài)1。在空中機械臂前往作業(yè)目標(biāo)附近的過程中,機械臂一般處于初始狀態(tài),此時可將空中機械臂作為一個整體,則可直接用四旋翼飛行器的數(shù)學(xué)模型對其進行描述。式(4)中m做如下變化:
式中:mc為繩驅(qū)動機械臂的質(zhì)量。
模態(tài)2。在空中機械臂作業(yè)時,飛行器一般處于懸停狀態(tài)。當(dāng)機械臂運動時會對飛行器產(chǎn)生擾動力和力矩,由于本文研究的繩驅(qū)動機械臂連桿較輕,故只考慮機械臂對于飛行器的擾動力矩,控制時應(yīng)考慮對τθ做式(9)所示的力矩補償,以提高飛行器穩(wěn)定性。這里需要說明的是,式(9)僅作系統(tǒng)分析用,與本文后續(xù)的系統(tǒng)辨識無關(guān)。
根據(jù)以上分析,可在模態(tài)1和模態(tài)2中分別對四旋翼飛行器和繩驅(qū)動機械臂進行辨識。對于四旋翼飛行器系統(tǒng),由式(3)可知其輸入為Ωi,而Ωi由四個電機的油門百分比σ決定,故其輸入為σ=[σ1,σ2,σ3,σ4]T。由 式(4)可 得 其 輸 出 為對 于 繩 驅(qū) 動 機 械臂系統(tǒng),由式(7)可知其輸入為i=[i1,i2]T,輸出為
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種誤差逆?zhèn)鞑サ亩鄬忧梆伨W(wǎng)絡(luò),包括輸入層、隱藏層和輸出層,如圖5所示為其拓?fù)浣Y(jié)構(gòu)。
圖5 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖5中,X=( )X1,X2,…,X1為BP神經(jīng)網(wǎng)絡(luò)輸入信號,Y=( )Y1Y2,…,Yo為輸出信號,因為要預(yù)測子系統(tǒng)輸入,故對于四旋翼飛行器有X=Θ、Y=σ,對于繩驅(qū)動機械臂有X=Q、Y=i。BP神經(jīng)網(wǎng)絡(luò)按有監(jiān)督學(xué)習(xí)方式進行訓(xùn)練,遵循期望輸出與實際輸出誤差最小的原則,將誤差信號沿原來的連接通路返回并逐層修正連接權(quán)值和閾值,直到誤差信號滿足精度要求為止[13]。
BOA是模擬自然界中蝴蝶食物(花蜜)搜尋和交配行為而衍生出的新型群體智能優(yōu)化算法[13]??紤]到傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)存在過擬合、學(xué)習(xí)速率慢的問題,采用BOA對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進行優(yōu)化。如圖6所示,為BOA-BP神經(jīng)網(wǎng)絡(luò)辨識算法流程。
圖6 BOA-BP神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識流程
2.2.1 BP神經(jīng)網(wǎng)絡(luò)初始化
BP神經(jīng)網(wǎng)絡(luò)隱藏層神經(jīng)元個數(shù)H可以由下式確定[14]:
式中:I為輸入層神經(jīng)元個數(shù);O為輸出層神經(jīng)元個數(shù);r為1~10之間的常數(shù)。在計算得到的H值范圍內(nèi)多次實驗擇優(yōu),得到H的確定值。
2.2.2 BOA種群初始化
給每只蝴蝶隨機生成初始解xi(i=1,2,…,N),公式如下:
式中:xui和xli分別為xi的上限和下限;r1為0~1之間隨機數(shù)。xi即BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值映射的D維向量,D滿足下式:
2.2.3 適應(yīng)度和香味計算
計算每一個蝴蝶的香味:
式中:c為感覺因子;α為冪指數(shù)。fit()xi表示第i個解適應(yīng)度函數(shù),其公式為:
式中:RYn表示BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本第n項輸出。
2.2.4 迭代搜索階段
BOA分全局搜索和局部搜索兩種模式,搜索模式的切換概率為p*,每次迭代產(chǎn)生一個隨機概率r2,比較p*和r2的大小來確定搜索模式。
全局搜索的公式為:
式中:xti為第i個蝴蝶在第t次迭代中的解向量;g*表示目前最優(yōu)解;r3為0~1之間隨機數(shù)。
局部搜索的公式為:
式中:xtj和xtk為隨機選擇的第j只和第k只蝴蝶代表的解向量;r4為0~1之間隨機數(shù)。
2.2.5 迭代優(yōu)化階段
按照式(14)考察步驟(4)中搜索到的新解,看其適應(yīng)度是否已經(jīng)在可接受的范圍內(nèi)或達到最大更新次數(shù)Limit。若是,則結(jié)束優(yōu)化并將最優(yōu)解賦值給BP神經(jīng)網(wǎng)絡(luò)的閾值和權(quán)值;若否,則生成新一代蝴蝶,回到步驟(4),不斷迭代優(yōu)化。
本文需要辨識的對象為繩驅(qū)動空中機械臂,如圖7所示,為實驗系統(tǒng)。其中:繩驅(qū)動空中機械臂總重為2.8 kg,飛行器軸距為700 mm,動力配置為5 010-340 kV電機+40 A電子調(diào)速器+6 S鋰電池;繩驅(qū)動機械臂總長為30 cm,重0.7 kg,采用DJI-M2006電機。機載設(shè)備由飛行控制器PixHawk、全球定位模塊M8N-GPS、航模無線電接收器、數(shù)傳電臺、機械臂驅(qū)動器、機械臂控制器和機械臂關(guān)節(jié)編碼器等組成;地面站系統(tǒng)由無線電遙控器、電腦地面站組成。
圖7 繩驅(qū)動空中機械臂實驗
實驗分為兩個部分:一是在機械臂處于初始狀態(tài)時,分別對四旋翼飛行器的俯仰、橫滾、偏航和升降通道進行激勵,采集位置、姿態(tài)和飛行控制器輸出信號;二是在四旋翼飛行器懸停時,繩驅(qū)動機械臂跟蹤激勵軌跡,對機械臂的關(guān)節(jié)位置q1、q2以及電機驅(qū)動電流i1、i2進行采集。為了獲得足量的訓(xùn)練樣本,并剔除外界干擾導(dǎo)致的異常數(shù)據(jù),實驗一般重復(fù)6~10次。
由于原始數(shù)據(jù)存在測量噪聲并易受到外界環(huán)境的干擾,因此,采用五點三次平滑濾波法[15]對原始數(shù)據(jù)進行濾波處理。即:
式中:[y1,y2,…,ym]為原始數(shù)據(jù);[yˉ1,yˉ2,…,yˉm]為經(jīng)過預(yù)處理后的數(shù)據(jù)。過多地濾波會導(dǎo)致數(shù)據(jù)失真,故本實驗中重復(fù)濾波5次。
由于增量式編碼器只能直接測量繩驅(qū)動機械臂關(guān)節(jié)角位置,若采用差分法獲取關(guān)節(jié)角速度和關(guān)節(jié)角加速度會放大測量噪聲,故采用文獻中的解析法來計算關(guān)節(jié)角速度與關(guān)節(jié)角加速度[15]。同理,四旋翼飛行器的角加速度等信息也可通過此方法獲得。
BP神經(jīng)網(wǎng)絡(luò)激活函數(shù)選擇S型函數(shù),隱藏層節(jié)點數(shù)按式(10)計算并經(jīng)多次實驗后擇優(yōu)選為4,訓(xùn)練方法選用Trainlm,訓(xùn)練次數(shù)上限35次,訓(xùn)練目標(biāo)0.003,學(xué)習(xí)率0.01。BOA初始種群大小為50,最大更新次數(shù)Limit為35次。分別對繩驅(qū)動機械臂和旋翼飛行器BP神經(jīng)網(wǎng)絡(luò)模型的權(quán)值和閾值進行優(yōu)化。
如圖8所示,為BOA-BP算法的迭代曲線。四旋翼飛行器適應(yīng)度曲線迭代次數(shù)在第3次、第16次、第19次附近陸續(xù)跳出局部最小,繼續(xù)尋找全局最優(yōu);在迭代35次后結(jié)束尋優(yōu)。繩驅(qū)動機械臂的適應(yīng)度曲線在迭代次數(shù)接近3次時,跳出局部最小,繼續(xù)尋找最優(yōu)解;當(dāng)?shù)螖?shù)在12次時,模型再次跳出局部最小,繼續(xù)尋找全局最優(yōu);在迭代35次后結(jié)束尋優(yōu)。
圖8 BOA-BP算法迭代曲線
為了進一步比較不同算法辨識出的模型對實際系統(tǒng)的匹配程度,另取一組數(shù)據(jù)分別用BP神經(jīng)網(wǎng)絡(luò)和BOA-BP神經(jīng)網(wǎng)絡(luò)辨識的模型,預(yù)測四旋翼飛行器和二自由度繩驅(qū)動機械臂的系統(tǒng)輸入。同時,為了與傳統(tǒng)辨識算法進行對比,分別按照文獻[16]和文獻[17]中的方法,對繩驅(qū)動空中機械臂的兩個子系統(tǒng)模型進行線性化,并采用加權(quán)最小二乘法(Weighted least squares,WLC)對其進行辨識。
如圖9所示,為四旋翼的辨識效果??梢钥吹剑喝N辨識算法求出的預(yù)測值均能跟蹤實際數(shù)據(jù),但顯然BOA-BP和BP神經(jīng)網(wǎng)絡(luò)算法的預(yù)測結(jié)果對實際數(shù)據(jù)的跟蹤效果更好;同時,WLC對于四個電機的油門百分比預(yù)測效果參差不齊,這是由于四旋翼飛行器四個旋翼動力系統(tǒng)的一致性較差而導(dǎo)致的。而BOA-BP和BP神經(jīng)網(wǎng)絡(luò)算法由于具有強大的映射能力,能將系統(tǒng)的復(fù)雜因素囊括在內(nèi);因此,對于四個電機的油門百分比預(yù)測效果比較穩(wěn)定。
圖9 四旋翼電機油門百分比
如圖10所示,為繩驅(qū)動機械臂辨識效果。根據(jù)圖10可以看出:BOA-BP神經(jīng)網(wǎng)絡(luò)算法的預(yù)測值對實際值的擬合度相較于BP神經(jīng)網(wǎng)絡(luò)算法有一定提升;傳統(tǒng)辨識算法WLC的預(yù)測值整體趨勢與真實值相差不大,但整體曲線相對于BOA-BP神經(jīng)網(wǎng)絡(luò)算法和BP神經(jīng)網(wǎng)絡(luò)算法波動較大;由于機械臂動力學(xué)建模未將減速電機齒輪回程間隙和繩驅(qū)動換向特性等復(fù)雜因素考慮在內(nèi),導(dǎo)致WLC算法預(yù)測值在關(guān)節(jié)換向處前后的誤差比BOA-BP神經(jīng)網(wǎng)絡(luò)算法和BP神經(jīng)網(wǎng)絡(luò)算法略大。
圖10 機械臂關(guān)節(jié)驅(qū)動電流
為了量化辨識算法的精度,引入平均絕對誤差MAE和平均百分比誤差MAPE,對辨識算法的預(yù)測值進行評價。
式中:Yipre和Yireal分別為預(yù)測數(shù)據(jù)和實際數(shù)據(jù)中的第i個數(shù)據(jù)。
如表1所示,為平均絕對誤差。根據(jù)表1可以看出,采用蝴蝶優(yōu)化算法(BOA)優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法預(yù)測值的MAE,低于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法和傳統(tǒng)辨識算法WLC。如表2所示,為平均百分比誤差。從表2可以看出:對于四旋翼飛行器而言,BOA-BP神經(jīng)網(wǎng)絡(luò)算法預(yù)測值的MAPE,分別比BP神經(jīng)網(wǎng)絡(luò)算法和WLC算法降低約4%和7%;對于繩驅(qū)動機械臂而言,BOA-BP神經(jīng)網(wǎng)絡(luò)算法預(yù)測值的MAPE,分別比BP神經(jīng)網(wǎng)絡(luò)算法和WLC算法降低約1.5%和4%。
表1 平均絕對誤差表
表2 平均百分比誤差表 單位:%
繩驅(qū)動空中機械臂是一類復(fù)雜的非線性系統(tǒng),其控制器的優(yōu)化設(shè)計依賴于準(zhǔn)確的系統(tǒng)模型。本文針對繩驅(qū)動空中機械臂的系統(tǒng)辨識問題,提出了一種基于BOA優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識算法;同時,搭建了辨識所需的實驗平臺,通過采集繩驅(qū)動空中機械臂運行數(shù)據(jù)進行了離線辨識實驗。實驗結(jié)果表明:BP神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識算法對于繩驅(qū)動空中機械臂這類強非線性系統(tǒng)的辨識精度,要好于傳統(tǒng)算法;同時,BOA算法的優(yōu)化,提高了BP神經(jīng)網(wǎng)絡(luò)算法預(yù)測值對實際模型測量值的擬合度。