滑??刂婆c高階滑模算法(Super-Twisting)
最近在學(xué)習(xí)容錯控制,主要是基于滑模,但網(wǎng)上對滑??刂频闹v解大多是直接抄課本,對于二階滑模的STA算法的講解更是云里霧里(可能只是我自己沒看懂)。所以我找到了提出高階滑模算法的原始文獻[1],結(jié)合《非線性系統(tǒng)》[2]里對一階滑模的描述,對滑??刂坪透唠A滑模算法做一個總結(jié)。
滑模控制原理
????????我想,了解一個領(lǐng)域,最好的辦法是由淺入深,由點到面,由簡到繁。所以首先應(yīng)該搞清楚這樣的一個問題:滑??刂剖墙鉀Q什么問題的?其基本原理是什么?
????????答:滑??刂剖且欢l件下的強魯棒性控制,即對于任意系統(tǒng),尤其是非線性系統(tǒng),在系統(tǒng)動態(tài)或控制輸入有較大波動時,系統(tǒng)仍能保證一定的性能。其基本原理是,對于任意非線性系統(tǒng)x\dot=f(t,x,u),在一定控制u下,讓系統(tǒng)狀態(tài)在有限時間內(nèi)收斂到某一曲面s(x)=0,并且不再離開該曲面,從而將任意系統(tǒng)轉(zhuǎn)化為由該曲面描述的降階系統(tǒng),完成系統(tǒng)調(diào)節(jié)、鎮(zhèn)定、跟蹤等任務(wù)。u的設(shè)計與f(t,x,u)具體形式無關(guān),只與其上界有關(guān),所以具有很強的抗干擾性。
(當(dāng)然,也不能說“任意”,肯定要滿足一定條件的,后面會說到。另外很多文獻將曲面描述為manifold(流形),微分幾何里的概念)
????我們還是以一個二階系統(tǒng)為例,對于如下系統(tǒng):

其中g(shù)(x)>0,設(shè)計滑??刂苪使系統(tǒng)穩(wěn)定在原點。
調(diào)節(jié)過程分為兩部分:
① 在滑模面外時,在有限時間內(nèi)收斂到滑模面上,并不再離開
② 在滑模面上運動時,收斂到原點
先考慮②,如果在滑模面上,系統(tǒng)狀態(tài)滿足:

顯然,這是一個線性齊次方程,x1和x1\dot都將以指數(shù)的形式收斂到原點,即(x1,x2)以指數(shù)形式收斂到原點。因此,可以令滑模面為:s(x)=cx1+x2
考慮①,即滑模外的點收斂到滑模面上的過程。此時只要分析s對t的導(dǎo)數(shù):

該微分方程的Lyapunov方程可取為:

顯然,V(s)是正定的,而V對t的導(dǎo)數(shù):(以下f(x)記為f,g(x)記為g)

目標(biāo)是設(shè)計u使V\dot負定。由于g>0,因此:

式中第一項恒大于0,設(shè)其上界為k,那么,只要:

就可以讓V\dot負定,從而s一定趨于0,即滑模外的點一定收斂到滑模面上。
上述過程可以拓展到任意系統(tǒng)。對于系統(tǒng):

其中G為對角陣,對角線上的函數(shù)都恒大于0。δ為分段連續(xù)的擾動。設(shè)計控制律u,使對任意G和δ,系統(tǒng)能穩(wěn)定在原點。
首先做變量代換,系統(tǒng)轉(zhuǎn)化為正則形式:

設(shè)計步驟如下:
① 首先設(shè)計滑模面ξ=Φ(η),使滑模面上的點能收斂到原點。設(shè)計Φ即以下降階系統(tǒng)

在原點的鎮(zhèn)定問題。
② 設(shè)計控制律,使滑模面外的點能收斂到s=ξ-Φ(η)=0上。設(shè)計控制律即如下微分方程的鎮(zhèn)定問題:

