岳玉環(huán),趙永華,郜峰
(嘉興職業(yè)技術(shù)學(xué)院,浙江 嘉興 314036)
眾所周知,在很多情況下,精確地求解系統(tǒng)吸引區(qū)域是非常困難的,所以只能采用估算的方法來盡可能地近似地求解吸引區(qū)域。常用的方法是基于Lyapunov 函數(shù)的方法。由于Lyapunov 函數(shù)的選擇對于吸引區(qū)域的估計(jì)有很大的影響,所以如何選擇一個合適的Lyapunov函數(shù)來估計(jì)吸引區(qū)域仍然具有很大的難度。 其中相對簡單的二次Lyapunov 函數(shù)常用來進(jìn)行吸引區(qū)域的估算[1]。此外,文獻(xiàn)[2-3]對多項(xiàng)式系統(tǒng)的吸引區(qū)域估計(jì)提出不同解決方法。然而,其中很多實(shí)際系統(tǒng),例如輪擺、有飽和系統(tǒng)等都屬于非多項(xiàng)式系統(tǒng)。在文獻(xiàn)[4] 中提出了針對非多項(xiàng)式系統(tǒng)尋找吸引區(qū)域的估計(jì)方法。這些方法都是基于線性矩陣不等式(LMI)展開式求解多項(xiàng)式最優(yōu)解實(shí)現(xiàn)的,計(jì)算量很大。
本文以兩輪自平衡車為例,介紹利用二次Lyapunov 函數(shù)通過坐標(biāo)變換方法來擴(kuò)大吸引區(qū)域估算值。通過與吸引區(qū)域估算結(jié)果的對比,證明了該坐標(biāo)變換方法的有效性和計(jì)算的簡便性。
兩輪自平衡車以其結(jié)構(gòu)簡單,運(yùn)動靈活的特點(diǎn)廣泛應(yīng)用于現(xiàn)代交通中。它是一種多變量、 非線性、絕對不穩(wěn)定的兩輪機(jī)器人系統(tǒng),典型的商業(yè)化產(chǎn)品有Segway。兩輪自平衡車在靜止?fàn)顟B(tài)下不能穩(wěn)定平衡。車體的平衡是一個動態(tài)過程,在平衡點(diǎn)附近根據(jù)車體實(shí)時的方位信息和運(yùn)動速度來調(diào)節(jié)控制信號以保持車體的平衡,這實(shí)際上是一個運(yùn)動的倒立擺平衡系統(tǒng)[5-9]。兩輪自平衡車的結(jié)構(gòu)簡圖如圖1所示,變量定義及具體數(shù)值見表1[10]。本文只研究兩輪自平衡車沿直線運(yùn)動的情況。
圖1 兩輪自平衡車結(jié)構(gòu)簡圖
接下來應(yīng)用拉格朗日方程建立系統(tǒng)的數(shù)學(xué)模型。
系統(tǒng)的總動能T包括車體的動能T1, 左、右輪子動能T2,即
T=T1+T2=
表1 兩輪自平衡車的變量
以車輪中心軸線所在的x-y平面為零勢能面,系統(tǒng)的勢能為U=mpgLcosθ。
(1)
(2)
式中τ為電動機(jī)的轉(zhuǎn)矩。為了計(jì)算簡便,此處忽略了電動機(jī)電刷處的摩擦力。
由此得到系統(tǒng)的狀態(tài)方程為
應(yīng)用文獻(xiàn)[11] 中的部分反饋線性化方法,將電動機(jī)的轉(zhuǎn)矩τ作為控制輸入信號,并選擇如下形式:
(3)
此外,在構(gòu)造平衡車結(jié)構(gòu)時,使條件α=η成立。此時,該系統(tǒng)的狀態(tài)方程可表示為
(4)
為了控制車體在豎直方向的平衡穩(wěn)定,將系統(tǒng)在期望的平衡點(diǎn)(x1,x2,x3)=(0,0,ν0) 處進(jìn)行線性化。這里需要說明的是:在x3=C(常數(shù))時(狀態(tài)變量x3是相對角速度),(x1,x2,x3)=(0,0,C)均為系統(tǒng)平衡點(diǎn)。
應(yīng)用泰勒展開得到該系統(tǒng)的線性狀態(tài)方程
x=Ax+Bu
(5)
該線性系統(tǒng)顯然是可控的,所以可以通過選擇合適參數(shù)的PID控制策略u=-Kx實(shí)現(xiàn)該系統(tǒng)在豎直位置的平衡控制,此處K=(k1,k2,k3)。
從最基本的二次Lyapunov函數(shù)出發(fā),在吸引區(qū)域內(nèi)部通過尋找適當(dāng)?shù)膸缀螆D形來逼近吸引區(qū)域邊界,從而近似估計(jì)吸引區(qū)域的大小。
將控制信號u=-Kx施加到式(5)中,得到的閉環(huán)系統(tǒng)的表達(dá)式為
(6)
進(jìn)一步得到
(7)
在橢球中,最大的球體可以表示為
(8)
采用表1中的數(shù)值, 應(yīng)用Python語言編寫程序進(jìn)行吸引區(qū)域的數(shù)值估算[13]。通過調(diào)用scipy庫中的linalg.solve_continuous_are()函數(shù)和solve_lyapunov()函數(shù),估算出吸引區(qū)域約為R=1.2×10-3。可見,該吸引區(qū)域的估算數(shù)值非常小,不足以滿足系統(tǒng)實(shí)際控制和調(diào)試之用。
本小節(jié),通過坐標(biāo)變換的方法尋找更大的吸引區(qū)域估計(jì)值。為了簡單起見,假定
(9)
在新坐標(biāo)系下,式(6)可寫作
與原坐標(biāo)系下的閉環(huán)系統(tǒng)表達(dá)式(6)對比,得到
在新坐標(biāo)系下,線性系統(tǒng)的Lyapunov方程
至此,可以得到如式(8)相同定義的最大球體
(10)
觀察式(10),它實(shí)質(zhì)上是一個在原坐標(biāo)系下受到M值影響的橢球。
(11)
通過選取合理的M值,相當(dāng)于對原坐標(biāo)系下的式(8)進(jìn)行適當(dāng)?shù)乩?,可以較為明顯地擴(kuò)大x的取值范圍,即擴(kuò)大吸引區(qū)域。
參照得到的較大的吸引區(qū)域估算值,選取偏離平衡位置較遠(yuǎn)的點(diǎn)x=(0.1rad,-0.5rad/s,3rad/s)作為系統(tǒng)的初始條件,利用Python程序進(jìn)行系統(tǒng)的響應(yīng)仿真,仿真結(jié)果如圖2所示。
圖2 系統(tǒng)的響應(yīng)曲線
圖2中實(shí)線為K=(-90.18,-2.83,-0.79),可以看出車體在4s內(nèi)達(dá)到平衡點(diǎn)并穩(wěn)定下來,說明了線性控制器u=-Kx的有效性,同時證明了吸引區(qū)域的估算值的可用性。虛線為K=(-90.18,-10,-0.79)得到的系統(tǒng)響應(yīng)效果,發(fā)現(xiàn)系統(tǒng)獲得了較好的動態(tài)響應(yīng)效果。由此也可以得出:在進(jìn)行吸引區(qū)域估計(jì)時得到的K能夠?qū)崿F(xiàn)系統(tǒng)的穩(wěn)定控制,并且為PID線性控制器的參數(shù)整定優(yōu)化提供一定的方向性指導(dǎo)。
基于二次Lyapunov函數(shù),對兩輪自平衡車的平衡控制通過變換坐標(biāo)的方法來獲得較大吸引區(qū)域估算值,并從幾何學(xué)上直觀地解釋了坐標(biāo)變化的意義。通過Python程序仿真系統(tǒng)響應(yīng)過程,驗(yàn)證了在擴(kuò)大的吸引區(qū)域內(nèi)的初始條件,均可通過PID線性控制器達(dá)到穩(wěn)定平衡的控制效果。這種利用開源的Python 對控制系統(tǒng)的控制仿真獲得了成本更低、更簡便直觀的良好效果,對Python在眾多科研人員中的普及和推廣有很好的借鑒意義。