彭勇,陳俞強(qiáng),2
(1.東莞職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程系,廣東 東莞 523808; 2.廣東工業(yè)大學(xué) 自動(dòng)化學(xué)院,廣東 廣州 510006)
線性二次型調(diào)節(jié)器(linear quadratic regulator,LQR)是以狀態(tài)變量和控制變量二次型函數(shù)的積分作為目標(biāo)函數(shù)的最優(yōu)控制系統(tǒng)[1]。
倒立擺系統(tǒng)是一個(gè)典型的高階次、不穩(wěn)定、多變量的非線性控制系統(tǒng)。自動(dòng)控制系統(tǒng)的穩(wěn)定性、可控性、收斂速度、抗干擾能力等抽象的控制概念都可以通過(guò)倒立擺系統(tǒng)直觀、形象地表現(xiàn)出來(lái),所以倒立擺是自動(dòng)控制領(lǐng)域中較為理想的實(shí)驗(yàn)平臺(tái)。自適應(yīng)、狀態(tài)反饋、智能控制、模糊控制及人工神經(jīng)元網(wǎng)絡(luò)等多種控制理論都可以通過(guò)倒立擺系統(tǒng)來(lái)加以驗(yàn)證,所以通過(guò)倒立擺系統(tǒng)來(lái)對(duì)利用蛙跳算法進(jìn)行LQR優(yōu)化控制的效果進(jìn)行驗(yàn)證[2]。
假設(shè)線性時(shí)不變系統(tǒng)的狀態(tài)方程模型為

可以引入最優(yōu)控制的性能指標(biāo),既設(shè)計(jì)一個(gè)輸入量u,使得式(1)最小。
(1)
式中:Q和R分別為狀態(tài)變量和輸入變量的加權(quán)矩陣,tf為控制作用的終止時(shí)間。矩陣S對(duì)控制系統(tǒng)的終值給出某種約束,這樣的控制問(wèn)題稱為線性二次型最優(yōu)控制問(wèn)題[3]。
對(duì)于倒立擺系統(tǒng)來(lái)說(shuō),如果忽略了空氣阻力和各種摩擦之后, 可將直線一級(jí)倒立擺系統(tǒng)抽象成沿著光滑導(dǎo)軌運(yùn)動(dòng)的小車和通過(guò)軸承連接的勻質(zhì)擺桿組成。如圖1所示[4]。其中, 小車的質(zhì)量為M,擺桿質(zhì)量為m,擺桿長(zhǎng)為l,F(xiàn)為作用于小車上的外力,μ為小車摩擦系數(shù),I為擺桿轉(zhuǎn)動(dòng)慣量,x為小車的位移,擺桿角度為θ,重力加速度為g。

圖1 單級(jí)倒立擺的結(jié)構(gòu)簡(jiǎn)化模型Fig.1 The model of inverted pendulum system
倒立擺控制系統(tǒng)本質(zhì)上是一個(gè)不穩(wěn)定系統(tǒng),如果不給小車施加牽引力以使小車做適當(dāng)運(yùn)動(dòng),倒立擺就不能保持倒立位置而向左或向右傾倒,系統(tǒng)控制的目的就是讓小車在軌道上來(lái)回運(yùn)動(dòng),以保持?jǐn)[桿樹(shù)立不倒。
至為了使系統(tǒng)模型不過(guò)于復(fù)雜,先進(jìn)行幾點(diǎn)假設(shè):1)擺桿及小車均為剛體且擺桿為勻質(zhì)剛體;2)忽略小車運(yùn)動(dòng)時(shí)所受摩擦力和擺桿轉(zhuǎn)動(dòng)時(shí)所受的摩擦力矩[2,4]。
得到系統(tǒng)的動(dòng)力學(xué)方程組為

令作用力、位移與角度參數(shù)為時(shí)間的函數(shù)有
于是最終得到方程組為
即系統(tǒng)的狀態(tài)變量為
則系統(tǒng)狀態(tài)空間表達(dá)式為

