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

강의노트 • 조회수 531 • 댓글 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 → 폐루프 시스템의 특성 방정식

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이다.

원하는 특성방정식 근을 만족하는 다항식을 만든다.

αc(s)=sn+αn1sn1++α1s+α0=0 \alpha_c(s) = s^n+\alpha_{n-1}s^{n-1}+ \ldots +\alpha_1s +\alpha_0 = 0

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}

액커만 공식(Ackermann’s formula)

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

Mc=[B  AB  A2B  An1B]M_c = \begin{bmatrix} B &  AB &  A^2B & \ldots &  A^{n-1}B \end{bmatrix}

αc(A)=An+αn1An1++αnA+α0I \alpha_c(A) = A^n+\alpha_{n-1}A^{n-1}+ \ldots +\alpha_nA+\alpha_0I

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

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

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초이하가 되도록 설계하여라.

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