對于正則的微分方程,s的一階導(dǎo)一定顯含u,從而可以估算式中各函數(shù)的上界,給出u的表達式或取值范圍。
高階滑模算法
????????可以看出,前面介紹的原理,得到的結(jié)果一定是:通過高頻切換u,使系統(tǒng)穩(wěn)定在滑模面上。這種算法實際應(yīng)用起來會有很多問題,比如在滑模面周圍振蕩,控制量故障后系統(tǒng)將很大程度偏離滑模面,控制過程有延時時性能大大降低等等。以前改進滑模算法的方式主要有兩種:一是改進邊界層,即在|s|較小時,用線性函數(shù)代替±1,系統(tǒng)響應(yīng)就平滑一些。二是設(shè)計各種各樣的趨近律,比如Twisting算法,Au算法,Drift算法等。
????????文獻[1]第一次總結(jié)了此前各類算法,提出了滑模階的概念,證明了有些算法是一階的,有些算法在一定條件下是二階的,并對Twisting算法進行了一些改進,成為了Super-Twisting算法的雛形。這里就不具體介紹了,簡單總結(jié)一下文章內(nèi)容:
① 給出一些定義,如滑模族,實際滑模和理想滑模,其中最重要的就是“滑模階”的概念。作者是這樣定義的(σ(t,x)=0為滑模面):如果:

即σ趨于0的“程度”小于γ(ε)的r次方,則稱這種趨近的r階的。γ是ε的函數(shù),并且ε趨于0時,γ趨于0。作者的定義比較嚴(yán)謹,實際上可以考慮冪函數(shù)在原點的趨近過程。y=k|x|是一階的,y=kx平方是二階的,以此類推。取γ=kτ時,作者得到:

還是有些抽象,總之,設(shè)計r階滑模,就要讓r-1階導(dǎo)數(shù)趨于0。
② 給出了二階滑模存在性的定理。
③ 分析了此前提出的各類滑模算法的收斂性,給出了一些定理,比如常規(guī)的滑模u=-k sign (σ)是一階的,Au算法是一階的,但當(dāng)α較大時,可以趨于二階,Twisting算法在一定條件下可以構(gòu)造二階滑模,用差分代替微分的離散形式的Twisting算法,在采樣間隔較小時也能構(gòu)造二階滑模,Drift算法在一定條件下能構(gòu)造二階滑模,等等。最后特別給出一個不用計算σ導(dǎo)數(shù)的算法,并指出在一定條件下能構(gòu)造二階滑模。

④ 上述定理的證明。為得到二階滑模,需要讓σ一階導(dǎo)數(shù)=0,因此需要分析σ二階導(dǎo)數(shù)的動態(tài):

其中C=LuLuσ,K=Luσ對u的偏導(dǎo)。C和K都有界。
(和一階滑模類似,對于一階,系統(tǒng)轉(zhuǎn)為正則形式后,σ的一階導(dǎo)數(shù)顯含u,因此通過估算各個函數(shù)的界限得到u的表達式。二階滑模則是σ的二階導(dǎo)數(shù)顯含u導(dǎo)數(shù),從而也可以在一定條件下讓σ二階導(dǎo)數(shù)恒小于0)
對于③中最后那個不用計算σ導(dǎo)數(shù)的算法:

滿足如下約束時:

并且ρ∈(0,0.5],該算法能實現(xiàn)二階滑模:

總結(jié)為,在該控制律下,可以讓σ二階趨于0,σ為t和x的任意函數(shù)。(一定條件,懶得看了,有點復(fù)雜,以后寫論文時再研究吧)
⑤ 做個仿真
論文中給出這樣一個抽風(fēng)的非線性動力系統(tǒng):

作者令σ=x3/Φ(x),希望σ二階趨于0,即σ趨于0并且σ導(dǎo)數(shù)趨于0。當(dāng)然x3也就趨于0。
應(yīng)用如下控制律:

在Simulink中搭建仿真:

設(shè)置初始位置(1,4,5),初始控制u=0,得到(σ,σ導(dǎo))的圖像:

可見σ和σ導(dǎo)都趨于0。
x3隨時間的變化:

收斂到0。
改變σ=(x3-t)/Φ(x),希望x3趨向t,初始狀態(tài)相同,從而:

同樣都趨于0,再看狀態(tài)變量x3:

修改微分方程右邊,系統(tǒng)同樣能讓σ二階趨于0,具有很強的抗干擾性。

參考文獻
[1] Levant (Levantovsky, L. V.), A. (1993). Sliding order and sliding accuracy in sliding mode ? ? ? ?control. Int. J. Control. 58(6), 1247—1263.
[2]?H. K. Khalil, Nonlinear systems, 3rd ed. Upper Saddle River, N.J: Prentice Hall, 2002.