式中:
根據(jù)單級(jí)倒立擺系統(tǒng)的狀態(tài)方程,由于終端時(shí)間tf=,系統(tǒng)的二次型性能指標(biāo)為
式中:e(t)=yr-y(t),yr為系統(tǒng)期望輸出;Q和R分別為輸出誤差變量和輸入變量的加權(quán)矩陣,決定了系統(tǒng)誤差與控制能量消耗之間的相對(duì)重要性(Q為半正定對(duì)稱矩陣;R為正定對(duì)稱矩陣)。找一狀態(tài)反饋控制律:u=-Kx,使得二次型性能指標(biāo)最小化。
由線性二次型最優(yōu)控制理論可知,若想最小化J,則控制信號(hào)應(yīng)該為
u*=-R-1BTPx
式中:P為對(duì)稱矩陣,該矩陣滿足Riccati微分方程:
易知,狀態(tài)變量x與Riccati微分方程的解P將決定最優(yōu)控制信號(hào)。
在實(shí)際工程中,系數(shù)矩陣A、B、C、R多為常數(shù)矩陣,而且系統(tǒng)在tf→時(shí)趨于穩(wěn)定,微分方程的解矩陣P將趨于0,使得則Riccati微分方程簡(jiǎn)化為Riccati代數(shù)方程:
PA+ATP-PBR-1BTP+Q=0
則最優(yōu)反饋系數(shù)矩陣K=R-1BTP。
用MATLAB求解LQR(A,B,Q,R)可以求出最優(yōu)反饋系數(shù)矩陣K的值。LQR函數(shù)需要選擇2個(gè)參數(shù)R和Q,這2個(gè)矩陣是用來(lái)平衡輸入量和狀態(tài)量的權(quán)重,R一般選擇一常量,Q是一個(gè)對(duì)角線矩陣,一般情況下由元素Q1,1和Q3,3來(lái)確定,其他元素項(xiàng)為0。其中,Q1,1代表擺桿角度的權(quán)重,而Q3,3是小車位置的權(quán)重。所設(shè)計(jì)的最優(yōu)控制完全取決于加權(quán)系數(shù)Q1,1和Q3,3的選擇。在以往的設(shè)計(jì)中, 權(quán)重往往是由設(shè)計(jì)者根據(jù)其經(jīng)驗(yàn)經(jīng)過(guò)反復(fù)試驗(yàn)獲得的, 需要設(shè)計(jì)者根據(jù)系統(tǒng)輸出逐步調(diào)整權(quán)重矩陣,直到獲得滿意的輸出響應(yīng)值為止。這樣不僅費(fèi)時(shí),而且也無(wú)法保證獲得最優(yōu)的權(quán)重矩陣,因此獲得的最優(yōu)控制反饋系數(shù)不能保證使系統(tǒng)達(dá)到最優(yōu)。
混合蛙跳算法(shuffled frog leaping algorithm,SFLA) 在解空間中模擬青蛙群體在尋找食物時(shí)的行為探索問(wèn)題的最優(yōu)解,是 Eusuff 和 Lansey[5]為解決組合優(yōu)化問(wèn)題于 2003 年提出的一種群智能算法。SFLA 結(jié)合了 PSO 算法和 Memetic 算法的優(yōu)點(diǎn)[6],具有易理解、易實(shí)現(xiàn)及尋優(yōu)能力強(qiáng)等優(yōu)勢(shì)。其中,Memetic 是以遺傳行為為基礎(chǔ),通過(guò)啟發(fā)式搜索解決優(yōu)化問(wèn)題的一種群智能算法。Memetic 算法的特征是可以在進(jìn)化之前通過(guò)局部搜索獲得一些經(jīng)驗(yàn)。
2.1.1 標(biāo)準(zhǔn)蛙跳算法[7]
1)初始化:選擇Nm和Nf,令Nm為青蛙子群memeplex的個(gè)數(shù),Nf為每個(gè)子群memeplex青蛙的個(gè)數(shù)(即可行解的個(gè)數(shù)),則初始解(青蛙種群)的個(gè)數(shù)為:Npop=Nm×Nf。

