Lecture 상태 변수의 변환

Views 178 • Comments 0 • Last Updated at 6 months ago Full screen  
  • 변환
  • 상태방정식

상태 변수의 변환

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

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

{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}

first article
last article
Comments
Feel free to ask a question, answer or comment, etc.