跳轉到內容

控制系統/特徵值和特徵向量

來自華夏公益教科書

特徵值和特徵向量

[編輯 | 編輯原始碼]
無法從時變矩陣計算特徵值和特徵向量。如果系統是時變的,本章中描述的方法將不會產生有效的結果。

系統矩陣的特徵值和特徵向量在確定系統的響應中起著關鍵作用。重要的是要注意,只有方陣才有與其相關的特徵值和特徵向量。非方陣不能使用以下方法進行分析。

"eigen" 一詞來自德語,意思是“自己的”,如“特徵”,因此本章也可以稱為“特徵值和特徵向量”。術語“特徵值”和“特徵向量”是最常用的。特徵值和特徵向量具有一些特性,使其成為分析中的寶貴工具,它們也與派生它們的矩陣具有許多寶貴的關係。計算系統矩陣的特徵值和特徵向量是開始分析系統矩陣時最應該做的事情之一,僅次於計算系統矩陣的矩陣指數。

系統的特徵值和特徵向量決定了各個系統狀態變數(x 向量中的成員)之間的關係,系統對輸入的響應以及系統的穩定性。此外,特徵值和特徵向量可用於透過譜分解計算系統矩陣的矩陣指數。本章的其餘部分將討論特徵值、特徵向量以及它們如何影響各自的系統。

特徵方程

[編輯 | 編輯原始碼]

系統矩陣 A 的特徵方程表示為

[矩陣特徵方程]

其中 λ 是稱為特徵值的標量值,v 是相應的特徵向量。為了求解矩陣的特徵值,我們可以取以下行列式

為了求解特徵向量,我們可以新增一個額外的項,並求解v

另一個值得尋找的值是系統的左特徵向量,在修改後的特徵方程中定義為w

[左特徵向量方程]

有關特徵值、特徵向量和左特徵向量的更多資訊,請閱讀以下書籍中的相應部分

對角化

[編輯 | 編輯原始碼]
注意
轉移矩陣T 不應與離散系統的取樣時間混淆。如果需要,我們將使用下標來區分兩者。

如果矩陣A 具有完整的一組不同特徵值,則該矩陣可以對角化。對角矩陣是一個僅在對角線上有元素的矩陣,矩陣中所有其他元素都為零。我們可以定義一個變換矩陣T,它滿足對角化變換

這反過來將滿足關係

方程的右側可能看起來更復雜,但因為D 這裡是對角矩陣(不要與輸出方程中的前饋矩陣混淆),所以計算要容易得多。

我們可以用特徵向量和左特徵向量來定義轉移矩陣和逆轉移矩陣

我們將在本章稍後進一步討論對角化的概念。

指數矩陣分解

[edit | edit source]
有關譜分解的更多資訊,請參見
譜分解

指數矩陣可以分解為特徵向量、特徵值和左特徵向量的總和,如下所示

請注意,此方程僅在矩陣 A 具有完整的一組 n 個不同特徵值時以這種形式成立。由於 w'i 是一個行向量,而 x(0) 是初始系統狀態的列向量,因此我們可以將這兩個向量組合成一個標量係數 α

由於狀態轉移矩陣決定了系統對輸入的響應方式,我們可以看到系統特徵值和特徵向量是系統響應的關鍵部分。讓我們將這種分解代入狀態方程的通用解


[狀態方程譜分解]

我們將在接下來的部分討論這個方程。

狀態關係

[edit | edit source]

從上面的方程我們可以看到,狀態向量 x(t) 的各個元素不能取任意值,而是透過系統右特徵向量的加權和來關聯。

解耦

[edit | edit source]
對於熟悉線性代數的人來說,矩陣 A 的左特徵向量必須在矩陣 B 的 零空間 中才能解耦系統。

如果一個系統的設計滿足以下關係

那麼來自該特定特徵值的系統響應將不受系統輸入 u 的影響,我們說該系統已經 解耦。在實踐中很難做到這一點。

條件數

[edit | edit source]

每個矩陣都有一個與之相關的特定數字,稱為該矩陣的 條件數。條件數說明了關於矩陣的一些情況,它值得計算。條件數 k 的定義如下


[條件數]

條件數較小的系統更好,原因有以下幾點

  1. 較大的條件數會導致系統出現較大的瞬態響應
  2. 較大的條件數會使系統特徵值對系統變化更敏感。

我們將在後面的部分更多地討論 特徵值敏感性 的問題。

穩定性

[edit | edit source]

我們將在後面的章節中詳細討論穩定性,但現在是指出關於系統特徵值的簡單事實的好時機。注意,如果系統矩陣 A 的特徵值是 *正* 的,或者(如果它們是複數)它們具有正實部,則系統狀態(以及因此由 C 矩陣縮放的系統輸出)將隨著時間 *t* 趨於無窮大而趨於無窮大。本質上,如果特徵值是正的,則系統將不滿足 BIBO 穩定性的條件,因此將變得 *不穩定*。

另一個值得一提的因素是,製造的系統 *永遠不會完全匹配系統模型*,並且在所用元件的規格中始終存在誤差,*在一定的公差範圍內*。因此,系統矩陣將略微不同於系統的數學模型(雖然好的系統不會有太大差異),因此係統的特徵值和特徵向量將與從模型中推匯出的值不同。這些事實導致了一些結果。

  1. 具有高 *條件數* 的系統可能具有與從數學模型中推匯出的特徵值相差很大的特徵值。這意味著物理系統的系統響應可能與模型的預期響應大不相同。
  2. 具有高條件數的系統可能僅僅由於製造過程中使用的元件的誤差而變得 *不穩定*。

出於這些原因,系統特徵值和系統矩陣的條件數是分析和設計系統時需要考慮的非常重要的變數。我們將在後面的章節中更詳細地討論穩定性主題。

