[제어공학] State-Space Method

Eugene CHOI·2021년 4월 25일
0

Control Engineering

목록 보기
8/9
post-thumbnail
post-custom-banner

만약 시스템이 제어가능하고 관측가능하다면, 성능사양을 만족시킬 수 있는 모든 원하는 위치에 모든 극점을 배치할 수 있습니다. 하지만 일반적으로 어떤 시스템의 상태를 완전히 모두 관측한다는 것은 불가능합니다. 그래서 후에 observer라는 개념이 추가로 도입됩니다. 순서대로 알아보겠습니다.

Full-state feedback control law(전 상태 궤환제어법칙)에 따라 상태변수 궤환시스템을 설계하게 됩니다. 여기서는 모두 관측이 가능하다는 전제 하에 설명합니다.


용어

  • State Variable: 시스템의 상태를 정의할 수 있는 최소한의 독립변수들입니다.(\approx pole의 수)

    [x1(t)x2(t)xn(t)]\begin{bmatrix}x_1(t)&x_2(t)&\dots&x_n(t)\end{bmatrix}
  • State Vector: 상태 변수들의 벡터로 표현한 것입니다.

    x(t)=[x1(t)x2(t)xn(t)]u(t)=[u1(t)u2(t)um(t)]y(t)=[y1(t)y2(t)yp(t)]\vec x(t)=\begin{bmatrix}x_1(t)\\x_2(t)\\\vdots\\x_n(t)\end{bmatrix}\quad\quad\quad\quad \vec u(t)=\begin{bmatrix}u_1(t)\\u_2(t)\\\vdots\\u_m(t)\end{bmatrix}\quad\quad\quad\quad \vec y(t)=\begin{bmatrix}y_1(t)\\y_2(t)\\\vdots\\y_p(t)\end{bmatrix}
  • State Space Model: 시스템은 두 개의 상태방정식으로 표현됩니다.
    x(t)\vec x(t): 상태벡터
    y(t)\vec y(t): 출력 변수
    u(t)\vec u(t): 입력 벡터
    An×nA_{n\times n}: 상태행렬
    Bn×mB_{n\times m}: 입력행렬
    Cp×nC_{p\times n} : 출력행렬
    Dp×mD_{p\times m}: 피드포워드(피드스루) 행렬\\
    시스템이 연속 시불변(선형) 형태일 경우 상태공간 모델은 다음과 같습니다.

    x˙=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)\begin{aligned} \dot x&=Ax(t)+Bu(t)\\ y(t)&=Cx(t)+Du(t)\end{aligned}

예제

일반적으로 사용하는 질량-스프링-댐퍼 시스템과는 조금 다른 시스템으로 모델링 하여 보겠습니다.

금속구는 그림상 하단 쪽으로 중력의 영향을 받고 있고, 전자석은 금속구를 끌어당기는 힘을 발휘하고 있습니다. 각 상수는 다음과 같은 값을 가집니다.

m=0.05kg,  K=0.0001,  L=0.01H,  R=1,  g=9.81m/s2,  h=0.01mm=0.05kg,\;K=0.0001,\;L=0.01H,\;R=1Ω,\; g=9.81m/s^2,\;h=0.01m

F=maF=ma로부터 전자석의 힘이 다음과 같이 정의된다고 가정합니다.
(자료에 있는 식을 그대로 들고 왔는데 hh가 제곱이 되어야 맞는 것 같습니다...)

