[Continuous-Time] 제어가능한 부분공간
다음과 같은 선형 시불변(LTI) 시스템이 있다.
\[ \begin{align} \dot{\mathbf{x}}=A \mathbf{x}+B \mathbf{u} \tag{1} \end{align} \]
여기서 \(\mathbf{x}(t) \in \mathbb{R}^n\) 는 상태변수, \(\mathbf{u}(t) \in \mathbb{R}^p\) 는 제어입력이다. 이 시스템의 제어가능한 부분공간(controllable subspace) \(\chi_c\) 는 제어가능성 행렬(controllability matrix)의 레인지(range, 치역)로 정의한다.
\[ \begin{align} \chi_c=range(Q_c) \tag{2} \end{align} \]
여기서 제어가능성 행렬 \(Q_c\) 는 다음과 같이 정의한 바 있다 (https://pasus.tistory.com/336).
\[ \begin{align} Q_c= \begin{bmatrix} B & AB & A^2 B & \cdots & A^{n-1} B \end{bmatrix} \ \ \ \in \mathbb{R}^{n \times np} \tag{3} \end{align} \]
만약 상태벡터가 제어가능한 부분공간 어느 지점에서 시작하면 제어입력에 관계없이 상태벡터는 항상 제어가능한 부분공간에 머물러 있다. 즉, 제어입력은 제어가능한 부분공간 밖으로, 또는 제어불가능한 부분공간으로 상태를 이동시킬 수 없다.
증명은 다음과 같다.
방정식 (1)의 해는 다음과 같다.
\[ \begin{align} \mathbf{x}(t)=e^{At} \mathbf{x}(0)+ \int_0^t e^{A(t-\tau)} B \mathbf{u}(\tau) \ d\tau \tag{4} \end{align} \]
여기서 케일리-해밀톤 정리(https://pasus.tistory.com/335)에 의하면
\[ \begin{align} e^{A(t-\tau)} =\sum_{i=0}^{n-1} \beta_i (\tau) A^i \tag{5} \end{align} \]
로 놓을 수 있으므로, 시스템의 해 (4)는 다음과 같이 된다.
\[ \begin{align} \mathbf{x}(t)-e^{At} \mathbf{x}(0) &= \int_0^t \sum_{i=0}^{n-1} \beta_i (\tau) A^i B \mathbf{u}(\tau) \ d\tau \tag{6} \\ \\ &= \sum_{i=0}^{n-1} A^i B \mathbf{w}_i (t) \end{align} \]
여기서 \(\mathbf{w}_i (t)= \int_0^t \beta_i (\tau) \mathbf{u}(\tau) \ d\tau \) 이다. 위 식에 의하면 \(\mathbf{x}(0)\) 가 \(range(Q_c)\) 안에 있으면 \(\mathbf{x}(t)\) 도 \(range(Q_c)\) 안에 머물러 있다. 만약 \(rank(Q_c )=n\) 이라면 \(n\) 차원 상태공간 전체가 제어가능한 공간이 되지만 \(rank(Q_c )=n_c \lt n\) 이라면 \(n_c\) 차원 제어가능한 부분공간과 \((n-n_c)\) 차원의 제어불가능한 부분공간으로 분할할 수 있다.
증명은 다음과 같다.
변환행렬 \(T\) 를 이용하여 상태변수 \(\mathbf{x}\) 를 상태변수 \(\tilde{\mathbf{x}}\) 로 변환한다.
\[ \begin{align} \mathbf{x}=T \tilde{\mathbf{x}} \tag{7} \end{align} \]
그러면 식 (1)은 다음과 같이 변환할 수 있다.
\[ \begin{align} \dot{\tilde{\mathbf{x}}} =\tilde{A} \tilde{\mathbf{x}}+ \tilde{B} \tilde{\mathbf{u}} \tag{8} \end{align} \]
여기서 \(\tilde{A}=T^{-1} AT, \ \tilde{B}=T^{-1} B \) 이다. \(A\) 와 \(\tilde{A}\) 는 상사관계이므로 고유값은 서로 같다. 또한 시스템 (1)과 변환된 시스템 (8)의 제어가능성 특성은 동일하다. 확인해 보기 위해서 시스템 (8)의 제어가능성 행렬을 보면,
\[ \begin{align} \tilde{Q}_c &= \begin{bmatrix} \tilde{B} & \tilde{A} \tilde{B} & \tilde{A}^2 \tilde{B} & \cdots & \tilde{A}^{n-1} \tilde{B} \end{bmatrix} \\ \\ &= \begin{bmatrix} T^{-1} B & T^{-1} AB & T^{-1} A^2 B & \cdots & T^{-1} A^{n-1} B \end{bmatrix} \\ \\ &= T^{-1} Q_c \end{align} \]
이므로 \(rank(\tilde{Q}_c )=rank(Q_c)\) 이어서 제어가능성 특성이 동일하다.
식 (7)에서 변환행렬 \(T\) 는 제어가능한 부분공간 \(\chi_c\) 에서 \(n_c\) 개의 기저 벡터를 선택하고 나머지 \((n-n_c )\) 개의 기저 벡터는 변환행렬 \(T\) 가 직각행렬(orthogonal matrix, \(T^{-1}=T^T\) )이 되도록 선택하여 구성한다.
\[ \begin{align} T &= \begin{bmatrix} \mathbf{t}_1 & \cdots & \mathbf{t}_{n_c} & \mathbf{t}_{n_c+1} & \cdots & \mathbf{t}_n \end{bmatrix} \tag{9} \\ \\ &= \begin{bmatrix} T_1 & T_2 \end{bmatrix} \end{align} \]
이러한 특징을 가진 변환행렬은 \(Q_c\) 를 QR분해하거나 특이값 분해(singular value decomposition)해서 얻을 수 있는데 여기서는 특이값 분해(https://pasus.tistory.com/15)를 이용한다.
\[ \begin{align} Q_c &= U \Sigma V^T \tag{10} \\ \\ &= \begin{bmatrix} U_1 & U_2 \end{bmatrix} \begin{bmatrix} \Sigma_{n_c } & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} V_1^T \\ V_2^T \end{bmatrix} \\ \\ &= \begin{bmatrix} U_1 & U_2 \end{bmatrix} \begin{bmatrix} R \\ 0 \end{bmatrix} \\ \\ &=U_1 R \end{align} \]
여기서 \(U \in \mathbb{R}^{n \times n}\), \( V \in \mathbb{R}^{np \times np}\), \(\Sigma \in \mathbb{R}^{n \times np}\), \(U_1 \in \mathbb{R}^{n \times n_c }\), \(U_2 \in \mathbb{R}^{n \times (n-n_c)}\), \(\Sigma_{n_c} \in \mathbb{R}^{n_c \times n_c }\), \(R \in \mathbb{R}^{n_c \times np}\) 이다.
특이값 분해는 \(U^{-1}=U^T\), \(V^{-1}=V^T\) 인 특징이 있으므로 \(T=U\) 로 선택한다. 그러면 식 (8)을 다음과 같이 분해할 수 있다.
\[ \begin{align} \begin{bmatrix} \dot{\mathbf{x}}_c \\ \dot{\mathbf{x}}_u \end{bmatrix} = \begin{bmatrix}T_1^T AT_1 & T_1^T AT_2 \\ T_2^T AT_1 & T_2^T AT_2 \end{bmatrix} \begin{bmatrix} \mathbf{x}_c \\ \mathbf{x}_u \end{bmatrix} + \begin{bmatrix} T_1^T B \\ T_2^T B \end{bmatrix} \mathbf{u} \tag{11} \end{align} \]
여기서 \(\tilde{\mathbf{x}} = \begin{bmatrix} \mathbf{x}_c \\ \mathbf{x}_u \end{bmatrix}\) 이다.
식 (10)에 의하면 \(Q_c= \begin{bmatrix} B & AB & \cdots & A^{n-1} B \end{bmatrix} =T_1 R\) 이므로 다음 식이 성립한다.
\[ \begin{align} & B=T_1 R_1, \tag{12} \\ & AB=T_1 R_2, \\ & A^2 B=T_1 R_3, \\ & \ \ \cdots \\ & A^{n-1} B=T_1 R_n \end{align} \]
여기서 \(R= \begin{bmatrix} R_1 & R_2 & \cdots & R_n \end{bmatrix}\) 이다. 또한 식 (10)에 의하면 \(T_2^T Q_c=T_2^T T_1 R=0\) 이다. 따라서
\[ \begin{align} T_2^T Q_c &= T_2^T \begin{bmatrix} B & AB A^2 B & \cdots & A^{n-1} B \end{bmatrix} \tag{13} \\ \\ &= \begin{bmatrix} T_2^T B & T_2^T AB & T_2^T A^2 B & \cdots & T_2^T A^{n-1} B \end{bmatrix} \\ \\ &= 0 \end{align} \]
이다. 식 (12)를 이용하여 식 (13)의 각 항을 전개하면 다음과 같다.
\[ \begin{align} & T_2^T B=0 \tag{14} \\ & T_2^T AB=T_2^T AT_1 R_1=0 \\ & T_2^T A^2 B=T_2^T A(AB)=T_2^T AT_1 R_2=0 \\ & \ \ \ \cdots \\ & T_2^T A^{n-1} B=T_2^T AT_1 R_n=0 \end{align} \]
식 (14)에 의하면 \(T_2^T AT_1 \begin{bmatrix}R_1 & \cdots & R_n \end{bmatrix} =T_2^T AT_1 R=0\) 이므로 \(T_2^T AT_1=0\) 이다. 따라서 식 (11)은 다음과 같은 형식이 된다.
\[ \begin{align} \begin{bmatrix} \dot{\mathbf{x}}_c \\ \dot{\mathbf{x}}_u \end{bmatrix}=\begin{bmatrix} A_{cc} & A_{cu} \\ 0 & A_{uu} \end{bmatrix} \begin{bmatrix} \mathbf{x}_c \\ \mathbf{x}_u \end{bmatrix} +\begin{bmatrix} B_c \\ 0 \end{bmatrix} \mathbf{u} \tag{15} \end{align} \]
여기서 \(A_{cc} \in \mathbb{R}^{n_c \times n_c} \), \(B_c \in \mathbb{R}^{n_c \times p}\) 이다. 식 (15)에 의하면,
\[ \begin{align} \dot{\mathbf{x}}_u=A_{uu} \mathbf{x}_u \tag{16} \end{align} \]
이므로 상태변수 \(\mathbf{x}_u\) 는 제어입력의 영향을 전혀 받지 않기 때문에 제어불가능한 부분공간의 상태변수가 된다. 한편 식 (15)의 특성다항식은 다음과 같다.
\[ \begin{align} \det (\lambda I-\tilde{A} )= \det (\lambda I-A_{cc}) \det (\lambda I-A_{uu}) \tag{17} \end{align} \]
따라서 시스템 (1)의 고유값 또는 \(\tilde{A}\) 의 고유값은 \(A_{cc}\) 의 고유값과 \(A_{uu}\) 의 고유값의 합집합이라는 것을 알 수 있다. 여기서 \(A_{uu}\) 의 고유값을 제어불가능한 고유값(uncontrollable eigenvalue)이라고 하고 그에 관련된 운동모드를 제어불가능한 모드라고 한다.
한편 제어불가능한 고유값이 모두 안정하다면 시스템 (1)을 또는 \((A,B)\) 를 안정화가능(stabilizable)한 시스템이라고 말한다. 달리 말하면 불안정한 고유값이 모두 제어가능하다면 안정화가능하다고 한다.
따라서 시스템이 제어가능하다면 안정화가능하다. 하지만 시스템이 안정화가능하다고 하여 제어가능한 것은 아니다.
한편 식 (15)에서 다음 일부 시스템을 제어가능 서브시스템(controllable subsystem)이라고 한다.
\[ \begin{align} \dot{\mathbf{x}}_c=A_{cc} \mathbf{x}_c+B_c \mathbf{u} \tag{18} \end{align} \]
왜냐하면 \((A_{cc}, B_c )\) 는 제어가능하기 떄문이다. 증명은 다음과 같다.
시스템 (15)의 제어가능성 행렬 \(\tilde{Q}_c\) 의 랭크는 \(n_c\) 이므로 다음과 같이 전개할 수 있다.
\[ \begin{align} n_c &= rank(\tilde{Q}_c )= rank \ [\tilde{B} \ \ \tilde{A}\tilde{B} \ \ \tilde{A}^2 \tilde{B} \ \ \cdots \ \ \tilde{A}^{n-1} \tilde{B} ] \\ \\ &=rank \begin{bmatrix} B_c & A_{cc} B_c & A_{cc}^2 B_c & \cdots & A_{cc}^{n-1} B_c \\ 0 & 0 & 0 & \cdots & 0 \end{bmatrix} \\ \\ &= rank \ [ B_c \ \ A_{cc} B_c \ \ A_{cc}^2 B_c \ \ \cdots \ \ A_{cc}^{n-1} B_c ] \end{align} \]
따라서 서브 시스템 (18)은 제어가능하다.