[제어] Realization에 대한 고찰

2022. 4. 16. 15:47·연구 Research/제어 Control

 

 

이전 글에서 transfer function을 canonical form으로 바꾸는 것, 즉, realization에 대해서 공부를 했었다.

 

이전 글 : https://normal-engineer.tistory.com/25

 

[고등자동제어] State space와 transfer function의 관계

MATLAB에서는 친절하게 State space model과 transfer function 간에 전환하기 쉽도록 되어 있습니다. 그러다보니 굳이 원리를 몰라도 state space model에서 transfer function으로 바꿀 수도 있고, 반대도 가능..

normal-engineer.tistory.com

 

그런데 이 realization은 여러 가지 방식으로 할 수 있다. 즉, 고정된 form이 없다는 것이다. 그래서 MATLAB에서 realization하는 함수 canon을 아무 생각없이 쓰면 안된다.

 

 

여기서는 대표적인 canonical form인 controllable, observable canonical form에 대해서 더 깊게 살펴보고자 한다. 그리고 왜 controllable, observable canonical form으로 나타낼 수 있는 transfer function(TF)가 항상 controllable하고, observable한지에 대해서 증명한다.

더 나아가 multi input multi output, 다중입력 다중출력일 때는 어떻게 canonical form이 나오는지도 살펴본다.

 

공부를 다시 하다보니 새로 알게 된 내용이 많아서 내용을 더 추가하게 되었다.

 


 

1. Controllable canonical form

 

 

이전에 배웠던 controllable canonical form은

 

$G(s)=\frac{Y(s)}{U(s)}=\frac{b_{2}s^{2}+b_{1}s+b_{0}}{s^{3}+a_{2}s^{2}+a_{1}s+a_{0}}$일 때

 

$$
\left\{\begin{array}{l}
\dot{x}(t)=\left[\begin{array}{ccc}
0 & 1 & 0 \\
0 & 0 & 1 \\
-a_{0} & -a_{1} & -a_{2}
\end{array}\right] x(t)+\left[\begin{array}{l}
0 \\
0 \\
1
\end{array}\right] u(t) \\
y(t)=\left[\begin{array}{lll}
b_{0} & b_{1} & b_{2}
\end{array}\right] x(t)
\end{array}\right.
$$

다음과 같이 realization을 할 수 있습니다. (자세한 유도방식은 이 글의 3번째 항목에서 찾을 수 있습니다.)

 

간단하게 유도를 적으면 

$\frac{Y}{X}=b_{2}s^{2}+b_{1}s+b_{0} \quad \Rightarrow \quad y =b_{2}\ddot{x}+b_{1}\dot{x}+b_{0}x $

$\frac{X}{U}=\frac{1}{s^{3}+a_{2}s^{2}+a_{1}s+a_{0}} \quad \Rightarrow\quad x^{(3)}+a_{2}\ddot{x}+a_{1}\dot{x}+a_{0}x = u$

$x_{1}=x ,\; x_{2}=\dot{x}, \; x_{3}=\ddot{x}$라고 두고 식을 정리하면 위와 같이 나온다.

 

그런데 동일한 유도방식에서

$x_{3}=x ,\; x_{2}=\dot{x},\; x_{3}=\ddot{x}$로 두면 

 

$$
\left\{\begin{array}{l}
\dot{x}(t)=\left[\begin{array}{ccc}
-a_{2} & -a_{1} & -a_{0} \\
1 & 0 & 0 \\
0 & 1 & 0
\end{array}\right] x(t)+\left[\begin{array}{l}
1 \\
0 \\
0
\end{array}\right] u(t) \\
y(t)=\left[\begin{array}{lll}
b_{2} & b_{1} & b_{0}
\end{array}\right] x(t)
\end{array}\right.
$$

이와 같은 꼴이 나올 수 있다. 그러나 일반적으로 위에 있는 꼴로 많이 나타낸다.

 


2. Observable canonical form

 

마찬가지로 observable form도 어떻게 식을 세우느냐에 따라 모습이 달라지는데 이전 글에서는

TF  $G(s)=\frac{Y(s)}{U(s)}=\frac{b_{2}s^{2}+b_{1}s+b_{0}}{s^{3}+a_{2}s^{2}+a_{1}s+a_{0}}$에 대해서

 

$$\frac{d}{dt}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}=\begin{bmatrix}-a_{2}&1&0\\-a_{1}&0&1\\-a_{0}&0&0\end{bmatrix}x+\begin{bmatrix}b_{2}\\b_{1}\\b_{0}\end{bmatrix}u$$

$$y=\begin{bmatrix}1&0&0\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}$$

 

