可控制性

**可控制性**（Controllability）是控制系統中的重要特性，在許多控制問題中都很重要，例如是否可以透過回授穩定一個本身不穩定的系統，或是最佳控制的相關問題。

可控制性及可觀測性是同一個問題上的对偶概念。

簡單來說，可控制性是指是否可以透過一些允許的程序讓系統調整到其組態空間內的任何一個組態。隨著其系統模型或是框架的不同，定義也會略有改變。

以下是一些在系統或是控制文獻中出現過的可控制性定義：
* 狀態可控制性（State controllability）
* 輸出可控制性（Output controllability）
* 行為框架中的可控制性（Controllability in the behavioural framework）

## 狀態可控制性
狀態可控制性是指在确定性系統的状态空间內，也就是系統所有狀態變數數值組成的集合，可以完全描述系統在任一時間以下的狀態。特別是不需要有關系統以往的資訊，只要知道目前的狀態，以後所有的狀態都是已知的。

完全狀態可控制性（有時也稱為狀態可控制性）是指外在輸入（由控制變數組成的向量）可以在有限時間內將系統由任意狀態改變為另一個狀態。

可控制性表示可以使系統到達任意狀態，但不表示系統可以維持在該狀態，有可能系統只是在該狀態停留短暫間而已。

## 連續時間線性系統
考慮連續時間下的線性系統

: \dot{\mathbf{x}}(t) = A(t) \mathbf{x}(t) + B(t) \mathbf{u}(t)
: \mathbf{y}(t) = C(t) \mathbf{x}(t) + D(t) \mathbf{u}(t).

存在一個控制u使系統在時間t_0至時間t_1，由狀態x_0改變為狀態x_1，若且唯若x_1 - \phi(t_0,t_1)x_0是以下的列空间中
: W(t_0,t_1) = \int_{t_0}^{t_1} \phi(t_0,t)B(t)B(t)^{T}\phi(t_0,t)^{T} dt
其中\phi是狀態轉移矩陣，而W(t_0,t_1)是可控制性格拉姆矩陣。

其實上，若\eta_0是W(t_0,t_1)\eta = x_1 - \phi(t_0,t_1)x_0的解，則控制u(t) = -B(t)^{T}\phi(t_0,t)^{T}\eta_0即為所需的控制輸入。

注意上述定義的W有以下的特質：
* W(t_0,t_1)是對稱矩陣
* W(t_0,t_1)是正定矩阵，t_1 \geq t_0
* W(t_0,t_1)滿足以下的線性矩陣微分方程
:: \frac{d}{dt}W(t,t_1) = A(t)W(t,t_1)+W(t,t_1)A(t)^{T}-B(t)B(t)^{T}, \; W(t_1,t_1) = 0
* W(t_0,t_1)滿足以下方程
:: W(t_0,t_1) = W(t_0,t) + \phi(t_0,t)W(t,t_1)\phi(t_0,t)^{T}

## 可控制性的秩條件
可控制性格拉姆矩陣和狀態轉移矩陣的積分有關。另外有一個較簡單，類似在非時變系統下的可控制性判斷方式。 

考慮連續時間的線性系統\Sigma，在時間區間[t_0,t]內光滑變化：

: \dot{\mathbf{x}}(t) = A(t) \mathbf{x}(t) + B(t) \mathbf{u}(t)
: \mathbf{y}(t) = C(t) \mathbf{x}(t) + D(t) \mathbf{u}(t).

其狀態轉移矩陣也是光滑的，引入n x m的矩陣函數M_0(t) = \phi(t_0,t)B(t)，並且定義
: M_k(t) = \frac{\mathrm{d^k} M_0}{\mathrm{d} t^k}(t), k\geqslant 1.
 
考慮一個由M_i, i = 0,1, \ldots, k組成的矩陣：

M^{(k)}(t) := \left[M_0(t), \ldots, M_k(t)\right] .

若存在\bar{t} \in [t_0,t]以及非負整數k使得\operatorname{rank}M^{(k)}(\bar{t})=n，則\Sigma為可控制系統。

若\Sigma在區間[t_0,t]內也是解析變化，則\Sigma在[t_0,t]中的每個非平凡子區間內可控制，若且唯若存在\bar{t} \in [t_0,t]及非負變數使得rankM^{(k)}(t_i)=n。