非唯一特徵值

[編輯 | 編輯原始碼]

上面的分解只有在矩陣 *A* 具有完整的 n 個不同特徵值(以及相應的特徵向量)的情況下才有效。如果 *A* 沒有 *n* 個不同的特徵向量,則需要確定一組 **廣義特徵向量**。廣義特徵向量將產生一個類似矩陣,該矩陣處於 **Jordan 標準型** 中,而不是我們之前使用的對角形式。

廣義特徵向量

[編輯 | 編輯原始碼]

廣義特徵向量可以使用以下公式生成


[廣義特徵向量生成方程]

如果 *d* 是給定特徵值重複的次數,*p* 是從這些特徵值推匯出的唯一特徵向量的數量,那麼將有 *q = d - p* 個廣義特徵向量。廣義特徵向量是透過將正則特徵向量代入上面的公式(*vn*)生成的。一些正則特徵向量可能不會產生任何非平凡的廣義特徵向量。廣義特徵向量也可以代入上面的公式以生成額外的廣義特徵向量。重要的是要注意廣義特徵向量形成一個有序序列,並且在分析過程中必須保持順序,否則結果將不正確。

示例:一個重複集

[編輯 | 編輯原始碼]

我們有一個 5 × 5 矩陣 A,其特徵值為 。對於 ,存在 1 個不同的特徵向量 *a*。對於 ,存在 1 個不同的特徵向量 *b*。從 *a* 中,我們生成廣義特徵向量 *c*,並且從 *c* 中我們可以生成向量 *d*。從特徵向量 *b* 中,我們生成廣義特徵向量 *e*。按順序排列,我們的特徵向量列為

[a c d b e]

注意 *c* 和 *d* 如何按順序排列在它們生成的特徵向量 *a* 之後。此外,我們可以將其重新排列為

[b e a c d]

因為廣義特徵向量按順序排列在它們生成的正則特徵向量之後。正則特徵向量可以按任何順序排列。

示例:兩個重複集

[編輯 | 編輯原始碼]

我們有一個 4 × 4 矩陣 A,其特徵值為 。對於 ,我們有兩個特徵向量,*a* 和 *b*。對於 ,我們有一個特徵向量 *c*。

我們需要生成第四個特徵向量 *d*。唯一需要另一個特徵向量的特徵值是 ,但是已經有兩個特徵向量與該特徵值相關聯,並且只有一個會生成非平凡的廣義特徵向量。要確定哪一個有效,我們需要將這兩個向量代入生成公式

如果 *a* 生成正確的向量 *d*,我們將按如下順序排列特徵向量

[a d b c]

但是如果 *b* 生成正確的向量,我們可以按如下順序排列

[a b d c]

Jordan 標準型

[編輯 | 編輯原始碼]
有關 **Jordan 標準型** 的更多資訊,請參見
矩陣形式

如果一個矩陣有一組完整的不同特徵向量,則過渡矩陣T可以定義為這些特徵向量的矩陣,並且結果變換矩陣將是一個對角矩陣。但是,如果特徵向量不唯一,並且與矩陣相關聯的許多廣義特徵向量,則過渡矩陣T將由正則特徵向量和廣義特徵向量的有序集合組成。沒有產生任何廣義特徵向量的正則特徵向量(如果有)應該排在第一位,然後是產生廣義特徵向量的特徵向量,以及它們產生的廣義特徵向量(按適當的順序)。

一旦T矩陣生成,矩陣就可以透過它及其逆矩陣進行變換

J矩陣將是一個Jordan 塊矩陣。Jordan 塊矩陣的格式如下

其中D是由與廣義特徵向量無關的正則特徵向量(如果有)產生的對角塊。Jn塊是標準的 Jordan 塊,其大小對應於每個序列中的特徵向量/廣義特徵向量的數量。在每個Jn塊中,與該序列的正則特徵向量相關的特徵值位於主對角線上,並且在次對角線上有 1。

系統響應

[edit | edit source]

等價變換

[edit | edit source]

如果我們有一個非奇異的n × n矩陣P,我們可以定義一個變換向量“x bar”為

我們可以將整個狀態空間方程組變換如下

其中

我們將矩陣P稱為這兩組方程之間的等價變換

需要注意的是,矩陣A特徵值(對系統至關重要)在等價變換下不會改變。A的特徵向量,以及的特徵向量由矩陣P關聯。

Lyapunov 變換

[edit | edit source]

如果滿足以下條件,則變換矩陣P稱為Lyapunov 變換

  • P(t)是非奇異的。
  • P(t)P'(t) 是連續的
  • P(t) 和逆變換矩陣 P-1(t) 對所有t都是有限的。

如果一個系統是時變的,那麼使用 Lyapunov 變換將系統轉換為具有恆定A矩陣的等效系統通常很有用。這在一般情況下並不總是可能的,但是如果A(t)矩陣是週期性的,則這是可能的。

系統對角化

[edit | edit source]

如果矩陣 *A* 是時不變的,我們可以用矩陣 *A* 的特徵向量構建矩陣 *V*。矩陣 *V* 可以用來將矩陣 *A* 轉化為對角矩陣。我們的新系統變為

由於我們的系統矩陣現在是對角矩陣(或約當標準型),狀態轉移矩陣的計算得到了簡化

其中 Λ 是一個對角矩陣。

MATLAB 轉換

[edit | edit source]

MATLAB 函式 ss2ss 可用於對系統應用等效變換。如果我們有一組矩陣 *A*、*B*、*C* 和 *D*,我們可以建立等效矩陣,如下所示

[Ap, Bp, Cp, Dp] = ss2ss(A, B, C, D, p);

其中 *p* 是等效變換矩陣。

華夏公益教科書