楊懷德
(東莞職業(yè)技術(shù)學(xué)院 計算機(jī)工程系,廣東 東莞 523808)
基于改進(jìn)螢火蟲算法的兩輪機(jī)器人平衡控制
楊懷德
(東莞職業(yè)技術(shù)學(xué)院 計算機(jī)工程系,廣東 東莞523808)
摘要:文章針對兩輪自平衡機(jī)器人的平衡控制問題,提出了一種基于改進(jìn)螢火蟲算法的控制器優(yōu)化算法。該算法通過引入萊維飛行(Levy flight)的思想,對螢火蟲的位置更新策略進(jìn)行優(yōu)化。仿真實驗表明,新的算法穩(wěn)定性好、遺傳代數(shù)小,在兩輪自平衡機(jī)器人的平衡控制中獲得了較好的控制效果。
關(guān)鍵詞:兩輪機(jī)器人;螢火蟲優(yōu)化算法;萊維飛行;平衡控制
0引言
兩輪自平衡機(jī)器人是一個多變量、非線性、不穩(wěn)定的典型運動控制系統(tǒng),可看作是一個一級倒立擺,其平衡控制一直是研究的重點。
文獻(xiàn)[1]提出了一種基于模糊控制理論的兩輪機(jī)器人的平衡控制算法,該算法在參數(shù)調(diào)節(jié)時間和穩(wěn)定性控制方面取得了一定的優(yōu)化效果,但其優(yōu)化效果過于依賴人工的經(jīng)驗。PID控制性能與其3個參數(shù)有直接的關(guān)系。
文獻(xiàn)[2]提出了一種基于LQR模型的平衡控制算法,該算法通過調(diào)節(jié)權(quán)矩陣Q、R的值來控制機(jī)器人的平衡自調(diào)節(jié),在控制的實時性和穩(wěn)定性方面取得了一定的優(yōu)化效果,但是實際的運行環(huán)境往往具有時變性、非線性,常規(guī)的優(yōu)化方法很難快速獲取參數(shù)的最佳值,控制器難以達(dá)到理想的控制效果。近年來,隨著智能控制理論的發(fā)展,利用智能算法對平衡控制器進(jìn)行優(yōu)化設(shè)計,已成為當(dāng)前的一個研究熱點,如文獻(xiàn)[3]提出了一種基于粒子群算法的設(shè)計方案,文獻(xiàn)[4]研究了基于多種群遺傳算法的LQR控制器優(yōu)化設(shè)計方案。
本文在標(biāo)準(zhǔn)的螢火蟲算法基礎(chǔ)之上提出一種改進(jìn)的螢火蟲算法來解決兩輪機(jī)器人平衡控制器的參數(shù)優(yōu)化問題。新的算法中融入萊維飛行(Levy flight)的思想,并對螢火蟲的位置更新策略進(jìn)行了改進(jìn)。
仿真實驗結(jié)果表明,本文算法在控制的實時性方面取得了較好的效果,在求解的精度上得到了有效的改進(jìn)。
1兩輪自平衡機(jī)器人動力學(xué)模型
兩輪自平衡機(jī)器人的實際結(jié)構(gòu)和運動過程都很復(fù)雜,為了簡化系統(tǒng)分析,假定機(jī)器人的運動都在平坦的地面上進(jìn)行,忽略在允許的誤差范圍內(nèi)的彈性摩擦等因素。它主要由機(jī)體和2個輪子組成,2個輪子必須同軸,由獨立的電機(jī)驅(qū)動,并且2個輪子的重量和慣性矩都是一樣的。所以整個機(jī)器人的重心是倒置在軸承上,通過運動來保持平衡[5]。從平衡控制的角度,可以將兩輪機(jī)器人看作一個車載倒立擺系統(tǒng),為了降低問題的復(fù)雜性,將該兩輪機(jī)器人分成輪子和機(jī)體2個部分來研究[6]。左、右輪的受力模型如圖1所示。
圖1 左、右輪受力模型
(1)
(2)將(1)式和(2)式合并可得
(3)其中,mw為輪子質(zhì)量;θw為輪子轉(zhuǎn)角;r為輪子的半徑;CL和CR分別為左、右輪的輸出力矩;HfR和HfL分別為左、右輪的邊緣水平扭矩;HL和HR分別為左、右輪的中心水平扭矩;Iw為輪的角度轉(zhuǎn)動慣量。
將機(jī)器人的機(jī)體建模為一個倒立擺,機(jī)體動力學(xué)模型如圖2所示。
圖2 機(jī)體受力模型
(4)其中,mp為機(jī)體質(zhì)量;l為倒立擺長度。運用牛頓第二定律,機(jī)體在垂直方向上的受力為
(5)機(jī)體質(zhì)心的力矩之和為
(7)
其中,V為電樞電壓。
(8)
(9)
2螢火蟲優(yōu)化算法
螢火蟲優(yōu)化算法(glowworm swarm optimization,GSO)是一種人工智能算法,其模擬自然界螢火蟲通過閃光進(jìn)行信息交互,從而聚集到亮度最強的螢火蟲附近的社會性行為[7],在此尋優(yōu)過程中,熒光亮度和吸引度是實現(xiàn)螢火蟲群體進(jìn)化的2個關(guān)鍵要素[7]。
初始狀態(tài)時,每只螢火蟲個體xi(t)攜帶熒光素濃度為l0,并且感知半徑均為r0,熒光素更新策略如(10)式所示,即
(10)
其中,li(t)為螢火蟲i當(dāng)前的熒光素值;ρ∈(0,1)為熒光素?fù)]發(fā)因子;F(xi(t))為螢火蟲i此刻在當(dāng)前位置對應(yīng)的目標(biāo)函數(shù)值;γ為熒光素更新率。
GSO算法規(guī)定,螢火蟲xi(t)在自身決策范圍內(nèi)選擇熒光素值高于自己的個體組成領(lǐng)域集Ni(t),并以概率pij(t)選擇領(lǐng)域集內(nèi)的個體xj(t)進(jìn)行移動[8],移動步長為s,移動規(guī)則如(11)式,個體xj(t)被選擇的概率為pij(t),即
(11)
(12)
(13)
其中,β為動態(tài)決策范圍更新率;Nt為決策范圍內(nèi)的螢火蟲數(shù)量閥值;|Ni(t)|為領(lǐng)域集內(nèi)螢火蟲數(shù)量。
3兩輪機(jī)器人平衡控制設(shè)計
3.1機(jī)器人自平衡LQR控制器
LQR理論是現(xiàn)代控制理論中發(fā)展最早也最為成熟的一種狀態(tài)空間設(shè)計法,并且LQR可得到狀態(tài)線性反饋的最優(yōu)控制規(guī)律,易于構(gòu)成閉環(huán)最優(yōu)控制[9]。其優(yōu)化控制本質(zhì)上是尋找使得成本函數(shù)J取得最小值時的控制變量u值的過程。成本函數(shù)J的表達(dá)式為:
(14)
其中,u=-R-1BTPx;P為(15)式黎卡提方程的解,即
PA+ATP+Q-PBR-1BTP=0
(15)
最優(yōu)反饋系數(shù)矩陣K=R-1BTP,用Matlab可求出最優(yōu)反饋系數(shù)矩陣K的值。R為矩陣,一般用來平衡輸入量,增大R的值可以降低系統(tǒng)的能耗,但會增長系統(tǒng)調(diào)穩(wěn)的時間;Q為一對角矩陣,是狀態(tài)量的權(quán)重,增大Q的值能縮短系統(tǒng)調(diào)穩(wěn)時間,但會增強系統(tǒng)的震蕩,增加能耗。所以機(jī)器人平衡的關(guān)鍵在于尋找矩陣R和Q的最佳值。
采用線性二次型性能指標(biāo)公式(14)式作為適應(yīng)度函數(shù),Q為4×4的恒為正值的對稱正定矩陣,R一般為常量矩陣,因此系統(tǒng)性能指標(biāo)可以表示為:
(16)
其中,q0、q1、q2、q3分別為兩輪機(jī)器人的位置權(quán)重、速度權(quán)重、角度權(quán)重和角速度權(quán)重。因此可以通過螢火蟲算法尋找LQR控制器參數(shù)最優(yōu)值和其對應(yīng)的系統(tǒng)性能指標(biāo),從而實現(xiàn)對機(jī)器人的平衡控制。
3.2改進(jìn)螢火蟲算法優(yōu)化LQR參數(shù)
在標(biāo)準(zhǔn)螢火蟲算法中,每個螢火蟲個體在各自的感知范圍內(nèi)搜索更優(yōu)秀的個體,容易陷入局部最優(yōu),甚至在極端情況下,當(dāng)感知范圍內(nèi)的螢火蟲的熒光素值都相等時,算法將停止搜索,無法尋到最優(yōu)值。針對標(biāo)準(zhǔn)的螢火蟲算法在迭代時易陷入局部最優(yōu)、收斂速度偏慢的情況,本文通過引入萊維飛行的思想對迭代過程進(jìn)行改進(jìn):將最優(yōu)螢火蟲的狀態(tài)及對應(yīng)的目標(biāo)函數(shù)值記錄到記錄板,若在連續(xù)3次迭代中,記錄板上的目標(biāo)函數(shù)值變化很小(變化量小于μ,μ取值范圍為 10-4~10-6),則認(rèn)為算法陷入局部最優(yōu)[10-11]。此時,使用萊維飛行更新位置,計算目標(biāo)函數(shù)值,直至找到高于記錄板中當(dāng)前最優(yōu)值的新位置,再利用(11)式進(jìn)行搜索。萊維飛行的更新公式為:
(17)
其中,α(α>0)為步長因子;?為點對點的乘法;xg為當(dāng)前記錄板中記錄的最優(yōu)個體位置;L(λ)為服從冪律分布的隨機(jī)搜索過程,L(λ)∶u=t-λ,1<λ<3。u、v均服從正態(tài)分布:
(18)
改進(jìn)的螢火蟲算法(IGSO)優(yōu)化LQR控制器原理是將螢火蟲初值賦給Q,然后運行Simulink模型得到該組參數(shù)對應(yīng)的系統(tǒng)性能指標(biāo),該指標(biāo)作為螢火蟲算法的目標(biāo)函數(shù)值,進(jìn)行迭代尋優(yōu)。具體實施步驟如下:
(1) 初始化記錄板、 熒光素更新率和熒光素初值等參數(shù),在問題的解空間中隨機(jī)地初始化螢火蟲群。
(2) 計算初始螢火蟲的目標(biāo)函數(shù)值。
(3) 對所有螢火蟲按(10)式更新熒光素值,螢火蟲解碼為控制器參數(shù)q0、q1、q2、q3。
(4) 進(jìn)入運動階段,在新位置用(11)式進(jìn)行位置的更新,并運用(13)式進(jìn)行決策域半徑更新。
(5) 計算當(dāng)前螢火蟲的目標(biāo)函數(shù)值,若優(yōu)于記錄板的值,則將之更新到記錄板中。
(6) 判斷是否進(jìn)行萊維飛行。若記錄板上的目標(biāo)函數(shù)值在連續(xù)3次迭代中的變化都極小,則執(zhí)行步驟(7);否則執(zhí)行步驟(8)。
日者,陽精之宗,積精成象,象成為禽,金雞、火鳥也,皆曰三足,表陽之類,其數(shù)奇;月者,陰精之宗,積精而成象,象成為獸,玉免、蟾蜍也,皆四足,表陰之類,其數(shù)偶。[注](宋)張君房:《云笈七籖》,新文豐出版公司,1957年,第685頁。
(7) 萊維飛行。按照(17)式進(jìn)行飛行,尋找新的更優(yōu)位置并計算當(dāng)前螢火蟲的目標(biāo)函數(shù)值,直至尋找到優(yōu)于記錄板中的歷史最優(yōu)值的位置為止,并更新記錄板中的信息。
(8) 判斷是否滿足結(jié)束條件。若滿足,則退出迭代,輸出結(jié)果;否則執(zhí)行步驟(3),進(jìn)入下一次迭代。
4仿真實驗
為了驗證本文提出的改進(jìn)算法優(yōu)化參數(shù)的優(yōu)越性,用標(biāo)準(zhǔn)螢火蟲算法(GSO)、改進(jìn)螢火蟲算法(IGSO)與遺傳算法(GA)在Matlab平臺下的 Simulink中進(jìn)行仿真,對控制器的參數(shù)進(jìn)行優(yōu)化,尋找出合適的q0、q1、q2、q3。機(jī)器人平衡運動1 000步,耗時約10 s。各算法參數(shù)設(shè)置如下:
(1) 遺傳算法。采用文獻(xiàn)[4]的參數(shù)集,種群規(guī)模為 100,變異概率為 0.05,交叉概率為 0.6。
(2) 標(biāo)準(zhǔn)螢火蟲算法和本文的改進(jìn)算法。采用文獻(xiàn)[11]的建議,熒光素?fù)]發(fā)因子為 0.4,熒光素更新率為0.6,動態(tài)決策范圍更新率為0.08,控制鄰域范圍內(nèi)鄰居螢火蟲個數(shù)為5,熒光素初值為5,變化量u為10-4,步長s為0.3。
(3) 機(jī)器人質(zhì)量m為2.0 kg,高為0.20 m,兩輪距離為0.20 m,輪半徑為0.06 m,加速度策略范圍為±2g,陀螺儀的角度測量范圍為±150°,驅(qū)動器最大輸出電流為2 A。
(4) 標(biāo)準(zhǔn)螢火蟲算法和遺傳算法的迭代次數(shù)均設(shè)置為300,而改進(jìn)螢火蟲算法最大迭代次數(shù)設(shè)置為 50。
實驗結(jié)果如圖3~圖5 所示。
圖3 改進(jìn)螢火蟲算法適應(yīng)度變化曲線
圖4 機(jī)器人傾角響應(yīng)曲線
圖5 機(jī)器人機(jī)身角速度響應(yīng)曲線
從圖3可以看出,遺傳算法(GA)的穩(wěn)態(tài)誤差為0.24%,而螢火蟲算法(GSO)、改進(jìn)螢火蟲算法(IGSO)求解后穩(wěn)態(tài)誤差均在 0.05%以下。標(biāo)準(zhǔn)螢火蟲算法和遺傳算法在 100 代之后最優(yōu)解才穩(wěn)定下來,而IGSO算法在進(jìn)化代數(shù)為56 時,最優(yōu)解就能穩(wěn)定下來,說明改進(jìn)算法能使控制器較快地獲得合適的參數(shù),從而能快速地進(jìn)入穩(wěn)定狀態(tài),達(dá)到最優(yōu)的控制效果。
從圖4可以看出,運用改進(jìn)螢火蟲算法后,系統(tǒng)能較好地跟蹤階躍信號,對控制器參數(shù)優(yōu)化的效果最好,超調(diào)量、穩(wěn)態(tài)誤差等都有較好的表現(xiàn),在控制器參數(shù)優(yōu)化上有較好的尋優(yōu)能力,所得參數(shù)對機(jī)器人平衡控制的效果很好,精度也很高。
從圖5可以看出,運用改進(jìn)螢火蟲算法后,機(jī)器人大概經(jīng)歷380步、耗時約4 s就能進(jìn)入到平衡狀態(tài),而標(biāo)準(zhǔn)GSO算法下,機(jī)器人需要經(jīng)過約800步才能進(jìn)入穩(wěn)定狀態(tài)。這表明改進(jìn)后的算法能較快地進(jìn)行自適應(yīng)調(diào)整以迅速進(jìn)入平衡狀態(tài)。
5結(jié)束語
針對兩輪自平衡機(jī)器人平衡控制優(yōu)化問題,本文提出了一種基于改進(jìn)螢火蟲算法的優(yōu)化設(shè)計方案,并進(jìn)行了仿真實驗。實驗結(jié)果表明,該算法相比于遺傳算法和標(biāo)準(zhǔn)螢火蟲算法在尋優(yōu)能力和控制精度上有顯著提升,能更好地對機(jī)器人進(jìn)行平衡控制。
[參考文獻(xiàn)]
[1]Wu J, Zhang W. Design of fuzzy logic controller for two-wheeled self-balancing robot[C]//International Forum on Strategic Technology. IEEE, 2011:1266-1270.
[2]Fang J. The LQR controller design of two-wheeled self-balancing robot based on the particle swarm optimization algorithm[J]. Mathematical Problems in Engineering, 2014, 2014(1):1-6.
[3]張家駿.基于粒子群算法的PID控制器參數(shù)優(yōu)化研究[J]. 計算機(jī)仿真, 2010, 27(10):191-193.
[4]諶海云,杜振華,鄒寧波,等. 多種群遺傳算法的倒立擺LQR控制器設(shè)計[J]. 控制工程, 2014, 21(3):391-394.
[5]張金學(xué),掌明.兩輪自平衡機(jī)器人的LQR實時平衡控制[J]. 自動化與儀表, 2013, 28(5):5-9.
[6]阮曉鋼,李世臻,侯旭陽,等.基于非線性PID的柔性兩輪機(jī)器人運動控制[J]. 控制工程, 2012, 19(3):498-501.
[7]王迎菊,周永權(quán).一種基于熒光素擴(kuò)散的人工螢火蟲算法[J]. 計算機(jī)工程與應(yīng)用, 2012, 48(10):34-38.
[8]杜曉昕,張劍飛,孫明.基于自適應(yīng)t分布混合變異的人工螢火蟲算法[J]. 計算機(jī)應(yīng)用, 2013, 33(7):1922-1925.
[9]武俊峰,孫雷.兩輪自平衡機(jī)器人的控制方法研究[J]. 哈爾濱理工大學(xué)學(xué)報, 2014, 19(6):22-26.
[10]毛書軍,盛賢君.基于混合計算智能的分?jǐn)?shù)階PID控制器參數(shù)優(yōu)化[J]. 計算機(jī)應(yīng)用, 2014,34(Z1):159-161.
[11]莫愿斌,劉付永,張宇楠. 帶高斯變異的人工螢火蟲優(yōu)化算法[J]. 計算機(jī)應(yīng)用研究, 2013, 30(1): 121-123.
(責(zé)任編輯胡亞敏)
Balance control of two-wheeled robot based on improved glowworm swarm optimization algorithm
YANG Huai-de
(Dept. of Computer Engineering, Dongguan Polytechnic, Dongguan 523808, China)
Abstract:Aiming at the balance control of self-balancing two-wheeled robot, a new algorithm based on improved glowworm swarm optimization algorithm is proposed to optimize controller parameters, in which the glowworm location updating strategy is optimized by introducing the Levy flight. The simulation result shows that the new algorithm has good stability and smaller generations, and good control effect in the balance control of self-balancing two-wheeled robot.
Key words:two-wheeled robot; glowworm swarm optimization algorithm; Levy flight; balance control
收稿日期:2015-07-01;修回日期:2016-02-19
基金項目:東莞市社會科技發(fā)展資助項目(2013108101045)
作者簡介:楊懷德(1983-),男,湖北黃岡人,東莞職業(yè)技術(shù)學(xué)院工程師.
doi:10.3969/j.issn.1003-5060.2016.05.014
中圖分類號:TP242
文獻(xiàn)標(biāo)識碼:A
文章編號:1003-5060(2016)05-0642-05