강의노트 상태 변수의 변환

강의노트 • 조회수 325 • 댓글 0 • 수정 1주 전  
  • 변환
  • 상태방정식

상태 변수의 변환

동일한 시스템에 대한 상태 변수 방정식은 여러 가지 형태가 있을 수 있다.

상태 변수의 정의에 따라서 상태 변수 방정식이 달라진다.

{X˙=AxX+BxUY=CxX+DxU \begin{cases} \dot X  = A_xX+B_xU \\ Y=C_xX+D_xU \end{cases}

상태변수 XX로 표현된 식을 상태변수 ZZ로 변환하여 표현한다.

XXX=PZ,Z=P1X X = PZ \quad,\quad Z = P^{-1}X로 바꿔주는 행렬 PP가 존재한다고 가정한다. 여기서 PP 는 변환 행렬(transformation matrix)이다.

{Z˙=P1X˙=P1(AxX+BxU)=P1AxPZ+P1BxUY=CxPZ+DxU \begin{cases} \dot Z = P^{-1} \dot X  = P^{-1}(A_xX+B_xU)= P^{-1}A_xPZ+P^{-1}B_xU \\ Y=C_xPZ+D_xU \end{cases}

Az,Bz,Cz,DzA_z, B_z, C_z, D_z를 다음과 같이 정의 한다.

Az=P1AxP,Bz=P1Bx,Cz=CxP,Dz=Dx A_z = P^{-1}A_xP , B_z = P^{-1}B_x , C_z = C_xP , D_z=D_x

시스템은 다음과 같이 표현된다. {Z˙=AzZ+BzUY=CzZ+DzU \begin{cases} \dot Z = A_zZ+B_zU \\ Y=C_zZ+D_zU \end{cases}

변환 행렬에 의한 새로운 상태 방정식을 만들어도 고유값은 변하지 않는다.

sIAz=sIP1AxP=sP1PP1AxP==P1(sIAx)P=P1sIAxP=sIAx |sI-A_z| = |sI-P^{-1}A_xP| = |sP^{-1}P-P^{-1}A_xP| = \\= |P^{-1} (sI-A_x)P| =  |P^{-1}||sI-A_x||P| = |sI-A_x|

또한, 상태 변수를 바꾸어도 전달함수는 바뀌지 않는다.

G(s)=Cz(sIAz)1Bz+Dz=CxP(sIP1AxP)1P1Bx+Dx=CxP(sP1PP1AxP)1P1Bx+Dx=CxP[P1(sIAx)P]1P1Bx+Dx=CxPP1(sIAx)1PP1Bx+Dx=Cx(sIAx)1Bx+Dx \begin{aligned} G(s) &= C_z(sI-A_z)^{-1}B_z+D_z \\ &= C_xP (sI-P^{-1} A_xP)^{-1} P^{-1}B_x+D_x \\ &= C_xP(sP^{-1}P-P^{-1}A_xP)^{-1}P^{-1}B_x+D_x \\ & = C_xP[P^{-1}(sI-A_x)P]^{-1}P^{-1}B_x+D_x \\ & = C_xPP^{-1}(sI- A_x)^{-1} P P^{-1} B_x+D_x \\  &= C_x(sI-A_x)^{-1}B_x+D_x \end{aligned}

상태 변수 변환으로 제어 가능성과 관측 가능성도 바뀌지 않는다.

Mcz=[BzAzBzAz2BzAzn1Bz]=[P1BP1APP1B(P1AP)2P1B(P1AP)n1P1B]=P1[BABA2BAn1B]=P1Mcx \begin{aligned} M_{cz} &= \begin{bmatrix}B_z &A_zB_z &A_z^2B_z & \ldots &A_z^{n-1}B_z \end{bmatrix} \\ &= \begin{bmatrix}P^{-1}B & P^{-1}APP^{-1}B &  (P^{-1}AP)^2P^{-1}B & \ldots & (P^{-1}AP)^{n-1}P^{-1}B \end{bmatrix} \\ &= P^{-1} \begin{bmatrix}B &AB & A^2B &\ldots & A^{n-1}B \end{bmatrix} \\ &= P^{-1}M_{cx} \end{aligned}

Mcz=P1Mcx=P1Mcx |M_{cz}| = |P^{-1}M_{cx}| = |P^{-1}| |M_{cx}|

MOZ=[CzCzAzCzAz2CzAzn1]=[CxPCxP(P1AxP)CxP(P1AxP)2CxP(P1AxP)n1]=[CxCxAxCxAx2CxAxn1]P=MOXP \begin{aligned} M_{OZ} &=  \begin{bmatrix} C_z \\ C_zA_z \\ C_zA_z^2 \\ \vdots \\ C_zA_z^{n-1} \end{bmatrix} = \begin{bmatrix} C_xP \\ C_xP(P^{-1}A_xP) \\C_xP(P^{-1}A_xP)^2 \\ \vdots \\ C_xP(P^{-1}A_xP)^{n-1}\end{bmatrix} = \begin{bmatrix} C_x \\ C_xA_x \\ C_xA_x^2 \\ \vdots \\ C_xA_x^{n-1}\end{bmatrix} P = M_{OX}P \end{aligned}

MOz=MOxP=MOxP|M_{Oz}| = |M_{Ox}P| = |M_{Ox}||P|

새로운 상태 변수를 정의한다는 것은 원래의 상태 변수들의 선형 조합을 취해서 새로운 독립 변수들의 상태 변수 조합을 만드는 것이다.

변환 행렬PP의 역행렬이 존재해야 하는 조건은 새로 정의된 상태 변수들이 서로 독립이기 위한 필요조건이다.

상태 변수 방정식이 제어 가능하다면 제어 가능 표준형으로 변환할 수 있는 PP가 항상 존재한다.

X˙=AxX+BxU \dot X = A_xX+B_xU인 시스템을 제어가능 표준형인 Z˙=AzZ+BzU \dot Z = A_z Z+B_zU 시스템으로 변환하는 변환행렬 PP를 계산한다.

[z1˙z2˙zn˙]=[01000010a0a1a2an1][z1z2zn]+[001]u \begin{bmatrix} \dot {z_1} \\ \dot {z_2}\\ \vdots \\ \dot {z_n}\end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 & \ldots & 0 \\ 0 & 0 & 1 & \ldots &0 \\ \vdots& \vdots& \vdots& \vdots & \vdots \\ -a_0 & -a_1 & -a_2 & \ldots & -a_{n-1}\end{bmatrix} \begin{bmatrix}z_1 \\z_2\\ \vdots \\ z_n \end{bmatrix}+ \begin{bmatrix} 0\\ 0\\ \vdots \\ 1 \end{bmatrix}u

P1P^{-1}을 행벡터로 표현하면 P1=[p1p2pn]P^{-1} =\begin{bmatrix}p_1\\ p_2\\ \vdots \\ p_n \end{bmatrix}

그리고,

Az=P1AxP A_z=P^{-1}A_xPP1P^{-1}을 왼쪽으로 곱하면 AzP1=P1AxA_zP^{-1}=P^{-1}A_x

[01000010a0a1a2an1][p1p2pn]=[p1p2pn]Ax \begin{bmatrix} 0 & 1 & 0 & \ldots & 0 \\ 0 & 0 & 1 & \ldots &0 \\ \vdots& \vdots& \vdots& \vdots & \vdots \\ -a_0 & -a_1 & -a_2 & \ldots & -a_{n-1}\end{bmatrix} \begin{bmatrix}p_1 \\ p_2 \\ \vdots \\ p_n \end{bmatrix}  = \begin{bmatrix}p_1 \\ p_2 \\ \vdots \\ p_n \end{bmatrix} A_x

위 식을 풀어서 1행부터 n-1행까지의 결과를보면,

p2=p1Axp3=p2Ax=p1Ax2pn=pn1Ax=p1Axn1(1)\tag{1} \begin{aligned} p_2 &= p_1A_x \\ p_3 &= p_2A_x = p_1A_x^2 \\ \vdots \\ p_n &= p_{n-1}A_x = p_1A_x^{n-1} \end{aligned}

그리고, Bz=P1BxB_z = P^{-1}B_x이므로

[001]=[p1p2pn]Bx \begin{bmatrix}0 \\ 0 \\ \vdots \\ 1 \end{bmatrix} =  \begin{bmatrix}p_1 \\ p_2 \\ \vdots \\ p_n \end{bmatrix}B_x

위 행렬을 풀어보면

p1Bx=0p2Bx=0pn1Bx=  0pnBx=1(2) \tag{2} \begin{aligned} &p_1B_x = 0 \\ &p_2B_x = 0 \\ & \qquad \vdots \\ &p_{n-1}B_x =  0 \\ &p_nB_x = 1 \end{aligned}

(2)식에 (1)식의 결과를 적용하면

p1Bx=0p2Bx=p1AxBx=0pn1Bx=p1Axn2Bx=0pnBx=  p1Axn1Bx=1(3) \tag{3} \begin{aligned} &p_1B_x &= 0& \\ &p_2B_x &= p_1A_xB_x  &= 0 \\ & \qquad \vdots \\ &p_{n-1}B_x  &= p_1A_x ^{n-2}B_x & = 0 \\ &p_nB_x  &=  p_1A_x ^{n-1}B_x  &= 1 \end{aligned}

(3)식을 p1p_1으로 인수분해하면

p1[Bx  AxBxAxn2Bx     Axn1Bx]=p1Mcx=[0      0  0    1]p_1 \begin{bmatrix} B_x &  A_xB_x & \ldots & A_x ^{n-2}B_x  &     A_x ^{n-1}B_x \end{bmatrix}  = p_1M_{cx} =  \begin{bmatrix}0&      0& \ldots &  0  &  1 \end{bmatrix}

McxM_{cx}의 인버스를 왼쪽으로 곱하면

p1=[0      0  0    1]Mcx1(4) \tag{4} p_1 = \begin{bmatrix}0&      0& \ldots &  0  &  1 \end{bmatrix}M_{cx} ^{-1}

(4)식으로 p1p_1을 구할 수 있다. 이 결과를 (1)식에 대입하면 P1P^{-1}을 구할 수 있다.

P1=[p1p1Axp1Ax2p1Axn1] P^{-1} = \begin{bmatrix} p_1 \\ p_1A_x \\ p_1A_x^2 \\ \vdots \\ p_1A_x^{n-1} \end{bmatrix}

첫 글입니다.
마지막 글입니다.
댓글
댓글로 소통하세요.