[고등자동제어] Stability in the sense of Lyapunov (2)

2021. 1. 7. 12:37·연구 Research/제어 Control

저번에 이어서 stability of LTI system과 Routh-Hurwitz criterion을 정리하겠습니다.

 


1. Stability of LTI system

 

앞서 배울 때는 기본적으로 nonlinear time-varying system을 고려했습니다. 대부분의 시스템이 그렇기도 하구요.

 

하지만 LTI system에 대하여 우리는 solution도 알고 있고 해석 방법도 알고 있기 때문에, 이것들을 이용해 LTI system은 그 stability를 쉽게 알 수 있습니다.

 

LTI system에서 eigenvalues를 통해 stability를 판별할 수 있습니다.

 

 

다음은 stability를 판별할 수 있게 도식화해놓은 것입니다.

 

1) LTI system에서 eigenvalues 중 하나라도 real part가 0보다 크면 그 solution은 발산합니다. 즉, unstable

2) 모든 eigenvalues의 real part가 0보다 작으면 exponentially stable

3) real part가 0인 eigenvalues가 있다는 것은 imginary axis에 eigenvalue가 있다는 뜻입니다. imaginary axis에 eigenvalue가 있다는 것은 state가 진동한다는 뜻이므로, 특정 범위 안에서 왔다갔다하는 것 자체가 unstable함을 의미하지는 않습니다. 하지만 만약 imaginary axis에 중복된 eigenvalue $\lambda_{j}$가 있고, $nullity[\lambda_{i}I-A]=m_{j}\text{, where }m_{j}\text{ is multiplicity}$이라면 stable in the sense of Lyapunov입니다.

그러나 nullity가 $m_{j}$보다 작을 경우 jordan matrix가 나오므로 unstable합니다.

 

 

# 의문점

위의 특수한 케이스는 무엇이 있을까?

 

 

 

아래 그림은 각 eigenvalue의 상황에 따른 결과입니다.

normal-engineer.tistory.com/39?category=930921

 

[고등자동제어] Similarity Transformation for matrix exponential (2)

(1)에서 이어지는 내용이기 때문에 (1)먼저 보는 것을 추천드리지만, (2)만 보는 분들을 위해 matrix A에 대해 eigenvalues, eigenvectors, 그리고 transformation matrix T까지 구하는 과정들을 첨부합니다. (읽..

normal-engineer.tistory.com

제 포스팅을 보시면 좀 더 이해하기 수월할 것입니다.

 

 

 

 

 

 

 

2. Routh-Hurwitz criterion

 

위에서 봤듯이 LTI system의 eigenvalue을 알면 쉽게 stability를 판별할 수 있습니다.

 

$\dot{x}=Ax$

$\text{charateristic polynomial(CP) of matrix A}\in \mathbb{R}^{n\times n}$

$A(s)=det{sI-A}=s^{n}+a_{1}s^{n-1}+\cdots+a_{n}$

 

만약 $A(s_{0})=0$을 만족하는 모든 $s_{0}$에 대해서 $Re{s_{0}}<0$이라면 characteristic polynomial is Hurwitz.

 

또한

$\text{matrix }A\in\mathbb{R}^{n\times n}\text{ is Hurwitz if its CP is Hurwitz}$

 

위의 내용을 봐서 아시겠지만, Hurwitz인 경우에는 system이 stable합니다.

그런데 문제는 Hurwitz를 알기 위해 위의 CP를 풀어야 한다는 것입니다. 2차, 3차식까지는 괜찮겠지만 그 이후부터는 계산하기가 아주 복잡합니다. 그래서 굳이 CP의 근을 구하지 않더라도 쉽게 stability를 판별하기 위한 방법이 있습니다.

 

1) Routh array

 

$A(s)=a_{0}s^{6}+a_{1}s^{5}+a_{2}s^{4}+a_{3}s^{3}+a_{4}s^{2}+a_{5}s+a_{6}\text{, where }a_{0}>0$

다음과 같은 Characteristic Polynomial(CP)가 있을 때 routh array를 만들어보겠습니다.

