강의자료 · 제어공학2
실습 언어

State Feedback과 Observer

위치만 측정하는 시스템에서 속도를 추정해 제어하고, 추정 속도와 잡음 민감도를 함께 비교합니다.

실습 전에

01 위치를 측정하면 속도도 알 수 있을까요?

설명

한 시각의 위치만으로는 부족합니다. 알려진 동역학 아래 위치가 변하는 기록으로 속도를 구분할 수 있는지가 Observability입니다.

02 Observer Pole을 더 왼쪽으로 보내면 무엇이 달라질까요?

설명

초기 추정 오차는 빠르게 줄 수 있지만, 측정 잡음에 대한 추정기 이득도 커질 수 있습니다. 수렴과 잡음 반응을 함께 비교합니다.

실습

실습용 노트북 미리보기실습용 노트북 다운로드실습용 mlx 스크립트 미리보기실습용 mlx 스크립트 다운로드

1. 측정값으로 상태를 구분할 수 있는가

시작 조건

위치[m]·속도[m/s]를 상태로 하는 ẋ=Ax+Bu\dot x=Ax+Bu, y=Cxy=Cx입니다. A=[01−2−3]A=\begin{bmatrix}0&1\\-2&-3\end{bmatrix}, B=[01]B=\begin{bmatrix}0\\1\end{bmatrix}, C=[10]C=\begin{bmatrix}1&0\end{bmatrix}을 사용합니다.

진행 방법

  1. 가제어 행렬 [B,AB]와 가관측 행렬 [C;CA]를 만들고 rank를 구하세요.
  2. B를 영벡터로 바꾼 경우와 C=[00]C=\begin{bmatrix}0&0\end{bmatrix}인 경우를 각각 비교하세요.
  3. 입력이 작용하지 않는 경우와 측정이 없는 경우를 구분해 설명하세요.

남길 결과

기록 항목과 확인할 점
조건
Controllability rank
Observability rank
설계 가능 여부

확인할 점

  • 기준 모델의 두 rank가 모두 2인가?
  • rank가 부족한 모델에 Pole placement를 그대로 적용하지 않았는가?

2. State Feedback과 Observer를 연결하기

시작 조건

u=−Kx̂+8ru=-K\hat x+8r, r=1r=1입니다. 제어 Pole은 −2,−4, Observer Pole은 −8,−10입니다. x(0)=[10]x(0)=\begin{bmatrix}1\\0\end{bmatrix}, x̂(0)=[00]\hat x(0)=\begin{bmatrix}0\\0\end{bmatrix}입니다.

진행 방법

  1. K와 L을 계산하고 A−BKA-BK, A−LCA-LC의 고유값을 대조하세요.
  2. 실제 상태와 추정 상태를 동시에 적분해 0–4 s의 위치·속도와 추정 오차를 그리세요.
  3. 추정 오차가 줄어드는 과정과 출력이 목표값으로 가는 과정을 구분하세요.

남길 결과

기록 항목과 확인할 점
K
L
제어 Pole
Observer Pole
최종 오차

확인할 점

  • 계산한 KK, LL을 대입한 A−BKA-BK, A−LCA-LC의 Eigenvalue가 각각 지정한 제어 Pole과 Observer Pole에 일치하는가?
  • t=4t=4 s에서 위치·속도의 추정 오차가 각각 1e-6 m, 1e-6 m/s보다 작은가?

3. Observer를 빠르게 하면 항상 좋은가

시작 조건

측정에 n(t)=0.02*sin(40*t)를 더합니다. Observer Pole (−8,−10), (−20,−25)를 비교하고 제어기 K는 고정합니다.

진행 방법

  1. 실습용 노트북의 함수에 두 Observer 설정을 넣고 같은 시간축에서 제어입력 u를 비교하세요.
  2. 1 s 이후의 위치 오차 RMS, 속도 오차 RMS, 제어입력 RMS를 각각 구하세요.
  3. 초기 추정 오차의 수렴과 측정 잡음에 대한 반응을 별개로 해석하세요.

남길 결과

기록 항목과 확인할 점
Observer Pole
위치 오차 RMS [m]
속도 오차 RMS [m/s]
입력 RMS [N]
선택 근거

확인할 점

  • 두 설정의 잡음·Initial Condition·시간 간격이 같은가?
  • 오차와 입력을 한 지표로 혼동하지 않았는가?

공식 예제·데이터