{md2hdt2=mgki2hV=Ldidt+Ri        \begin{cases}m\frac{d^2h}{dt^2}=mg-\frac{ki^2}{h}\cdots①\\ V=L\frac{di}{dt}+Ri\;\;\;\;\,\cdots②\end{cases}

여기서 평형을 이루면 가속도가 없어지게 되므로 좌변이 00이 됩니다.
(시간에 대한 미분값이 0이 되는 지점을 동작점(equalibrium point)라고 합니다.)

0=mgki02h0i0=mgh0k7A0=mg-\frac{ki_0^2}{h_0}\\\,\\ i_0=\sqrt{\frac{mgh_0}{k}}\approx7A

평형점에서 Ldidt=0L\frac {di}{dt}=0이므로 전압은 다음과 같습니다.

Ldidt=0V0=R×i0=1×7=7VL\frac {di}{dt}=0\\\,\\ V_0=R\times i_0=1\times7=7V

따라서 ①번 식은 다음과 같이 정리됩니다.

md2dt2(h0+Δh)=mgk(i0+Δi)2h0+Δhmd2dt2(Δh)=mgk(i02+2i0Δi+Δi2)h0+Δh(dh0dt=0)md2dt2(Δh)=mgk(i02+2i0Δi)h0+h(Δi20)md2dt2(Δh)=mgkh0(i02+2i0Δi)1+Δhh0m\frac{d^2}{dt^2}(h_0+\Delta h)=mg-\frac{k(i_0+\Delta i)^2}{h_0+\Delta h}\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=mg-\frac{k(i_0^2+2i_0\Delta i+\Delta i^2)}{h_0+\Delta h}(\because \frac{dh_0}{dt}=0)\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=mg-\frac{k(i_0^2+2i_0\Delta i)}{h_0+\triangle h}(\because \Delta i^2\approx0)\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=mg-\frac{\frac{k}{h_0}(i_0^2+2i_0\Delta i)}{1+\frac{\Delta h}{h_0}}

무한등비급수의 테일러 전개: 11x=1+x+x2+x3+,(x<1)\frac{1}{1-x}=1+x+x^2+x^3+\dots,(\vert x\vert<1)

위의 마지막 식에서 x=hh0x=\frac{\triangle h}{h_0}라고 한다면 테일러 급수 전개는 다음과 같습니다.

md2dt2(Δh)=mgk(i02+2i0Δi)h0+k(i02+2i0Δi)Δhh02+md2dt2(Δh)=mgki02h02i02h0Δi+k(i02+2i0Δi)Δhh02+md2dt2(Δh)=2i02h0Δi+ki02h02Δh+k2i0Δih02Δh+(initial  condition0=mgki02h0)md2dt2(Δh)=2i02h0Δi+ki02h02Δh+(Δi×Δh0)m\frac{d^2}{dt^2}(\Delta h)=mg-\frac{k(i_0^2+2i_0\Delta i)}{h_0}+\frac{k(i_0^2+2i_0\Delta i)\Delta h}{h_0^2}+\dots\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=mg-\frac{k\cdot i_0^2}{h_0}-\frac{2i_0^2}{h_0}\Delta i+\frac{k(i_0^2+2i_0\Delta i)\Delta h}{h_0^2}+\dots\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=-\frac{2i_0^2}{h_0}\Delta i+\frac{k\cdot i_0^2}{h_0^2}\Delta h+\frac{k\cdot 2i_0\Delta i}{h_0^2}\Delta h+\dots\\ (\because initial\;condition\rarr 0=mg-\frac{ki_0^2}{h_0})\\\,\\ m\frac{d^2}{dt^2}(\Delta h)=-\frac{2i_0^2}{h_0}\Delta i+\frac{k\cdot i_0^2}{h_0^2}\Delta h+\dots\\ (\because \Delta i \times \Delta h \approx0)\\\,\\

②번식도 마찬가지로 정리할 수 있습니다.

Lddt(i0+Δi)=R(i0+Δi)+V0+ΔV LdΔi0dt=RΔi+ΔV(Ri0+V0=0,  di0dt=0)L\frac{d}{dt}(i_0+\Delta i)=-R(i_0+\Delta i)+V_0+\Delta V\\\,\\\ L\frac{d\Delta i_0}{dt}=-R\Delta i+\Delta V (\because -Ri_0+V_0=0,\;\frac{di_0}{dt}=0)

두 식음 다음과 같이 정리되었습니다. 이 식으로 상태공간모델을 만듭니다.

{d2Δhdt2=2i02mh0Δi+ki02mh02ΔhdΔi0dt=RΔiL+ΔVL{x˙=(010ki02mh0202ki0mh000RL)(ΔhΔh˙Δi)+(001L)ΔVy=Δh=(100)(ΔhΔh˙Δi)+(0)ΔV\begin{cases} \frac{d^2 \Delta h}{dt^2}=-\frac{2i_0^2}{mh_0}\Delta i+\frac{k\cdot i_0^2}{mh_0^2}\Delta h\\ \frac{d\Delta i_0}{dt}=-\frac{R\Delta i}{L}+\frac{\Delta V}{L} \end{cases}\\\,\\ \begin{cases} \dot x=\begin{pmatrix} 0 & 1 & 0 \\ \frac{ki_0^2}{mh_0^2} & 0 & -\frac{2ki_0}{mh_0} \\ 0 & 0 & -\frac RL \end{pmatrix}\begin{pmatrix}\Delta h\\\Delta\dot h\\\Delta i \end{pmatrix} + \begin{pmatrix}0\\0\\\frac 1L\end{pmatrix}\Delta V \\\,\\ y=\Delta h=\begin{pmatrix}1&0&0\end{pmatrix}\begin{pmatrix}\Delta h\\\Delta \dot h \\ \Delta i \end{pmatrix}+(0)\Delta V\end{cases}

위에서 구한 상태공간방정식에 LaplaceLaplace 변환을 하면 Yu(s)\frac{Y}{u}(s)을 구할 수 있습니다.
AA matrix의 eigen value는 Yu(s)\frac Yu(s)의 pole과 같습니다.

profile
Hi, my name is Eugene CHOI the Automotive MCU FW developer.
post-custom-banner

0개의 댓글