上述方式仍然很不容易確認，因為包括了狀態轉移矩陣\phi的計算。另一個等效的條件如下：令B_0(t) = B(t)，對於每一個i \geq 0，定義

: B_{i+1}(t) = A(t)B(t) - \frac{\mathrm{d}}{\mathrm{d} t}B_i(t).  
此例中，每一個B_i是直接由 (A(t),B(t))求得。此系統有穩定性的充份必要條件是存在\bar{t} \in [t_0,t]及非負整數k使得下式成立：
:\textrm{rank}( \left[ B_0(\bar{t}), B_1(\bar{t}), \ldots, B_k(\bar{t}) \right]) = n 

### 例子
考慮一個在 (-\infty,\infty) 內解析變化的系統及矩陣

A(t) = \begin{bmatrix}
t & 1 & 0\\ 
0 & t^{3} & 0\\ 
0 & 0 & t^{2} 
\end{bmatrix}, B(t) = \begin{bmatrix}
0 \\ 
1 \\ 
1  
\end{bmatrix}.  
則
 [B_0(0),B_1(0),B_2(0),B_3(0)] = \begin{bmatrix}
0 & 1 & 0 &-1\\ 
1 & 0 & 0&0\\ 
1 & 0 & 0&2
\end{bmatrix}，其矩陣秩為3，因此在\mathbb{R}之內的每一個非平凡區間都是可控制的。
### 連續線性時不變（LTI）系統

考慮以下的連續線性时不变系统

: \dot{\mathbf{x}}(t) = A \mathbf{x}(t) + B \mathbf{u}(t)
: \mathbf{y}(t) = C \mathbf{x}(t) + D \mathbf{u}(t)

其中
: \mathbf{x}為n \times 1狀態向量
: \mathbf{y}為m \times 1輸出向量
: \mathbf{u}為r \times 1輸入（或控制）向量
: A為n \times n狀態矩陣
: B為n \times r輸入矩陣
: C為m \times n輸出矩陣
: D為m \times r前饋矩陣

n \times nr可控制矩陣為

:R = \begin{bmatrix}B & AB & A^{2}B & ...& A^{n-1}B\end{bmatrix}

系統可控制的充份必要條件是其可控制矩陣為滿秩（也就是\operatorname{rank}(R)=n）。

## 離散線性時不變（LTI）系統

針對離散時間，狀態方程如下的線性狀態空間系統（也就是時間變數k\in\mathbb{Z}）：

:\textbf{x}(k+1) = A\textbf{x}(k) + B\textbf{u}(k)

其中A是n \times n的矩陣，B是n \times r的矩陣，（也就是\mathbf{u}是r個輸入，整理成r \times 1的向量）。測試其可控制性的方式為以下n \times nr矩陣

:\mathcal{C} = \begin{bmatrix}B & AB & A^{2}B & \cdots & A^{n-1}B\end{bmatrix}

有全秩（也就是\operatorname{rank}(\mathcal C) = n）。因此，若此系統可控制，\mathcal C會有n個線性獨立的-{zh-hans:列; zh-hant:行;}-；若\mathcal C中有n個-{zh-hans:列; zh-hant:行;}-是線性獨立的，n個狀態中的每一個都可以用適當的輸入變數u(k)來達到。
### 推導

假設在初始時間（表示為*k*=0）狀態\textbf{x}(0)，狀態方程可以得到\textbf{x}(1) = A\textbf{x}(0) + B\textbf{u}(0)，則\textbf{x}(2) = A\textbf{x}(1) + B\textbf{u}(1)= A^2\textbf{x}(0)+AB\textbf{u}(0)+B\textbf{u}(1)，以此類推，利用反覆將狀態變數反向代回，可以得到

:\textbf{x}(n)=B\textbf{u}(n-1) + AB\textbf{u}(n-2) + \cdots + A^{n-1}B\textbf{u}(0) + A^n\textbf{x}(0)

或者等效的

:\textbf{x}(n)-A^n\textbf{x}(0)= [B \, \, AB \, \,  \cdots \, \, A^{n-1}B] [\textbf{u}^T(n-1) \, \,  \textbf{u}^T(n-2) \, \, \cdots \,  \, \textbf{u}^T(0)]^T.