이와 같이 표현을 했었다. 

 

유도방법은 다음과 같다.

 

$y^{(3)}+a_{2}\ddot{y}+a_{1}\dot{y}+a_{0}y = b_{2}\ddot{u}+b_{1}\dot{u}+b_{0}u$이 때 좌변은 미분이 들어가는 항끼리 모으고, 우변은 미분이 없는 항끼리 모은다.

 

$\frac{d}{dt}(\ddot{y}+a_{2}\dot{y}+a_{1}y-b_{2}\dot{u}-b_{1}u)=-a_{0}y+b_{0}u \Rightarrow \frac{d}{dt}x_{3}=-a_{0}y+b_{0}u$

괄호 안에 들어있는 문자들은 $x_{3}$라고 할 때 $x_{3}$에 대한 선형 미분방정식이 나온다.

 

그리고 $x_{3}$는 아래와 같은 식이 성립을 한다.

$x_{3}=\ddot{y}+a_{2}\dot{y}+a_{1}y-b_{2}\dot{u}-b_{1}u$

이를 다시 미분이 있는 term끼리 묶으면

 

$\frac{d}{dt}(\dot{y}+a_{2}y-b_{2}u)=x_{3}-a_{1}y+b_{1}u \Rightarrow \frac{d}{dt}x_{2}=x_{3}-a_{1}y+b_{1}u$

이렇게 두 번째 미분방정식을 얻는다.

 

$x_{2}=\dot{y}+a_{2}y-b_{2}u$

$\dot{y}=\dot{x_{1}}=x_{2}-a_{2}y+b_{2}u$

마지막으로 $y=x_{1}$으로 설정함으로써 세 번째 미분방정식을 얻는다.이 각각의 식들을 행렬식으로 표현하면 위의 결과가 나온다.

 

그러나 식을 어떻게 유도하느냐에 따라 다음과 같이 나올 수 있다.

만약에 처음 식을 $x_{3}$이 아니라 $x_{1}$으로 뒀으면 아래처럼 행렬식이 나온다.

 

$\frac{d}{dt}x_{1}=-a_{0}y+b_{0}u$

$\frac{d}{dt}x_{2}=x_{1}-a_{1}y+b_{1}u$

$\dot{y}=\dot{x_{3}}=x_{2}-a_{2}y+b_{2}u$

 

$$\frac{d}{dt}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}=\begin{bmatrix}0&0&-a_{0}\\1&0&-a_{1}\\0&1&-a_{2}\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}+\begin{bmatrix}b_{0}\\b_{1}\\b_{2}\end{bmatrix}u$$

$$y=\begin{bmatrix}0&0&1\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}$$

 

이 식이 MATLAB에서 canon식을 썼을 때 채택하는 방식이다.


3. Duality

 

원래 controllability와 observability는 duality가 존재하기 때문에 $(A,B)$와 $(A^{\top},C^{\top})$이 대응된다.

 

그래서 위의 식을 살펴보면 

$$
\text{Controllable canonical form }\left\{\begin{array}{l}
\dot{x}(t)=\left[\begin{array}{ccc}
0 & 1 & 0 \\
0 & 0 & 1 \\
-a_{0} & -a_{1} & -a_{2}
\end{array}\right] x(t)+\left[\begin{array}{l}
0 \\
0 \\
1
\end{array}\right] u(t) \\
y(t)=\left[\begin{array}{lll}
b_{0} & b_{1} & b_{2}
\end{array}\right] x(t)
\end{array}\right.$$

$$\text{Observable canonical form }\left\{\begin{array}{l} \frac{d}{dt}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}=\begin{bmatrix}0&0&-a_{0}\\1&0&-a_{1}\\0&1&-a_{2}\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}+\begin{bmatrix}b_{0}\\b_{1}\\b_{2}\end{bmatrix}u \\
y=\begin{bmatrix}0&0&1\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}\end{array}\right.
$$