3)青蛙分配:將排好序的青蛙依次循環(huán)分配到Nm個(gè)子群(即第1只青蛙到第1個(gè)子群,第Nm個(gè)青蛙到最后一個(gè)子群,第Nm+1只青蛙又到第1個(gè)子群,周而復(fù)始,直到所有青蛙分配完畢)。
4)確定局部搜索(Memetic 進(jìn)化)迭代次數(shù)為Iter。
5)Memetic 進(jìn)化:
②更新操作
式中:Fitness函數(shù)為適應(yīng)度函數(shù),Δxwmax表示蛙跳最大步長(zhǎng)。rand()為(0,1)的隨機(jī)數(shù)。

④t=t+1,ift≤Iter,轉(zhuǎn)到①。
6)洗牌(種群信息交換):
2.1.2 改進(jìn)的蛙跳算法
1)新的最差青蛙跳躍策略。

(2)

2)加入自適應(yīng)跳躍因子。
式(2)中rand()函數(shù)起到更新步長(zhǎng)的作用。但由于rand()函數(shù)是一個(gè)隨機(jī)數(shù),很不穩(wěn)定,會(huì)引起步長(zhǎng)更新過(guò)大或步長(zhǎng)更新過(guò)小,這樣就導(dǎo)致了在最優(yōu)解附近不停地搜索或者算法收斂時(shí)間較長(zhǎng)。
數(shù)值實(shí)驗(yàn)表明,蛙跳算法的跳躍距離應(yīng)該在開(kāi)始時(shí)大些,保證在整個(gè)解空間中搜索,到了后期應(yīng)該取較小值,以便算法盡快收斂。根據(jù)跳躍距離先大后小的特點(diǎn),本文設(shè)計(jì)了一種自適應(yīng)跳躍算子,使得跳躍距離根據(jù)算法的運(yùn)算過(guò)程自適應(yīng)地調(diào)整。自適應(yīng)跳躍因子為

式中:tmax為進(jìn)化的最大代數(shù),t為當(dāng)前進(jìn)化代數(shù)。c為系數(shù),取值范圍為[0.2,0.6]。則式(2)可修改為
本文將采用改進(jìn)蛙跳算法對(duì) LQR 控制器設(shè)計(jì)中的權(quán)值Q1,1和Q3,3進(jìn)行多目標(biāo)優(yōu)化。
具體算法流程圖如圖2。

圖2 蛙跳算法優(yōu)化LQR過(guò)程示意圖Fig.2 The optimization LQR process of SFLA
圖2中,改進(jìn)蛙跳算法與Simulink模型之間連接的橋梁是最優(yōu)蛙(既LQR控制器參數(shù))和該青蛙對(duì)應(yīng)的適配值(既控制系統(tǒng)的性能指標(biāo))。優(yōu)化過(guò)程如下:改進(jìn)蛙跳算法產(chǎn)生蛙群(可以是初始化蛙群,也可以是更新后的蛙群),將蛙群中的青蛙依次賦值給LQR控制器的參數(shù)Q1,1和Q3,3,然后運(yùn)行控制系統(tǒng)Simulink模型,得到該組參數(shù)對(duì)應(yīng)的性能指標(biāo),該性能指標(biāo)傳遞到蛙跳算法中作為該青蛙的適配值,最后判斷是否退出算法。
對(duì)于LQR控制器參數(shù)優(yōu)化問(wèn)題已經(jīng)有多種方法,本文采用標(biāo)準(zhǔn)蛙跳算法、改進(jìn)蛙跳算法、粒子群算法、遺傳算法共4種方法對(duì)LQR控制器的參數(shù)進(jìn)行優(yōu)化,尋找出合適的Q1,1和Q3,3。各算法參數(shù)設(shè)置如下:
1)遺傳算法:采用文獻(xiàn)[8]的參數(shù)集,種群規(guī)模為100,變異概率為0.05,交叉概率為0.3。
2)粒子群算法:利用文獻(xiàn)[9]的建議,種群規(guī)模為100,認(rèn)知學(xué)習(xí)因子為2.9、社會(huì)學(xué)習(xí)因子為1.2、慣性因子為0.4。
3)標(biāo)準(zhǔn)蛙跳算法和改進(jìn)蛙跳算法:采用文獻(xiàn)[10]的建議,文化基因體數(shù)為20,文化基因體中青蛙數(shù)為10,獨(dú)立進(jìn)化次數(shù)為10,個(gè)體最大進(jìn)化步長(zhǎng)Smax=100%變化范圍。
迭代次數(shù)改進(jìn)蛙跳算法設(shè)置為50,其他3種均設(shè)置為100。
對(duì)這4種算法優(yōu)化同一模型的結(jié)果進(jìn)行比較,以此來(lái)檢驗(yàn)改進(jìn)蛙跳算法對(duì)此類問(wèn)題的優(yōu)化性能。實(shí)驗(yàn)結(jié)果如圖3和圖4,仿真得出,遺傳算法(GA)的穩(wěn)態(tài)誤差為0.24%,而粒子群算法(PSO)、標(biāo)準(zhǔn)蛙跳算法(SFA)、改進(jìn)蛙跳算法(ISFA)求解后沒(méi)有穩(wěn)態(tài)誤差。