將狀態向量\textbf{x}(n)想要的值放在左側時，可解出一連串控制向量的條件是若且唯若等號右側的第一個矩陣有全秩。

### 範例
例如，考慮n=2和r=1的例子（只有一個控制輸入）。因此，B和A B是2 \times 1的向量。若\begin{bmatrix}B & AB\end{bmatrix}為秩2（滿秩），因此B和AB為線性獨立，可以生成整個平面。若秩為1，則B和AB平行，無法生成整個平面。

假設初始狀態為0。

在時間k=0時：x(1) = A\textbf{x}(0) + B\textbf{u}(0) = B\textbf{u}(0)

在時間k=1時：x(2) = A\textbf{x}(1) + B\textbf{u}(1) = AB\textbf{u}(0) + B\textbf{u}(1)

在時間k=0時，所有可到達的狀態是在由向量B組成的直線上。
在時間k=1時，所有可到達的狀態是在由向量AB和B組成的線性組合上。
若系統可控制，這二個向量可以生成整個平面，在時間k=2時即可完成。
前面有假設初始狀態為0，此一假設只是為了推導方便，若可以從原點到達所有的狀態，就可以由任意的初始狀態到所有的狀態（只要進行坐標平移）

上述例子對於所有正整數的n都成立，不過n=2的例子比較容易視覺化。

### 類似''n'' = 2的範例
以下是一個用上述範例的例子。
一個人坐在車上，車在一個無窮大的平面上，車頭朝向北方。
目的是透過駕駛（直線前進或是直線倒車）一段距離、停車、轉彎、再駕駛（直線前進或是直線倒車）一段距離的方式到平面上的任何一點。
假如車上沒有方向盤，因此車只能直線前進或後退，車所能到的方向只有車的正南方或正北方的位置上。
沒有方向盤類似C的秩為1（二次所走的位移均平行）的情形。

假如車有方向盤，可以任意的旋轉，自然可以到平面上的任何一點，這類似C的秩為2的例子。

若將此範圍延伸到n=3，則例子會變成讓飛機到三維空間中的任何一點（不考慮飛機本身的機頭面對方向。
可做的事為：
*以直線航行
*左轉或是右轉任意角度（偏擺，yaw）
*飛機朝上或是朝下任意角度（俯仰，pitch）
雖然三維的例子比較不容易視覺化，不過原理類似。

## 非線性系統
以下控制仿射形式的非線性系統

: \dot{\mathbf{x}} = \mathbf{f(x)} + \sum_{i=1}^m \mathbf{g}_i(\mathbf{x})u_i

其在x_0附近局部可到達（accessible）的條件是可到達分佈R可以生成 n個空間，其中n等於x的秩，而且R可以由下式表示：

:R = \begin{bmatrix} \mathbf{g}_1 & \cdots & \mathbf{g}_m & [\mathrm{ad}^k_{\mathbf{g}_i}\mathbf{\mathbf{g}_j}] & \cdots & [\mathrm{ad}^k_{\mathbf{f}}\mathbf{\mathbf{g}_i}] \end{bmatrix}.

此處[\mathrm{ad}^k_{\mathbf{f}}\mathbf{\mathbf{g}}]是重複的運算，定義如下

: [\mathrm{ad}^k_{\mathbf{f}}\mathbf{\mathbf{g}}] = \begin{bmatrix} \mathbf{f} & \cdots & j & \cdots & \mathbf{[\mathbf{f}, \mathbf{g}]} \end{bmatrix}. 

線性系統的可控制性矩陣可以由此式推導而得。

## 零可控制性
若離散控制系統具有零可控制性（null-controllable），表示針對某一初始狀態x(0) = x_0，存在可控制的u(k)使得x(k_0) = 0。此條件和存在矩陣F使得A+BF為冪零矩陣的條件等價。

此條件可以由可控制-不可控制分離推導而得。