($a_{0}$가 양수가 되도록 맞추어두고 시작해주세요. 어차피 A(s)=0인 근을 찾는 것이므로 처음에 CP의 최고차항 계수가 음수로 나오더라도 모든 계수의 부호를 바꿔줌으로써 최고차항 계수를 양수로 바꿔도 됩니다.)

 

가장 높은 차수의 계수부터 지그재그로 적습니다. 지금 예시는 6차항이 최고차항이지만, 5차식이면 아래 표의 6차항 자리에 5차항의 계수가 들어갑니다. 맨 마지막 상수항을 소진할 때까지 표를 늘려주시면 됩니다.

 

그리고 아래 표부터는 계산 규칙대로 표를 채워주시면 됩니다.

Routh array

우리가 주목해야할 것은 맨 왼쪽 열입니다.

 

첫번째 열의 모든 elements가 양수이면, CP는 Hurwitz입니다.

 

$a_{0}, a_{1}, A, C, E, F, a_{6}$ 에서 부호의 변화가 있으면 그 부호의 변화 횟수만큼 Real part가 음수인 근이 존재하는 것입니다.

 

Example)

이 예시의 CP는 Real part가 음수인 근(root)이 2개입니다. 말했다시피 부호 변화의 횟수만큼 음수인 근이 있습니다.

실제로 위의 CP의 근을 구하면

 

Right half plane에 root가 2개가 있음을 확인할 수 있습니다. 이렇게 직접 근을 구하지 않더라도 routh array만 보면, unstable함을 미리 알 수 있습니다.

 

 

2) Routh array의 special case

 

① 같은 열에서 0이 나온 다음에, 0이 아닌 숫자가 나올 때

 

다음과 같이 routh array가 있을 때 $s^{4}$열에서 0 다음에 4가 나옵니다. 이렇게 0 다음에 0이 아닌 숫자(여기에서는 4)가 나올 때 계산할 필요없이 unstable이라고 생각하면 됩니다. 계산을 해보면 양수가 나오다가 $-frac{3}{2}$가 나오는 것을 확인할 수 있습니다.

 

다른 예시로는,

위의 그림에서도 계산을 하다가 $s^{2}$열에서 0 다음에 5가 나오는 것을 확인할 수 있습니다. 이 때도 계산할 필요없이 unstable임을 알 수 있는데 직접 계산해보면 음수가 나옵니다.

 

또한 위의 식 $s^{4}+2s^{3}+2x^{2}+4s+5$에서 Right half plane에 root가 몇 개 있는지 궁금할 때는

 

 

0 대신 $\epsilon$으로 대체한 다음에 $s^{0}$열까지 진행하고, $\epsilon$을 $0^{+}$로 수렴하게 만들면 부호가 나옵니다. 위의 경우 부호가 두 번 바뀌었으므로 RHP에 root가 2개임을 알 수 있습니다.

 

 

② 열의 모든 항이 0일 때

 

다음과 같은 식이 있을 때 $s^{1}$열이 모두 0입니다. 이 때는 $s^{2}$와 $s^{1}$열을 하나로 묶고 auxiliary polynomial을 만듭니다. 이 때는 $6s^{2}+12s^{0}$입니다. 처음에 characteristic equation으로 표를 만들 때처럼 지그재그로 polynomial의 계수를 넣어주면 됩니다. $s^{2}$에서 시작하므로 auxiliary polynomial의 첫번째 항이 $s^{2}$이 됩니다.

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

[고등자동제어] Lyapunov Direct Method (1) - Positive definite  (0) 2021.01.22
[고등자동제어] Stability in the sense of Lyapunov (3)  (0) 2021.01.15
[고등자동제어] Stability in the sense of Lyapunov (1)  (0) 2021.01.07
[고등자동제어] Discrete time from continuous time  (0) 2021.01.05
[고등자동제어] Solution matrix via Inverse Laplace & Z-transform  (0) 2020.12.31
'연구 Research/제어 Control' 카테고리의 다른 글
  • [고등자동제어] Lyapunov Direct Method (1) - Positive definite
  • [고등자동제어] Stability in the sense of Lyapunov (3)
  • [고등자동제어] Stability in the sense of Lyapunov (1)
  • [고등자동제어] Discrete time from continuous time
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (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 &amp; 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[고등자동제어] Stability in the sense of Lyapunov (2)
상단으로

티스토리툴바