이 두 식이 서로 duality가 성립한다.

 

마찬가지로 남은 두 식끼리도 duality가 성립한다.

$$
\text{Controllable canonical form }\left\{\begin{array}{l}
\dot{x}(t)=\left[\begin{array}{ccc}
-a_{2} & -a_{1} & -a_{0} \\
1 & 0 & 0 \\
0 & 1 & 0
\end{array}\right] x(t)+\left[\begin{array}{l}
1 \\
0 \\
0
\end{array}\right] u(t) \\
y(t)=\left[\begin{array}{lll}
b_{2} & b_{1} & b_{0}
\end{array}\right] x(t)
\end{array}\right.
$$

$$\text{Observable canonical form }\left\{\begin{array}{l}\frac{d}{dt}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}=\begin{bmatrix}-a_{2}&1&0\\-a_{1}&0&1\\-a_{0}&0&0\end{bmatrix}x+\begin{bmatrix}b_{2}\\b_{1}\\b_{0}\end{bmatrix}u\\ y=\begin{bmatrix}1&0&0\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\x_{3}\end{bmatrix}\end{array}\right.$$

 

 

4. Observable canonical form이 항상 observable한가?

 

$$\frac{d}{dt}\begin{bmatrix}x_{1}\\x_{2}\\ \vdots \\ x_{n}\end{bmatrix}=\begin{bmatrix}-a_{n-1}&1&\cdots & 0\\-a_{n-2}&0&1& \\ \vdots& & & \\ -a_{0}& 0 & \cdots & 0 \end{bmatrix}x+\begin{bmatrix}b_{n-1}\\ b_{n-2} \\ \vdots \\b_{0}\end{bmatrix}u$$
$$y=\begin{bmatrix}1&0&\cdots&0\end{bmatrix}\begin{bmatrix}x_{1}\\x_{2}\\ \vdots \\ x_{n}\end{bmatrix}$$

 

Observable canonical form은 위의 form으로 사용한다. 일반화를 위해서 TF의 분모가 n차식인 경우를 사용한다.

 

 

Observable canonical form으로 표현될 수 있는 system은 observable하다고 알려져있다. (controllable은 담보할 수 없음) 이를 증명하고자 한다.

 

증명 첫 번째

 

Observability matrix의 rank를 확인하는 것

$\begin{bmatrix}C \\ CA \\ CA^{2} \\ \vdots \\ CA^{n} \end{bmatrix}$

를 확인한다.

 

 

 

 

증명 두 번째

 

Popov-Belevitch-Hautus(PBH) test를 사용하는 것

 

$\operatorname{rank} \begin{bmatrix}\lambda I -A \\ C \end{bmatrix}=n \quad \forall \lambda \in\mathbb{C} \Leftrightarrow \text{System is observable}$

 

이 증명방법이 더 손쉽다.

 

 

 

 

 

 

5. Controllable canonical form이 항상 controllable

 

 

 

 


참고문헌

 

MATLAB 문서

https://kr.mathworks.com/help/control/ref/lti.canon.html

 

Canonical state-space realization - MATLAB canon - MathWorks 한국

The default value of condt input argument is now 1e4. Previously, the default value was 1e8. Increasing condt reduces the size of the eigenvalue clusters in the transformed model but also decreases the accuracy of the transformation. The new default value

kr.mathworks.com

수업에서 들은 내용

인터넷에서 찾은 수업자료 https://courses.ece.ubc.ca/568/handouts/realizations.pdf

 

저작자표시 비영리 변경금지 (새창열림)

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

[제어] Regulation problem과 Tracking problem  (0) 2022.06.05
[제어] MATLAB을 활용한 Realization  (0) 2022.04.16
[제어] Transfer function을 s plane에 mapping하는 코드  (0) 2022.04.11
[제어] Actuator modelling  (0) 2021.12.16
[제어] H2 norm, H infinity norm 개념  (0) 2021.11.30
'연구 Research/제어 Control' 카테고리의 다른 글
  • [제어] Regulation problem과 Tracking problem
  • [제어] MATLAB을 활용한 Realization
  • [제어] Transfer function을 s plane에 mapping하는 코드
  • [제어] Actuator modelling
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (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 (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[제어] Realization에 대한 고찰
상단으로

티스토리툴바