缸明義,夏興國,張慶豐,吳彩林
(馬鞍山職業(yè)技術學院 電氣工程系,安徽 馬鞍山 243031)
機械手控制是工業(yè)機器人控制中很重要的一個方面。傳統(tǒng)的機械手控制方法大多需要機械手的精確數(shù)學模型或者機械手動力學方面的知識,但很難保證機械手系統(tǒng)在復雜環(huán)境下的穩(wěn)定性、魯棒性和整個系統(tǒng)的動態(tài)性能。模糊神經(jīng)網(wǎng)絡是模糊邏輯和神經(jīng)網(wǎng)絡相結合的產(chǎn)物,它克服了模糊系統(tǒng)缺乏自學習和自適應能力以及神經(jīng)網(wǎng)絡不適于表達基于規(guī)則的知識等不足[1-4],廣泛應用于不確定性、非線性等復雜系統(tǒng)的控制中。這方面研究最早起源于歐美國家,近年來,很多學者提出將模糊神經(jīng)網(wǎng)絡應用于非線性建模或控制,毛潤等[5]提出采用計算力矩和模糊神經(jīng)網(wǎng)絡補償相結合的控制方法,但對于是否會影響系統(tǒng)快速性問題未提供量化分析;王波等[6]提出了將模糊神經(jīng)網(wǎng)絡應用于機械手軌跡跟蹤,但其采用BP 算法進行在線學習,容易陷入局部收斂,使學習時間延長。
本文采用模糊神經(jīng)網(wǎng)絡來實現(xiàn)機械手的軌跡跟蹤控制,網(wǎng)絡學習采用粒子群優(yōu)化算法和改進的BP 算法相結合的混合優(yōu)化方法。粒子群優(yōu)化算法作為一種新興的基于群智能的優(yōu)化算法,具有操作簡單、功能強大、運算速度快等優(yōu)點[7]。將粒子群優(yōu)化算法用于模糊神經(jīng)網(wǎng)絡的學習,加快了網(wǎng)絡的學習速度,提升了機械手軌跡跟蹤控制的準確度。
機械手系統(tǒng)的動力學模型可以反映其各個關節(jié)的位置、速度和加速度之間復雜的關系。因此建立機械手的動力學模型對研究機械手軌跡跟蹤控制至關重要。當前,兩關節(jié)機械手系統(tǒng)在各種科研和實際生產(chǎn)場合使用較多,也可以作為集成的功能和結構單元在復雜的多關節(jié)機械手系統(tǒng)中使用[8]。
兩關節(jié)機械手由兩個質量分別為m1和m2的連桿l1和l2組成(見圖1)。連桿l1的一端通過旋轉關節(jié)1 固定在基座上,另外一端通過旋轉關節(jié)2 和連桿l2連接,可以任意運動,實現(xiàn)抓取、搬運等用戶指定的工作。電機的輸入力矩τ1、τ2分別驅動機械手的關節(jié)1 和關節(jié)2,使關節(jié)運動帶動連桿l1和l2運動。兩連桿在力矩作用下轉過的角度分別為θ1和θ2。兩關節(jié)相互配合,機械手系統(tǒng)末端按照期望運動軌跡運動。
圖1 兩關節(jié)機械手模型Fig.1 Two-joint manipulator model
利用拉格朗日方法求解二連桿機械手系統(tǒng)的動力學方程[9],在忽略摩擦和干擾的情況下,兩連桿機械手的動力學模型可以表示為
式中,
式中,τ為關節(jié)驅動力矩;M(θ)為慣性矩陣;V(θ,θ˙)為離心力和哥氏力矩陣;G(θ)為重力效應矩陣。
機械手系統(tǒng)的特性復雜多變,它本身受到很多不確定性因素的影響,比如負載變化、自身不確定因素等[10],因此很難推導出精確的數(shù)學模型。模糊控制邏輯推理能力強,神經(jīng)網(wǎng)絡容錯性強,結合兩者優(yōu)點,利用神經(jīng)網(wǎng)絡的網(wǎng)絡非線性映射、自學習能力來調整模糊邏輯。
圖2 為模糊神經(jīng)網(wǎng)絡控制系統(tǒng)原理結構圖。它的控制對象是兩關節(jié)機械手系統(tǒng),網(wǎng)絡學習采用粒子群優(yōu)化算法和改進的BP 算法相結合的學習算法。
圖2 模糊神經(jīng)網(wǎng)絡控制系統(tǒng)原理結構圖Fig.2 Principle structure diagram of the fuzzy neural network control system
在 圖2 中,θd1和θd2分 別 是 關 節(jié)1 和2 的 期 望 位 置 信 號;τ1和τ2分 別 是 通 過 模 糊 神 經(jīng) 網(wǎng) 絡 控 制器調節(jié)作用給機械手兩關節(jié)的控制力矩。θ1和θ2分別是關節(jié)1 和2 的實際位置信號;e1和e2分別為機械手關節(jié)1 和2 的位置誤差;ec1和ec2為誤差變化率;ke1、ke2、kec1、kec2為調節(jié)偏差和偏差變化率的量化因子;ku1和ku2為調節(jié)控制器輸出變量的比例因子。
機械手的模糊神經(jīng)網(wǎng)絡結構如圖3 所示,它有5 層結構,分為兩個模糊神經(jīng)網(wǎng)絡子網(wǎng)[11-12]。由于關節(jié)間的耦合作用,添加網(wǎng)絡的第5 層為反應兩關節(jié)耦合作用的耦合層。
圖3 模糊神經(jīng)網(wǎng)絡結構Fig.3 Structure of fuzzy neural network
第1 層:模糊神經(jīng)網(wǎng)絡的輸入層。該層有4 個節(jié)點,輸入范圍分別是e1,ec1,e2,ec2變論域,它們的論域均為[-6,6]。節(jié)點的輸入為
式中,i= 1,2;k= 1,2。xki表示第k個子網(wǎng)的第i個輸入表示第k個子網(wǎng)的第1 層輸出。
第2 層:模糊神經(jīng)網(wǎng)絡的模糊化層,即隸屬度函數(shù)生成層。每個輸入e1,e2,ec1,ec2分為7 個節(jié)點,即7 個模糊語言集,分別為PB(正大)、PM(正中)、PS(正小)、Z(零)、NS(負?。?、NM(負中)、NB(負大)。此層共有28 個節(jié)點。采用Gaussian 函數(shù)作為隸屬函數(shù),與7 個模糊語言集對應的Gaussian 函數(shù)的中心值分別為6、4、2、0、-2、-4、-6,寬度均為2。式中,kcij和kbij分別表示第k個子網(wǎng)的第i個輸入變量第j個模糊集合的中心值和寬度,k f2(i,j)表示第k個子網(wǎng)的第二層輸出。
第3 層:模糊神經(jīng)網(wǎng)絡的推理層。在此網(wǎng)絡中用乘法代替取小運算,
式中,i= 1,2,…,7;j= 1,2,…,7。k f3(i,j)表示第k個子網(wǎng)的第三層輸出。第4 層:模糊神經(jīng)網(wǎng)絡的去模糊化層。采用加權平均法去模糊化,
第5層:模糊神經(jīng)網(wǎng)絡的輸出層。該層表示機械手兩關節(jié)之間耦合關系,
式中,w(4)ki表示四層與五層之間的權值系數(shù),它反映了各關節(jié)間的耦合作用。
2.2.1 粒子群優(yōu)化算法 粒子群優(yōu)化(particle swarm optimization,PSO)算法是一種基于群智能的演化計算技術[13],它由粒子之間的相互作用,從隨機解出發(fā),在搜索空間里智能尋找最優(yōu)解。
假設粒子群為n維搜索空間,設第i個粒子的當前位置為Xi=(xi1,xi2,…,xin),當前速度為Vi=(vi1,vi2,…,vin)。第i個粒子所經(jīng)歷過的最優(yōu)適應值的位置,即個體最好位置為Pi=(pi1,pi2,…,pin)。
設f(X)為最優(yōu)的目標函數(shù),則第i個粒子的Pi=(pi1,pi2,…,pin)由(7)式確定:
設Pg(t)為在整個粒子群中搜索到的最好位置,即為全局最好位置,則
第i個粒子的當前位置和當前速度通過(9)式和(10)式更新:
式 中,i表 示 第i個 粒 子(i= 1,2,…,m),j表 示 粒 子 的 第j維(j= 1,2,…,n),t表 示 當 前 進 化 代數(shù),c1和c2為加速常數(shù),通常在[0,2]之間取值,r1,r2∈[0,1]為均勻隨機數(shù)。
從(9)式和(10)式可知,c1決定粒子飛向Pi方向上的步長,c2決定粒子向Pg飛行的步長。為避免粒子在更新過程中離開搜索空間,將vij限定在一定范圍內,即vij∈[-vmax,vmax]。
2.2.2 基于粒子群算法的模糊神經(jīng)網(wǎng)絡參數(shù)的整定 模糊神經(jīng)網(wǎng)絡常用的學習算法是基于梯度的BP 算法,但其容易陷入局部收斂,使網(wǎng)絡學習時間延長。粒子群優(yōu)化算法操作簡單,功能強大,但其收斂速度相對較慢[14]。結合兩種算法應用在模糊神經(jīng)網(wǎng)絡的參數(shù)學習中,優(yōu)勢互補,從而提高推理能力和學習能力,實現(xiàn)對機械手的軌跡跟蹤控制。具體由離線學習粗搜索獲得較合理初值和在線學習細搜索獲得最優(yōu)解兩步構成。
基于粒子群優(yōu)化算法的離線優(yōu)化模糊神經(jīng)網(wǎng)絡參數(shù)搜索的具體步驟如下:
步驟一對模糊神經(jīng)網(wǎng)絡結構進行初始化,確定網(wǎng)絡結構中心值kcij、寬度kbj、權值kw(3)ij、w(4)ij的個數(shù)。
步驟二隨機初始設定粒子群的位置和速度。
步驟三逐一輸入粒子群中的粒子,計算出所有粒子的適應值。
步驟四根據(jù)(7)式和(8)式比較適應值,確定粒子的個體最優(yōu)值pbest和群體全局最優(yōu)值gbest。
步驟五根據(jù)(9)式優(yōu)化粒子的速度,根據(jù)(10)式優(yōu)化粒子的位置。
步驟六若已獲得足夠好的適應值或達到預設的最大迭代次數(shù),則轉步驟七,否則返回步驟二繼續(xù)搜索。
步驟七結束。
2.2.3 基于BP 算法的在線學習 通過粒子群優(yōu)化使模糊神經(jīng)網(wǎng)絡參數(shù)達到了全局近似最優(yōu)解,但由于其具有一定的概率性和隨機性,并且需要控制計算量,以及控制的實時性[15],故只對網(wǎng)絡的權值和運用改進的BP 算法進行在線實時細化微調。
改進的BP 算法添加了動量項,利用附加的動量項可以平滑梯度方向的劇烈變化,此處動量因子取α=0.1。同時為使訓練的收斂速度盡可能加快,在保證收斂精度的前提下盡可能提高學習率η的數(shù)值,此處取η=0.3。
本文在MATLAB 平臺中仿真驗證控制方案的有效性,在仿真中模糊神經(jīng)網(wǎng)絡結構為4-28-98-2-2。采用粒子群優(yōu)化模糊神經(jīng)網(wǎng)絡參數(shù)高斯基函數(shù)的中心值、寬度。通過經(jīng)驗選取粒子群規(guī)模為30,進化迭代步數(shù)100,加速常數(shù)通常取c1=c2= 2,采樣周期T= 0.000 5 s。
首先應用粒子群優(yōu)化算法離線訓練,模型誤差的優(yōu)化過程如圖4 所示。
圖4 模型誤差的優(yōu)化過程Fig.4 The optimization process of model error
然后,再將參數(shù)放入模糊神經(jīng)網(wǎng)絡用于機械手控制。機械手的具體物理參數(shù)見表1。
表1 機械手基本的物理參數(shù)表Tab.1 Basic physical parameter table of the manipulator
(1)設關節(jié)1 的期望函數(shù)為θd1= sin(2πt),關節(jié)2 的期望函數(shù)為θd2= cos(2πt)。跟蹤效果如圖5 和圖6 所示,跟蹤誤差如圖7 和圖8 所示。
圖5 關節(jié)1 軌跡跟蹤曲線Fig.5 Joint 1 trajectory tracking curve
圖6 關節(jié)2 軌跡跟蹤曲線Fig.6 Joint 2 trajectory tracking curve
圖7 關節(jié)1 優(yōu)化后軌跡跟蹤誤差Fig.7 Trajectory tracking error after joint 1 optimization
圖8 關節(jié)2 優(yōu)化后軌跡跟蹤誤差Fig.8 Trajectory tracking error after joint 2 optimization
在模糊神經(jīng)網(wǎng)絡的離線學習中,粒子群優(yōu)化學習算法獲取了一個比較好的初值,這為模糊神經(jīng)網(wǎng)絡的在線學習奠定了良好的基礎。從圖5 ~圖8 的軌跡跟蹤控制效果圖中可看出模糊神經(jīng)網(wǎng)絡控制效果很好,經(jīng)過一段時間的學習后,機械手具有較好的跟蹤性能,且誤差幾乎為零。
(2)為了研究系統(tǒng)的抗干擾能力,在t= 2 s 時,分別對關節(jié)1 和關節(jié)2 施加脈沖干擾,幅值為0.1 rad。仿真結果見圖9 和圖10。
圖9 加入干擾后關節(jié)1 的正弦信號跟蹤效果Fig.9 Sinusoidal signal tracking effect of joint 1 after adding interference
圖10 加入干擾后關節(jié)2 的余弦信號跟蹤效果Fig.10 Cosinusoidal signal tracking effect of joint 2 after adding interference
由圖9 和圖10 可以看出控制系統(tǒng)的抗干擾性比較好,能夠快速跟蹤期望輸出,幅值0.1 的脈沖干擾對控制系統(tǒng)幾乎沒有影響。
設計了一種基于模糊神經(jīng)網(wǎng)絡的機械手控制方案,在模糊神經(jīng)網(wǎng)絡參數(shù)的優(yōu)化學習中通過粒子群離線搜索和BP 算法在線調整相結合,提高了網(wǎng)絡的學習速度和泛化能力。仿真研究表明,應用該控制方案,系統(tǒng)跟蹤性能良好,有較好的適應性和穩(wěn)定性。