강의노트 상태 변수 피드백 제어기

강의노트 • 조회수 724 • 댓글 0 • 수정 1개월 전  
  • 피드백 제어기
  • 상태방정식을 이용한 제어기 설계

상태 변수 피드백 제어기

기준 입력이 0인 경우의 상태 변수 피드백 제어기

X˙=AX+BU \dot X = AX+BU

Y=CXY = CX

레귤레이터(regulator) : 기준 입력(R)이 0이면, 모든 상태 변수를 0으로 수렴하게 하는 제어기

U=KX=[k1     k2    kn][x1x2xn]=(k1x1+k2x2++knxn) U = -KX = -\begin{bmatrix}k_1  &   k_2&  \ldots  & k_n \end{bmatrix} \begin{bmatrix}x_1\\ x_2\\ \vdots \\x_n \end{bmatrix} \\= -(k_1x_1+k_2x_2+ \ldots +k_nx_n)

X˙=AXBKX=(ABK)X\dot X = AX-BKX = (A-BK)X → 폐루프 시스템의 특성 방정식

x˙=(ABK)x=([01000010a0a1a2an1][001][k1     k2    kn])x \dot x  = (A-BK)x =  \left( \begin{bmatrix} 0& 1& 0&  \ldots & 0 \\ 0&  0& 1& \ldots & 0 \\ \vdots & \vdots & \vdots & \ldots &  \vdots \\  -a_0 &  -a_1  &  -a_2 &  \ldots & -a_{n-1} \end{bmatrix} - \begin{bmatrix}0 \\0 \\ \vdots \\ 1 \end{bmatrix} \begin{bmatrix}k_1  &   k_2&  \ldots  & k_n \end{bmatrix} \right) x

=[01000010a0k1a1k2a2k3an1kn]x =  \begin{bmatrix} 0& 1& 0&  \ldots & 0 \\ 0&  0& 1& \ldots & 0 \\ \vdots & \vdots & \vdots & \ldots &  \vdots \\  -a_0-k_1 &  -a_1-k_2  &  -a_2-k_3 &  \ldots & -a_{n-1}-k_n \end{bmatrix} x

sn+(an1+kn)sn1++(a1+k2)s+(a0+k1)=0 s^n+(a_{n-1}+k_n)s^{n-1} + \ldots + (a_1+k_2)s+(a_0+k_1) = 0

k1=α0a0k2=α1a1kn=αn1an1 \begin{aligned} &k_1 =\alpha_ 0 - a_0 \\ &k_2 = \alpha_1 - a_1 \\ &\qquad \vdots \\ &k_n = \alpha_{n-1} - a_{n-1} \end{aligned}

sI(ABK)=0|sI-(A-BK)| = 0은 상태변수를 피드백한 시스템의 특성방정식이다. 이 특성 방정식이 원하는 시간응답을 갖는 특성방정식과 일치하도록 이득행렬K의 값을 결정하는 것이 상태변수 피드백 시스템 제어기를 설계하는 것이다.

원하는 시스템의 특성 방정식의 근이 r1,r2,,rnr_1,r_2,\ldots ,r_n와 같다면, sI(ABK)=(sr1)(sr2)(srn)|sI-(A-BK)| = (s-r_1)(s-r_2)\ldots(s-r_n) 이 만족하도록 KK값을 결정한다. 다항식의 계수를 비교하여 KK 값을 구한다.

예제)

시스템의 전달함수는 G(s)=1s(s+1) G(s) = \dfrac{1}{s(s+1)} 이다. 제어기는 D(s)=100(1+0.1s)D(s) = 100(1+0.1s)이다. 이 시스템의 최대오버슛이 10 [%]이하, 정정시간 2초 이하되도록 제어기를 설계하여라.

1+D(s)G(s)=1+100(1+0.1s)s(s+1)=01+D(s)G(s) = 1+\dfrac{100(1+0.1s)}{s(s+1)} = 0

특성방정식 : s2+11s+100=0s^2 + 11s + 100 = 0

x˙=Ax+Bu=[010    1]x+[01]u \dot x  = Ax+Bu = \begin{bmatrix}0 &1 \\ 0 &     -1 \end{bmatrix} x + \begin{bmatrix}0 \\1 \end{bmatrix}u

sI(ABK)=[s00s]([0101][01][k1   k2])=[s1k1s+1+k2]=s2+(1+k2)s+k1|sI-(A-BK)| = \begin{vmatrix} \begin{bmatrix}s& 0\\ 0 & s \end{bmatrix} - \left( \begin{bmatrix}0 & 1\\ 0 &  -1 \end{bmatrix}- \begin{bmatrix}0 \\1 \end{bmatrix} \begin{bmatrix}k_1 &   k_2 \end{bmatrix} \right) \end{vmatrix}\\ = \begin{vmatrix} \begin{bmatrix}s& -1\\ k_1 & s+1+k_2 \end{bmatrix} \end{vmatrix} = s^2 +(1+k_2)s+k_1

k1=100,k2=10k_1 = 100 \quad , \quad k_2 = 10
상태 변수 피드백 제어기 : u=(100x1+10x2)u = -(100x_1 + 10x_2)