## 輸出可控制性
輸出可控制性（Output controllability）是有關系統輸出（以上表示為*y*）的特性，輸出可控制性描述外在輸入是否可以在有限時間內，將輸出從任意初始狀態控制到特定輸出。輸出可控制性和狀態可控制性不一定會有相關性。尤其：
* 狀態可控制性的系統不一定會是輸出可控制性的系統。例如矩陣*D*&nbsp;=&nbsp;0，且矩陣*C*沒有全秩，因為輸出矩陣的結構限制，有些輸出是無法達到的。即使系統的所有狀態都可以在有限時間內達到，但仍然有些特定的輸出是無法產生的。一個明顯的例子是*D*=0，且矩陣*C*至少有一行為零，因此此系統無法讓該輸出有不為零的輸出。
* 輸出可控制性的系統也不一定會是狀態可控制性的系統。例如，假如狀態空間的維度大於輸出的維度，針對每一個輸出，都有一組可能的對應狀態組態。也就是說，系統可能會有零動態（zero dynamics），也就是系統狀態有變化，但是在輸出上完全看不出來。因此，可以在有限時間將輸出控制到特定輸出，和狀態的可控制性完全沒有關係。

針對線性連續時間系統，例如由矩陣A、B、C及D描述的系統，其m \times (n+1)r輸出可控制性矩陣
:\begin{bmatrix} CB & CAB & CA^2B & \cdots & CA^{n-1}B & D\end{bmatrix}
有滿行秩（rank m）若且唯若此系統為輸出可控制系統，此結果也是卡尔曼的可控制性準則。
## 在有輸入限制下的可控制性

在一些沒有完全控制權的系統，常常無法在可控制子空間內將系統從任意初始位置移到從任意結束位置。會出現此一現象的原因可能是因為系統本身就有的輸入信號限制（例如致動器的飽和）或是因為其他原因而給系統的限制（例如因為安全相關的考量）。在輸入及狀態有限制時的系統可控制性，是可到達性（reachability）及探討的內容。
## 行為框架中的可控制性

在所謂的行為系統理論方法（behavioral system theoretic approach）中，不會直接定義模型輸入－輸出的結構。在此框架內，系統由是由變數集合的允許軌跡來表示，其中有些可能是輸入或是輸出。

在此框架中，可控制的系統是指，系統過去的行為（外在變數的軌跡）可以和任何未來的行為連接，而其連接方式都在可允允許的系統行為內。

## 可穩定性
可穩定性（stabilizability）是比可控制性要弱的一個條件。系統具有可穩定性若所有不可控的狀態都有穩定的動態特性。因此雖然系統中有一些狀態是不可控的，在系統動作時，所有的狀態都還是維持在一定的範圍內（有界）。Hautus引理有針對可穩定性的判斷

## 可達到集合
令T ∈ ***Т***，且x ∈ *X*（其中X是所有可能狀態的集合，***Т***是一段時間區間）。在時間T內從x開始的可達到集合（reachable set）定義為:  

R^T{(x)} = \left\{ z \in X : x \overset{T}{\rightarrow} z \right\}，其中 xz表示存在一個在時間T內從x到z的狀態轉換。

針對自主系統，其可達到集合為：
:Im(R)=Im(B)+Im(AB)+....+Im(A^{n-1}B),
其中R為可控制性矩陣。

若以可達到集合來表示，系統有可控制性若且唯若Im(R)=\R^{n}。

**證明**  
根據以下的等式：
:R=[B\ AB ....A^{n-1}B]
:Im(R)=Im([B\ AB ....A^{n-1}B])
:dim(Im(R))=rank(R)
考慮系統可控制，因此R的-{zh-hans:列; zh-hant:行;}-需為線性獨立，因此
:dim(Im(R))=n 
:rank(R)=n
:Im(R)=\R^{n}\quad \blacksquare

另一個和可達到集合有關的集合為可控制集合（controllable set），定義如下：
:C^T{(x)} = \left\{ z \in X : z \overset{T}{\rightarrow} x \right\}.
Sontag提出了可達到性（reachability）和可控制性的關係:

(a) n維離散線性系統可控制，若且唯若：
:: R(0)=R^k{(0)=X}（其中X為x的所有可能值或是狀態，且k為時間）
(b) 連結時間線性系統可控制，若且唯若：
:: R(0)=R^e{(0)=X}針對所有e>0。
若且唯若C(0)=C^e{(0)=X}針對所有e>0。

## 相關條目
* 可觀測性
* 狀態觀測器
* 平坦性

## 腳註

## 參考資料

## 外部連結
*
*  MATLAB function for checking controllability of a system 
*  Mathematica function for checking controllability of a system