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

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

圖1 單級倒立擺的結構簡化模型Fig.1 The model of inverted pendulum system
倒立擺控制系統本質上是一個不穩定系統,如果不給小車施加牽引力以使小車做適當運動,倒立擺就不能保持倒立位置而向左或向右傾倒,系統控制的目的就是讓小車在軌道上來回運動,以保持擺桿樹立不倒。
至為了使系統模型不過于復雜,先進行幾點假設:1)擺桿及小車均為剛體且擺桿為勻質剛體;2)忽略小車運動時所受摩擦力和擺桿轉動時所受的摩擦力矩[2,4]。
得到系統的動力學方程組為

令作用力、位移與角度參數為時間的函數有
于是最終得到方程組為
即系統的狀態變量為
則系統狀態空間表達式為

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

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

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

(2)

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

式中:tmax為進化的最大代數,t為當前進化代數。c為系數,取值范圍為[0.2,0.6]。則式(2)可修改為
本文將采用改進蛙跳算法對 LQR 控制器設計中的權值Q1,1和Q3,3進行多目標優化。
具體算法流程圖如圖2。

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

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

圖4 不同算法得到的擺角響應曲線Fig.4 The comparison of response curve
從圖4可以看出,系統能較好地跟蹤階躍信號,改進蛙跳算法對LQR控制器參數優化的效果最好,超調量、穩態誤差等都有較好的表現,其中超調量是控制系統在階躍信號輸入下的階躍響應曲線分析動態性能的一個指標值,表示被調參數動態偏離給定值的最大程度;穩態誤差是指當系統從一個穩態過度到新的穩態,或系統受擾動作用又重新平衡后,系統可能會出現偏差,這種偏差稱為穩態誤差,改進蛙跳算法在LQR參數優化上有較好的尋優能力,所得參數對一級倒立擺的控制效果很好,精度也很高。
本文標準蛙跳算法的基礎上,通過改進跳躍策略和增加自適應因子等方法,設計了一個新的蛙跳算法的來對LQR控制器進行優化設計,該算法相比于進化算法在收斂性和控制精度上有顯著提高,可以較廣泛的用于工業控制領域,后續工作主要是繼續研究改進蛙跳算法對PID控制器的參數的調整,以期適應更廣泛的控制領域。
參考文獻:
[1]劉浩梅,張昌凡. 基于LQR的環形單級倒立擺穩定控制及實現[J]. 中南大學學報:自然科學版,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]. 現代電子技術, 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]胡蓉,陶雪華.單級倒立擺的LQR控制和DMC控制Matlab仿真比較[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]. 計算機工程與應用, 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]張倩,楊耀權. 基于遺傳算法的PID控制器參數優化方法研究[J].電力科學與工程, 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]應明峰,鞠全勇,高峰. 基于粒子群優化的PID控制器設計與應用[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]葛宇,王學平,梁靜.改進的混合蛙跳算法[J].計算機應用, 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.