차수가 3차 이상인 경우

[x1˙x2˙xn˙]=[01000010a0   a1a2an1][x1x2xn]+[001]u \begin{bmatrix} \dot {x_1}\\ \dot{x_2}\\ \vdots \\ \dot { x_n} \end{bmatrix} = \begin{bmatrix} 0 & 1&  0& \ldots &  0 \\ 0 &  0& 1&  \ldots &0 \\ \vdots& \vdots& \vdots&  \ldots & \vdots \\ -a_0&   -a_1& -a_2& \ldots & -a_{n-1} \end{bmatrix} \begin{bmatrix}x_1\\ x_2\\ \vdots \\ x_n \end{bmatrix}+ \begin{bmatrix}0 \\0 \\ \vdots \\ 1 \end{bmatrix} u

특성방정식은 sn+an1sn1+  +a1s+a0=0s^n+a_{n-1}s^{n-1}+\ldots  +a_1s +a_0 = 0이다.

원하는 특성방정식 근(r1,r2,,rnr_1, r_2, \ldots, r_n)을 만족하는 다항식을 만든다.

p(s)=(sr1)(sr2)(srn)=sn+αn1sn1++α1s+α0 p(s)  =  (s-r_1)(s-r_2) \ldots(s-r_n) \\ = s^n+\alpha_{n-1}s^{n-1}+ \ldots +\alpha_1s +\alpha_0 

p(A)=Asn+αn1An1++α1A+α0 p(A) =As^n+\alpha_{n-1}A^{n-1}+ \ldots +\alpha_1A +\alpha_0 

액커만 공식(Ackermann’s formula)

원하는 극점으로 극점으로 옮기는 K값은 액커만 공식으로 구할 수 있다.

K=[0  0    1]Mc1p(A) K = \begin{bmatrix}0 &  \ldots & 0 &    1 \end{bmatrix} M_c ^{-1} p(A)

여기서, Mc=[B  AB  A2B  An1B]M_c = \begin{bmatrix} B &  AB &  A^2B & \ldots &  A^{n-1}B \end{bmatrix} 이고 p(A)=An+αn1An1++αnA+α0I p(A) = A^n+\alpha_{n-1}A^{n-1}+ \ldots +\alpha_nA+\alpha_0I이다.

McM_c의 역행렬이 존재하면 KK를 구할 수 있다.

액커만 증명

ACL=(ABK)A_{CL} = (A - BK)이면

(ACL)0=(ABK)0=I (A_{CL})^0 = (A-BK)^0 = I

(ACL)1=(ABK)1=ABK (A_{CL})^1 = (A-BK)^1 = A-BK

(ACL)2=(ABK)2=A2ABKBKA+(BK)2=A2ABK(BK)(ABK)=A2ABKBKACL (A_{CL})^2 = (A-BK)^2 = A^2 -ABK -BKA + (BK)^2 = A^2 - ABK -(BK)(A-BK) = A^2 - ABK - BKA_{CL}

(ACL)3=(ABK)3=(A2ABKBKACL)(ABK)=A3A2BKABKACLBKACL2 (A_{CL})^3 = (A-BK)^3 = (A^2 - ABK - BKA_{CL})(A-BK) = A^3 - A^2BK - ABKA_{CL}-BKA_{CL}^2

\vdots

(ACL)n=(ABK)n=AnAn1BKAn2BKACLBKACLn1 (A_{CL})^n = (A-BK)^n = A^n - A^{n-1}BK - A^{n-2}BKA_{CL}- \ldots - BKA_{CL}^{n-1}

(ACL)=(ACL)n+k=0n1αkACLk=(AnAn1BKAn2BKACLBKACLn1)++α2(A2ABKBKACL)+α1(ABK)+α0I=(An+αn1An1++α2A2+α1A+α0I)(An1BK+An2BKACL++BKACLn1)α2(ABK+BKACL)α1(BK)=(A)(An1BK+An2BKACL++BKACLn1)α2(ABK+BKACL)α1(BK)\triangle (A_{CL}) = (A_{CL})^n + \sum_{k=0}^{n-1} \alpha_kA_{CL}^{k} \\ = (A^n - A^{n-1}BK - A^{n-2}BKA_{CL} - \ldots - BKA_{CL}^{n-1}) + \ldots + \alpha_2 (A^2 - ABK - BKA_{CL}) + \alpha_1(A-BK) + \alpha_0 I \\ = (A^n + \alpha_{n-1} A^{n-1} + \ldots + \alpha_2A^2 + \alpha_1A + \alpha_0 I)- (A^{n-1}BK +A^{n-2}BKA_{CL} + \ldots + BKA_{CL}^{n-1})- \ldots - \alpha_2(ABK+BKA_{CL})-\alpha_1(BK) \\ = \triangle (A) - (A^{n-1}BK +A^{n-2}BKA_{CL} + \ldots + BKA_{CL}^{n-1})- \alpha_2(ABK+BKA_{CL})-\alpha_1(BK)

