3.微分方程與線性化方法 – 合理性探討
微分方程(Differential Equation)是描述一個動態系統的時域數學模型,我們藉此來間接研究系統的行為。微分方程的性質和解結構,與系統的響應特點有本質上的聯繫,這點需要在進行以傳遞函數為主的頻域模型講解前說明。
本文探究三個方面,ODE與LTI系統響應的關係,以及線性化的方法與合理性。後者是本文的重點內容。文中多次出現系統響應,系統輸出,解軌跡都是指對應微分方程的解。
微分方程有很多種,我們在控制理論中多見的是常微分方程(Ordinary Differential Equation)。我們可以通過機理分析或者系統辨識來得到ODEs,從而進行基於模型的控制設計。
ODE分為線性(Linear)和非線性(Nonlinear)的。在經典控制的範疇中,我們關注點主要在線性常係數ODE,也會設計到非常係數的ODE。前者描述的系統我們稱之為線性時不變系統,或者常稱為線性定常系統(Linear Time-Invariant System,LTI System)。下面所述的ODE均為線性常係數ODE(Constant-Coefficient Linear ODE)
既然不是所有系統都是線性的,或者說,現實中的系統幾乎都存在非線性。利用線性常係數ODEs來描述系統總是有一定誤差的。因此我們自然想知道使用線性常係數ODEs的合理性。
ODE與系統響應
ODEs描述了系統的運動規律,ODE的解對應的就是某個系統的響應。我們所熟知的牛頓第二運動定律(Newtons second law of motion)就是由一個微分方程來刻畫的
這是一個十分簡單的二階ODE,描述力物體受力後的位移變化規律。我們可以直接通過積分來得到其解。不過從一般解微分方程的角度來看,此方程的解依舊由兩部分組成: 通解(general solution)以及特解(particular solution)。
首先解得 的通解:特徵方程 。0為重根,因此通解為:
特解: 目測可得其中一個特解
由此可知全解為
給定初始條件 ,那麼
此微分方程的解為:
特別的,當零初始條件時,解也就是高中物理裏常用的公式
那麼當初始狀態為0時,我們稱這樣的解是被該ODE描述的系統的零狀態響應(Zero State Response ),此時系統的響應變化完全是由輸入F所驅動的,所以也可以理解為純輸入響應。 零狀態響應只需要將零初始條件賦予系統全解形式即可得到,本質上還是通解與特解之和,這裡的例子比較特殊,通解部分正好為0。
現在在某一時刻,我們突然撤走F,系統該如何變化呢? 此時描述系統的ODE的右端F變成了0,由非齊次ODE變成了齊次ODE
我們知道此時齊次系統的全解,也就是原非齊次的通解。假設初始條件為
那麼對應的解為
我們稱這樣的解為該ODE描述的系統的零輸入響應(Zero Input Response)。從撤走外力的那一刻起,系統的響應完全由系統自身的狀態決定。試想如果此時系統的初始狀態也為0,那麼x就會從一開始就保持為0。
ODE解的疊加性
我們把 在非零初始條件 下的解
和 的零初始條件解 相加
得到的解:
對比(1)(2) 完全一致。從這個例子不足以推廣到所有線性ODE,但是還是不妨礙我們搬出這個結論:
非齊次線性ODE的解,由其零初始條件下的非齊次方程的解 和 非零初始條件下齊次方程的解組成。其對應的系統的全響應,則由這兩部分對應的零狀態響應與零輸入響應相加而得。
線性常係數ODE 全解 → 齊次方程非零初始條件解 + 非齊次方程零初始條件解
LTI系統Complete response → Zero State Response+ Zero Input Response
對於其他線性常係數ODE來說,這一疊加性也都是滿足的。系統的解與ODE之間的關係,我們在下一章的傳遞函數和穩定性中會用到,對於理解傳遞函數的一些概念尤其重要。
ODE線性化方法
我們會遇到一些非線性的ODE,比如加入了一些三角函數或高階多項式
雖然這仍然是一個二階ODE,但由於是非線性的,並不滿足疊加原理。對於這個方程描述的非線性系統,我們仍然可以通過線性化的方法來找到一個它的線性版本。
線性化的理論基礎是泰勒展開(Taylor expansion),任意函數在定義域內某個點可以寫成多項式的求和形式。於是我們只取泰勒展開的一階導數項和常數項,作為原函數的近似。比如取展開點為x=0,上面式子中的cos(x)和x3根據泰勒公式有:
略去高次多項式,只取其線性部分,我們有如下近似
這樣上述非線性系統就近似成了x=0附近的線性系統
注意,我們這裡展開時沒有指定 的值,那是因為 自身沒有非線性項存在,我們只要線性化其係數。但是如果出現 類似關於 的非線性函數,則 展開值必須考慮。即展開點一般情況下必須是 ,它是ODE解空間中的一個點。我們這個例子中隱含了 的初值與近似結果並沒有關係。更高階的n階系統,展開點將是n維解空間中的一個向量,也可以認為是一個n維空間中的點。
ODE線性化的合理性
線性系統的這種線性化(Linearization)近似合不合理呢? 從結果上來看是合理的,線性理論造就了一大批控制系統,連飛機都用到了線性化模型,實踐看來是ok的。那麼我們自然要問,這種近似是任何時候都成立的嗎? 答案是,No。
數學上我們知道只要x取值在展開點附近,泰勒展開的線性部分對原函數的近似還是令人滿意的。從上節線性化的方法中可以看,展開點似乎是可以任意選擇的,理論上可以把一個非線性ODE在不同的展開點處近似成無數個線性ODE。但線性方程與原非線性方程之間的近似關係只有在系統的解軌跡(trajectory)不遠離展開點附近的情況下才成立。根據泰勒公式我們知道,當 ,即系統某時刻的解與展開點差的模,為一個比較小的數時,它的高階多項式才能忽略,線性化的近似關係才能成立。否則,高次項的值遠大於線性部分,線性方程描述的系統與原非線性方程描述的系統已經相去甚遠。
這樣產生了兩個問題:
- 原非線性方程解空間中這麼多點,究竟要在哪個點進行線性化?
- 線性化後得到的線性方程,怎麼保證解就能在原來展開點的附近呢?
我們嘗試回答這兩個問題
一,哪個點進行線性化,取決於我們希望系統穩態時所處的工作點(set point)。
在regulation問題中我們希望系統的輸出能夠穩定到set point。一旦有了外來擾動,那麼控制器就會給出控制信號來繼續穩定輸出。控制器設計指標之一就是不讓輸出有大幅度變化,要又快,又穩,又準地把輸出再維持到設定值。既然regulation中我們輸出一旦穩定便不再大幅度變化,我們就可以把線性化的展開點放到這個set point上,這個穩態時的點,也叫做系統的穩定平衡點(stable equilibrium)。具體可以這麼做:
- 選擇一個期望的系統穩定時的set point
- 對系統的非線性ODE在該工作點處進行線性化。
- 按照該線性系統的模型設計控制器,控制非線性系統的輸出(output),或者也說響應(response)穩定到這個工作點。
在tracking問題中,我們希望的是系統output與reference input的誤差能夠穩定到減小,正常情況下,我們當然是要求誤差越小越好,那樣就能很好地跟蹤輸入信號。於是我們將線性化誤差的微分方程,如之前的例子,我們想讓輸出追蹤一個光滑的reference ,令 ,帶入原方程得到
同樣選擇讓誤差e穩定到你希望的set point,一般都是0,來線性化這個非線性ODE。接下來的工作就是設計控制器。
二,控制器的設計以及擾動對線性化模型的有效性起了很大影響。
我們注意到上小節中的第3步,按照線性化模型設計控制器時,我們就假定了線性模型和原系統是可以近似等價的,但等價是有條件的。反過來設計出來的控制器,如果無法滿足近似等價的條件,那這時候控制器就可能要失效了,或者說是因為線性化模型已經不能很好地描述原來的非線性系統了。
我們說,選擇了某個set point進行線性化後,線性化模型與原系統之間擁有良好近似關係的關鍵就在於控制器能否把系統的輸出都控制在set point附近。另一方面,控制器controller的一大任務就是抗幹擾。如果幹擾特別大,可以想像輸出很容易大幅度偏離set point,也會威脅線性化模型效果。
控制器如何保證受擾後的系統依舊能夠把解穩定在set point附近呢? 我們先說一個不加控制作用的系統,它天然地也可以具有把解穩定到自身穩定平衡點的作用。
來看非線性系統的例子,不加任何外力F的系統,則變成了齊次方程:
這個非線性系統原本就存在一個穩定平衡點 ,我們可以在MATLAB中畫一個解空間的軌跡圖。我取了不同的初值,讓 都為0, 從0變化到4,步長為0.1。就有了下圖。