[고등자동제어] controllability/observability example

2021. 2. 25. 17:58·연구 Research/제어 Control

지금까지 배웠던 controllability와 observability를 실제 예시를 통해 보기로 하겠습니다. (이전 글 참고)

 

이번에는 그림도 들어가고 matrix의 차원도 높아서 그림 위주로 작성하려고 합니다.

 


1. Controllability

 

위와 같은 dynamic system에서 $x_{1}$은 $m_{1}$의 position, $x_{2}$는 velocity로 설정했습니다.

마찬가지로 $m_{2}$의 position, velocity 각각 $x_{3},x_{4}$로 설정했습니다.

 

따라서 state는 $\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\\x_{4}\end{bmatrix}$

 

그림에서 위 식이 이 system의 equation이고

아래 P matrix는 controllability matrix입니다.

 

P matrix의 determinant를 통해 rank를 알아보겠습니다.

저의 경우에는 P matrix가 문자로 된 식이므로 matlab에서 determinant를 구하는 기능을 사용했습니다.

(참고 : normal-engineer.tistory.com/77)

 

 

$\frac{m_{1}}{k_{1}}\neq \frac{m_{2}}{k_{2}}$이어야 이 시스템은 controllable합니다.

 

 

2. Observability

마찬가지로 동일한 시스템에 대해서 observability를 살펴보겠습니다.

 

만약 $x_{1}+x_{3}$을 관찰할 수 있을 때(두 mass 사이의 거리를 측정)

Q matrix를 구한 다음에 determinant를 알아보았습니다.

$\frac{m_{1}}{k_{1}}\neq \frac{m_{2}}{k_{2}}$이면 Q가 full rank이므로 observable합니다.

 

 

만약 센서가 $m_{1}$에만 달려서 position을 관찰할 수 있다고 하겠습니다. 그러면 $x_{1}$만 관찰할 수 있으므로 $C=\begin{bmatrix}1&0&0&0\end{bmatrix}$가 되므로 이를 이용해 Q matrix를 구할 수 있습니다.

 

zero column이 존재하기 때문에 $k_{1},m_{1}$에 관계없이 Q matrix는 full rank가 아니므로, 이 시스템은 unobservable합니다.

 

마지막으로 $x_{1}$과 $x_{3}$를 독립적으로 관찰할 수 있을 때 Q matrix를 구했다. $nr \times n$ matrix이기 때문에 $8 \times 4$ matrix입니다. 위의 matrix를 보면 알 수 있는 것처럼 column에서 $k_{1},k_{2},m_{1},m_{2}$ 값과 관계없이 항상 rank 4이므로 full rank로 observable합니다.

 


 

아래는 MATLAB에서 P, Q matrix에 대해 determinant를 구할 수 있는 code입니다.

 

 

% controllability & observability matrix

k1 = sym('k1');
k2 = sym('k2');
m1 = sym('m1');
m2 = sym('m2');

P = [1 1/m1 0 -k1/(m1^2); 1/m1 0 -k1/(m1^2) 0; 0 1/m2 0 -k2/(m2^2); 1/m2 0 -k2/(m2^2) 0];
det_P = det(P);

A = [0 1 0 0; -k1/m1 0 0 0; 0 0 0 1; 0 0 -k2/m2 0];
C = [1 0 0 0; 0 0 1 0];
Q = [C;C*A;C*A^2;C*A^3];

det_Q = det(Q);

 

 

'연구 Research > 제어 Control' 카테고리의 다른 글

[제어] Control theory 관련 레퍼런스 정리  (1) 2021.11.11
[고등자동제어] Singular Value Decomposition과 Degree of Controllability  (0) 2021.02.26
[고등자동제어] Observability in Continuous time  (0) 2021.02.25
[고등자동제어] Controllability in Continuous time  (0) 2021.02.25
[고등자동제어] Observability in discrete time  (0) 2021.02.23
'연구 Research/제어 Control' 카테고리의 다른 글
  • [제어] Control theory 관련 레퍼런스 정리
  • [고등자동제어] Singular Value Decomposition과 Degree of Controllability
  • [고등자동제어] Observability in Continuous time
  • [고등자동제어] Controllability in Continuous time
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (468)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (27)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 실험 Experiment (1)
      • 유학 생활 Daily (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    논문작성법
    Numerical Analysis
    텝스
    JAX
    teps
    matplotlib
    Python
    인공지능
    옵시디언
    Dear abby
    LaTeX
    생산성
    WOX
    텝스공부
    IEEE
    Linear algebra
    Julia
    고체역학
    서버
    우분투
    pytorch
    수치해석
    ChatGPT
    에러기록
    논문작성
    obsidian
    MATLAB
    Zotero
    Statics
    딥러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[고등자동제어] controllability/observability example
상단으로

티스토리툴바