위 식을 식(1)과 같이 정리한다. 여기서 * 은 어떤 값이여도 상관없다.
(ACL)=(A)[BABAn1B][K]\triangle (A_{CL})= \triangle (A) - \begin{bmatrix} B& AB& &\ldots& A^{n-1}B \end{bmatrix} \begin{bmatrix} * \\ \vdots \\ K \end{bmatrix}

그리고 Cayley-Hamilton theorem에 의하면 (ACL)=0\triangle (A_{CL})=0이다. 그러므로,

[BABAn1B][K]=(A)\begin{bmatrix} B& AB& &\ldots& A^{n-1}B \end{bmatrix} \begin{bmatrix} * \\ \vdots \\ K \end{bmatrix} = \triangle (A)

Mc[K]=(A) M_c \begin{bmatrix} * \\ \vdots \\ K \end{bmatrix} = \triangle (A)

[K]=Mc1(A) \begin{bmatrix} * \\ \vdots \\ K \end{bmatrix} = M_c^{-1} \triangle (A)

[001][K]=[001]Mc1(A)\begin{bmatrix} 0& 0& \ldots& 1 \end{bmatrix} \begin{bmatrix} * \\ \vdots \\ K \end{bmatrix} = \begin{bmatrix} 0& 0& \ldots& 1 \end{bmatrix} M_c^{-1} \triangle (A)

K=[001]Mc1(A) K = \begin{bmatrix} 0& 0& \ldots& 1 \end{bmatrix} M_c^{-1} \triangle (A)

상태 변수 방정식이 제어 가능할 경우 폐루프 시스템의 극점을 원하는 곳에 놓도록 해주는 상태 변수 피드백 제어기를 항상 구할 수 있다. 이는 필요 충분 조건으로 폐루프 시스템의 극점을 원하는 곳에 놓는 상태 변수 피드백 제어기를 항상 구할 수 있다면 이 시스템은 제어 가능한 시스템이다.

예제)

x˙=[0     11     0]x+[01]uy=[1     0]x \dot{x} =\begin{bmatrix} 0&      1\\ -1&      0\end{bmatrix} x + \begin{bmatrix}0\\ 1\end{bmatrix}u \\ y =\begin{bmatrix}1&     0 \end{bmatrix}x

폐루프 시스템의 극점을 더 왼쪽으로 놓을 경우 → 응답은 빨라지며 제어 신호의 크기는 더 커진다

제어 신호가 커진다는 것 → 구동 장치의 용량이 커져야 하며 에너지도 많이 소비하는 것을 의미 → 비용의 증가

기준 입력이 0이 아닌 경우의 상태 변수 피드백 제어기

R0R_0 : 기준 입력

U=R0KXU = R_0-KX

R0(s)R(s)=DF(s) \dfrac{R_0(s)}{R(s)} = D_F(s)

X˙=AX+BU=AX+B(R0KX)=(ABK)X+BR0 \dot X  = AX+BU = AX+B(R_0-KX) = (A-BK)X+BR_0

X(s)=(sIA+BK)1BR0(s) X(s) = (sI-A+BK)^{-1}BR_0(s)

Y(s)R0(s)=C(sIA+BK)1B \dfrac{Y(s)}{R_0(s)} = C(sI-A+BK)^{-1}B

Y(s)R(s)=C(sIA+BK)1BDF(s) \dfrac{Y(s)}{R(s)} = C(sI-A+BK)^{-1}BD_F(s)

예제)

G(s)=3s+60s3+7s2+20s+60G(s)= \dfrac{3s+60}{s^3+7s^2+20s+60} 이 시스템은 단위계단응답 37.5%의 오버슈트와 4.3초의 정정시간, 오버슈트가 9.48%, 정정시간 1초이하가 되도록 설계하여라.

답)

예제)

[x1˙x2˙]=[3101][x1x2]+[01]u \begin{bmatrix} \dot {x_1} \\ \dot{ x_2} \end{bmatrix} =\begin{bmatrix} -3&1 \\ 0&-1 \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \end{bmatrix} +\begin{bmatrix} 0 \\ 1 \end{bmatrix} u

y=[1.50.5][x1x2] y=\begin{bmatrix} 1.5 &0.5 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}

백분율 오버슈트 4.3%, 정정시간 1초가 되도록 설계하여라.

예제)

[x1˙x2˙]=[4310][x1x2]+[10]u \begin{bmatrix} \dot {x_1} \\ \dot{ x_2} \end{bmatrix}=\begin{bmatrix} -4&-3 \\ 1&0 \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \end{bmatrix} +\begin{bmatrix} 1 \\ 0 \end{bmatrix} u

y=[0.53][x1x2] y=\begin{bmatrix} 0.5 &3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}

s2+8s+32s^2+8s+32가 되도록 상태부귀환 이득벡터를 구하라.

예제)

G(s)=s2+10s+16s3+10s2+18s+16G(s)=\dfrac{s^2+10s+16}{s^3+10s^2+18s+16} 이 시스템 오버슈트가 10%, 정정시간 0.8초이하가 되도록 설계하여라.

첫 글입니다.
다음 글
댓글
댓글로 소통하세요.