李雅普诺夫稳定性、李雅普诺夫第一法、李雅普诺夫第二法及李雅普诺夫函数
1 什么是穩定點
一個控制系統就和一個社會一樣,穩定性是首先要解決的重要問題,是其他一切工作的基礎。穩定性問題的字面意思很好理解了,那就是系統在受到擾動后,能否能有能力在平衡態繼續工作。大家都知道,歷史上社會改革成本很高,且以失敗者居多,從控制論的角度來看,就是對社會這個大系統的穩定性研究不夠,導致擾動發生后,社會發散了。
要研究穩定,首先要研究穩定點,那什么是穩定點呢?我們以發射火箭為例:
火箭的簡化模型可以看成是一個倒立擺,如下圖所示,在最低端施加控制力,來保持其在豎直方向的角度可控。
其狀態方程如下:
ddt[θθ˙]=[θ˙mglJtsin?θ?γJtθ˙+lJtcos?θ?u]\fracze8trgl8bvbq{d t}\left[\begin{array}{c} \theta \\ \dot{\theta} \end{array}\right]=\left[\begin{array}{c} \dot{\theta} \\ \frac{m g l}{J_{t}} \sin \theta-\frac{\gamma}{J_{t}} \dot{\theta}+\frac{l}{J_{t}} \cos \theta \cdot u \end{array}\right] dtd?[θθ˙?]=[θ˙Jt?mgl?sinθ?Jt?γ?θ˙+Jt?l?cosθ?u?]
其中 γ\gammaγ 為旋轉摩擦系數, Jt=J+ml2J_t=J+ml^2Jt?=J+ml2 , uuu 為施加的外力。現在我們要開始做實驗了,假設對火箭不做任何控制,即 u=0u=0u=0 ,這時火箭的狀態方程可進一步簡化:
ddt[θθ˙]=[θ˙mglJtsin?θ?γJtθ˙]\fracze8trgl8bvbq{d t}\left[\begin{array}{c} \theta \\ \dot{\theta} \end{array}\right]=\left[\begin{array}{c} \dot{\theta} \\ \frac{m g l}{J_{t}} \sin \theta-\frac{\gamma}{J_{t}} \dot{\theta} \end{array}\right] dtd?[θθ˙?]=[θ˙Jt?mgl?sinθ?Jt?γ?θ˙?]
不失一般性,假設我們自己也造了一個火箭,其 mgl=Jt=1,γ=1mgl=J_t=1,\;\gamma=1mgl=Jt?=1,γ=1 ,則上述方程變為:
[x1˙(t)x2˙(t)]=[x2sin?(x1)?x2]\left[\begin{array}{c} \dot{x_1}(t) \\ \dot{x_2}(t) \end{array}\right]=\left[\begin{array}{c} x_2 \\ \sin(x_1)-x_2 \end{array}\right] [x1?˙?(t)x2?˙?(t)?]=[x2?sin(x1?)?x2??]
注意,這個方程雖然看著簡單,但確是一個非線性方程,解起來還是費點力氣的,我們要借助MATLAB幫我們算一下,并畫個圖出來看一下,把 x1x_1x1? 作為橫坐標, x2x_2x2? 作為縱坐標,然后隨機選擇一些初始點,看看向量 [x1,x2]T[x_1,x_2]^T[x1?,x2?]T 是怎么運動的,軌跡如下圖所示:
可見,這個圖形是比較有意思的,其中有三個比較明顯的點,貌似是旋渦中心,無論初始條件是什么,最終都要穩定在這三個點上(實際很多,我們只計算了三個),這三個點的坐標目測是 [±nπ,0]T[\pm n\pi, 0]^T[±nπ,0]T
我們從數學上再分析一下,什么是穩定點呢?——就是不再變化的點,那什么是不再變化呢?——導數為零唄,怎么樣才能讓導數為零呢?——狀態方程的左邊就是導數啊,讓右邊為零就可以了。
[x2sin?(x1)?x2]=[00]\left[\begin{array}{c} x_2 \\ \sin(x_1)-x_2 \end{array}\right]=\left[\begin{array}{c} 0 \\ 0\end{array}\right] [x2?sin(x1?)?x2??]=[00?]
解這個方程還是比較容易的,它的解就是:
[x1x2]=[±nπ0]\left[\begin{array}{c} x_1 \\ x_2 \end{array}\right]=\left[\begin{array}{c} \pm n\pi \\ 0\end{array}\right] [x1?x2??]=[±nπ0?]
但是,如果你仔細看,還有一個點,[0,0]T[0,0]^T[0,0]T肯定是數學解,但是似乎在圖上并沒有明顯的顯示出來,這是什么原因呢?——這代表著火箭豎直放置,且沒有擾動,常識告訴我們這是一個極不穩定的點,就像你把鉛筆立在桌子上,稍微風吹草動就倒了,而數值求解的時候,幾乎尋找不到這個點。
那其他的穩定點又代表什么呢?——火箭水平躺著 θ=±π\theta=\pm\piθ=±π,而且不再變化 θ˙=0\dot{\theta}=0θ˙=0,這和我們的常識也是一致的。
可見穩定點就是系統狀態不再發生變化的點,它可能不止一個,它也可能很脆弱,稍微有個擾動,就不穩定了。
2 什么是李雅普諾夫穩定
早在1892年,俄國有一個叫李雅普諾夫的學者發表了一篇著名的文章《運動穩定性一般》問題,建立了關于運動穩定的一般理論,光看這個文章的名字就不一般,也確實,在爾后百余年,這個理論在數學、力學和控制理論中全面開花,已經成為穩定性研究方向的基礎性理論,俄羅斯人對于數學上和工程上的直覺確實令人贊嘆。
李雅普諾夫穩定性理論研究的是在擾動下穩定點的穩定性問題。
簡單來說,如果穩定狀態 xex_exe? 受到擾動后,仍然停留在 xex_exe? 附近,我們就稱 xex_exe? 在李雅普諾夫意義下是穩定的 (Lyapunov stable)。
如果更進一步,如果穩定狀態 xex_exe? 受到擾動后,最終都會收斂到 xex_exe?,我們就稱 xex_exe? 在李雅普諾夫意義下是漸進穩定的 (Asymptotically stable)。
再進一步,如果穩定狀態 xex_exe? 受到任何擾動后,最終都會收斂到 xex_exe? ,我們就稱 xex_exe? 在李雅普諾夫意義下是大范圍內漸進穩定的 (Asymptotically stable in large)。
相反,如果穩定狀態 xex_exe? 受到某種擾動后,狀態開始偏離 xex_exe? ,我們就稱 xex_exe? 在李雅普諾夫意義下是不穩定的 (Unstable)。
示意圖如下:
下面我們就分別具體看一下。
什么是李雅普諾夫意義下的穩定
請看狀態方程:
[x1˙x2˙]=[01?10][x1x2]\left[\begin{array}{c} \dot{x_1} \\ \dot{x_2} \end{array}\right]=\left[\begin{array}{c}0&1\\-1&0\end{array}\right]\left[\begin{array}{c} x_1 \\ x_2\end{array}\right] [x1?˙?x2?˙??]=[0?1?10?][x1?x2??]
很容易得到其時域的解為:
x(t)=x(0)[sin?(t)cos?(t)]x(t)=x(0)\left[\begin{array}{c}\sin(t)\\\cos(t)\end{array}\right] x(t)=x(0)[sin(t)cos(t)?]
且穩定點為 [00]\left[\begin{array}{c}0\\0 \end{array}\right][00?],我們隨機取一些很小的擾動,比如 x(0)=[0.010.01]x(0)=\left[\begin{array}{c} 0.01\\0.01\end{array}\right]x(0)=[0.010.01?], x(0)=[0.020.02]x(0)=\left[\begin{array}{c}0.02\\0.02 \end{array}\right]x(0)=[0.020.02?] 以及 x(0)=[0.030.03]x(0)=\left[\begin{array}{c}0.03\\0.03 \end{array}\right]x(0)=[0.030.03?],把 [x1x2]\left[\begin{array}{c}x_1\\x_2 \end{array}\right][x1?x2??] 在初始條件下的軌跡畫出來,結果如下:
可以看出,如果初始擾動小,其狀態軌跡的區間也小;相反,當初始擾動大的時候,狀態軌跡的區間也變大;但是無論如何,狀態軌跡的區間都是有限的,而且,如果想減小軌跡的區間,只要保證擾動在某范圍內即可。比如對于本范例,要想 ∣∣x(t)?xe∣∣<0.01||x(t)-x_e||<0.01∣∣x(t)?xe?∣∣<0.01 ,只要保證初始擾動 ∣∣x(0)?xe∣∣<0.01||x(0)-x_e||<0.01∣∣x(0)?xe?∣∣<0.01 即可。
**翻譯成嚴謹的數學語言就是:**對于任意的 ?>0\epsilon>0?>0 ,存在 δ>0\delta>0δ>0 ,使得如果 ∣∣x(0)?xe∣∣<δ||x(0)-x_e||<\delta∣∣x(0)?xe?∣∣<δ ,則對于所有的 t>0t>0t>0 ,都有 ∣∣x(t)?xe∣∣<?||x(t)-x_e||<\epsilon∣∣x(t)?xe?∣∣<?。
我們再舉個例子看一下:
x˙1(t)=x2+x1(2?x12?x22)x˙2(t)=?x1+x2(2?x12?x22)\begin{array}{l} \dot{x}_{1}(t)=x_{2}+x_{1}\left(2-x_{1}^{2}-x_{2}^{2}\right) \\ \dot{x}_{2}(t)=-x_{1}+x_{2}\left(2-x_{1}^{2}-x_{2}^{2}\right) \end{array} x˙1?(t)=x2?+x1?(2?x12??x22?)x˙2?(t)=?x1?+x2?(2?x12??x22?)?
求解稍微復雜一點,我們直接畫出軌跡圖如下:
顯然 [00]\left[\begin{array}{c}0\\0 \end{array}\right][00?] 是其穩定點。從軌跡圖中可以看出,無論是小擾動(初始點在穩定零點附近),還是大擾動,狀態軌跡最終都趨向一個固定的圓。我們套用一下李雅普諾夫穩定定義看一下,該系統是否穩定。我們不妨取 ?=1\epsilon=1?=1 ,即在零點周圍畫個半徑為1的圓,看看能否存在 δ\deltaδ,使得 ∣∣x(0)?xe∣∣<δ||x(0)-x_e||<\delta∣∣x(0)?xe?∣∣<δ,則對于所有的 t>0t>0t>0,都有 ∣∣x(t)?xe∣∣<1||x(t)-x_e||<1∣∣x(t)?xe?∣∣<1。顯然, δ\deltaδ 是不存在的,因此,該系統是不穩定的。
2.1 什么是漸進穩定
請看如下方程:
x1˙(t)=?x1x2˙(t)=x1+x2?x23\begin{aligned} &\dot{x_1}(t)=-x_1\\ &\dot{x_2}(t)=x_1+x_2-x_2^3 \end{aligned} ?x1?˙?(t)=?x1?x2?˙?(t)=x1?+x2??x23??
令 x1˙(t)=0x2˙(t)=0\begin{aligned} &\dot{x_1}(t)=0\\ &\dot{x_2}(t)=0 \end{aligned}?x1?˙?(t)=0x2?˙?(t)=0?, 很容易計算該系統的穩定點為:[00]\left[\begin{array}{c}0\\0 \end{array}\right][00?],[01]\left[\begin{array}{c}0\\1 \end{array}\right][01?],[0?1]\left[\begin{array}{c}0\\-1 \end{array}\right][0?1?],其軌跡圖為:
可見,對于穩定點 [01]\left[\begin{array}{c}0\\1 \end{array}\right][01?],[0?1]\left[\begin{array}{c}0\\-1 \end{array}\right][0?1?],存在 δ>0\delta>0δ>0,比如圖中的 δ=0.1\delta=0.1δ=0.1,在 ∣∣x(t)?xe∣∣<0.1||x(t)-x_e||<0.1∣∣x(t)?xe?∣∣<0.1 的區間內,狀態軌跡最終都收斂到這兩個穩定點上,因此是漸進穩定的。
而對于點 [00]\left[\begin{array}{c}0\\0 \end{array}\right][00?],我們在其周圍添加小擾動,發現無論擾動多么小,軌跡線都會偏離該穩定點,因此屬于不穩定點。
2.2 什么是大范圍漸進穩定
通過前面的例子,我們發現,同一個系統里面,可能有漸進穩定點,也可能有不穩定點,我們還不容易確定系統是否穩定。再來看一個簡單的例子:
[x1˙x2˙]=[1?35?2][x1x2]\left[\begin{array}{c} \dot{x_1} \\ \dot{x_2} \end{array}\right]=\left[\begin{array}{c}1&-3\\5&-2\end{array}\right]\left[\begin{array}{c} x_1 \\ x_2\end{array}\right] [x1?˙?x2?˙??]=[15??3?2?][x1?x2??]
其軌跡圖為:
可見,對于任何擾動,最后都會收斂到一個穩定點,這就是大范圍內漸進穩定。對于線性系統來說,很容易證明,如果平衡態是漸進穩定的,也必然是大范圍漸進穩定的。
對于線性時不變系統,只要矩陣 AAA 的特征值具有負實部,那系統就是大范圍漸進穩定的。
2.5 什么是不穩定
假設有一個系統,狀態方程如下:
[x1˙x2˙]=[13?52][x1x2]\left[\begin{array}{c} \dot{x_1} \\ \dot{x_2} \end{array}\right]=\left[\begin{array}{c}1&3\\-5&2\end{array}\right]\left[\begin{array}{c} x_1 \\ x_2\end{array}\right] [x1?˙?x2?˙??]=[1?5?32?][x1?x2??]
同樣隨機布置一些初始點,看看狀態的軌跡如何:
很明顯,所有初始狀態的軌跡都呈現螺旋發散狀,從數學上看,特征值 λ=1.5±3.84i\lambda=1.5\pm3.84iλ=1.5±3.84i,具有共軛根,但是實部是正的,因此發散。
再來看另外一個例子,狀態方程為
[x1˙x2˙]=[4?21?3][x1x2]\left[\begin{array}{c} \dot{x_1} \\ \dot{x_2} \end{array}\right]=\left[\begin{array}{c}4&-2\\1&-3\end{array}\right]\left[\begin{array}{c} x_1 \\ x_2\end{array}\right] [x1?˙?x2?˙??]=[41??2?3?][x1?x2??]
貌似也呈現發散狀,但是和前面的例子有所不同,軌跡貌似呈現指數形式,計算狀態方程特征值為 λ=[3.7?2.7]\lambda=\left[\begin{array}{c} 3.7\\-2.7 \end{array}\right]λ=[3.7?2.7?] ,有一個不穩定的實根,導致系統發散。由以上兩例可以看出,發散的軌跡可以有多種多樣。
3 李雅普諾夫第一法
前面我們把穩定點分了幾類,我們會發現,還是線性系統比較好計算,而且性能比較好,只要保證矩陣 AAA 具有負實部,就是大范圍一致穩定的。因此,我們如果把方程的形式由
x˙(t)=f(x(t))\dot{x}(t)=f(x(t)) x˙(t)=f(x(t))
改成:
x˙(t)=Ax(t)\dot{x}(t)=Ax(t) x˙(t)=Ax(t)
就會帶來很多方便。這就需要將非線性系統在平衡態附近線性化,然后討論線性化系統的特征值分布來研究原非線性系統的穩定性問題。這種方法,就是李雅普諾夫在他論文中提到的第一種方法,稱之為第一法,也叫間接法。
我們再來分析一下前面所說的倒立擺的例子:
[x1˙(t)x2˙(t)]=[x2sin?(x1)?x2]\left[\begin{array}{c} \dot{x_1}(t) \\ \dot{x_2}(t) \end{array}\right]=\left[\begin{array}{c} x_2 \\ \sin(x_1)-x_2 \end{array}\right] [x1?˙?(t)x2?˙?(t)?]=[x2?sin(x1?)?x2??]
這是一個典型的非線性方程,我們前面計算過了,其有多個穩定點 [±nπ,0]T[\pm n\pi,0]^T[±nπ,0]T ,我們不妨來研究一下 [π,0]T[\pi,0]^T[π,0]T 這個點,其附件的狀態軌跡為:
現在將原來的非線性方程線性化,為方便起見,我們定義 z1=x1?πz_1=x_1-\piz1?=x1??π 以及 z2=x2z_2=x_2z2?=x2?,于是可以得到:
sin?(π+z1)=?sin?z1≈?z1\sin(\pi+z_1)=-\sin z_1\approx-z_1 sin(π+z1?)=?sinz1?≈?z1?
于是,原非線性方程就變為:
[z1˙(t)z2˙(t)]=[01?1?1][z1z2]\left[\begin{array}{c} \dot{z_1}(t) \\ \dot{z_2}(t) \end{array}\right]= \left[\begin{array}{c} 0&1 \\ -1&-1 \end{array}\right] \left[\begin{array}{c} z_1 \\ z_2 \end{array}\right] [z1?˙?(t)z2?˙?(t)?]=[0?1?1?1?][z1?z2??]
在新的坐標系下,穩定變為 [00]\left[\begin{array}{c}0\\0\end{array}\right][00?],其軌跡為:
可見,與原軌跡還是比較接近的。一般的書上,對于李雅普諾夫第一法都是一筆帶過,其實在工程實踐中,第一法應用非常多,比如復雜的飛機飛行控制,就是將飛機模型線性化成多個線性化模型進行設計。
4 李雅普諾夫第二法
第二法就比較天才了,來源于一個樸素的想法:穩定的系統能量總是不斷被耗散的,李雅普諾夫通過定義一個標量函數 V(x)V(\boldsymbol{x})V(x) (通常能代表廣義能量)來分析穩定性。這種方法的避免了直接求解方程,也沒有進行近似線性化,所以也一般稱之為直接法。如果 標量函數 V(x)V(\boldsymbol{x})V(x) 滿足:
V(x)=0if?and?only?if?x=0V(x)>0if?and?only?if?x≠0V˙(x)=ddtV(x)=∑i=1n?V?xifi(x)≤0when?x≠0\begin{aligned} &V(\boldsymbol{x})=0\; \text { if and only if } \boldsymbol{x}=0\\ &V(\boldsymbol{x})>0\; \text { if and only if } \boldsymbol{x} \neq 0\\ &\dot{V}(\boldsymbol{x})=\fracze8trgl8bvbq{d t} V(\boldsymbol{x})=\sum_{i=1}^{n} \frac{\partial V}{\partial x_{i}} f_{i}(x) \leq 0\; \text { when } \boldsymbol{x} \neq 0 \end{aligned} ?V(x)=0?if?and?only?if?x=0V(x)>0?if?and?only?if?x?=0V˙(x)=dtd?V(x)=i=1∑n??xi??V?fi?(x)≤0?when?x?=0?
則稱系統在李雅普諾夫意義下是穩定的,特別的,若 x≠0x\ne0x?=0 時,有 V˙(x)<0\dot{V}(\boldsymbol{x})<0V˙(x)<0,則系統是漸進穩定的。舉個例子:
x1˙(t)=x2?x1(x12+x22)x2˙(t)=?x1?x2(x12+x22)\begin{aligned} &\dot{x_1}(t)=x_2-x_1(x_1^2+x_2^2)\\ &\dot{x_2}(t)=-x_1-x_2(x_1^2+x_2^2) \end{aligned} ?x1?˙?(t)=x2??x1?(x12?+x22?)x2?˙?(t)=?x1??x2?(x12?+x22?)?
如果我們定義李雅普諾夫函數
V(x)=x12+x22V(\boldsymbol{x})=x_1^2+x_2^2V(x)=x12?+x22?
則有
V˙(x)=2x1x˙1+2x2x˙2=?2(x12+x22)2\begin{aligned} \dot{V}(\boldsymbol{x})&=2x_1\dot{x}_1+2x_2\dot{x}_2\\ &=-2(x_1^2+x_2^2)^2 \end{aligned} V˙(x)?=2x1?x˙1?+2x2?x˙2?=?2(x12?+x22?)2?
顯然當 x≠0x\ne 0x?=0 時,有 V˙(x)<0\dot{V}(\boldsymbol{x})<0V˙(x)<0 ,所以系統是漸進穩定的。
詳細的李雅普諾夫第二法
可見,如果能合理的選定李雅普諾夫函數,則非常容易的判斷系統的穩定性。不過遺憾的是,對于復雜的系統,李雅普諾夫函數的選擇可以稱得上一門玄學,所以,對于工程師而言,筆者還是喜歡李雅普諾夫第一法。
參考文獻1
參考文獻2
總結
以上是生活随笔為你收集整理的李雅普诺夫稳定性、李雅普诺夫第一法、李雅普诺夫第二法及李雅普诺夫函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在已经排好序的线性表中插入一个数,还是升
- 下一篇: 2017年12月计算机一级c,2017年