圖3 改進(jìn)蛙跳算法適應(yīng)度變化曲線Fig.3 Improved shuffled frog-leaping algorithm fitness curve
從圖3可以看出改進(jìn)蛙跳算法在進(jìn)化代數(shù)為58.2時(shí),最優(yōu)解就穩(wěn)定下來(lái),粒子群算法、標(biāo)準(zhǔn)蛙跳算法在120代之后最優(yōu)解才穩(wěn)定下來(lái),而標(biāo)準(zhǔn)的遺傳算法在接近300代時(shí)仍然未穩(wěn)定下來(lái),說(shuō)明最優(yōu)解還有上升的可能,由此可見(jiàn),改進(jìn)蛙跳算法在快速收斂性方面有較好表現(xiàn)。
針對(duì)單級(jí)倒立擺的控制,實(shí)驗(yàn)系統(tǒng)的模型參數(shù)如下:
小車質(zhì)量M為1.075 kg ,擺桿質(zhì)量m為0.105 kg ,擺桿長(zhǎng)度l為0.25 m , 小車摩擦系數(shù)μ為0.1 N/m/sec ,擺桿轉(zhuǎn)動(dòng)慣量I為0.003 5 kg·m2。根據(jù)不同算法得到的Q1,1和Q3,3代入單級(jí)倒立擺模型得到的擺角響應(yīng)曲線如圖4所示。

