王鵬飛,杜忠華,牛 坤,馬 祥
(南京理工大學(xué)機械工程學(xué)院,江蘇 南京 210094)
倒立擺是典型的多變量、高階次、非線性的不穩(wěn)定系統(tǒng),倒立擺的原理與多旋翼無人機,人形機器人有著相似的特征,可將其推廣到更多的具有類似特征的智能控制領(lǐng)域,因此對其研究具有十分重要的理論和實踐意義。近年來,國內(nèi)外學(xué)者也針對倒立擺進行了各種控制算法的研究。如智能控制[1]、模糊控制[2]、滑模控制[3]等,其中,已廣泛應(yīng)用于多變量系統(tǒng)控制的線性二次型(LQR)最優(yōu)控制方法[4],可以實現(xiàn)倒立擺系統(tǒng)的穩(wěn)定控制。隨著擺桿級數(shù)的增加,系統(tǒng)目標(biāo)變量的數(shù)量增多,需要確定的變量數(shù)目增加使取值的困難程度增大,權(quán)矩陣Q的確定通常采用實驗試探的方法,具有一定的盲目性,缺乏理論指導(dǎo)[5]。由于粒子群有良好的全局搜索能力[6],可以利用其優(yōu)點獲得最優(yōu)線性二次型調(diào)節(jié)器的Q和R,然而粒子群算法也存在易陷入局部最優(yōu)解以及搜索能力不均衡的問題,需要對其進行優(yōu)化改進。
文獻[7]對粒子群算法中的慣性因子進行階梯式調(diào)整,慣性權(quán)重根據(jù)迭代進行逐步調(diào)整,但優(yōu)化效果不夠明顯。文獻[8]提出了一種多粒子協(xié)作的方法,將優(yōu)化過程中的不同粒子進行交互協(xié)作,從而獲取各個粒子中有用的信息。文獻[9]提出了隨機選取一個粒子計算其適應(yīng)度值,如果該值優(yōu)于當(dāng)前粒子,則該隨機粒子作為學(xué)習(xí)粒子。文獻[8,9]都有利于增加種群信息的多樣性但是過程過于繁瑣且易受外界環(huán)境的影響。
本文提出了一種引入交叉算子和非線性動態(tài)慣性權(quán)重的粒子群優(yōu)化算法,通過引用類比于遺傳算法中的交叉算子可以增加群體的多樣性,提高了粒子群的全局搜索能力。為了平衡粒子群的全局搜索能力和局部搜索能力,對慣性權(quán)重進行調(diào)整,引入了非線性動態(tài)慣性權(quán)重,在迭代早期有利于跳出局部最優(yōu),進行全局尋優(yōu),在迭代后期有利于增強局部搜索能力,提高收斂速度。
應(yīng)用改進粒子群算法對LQR控制器進行參數(shù)整定,建立二級倒立擺模型,結(jié)合仿真分析對比,可以得出該方法具有較好的控制效果。
如圖1所示的二級倒立擺系統(tǒng)主要由一個沿軌道移動的小車和兩個可以自由旋轉(zhuǎn)的擺桿組成,小車和擺桿通過轉(zhuǎn)軸相互連接,每個擺桿可以通過轉(zhuǎn)軸在XOY平面內(nèi)自由轉(zhuǎn)動,直流電機通過帶傳動控制小車在軌道上的移動將擺桿穩(wěn)定在垂直向上平衡點。
圖1 二級倒立擺系統(tǒng)的模型
為了方便進行推導(dǎo)需要忽略一些次要因素。比如相對滑動,傳遞的延時和各種摩擦。小車質(zhì)量M0=1.02kg,下擺桿質(zhì)量M1=0.45kg,上擺桿質(zhì)量M2=0.05kg,下擺擺長L1=0.43m,上擺擺長L2=0.15m,下擺到其重心的距離l1=0.37m,上擺到其重心的距離l2=0.05m,下擺對質(zhì)心的轉(zhuǎn)動慣量J1=0.0042kgm2,上擺對質(zhì)心的轉(zhuǎn)動慣量J2=0.0001 kgm2,控制力與功放輸入電壓之比G0=2.48N/V,下擺和上擺與轉(zhuǎn)軸之間的摩擦系數(shù)F1=F2=0.003Ns/m。
通過對二級倒立擺的小車和擺桿進行受力和運動分析,運用拉格朗日方程推導(dǎo)運動學(xué)方程,作用在倒立擺系統(tǒng)上的力包括:非有勢力的廣義力、有勢力和耗散力,選擇小車位移x、下擺角位移θ1、上擺角位移θ2為廣義坐標(biāo)。因此,二級倒立擺系統(tǒng)的拉格朗日方程為
(1)
其中qi為廣義坐標(biāo),q0為小車位移x,q1為下擺角位移θ1,q2為上擺角位移θ2,F(xiàn)i為作用在系統(tǒng)上的廣義力,T,V,D分別是系統(tǒng)的總動能,總勢能和總耗散能。
取狀態(tài)向量
通過推導(dǎo)變換可得二級倒立擺狀態(tài)方程和輸出方程為
(2)
式中
其中:
化簡并代入?yún)?shù),可得狀態(tài)空間模型各個矩陣參數(shù)。在Matlab中輸入階躍信號,通過觀察小車和擺角的響應(yīng)曲線可知系統(tǒng)需要外加控制器才能達(dá)到穩(wěn)定狀態(tài)。
LQR控制算法就是以較小的輸入為代價實現(xiàn)各個目標(biāo)的有效控制[10]。LQR控制算法用于確定最優(yōu)控制量U(t)=-KX的反饋矩陣K,使閉環(huán)系統(tǒng)逐步穩(wěn)定并控制性能指標(biāo)
(3)
達(dá)到最小。采用變分法求解可得反饋增益矩陣為
K=-R-1BTP
(4)
矩陣P可以由Riccati方程得出
ATP+PA-PBR-1BTP+Q=0
(5)
Q是狀態(tài)變量的加權(quán)矩陣。權(quán)矩陣Q=diag(q1,q2,q3,q4,(q5,q6)中的各項系數(shù)分別代表其對應(yīng)指標(biāo)誤差的相對重要程度;R是控制量的加權(quán)矩陣,表示能量損失的相對重要性,以防止控制器的輸出太大而超過可控范圍。LQR中權(quán)矩陣Q和R的設(shè)計非常關(guān)鍵,直接影響LQR的控制性能,Q為半正定矩陣,R為正定矩陣。LQR最優(yōu)控制的目標(biāo)是以性能泛函最小為約束,需求時變、系統(tǒng)狀態(tài)及輸入變化時所需的最優(yōu)控制力U(t),使系統(tǒng)始終趨于初始最優(yōu)狀態(tài)。性能指標(biāo)加權(quán)矩陣Q和控制量加權(quán)矩陣R相互制約,通常選擇為對角矩陣,控制輸入單一時刻直接取標(biāo)量R=1;Q的選擇不唯一[11]。
粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法是一種基于迭代的群體智能隨機搜索算法,因其概念簡單、易于實現(xiàn)而備受關(guān)注。但PSO算法存在易陷入局部最優(yōu)的問題,不能完全保證全局收斂。針對PSO算法的不足,引入交叉算子和非線性動態(tài)慣性權(quán)重來改進傳統(tǒng)PSO算法。
交叉算子通過對群體中的個體信息進行交叉操作,并在演化的過程中逐漸延續(xù)和保留那些優(yōu)秀的基因,從而使群體朝著更好的方向進化。
交叉算子通過對群體中的個體信息進行交叉操作,并在演化的過程中逐漸延續(xù)和保留那些優(yōu)秀的基因,從而使群體朝著更好的方向進化。
(6)
式中randj(0,1)為[0,1]之間的隨機數(shù);jrand為[1,D]上隨機均勻產(chǎn)生的整數(shù);P為交叉概率。
最后,對粒子的個體歷史最優(yōu)位置進行更新
(7)
式中f(*)為適應(yīng)度函數(shù)。將交叉概率P通過通過自適應(yīng)的方式編碼到每個粒子中,以實現(xiàn)自適應(yīng)控制。擴展編碼后群體中粒子i可描述為
采用下面的規(guī)則對交叉概率進行更新操作。
在已經(jīng)成為一個地球村的今天,中國作為人口大國,在文化“走出去”的戰(zhàn)略背景下,積極推動文化外譯事業(yè)的發(fā)展,培養(yǎng)翻譯人才。雖然將中國文化外譯會面臨一些問題,鑒于中文的博大精深,不少辭藻優(yōu)美,以大量詩詞作點綴的小說并不能準(zhǔn)確地用英文表達(dá),所以目前外國網(wǎng)友看到的還大多數(shù)是一些能傳達(dá)基本意思的小說,但要堅信能夠通過努力讓中國的文化為更多人了解熟悉,從而走向世界。
(8)
式中λ為參數(shù)pc的更新概率
在傳統(tǒng)PSO算法中,采用固定或者線性遞減的慣性權(quán)重?zé)o法自適應(yīng)調(diào)整慣性權(quán)重,粒子群的全局搜索能力和局部搜索能力無法得到平衡。因此,采用非線性動態(tài)慣性權(quán)重系數(shù)的計算公式,解決了該算法在全局最優(yōu)解附近易早熟和產(chǎn)生振蕩的現(xiàn)象。表達(dá)式為
(9)
其中:minw和maxw分別為慣性權(quán)重的最小值和最大值;f為粒子的適應(yīng)度值;favg為粒子的平均適應(yīng)度值;fmin為粒子的最小適應(yīng)度值。當(dāng)各粒子局部最優(yōu)或者目標(biāo)值逐漸一致時,慣性權(quán)重值會逐漸增大。相反,慣性權(quán)重會逐漸減小。同時,對于目標(biāo)適應(yīng)度值低于平均目標(biāo)值的粒子,其慣性權(quán)重因子保持增大,使粒子朝著更好的方向進化,反之則說明粒子當(dāng)前的位置不需要進行較大的更新,保護粒子達(dá)到更優(yōu)的性能。
學(xué)習(xí)因子(C1、C2)表示的是粒子的記憶和學(xué)習(xí)能力。在迭代的初始階段,粒子可以朝著不同的方向進行搜索,保證粒子具有多樣性,為了加快粒子的搜索速度進行粗尋優(yōu)需要使C1較大C2較?。辉诘笃陔A段,粒子的搜索空間縮小,其重心在全局最優(yōu)解,C1較小C2較大,保證了粒子群能夠精細(xì)的搜索。在傳統(tǒng)PSO參數(shù)中經(jīng)常選取C1=C2=2,這樣既不利于在前期進化中快速找到最優(yōu)解,又不利于在后期得到全局最優(yōu)解。因此需要動態(tài)調(diào)整C1和C2的值,使其在迭代的前后期中分別發(fā)揮其最優(yōu)作用。
(10)
其中C1f和C2f為C1和C2的初值,C1e和C2e為C1和C2的終值,S和Smax分別是當(dāng)前迭代次數(shù)和最高迭代次數(shù)。
1)適應(yīng)度函數(shù)定義
適應(yīng)度函數(shù)是粒子群算法的一個重要概念。在粒子進化的過程中需要依靠適應(yīng)度值來判斷當(dāng)前位置的好壞,以選擇更好的個體。適應(yīng)度函數(shù)的選擇直接影響最后的結(jié)果的是否具有代表性。直線二級倒立擺的目的是實現(xiàn)小車和擺桿到達(dá)指定位置,為了保證控制效果和控制代價之間的均衡,采用時間誤差積分準(zhǔn)則(ITAE)用作適應(yīng)度函數(shù),以確保系統(tǒng)具有良好的動態(tài)性能。
(11)
本文提出的改進粒子群算法的具體實現(xiàn)步驟如下:
①初始化粒子種群規(guī)模,設(shè)定粒子交叉概率初始值,并計算初始粒子的適應(yīng)值和全局最優(yōu)適應(yīng)值。
②利用非線性動態(tài)慣性權(quán)重系數(shù)計算公式更新慣性權(quán)重的值,動態(tài)調(diào)整學(xué)習(xí)因子C1和C2,進行粒子的速度和位置的更新。
③根據(jù)適應(yīng)度公式計算粒子i的當(dāng)前位置xi(t)的適應(yīng)值,與上一次個體歷史最優(yōu)位置pi(t-1)進行離散交叉,然后根據(jù)公式更新粒子的個體最優(yōu)位置,對于粒子i,將pi(t)的適應(yīng)值與全局最好位置G(t-1)的適應(yīng)值比較,若優(yōu)于,則置G(t)=pi(t);否則,全局最好位置保持不變。
④確定結(jié)果是否符合適用值和最大的迭代次數(shù)要求,如果達(dá)到了終止條件,輸出所需函數(shù);若不滿足整個循環(huán)回歸到步驟Step2。
①初始化粒子種群規(guī)模,設(shè)定粒子交叉概率初始值,并計算初始粒子的適應(yīng)值和全局最優(yōu)適應(yīng)值。
②利用非線性動態(tài)慣性權(quán)重系數(shù)計算公式更新慣性權(quán)重的值,動態(tài)調(diào)整學(xué)習(xí)因子C1和C2,進行粒子的速度和位置的更新。
③根據(jù)適應(yīng)度公式計算粒子i的當(dāng)前位置xi(t)的適應(yīng)值,與上一次個體歷史最優(yōu)位置pi(t-1)進行離散交叉,然后根據(jù)公式更新粒子的個體最優(yōu)位置,對于粒子i,將pi(t)的適應(yīng)值與全局最好位置G(t-1)的適應(yīng)值比較,若優(yōu)于,則置G(t)=pi(t);否則,全局最好位置保持不變。
④確定結(jié)果是否符合適用值和最大的迭代次數(shù)要求,如果達(dá)到了終止條件,輸出所需函數(shù);若不滿足整個循環(huán)回歸到步驟Step2。
控制示意圖如圖2所示。
圖2 控制示意圖
本部分以式(2)所示的直線二級倒立擺系統(tǒng)為研究對象,在MATLAB/SIMULINK環(huán)境下建立了如圖3所示的直線二級倒立擺控制仿真模型。
圖3 直線二級倒立擺控制仿真模型
分別采用傳統(tǒng)粒子群算法與改進粒子群算法對LQR控制器的參數(shù)進行整定。實驗中改進算法的參數(shù)設(shè)置如下: 群體規(guī)模N=50;最大迭代次數(shù)為100;每個粒子的初始交叉概率均為0.9; 交叉概率的更新概率τ=0.2。C1和C2的動態(tài)調(diào)整范圍分別為[1.75,2.55],[1.05,2.75],w為[1.05,2.75].為了比較改進的PSO算法和傳統(tǒng)PSO算法的收斂效果,應(yīng)盡量保證參數(shù)的一致性。對于傳統(tǒng)PSO算法設(shè)置為:群體規(guī)模N=50;最大迭代次數(shù)為100;c1=c2=2;w=1。
控制器參數(shù)調(diào)整過程中適應(yīng)度值的優(yōu)化過程如圖(4)(5)所示。從圖中可以看出改進的PSO算法的收斂速度優(yōu)于傳統(tǒng)PSO算法。
圖4 傳統(tǒng)PSO算法優(yōu)化算法
圖5 改進PSO算法優(yōu)化過程
本節(jié)以直線二級倒立擺平衡控制實驗為例說明本文所提出的控制方法的有效性。在實驗中,采用傳統(tǒng)的PSO算法和改進的PSO算法調(diào)整線性二次型調(diào)節(jié)器(LQR)的加權(quán)矩陣參數(shù),實現(xiàn)直線二級倒立擺的平衡控制。
實驗1:無擾動平衡控制
采用兩種不同控制算法的二級倒立擺系統(tǒng)中兩擺的角度響應(yīng)曲線分別如圖6(a)、6(b)所示。圖6(a)、6(b)中實線為傳統(tǒng)PSO算法優(yōu)化結(jié)果,點劃線為本文所設(shè)計的控制算法控制結(jié)果。從圖6(a)~(b)可以看出,在無擾動的情況下上述兩種控制方法都有效的實現(xiàn)了倒立擺的平衡控制,但本文算法超調(diào)量更小,響應(yīng)時間更快。
實驗2:有擾動時平衡控制
為了進一步驗證所設(shè)計的控制算法的抗擾能力,在系統(tǒng)穩(wěn)定后加入一個脈沖干擾,上述三種控制器作用下的擺桿1和擺桿2的響應(yīng)曲線如圖7所示。從圖7可以看出本文所設(shè)計的控制器反應(yīng)速度快、超調(diào)量小且抗干擾能力較強。同時,它還表明本文提出的調(diào)整方法可以有效地確定一組控制器參數(shù)值,避免了繁瑣的手動調(diào)整過程。
圖7 有擾動時直線二級倒立擺平衡控制結(jié)果
本文針對直線二級倒立擺建立了拉格朗日數(shù)學(xué)模型,設(shè)計了線性二次型調(diào)節(jié)器(LQR),并利用改進粒子群算法較強的局部和全局搜索能力對線性二次型調(diào)節(jié)器(LQR)中的慣性矩陣參數(shù)進行了整定。無擾動和存在擾動兩種情況下的倒立擺平衡控制仿真結(jié)果表明采用改進粒子群算法能夠有效地確定出一組慣性矩陣參數(shù),提高了參數(shù)整定效率。同時從仿真結(jié)果也可看出通過改進粒子群算法優(yōu)化的線性二次型調(diào)節(jié)器(LQR)縮短了系統(tǒng)到達(dá)平衡狀態(tài)的時間,使系統(tǒng)在整個動態(tài)響應(yīng)過程中都具有較強的魯棒性。