圖4 不同算法得到的擺角響應(yīng)曲線Fig.4 The comparison of response curve
從圖4可以看出,系統(tǒng)能較好地跟蹤階躍信號(hào),改進(jìn)蛙跳算法對(duì)LQR控制器參數(shù)優(yōu)化的效果最好,超調(diào)量、穩(wěn)態(tài)誤差等都有較好的表現(xiàn),其中超調(diào)量是控制系統(tǒng)在階躍信號(hào)輸入下的階躍響應(yīng)曲線分析動(dòng)態(tài)性能的一個(gè)指標(biāo)值,表示被調(diào)參數(shù)動(dòng)態(tài)偏離給定值的最大程度;穩(wěn)態(tài)誤差是指當(dāng)系統(tǒng)從一個(gè)穩(wěn)態(tài)過(guò)度到新的穩(wěn)態(tài),或系統(tǒng)受擾動(dòng)作用又重新平衡后,系統(tǒng)可能會(huì)出現(xiàn)偏差,這種偏差稱為穩(wěn)態(tài)誤差,改進(jìn)蛙跳算法在LQR參數(shù)優(yōu)化上有較好的尋優(yōu)能力,所得參數(shù)對(duì)一級(jí)倒立擺的控制效果很好,精度也很高。
本文標(biāo)準(zhǔn)蛙跳算法的基礎(chǔ)上,通過(guò)改進(jìn)跳躍策略和增加自適應(yīng)因子等方法,設(shè)計(jì)了一個(gè)新的蛙跳算法的來(lái)對(duì)LQR控制器進(jìn)行優(yōu)化設(shè)計(jì),該算法相比于進(jìn)化算法在收斂性和控制精度上有顯著提高,可以較廣泛的用于工業(yè)控制領(lǐng)域,后續(xù)工作主要是繼續(xù)研究改進(jìn)蛙跳算法對(duì)PID控制器的參數(shù)的調(diào)整,以期適應(yīng)更廣泛的控制領(lǐng)域。
參考文獻(xiàn):
[1]劉浩梅,張昌凡. 基于LQR的環(huán)形單級(jí)倒立擺穩(wěn)定控制及實(shí)現(xiàn)[J]. 中南大學(xué)學(xué)報(bào):自然科學(xué)版,2012,43(9): 3496-3501.
LIU Haomei, ZHANG Changfan. Stability control and realization of single link rotary inverted pendulum on LQR controller[J]. Journal of Central South University: Science and Technology, 2012, 43(9): 3496-3501.
[2]張白莉. 單級(jí)倒立擺控制系統(tǒng)的穩(wěn)定性算法設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2011, 34(3): 120-122.
ZHANG Baili. Stability algorithm design of first-order inverted pendulum control system[J]. Modern Electronics Technique, 2011, 34(3): 120-122.
[3]XU X. Suboptimal LQR problem: controller uncertainty and static output feedback controller[C]//Proceedings of the 23nd Chinese Control Conference. Changsha, China, 2004: 25-32.
[4]胡蓉,陶雪華.單級(jí)倒立擺的LQR控制和DMC控制Matlab仿真比較[J].工業(yè)控制計(jì)算機(jī), 2011, 26(8): 38-40.
HU Rong, TAO Xuehua. Comparison study of LQR control and DMC control on single inverted pendulum[J]. Industrial Control Computer, 2011, 26(8): 38-40.
[5]ALIREZA R V. A hybrid multi-objective shuffled frog-leaping algorithm for a mixed-model assembly line sequencing problem[J]. Computers and Industrial Engineering, 2007, 53(9): 642-666 .
[6]賀毅朝,曲文龍,許冀偉. 一種改進(jìn)的混合蛙跳算法及其收斂性分析[J]. 計(jì)算機(jī)工程與應(yīng)用, 2011, 47(22): 37-40.
HE Yichao,QU Wenlong, XU Jiwei. Improved shuffled frog-leaping algorithm and its convergent analysis[J]. Computer Engineering and Applications, 2011, 47(22): 37-40.
[7]LI Yinghai, ZHOU Jianzhong, ZHANG Yongchuan, et al. Novel multi-objective shuffled frog leaping algorithm with application to reservoir flood control operation[J]. Journal of Water Resources Planning and Management, 2010, 136 (4): 217-226 .
[8]張倩,楊耀權(quán). 基于遺傳算法的PID控制器參數(shù)優(yōu)化方法研究[J].電力科學(xué)與工程, 2011, 27(11): 53-57.
ZHANG Qian, YANG Yaoquan. PID controller parameters optimization method based on genetic algorithm[J]. Electric Power Science and Engineering, 2011, 27(11): 53-57.
[9]應(yīng)明峰,鞠全勇,高峰. 基于粒子群優(yōu)化的PID控制器設(shè)計(jì)與應(yīng)用[J].計(jì)算機(jī)仿真, 2011, 28(11): 283-287.
YING Mingfeng, JU Quanyong, GAO Feng. Design and application of PID controller based on particle swarm optimization[J]. Computer Simulation, 2011, 28(11): 283-287.
[10]葛宇,王學(xué)平,梁靜.改進(jìn)的混合蛙跳算法[J].計(jì)算機(jī)應(yīng)用, 2012, 32(1): 234-237.
GE Yu, WANG Xueping, LIANG Jing. Improved shuttled frog-leaping algorithm[J]. Journal of Computer Applications, 2012, 32(1): 234-237.