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

2021. 1. 15. 22:18·연구 Research/제어 Control

이번에는 Discrete time(DT) system에서의 stability를 이야기하겠습니다.

 


1. Definition of equilibrium

 

input이 없는 nth order nonlinear time-varying discrete time system은 다음과 같습니다.

$x(k+1)=f(x(k),k), x(k_{0})=x_{0}$

 

이 때 $\text{equilibrium state }x_{e}$이 있다고 할 때

$f(x_{e},k)=x(k+1)=x_{e}\text{, where for all k}$일 것입니다. 평형 상태일 때, 아무런 input이 없으면 그 상태를 유지하기 때문입니다.

일반적으로 생각하기 위해 $x=0$을 equilibrium state이라고 합니다. 지금은 nonlinear time-varying discrete time system이어서 식만 봤을 때는 왜 $x=0$이 항상 equilibrium state인지 이해하기 어렵지만, LTI system이라고 생각하면 $x(k+1)=Ax(k)$인데 $x(k)=0$이면 $x(k+1)$도 0라는 것을 쉽게 알 수 있습니다.

 

 

 

2. Stability in the sense of Lyapunov

 

그 전에 공부했던 continuous time에서의 stability와 거의 동일하게 stability를 정의하겠습니다.

(continuous time : normal-engineer.tistory.com/44)

 

$\text{The equilibrium state 0 of }x(k+1)=f(x(k),k)\text{ is stable in the sense of Lyapunov if}$
$\text{for every }\epsilon>0\text{, there exists a }\delta(\epsilon, k_{0})>0\text{ such that }|x(k_{0})|<\delta\Rightarrow |x(k)|<\epsilon, \forall k\geq k_{0}$

 

continuous time system과 거의 동일하지만 sequence라는 점에서 좀 다릅니다.

이를 시각적으로 표현한다면 다음과 같습니다.

$x(k_{0})$이 $\delta$보다 작은 곳에 있다면 그 후의 sequence는 $\epsilon$을 벗어나지 않습니다.

 

 

# uniformly exponentially stable

 

$\text{The equilibrium state 0 of }\dot{x}=f(x,t)\text{ is uniformly exponentially stable if}$
$\text{1. it is stable in the sense of Lyapunov}$
$\text{2. there exists a }\delta>0\text{ and constants }M<\infty\text{ and }0<\rho<1$
$\text{ such that }|x(t)|\leq \rho^{(k-k_{0})}M|x(k_{0})|\text{ for all }|x(k_{0})|<\delta$

 

$|x(k_{0})|$이 $\delta$보다 작을 때 $|x(k)|$가 exponential보다 더 빠르게 감소하면 uniformly exponentially stable이다. uniform은 시간과 관련있으므로, uniformly가 붙어있는 것으로 보아 $M$이나 $\rho$은 k에 대한 변수가 아님을 알 수 있습니다.

 

 

3. Stability of DT LTI System

 

앞서 Continuous time LTI system처럼 DT LTI System의 eigenvalues를 이용해 stability를 알 수 있습니다.

 

$x(k+1)=Ax(k)\text{, where }x(k_{0})=x_{0}$

 

위 식에서 알 수 있듯이 0은 equilbrium state입니다. equilibrium state는 여러 개일 수 있습니다.

 

 

A의 eigenvalues가 $\lambda_{i}$일 때 아래 표에 따라 stability를 알 수 있습니다.

 

CT와 다르게 eigenvalue의 기준이 1입니다.

 

그 이유는 CT의 eigenvalues는 나중에 response를 표현할 때 $e^{\lambda_{i}t}$ 형태가 되기 때문에 $Re\{\lambda\}$에 대하여 0을 기준으로 수렴과 발산이 나뉘고, DT의 eigenvalues는 $\lambda_{i}^{k}$ 형태이기 때문에 0이 아니라 eigenvalue($\lambda$)의 절댓값이 1보다 큰 지 작은 지에 따라 나뉩니다.

 

 

 

4. Routh-Hurwitz criterion (DT)

 

$x(k+1)=Ax(k)$

 

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

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

 

이 때 $A(z)=0$을 만족하는 $z_{0}$가 있을 때 $|z_{0}|<1$을 만족하면 CP는 Hurwitz입니다.

 

또한

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

 

따라서 DT LTI system에서 stability를 알기 위해서는 $z_{0}$값을 구하는 것이 중요합니다.

하지만 CT에서 마찬가지로 CP의 차원이 높아지면 그 해를 구하기가 어렵다는 점이 문제가 되는데, CT에서처럼 Routh array를 만들어서 구하면 편할 것 같습니다.

 

 

1) Bilinear Transformation

 

그런데, 위에서 eigenvalues 기준을 봐도 알겠지만 CT에서는 $Re{s_{0}}\text{, where }A(s_0)=0$이 0보다 큰 지 작은 지를 판단하고 DT에서는 $|z_{0}|\text{, where }A(z_{0})=0$이 1보다 큰 지 작은 지에 따라 판단합니다.

즉, s-domain과 z-domain이 조금 다르다고 생각해볼 수 있습니다.

 

사실 s-plane과 z-plane 형태를 보면 더욱 알기 쉽습니다.

 

위의 그림에서 왼쪽은 s-plane이고 오른쪽은 z-plane입니다. $e^{s\Delta t}=z$이므로 $s=j\omega=\text{s on }j\omega\text{-axis}$일 때 $e^{j\omega\Delta t}=1$입니다. 즉 s-plane에서 봤을 때 진동하는 성분이 z-plane을 기준으로는 $|z|=1$인, 즉, 반지름이 1인 원이 됩니다.

 

만약 $s=\sigma>0$이라고 해봅시다. 그러면 $e^{\sigma\Delta t}=z>1$입니다. 즉, $|z|=1$인 원 밖에 z값이 있을 것입니다.

반대로 $s=-\sigma<0$이라고 해봅시다. 그러면 $e^{-\sigma\Delta t}=z<1$입니다. 이 경우에는, $|z|=1$인 원 안에 z값이 있을 것입니다.

 

따라서 s-plane과 z-plane은 같은 값이어도 그 영역이 다릅니다. 따라서 우리는 s-plane에 있는 값과 z-plane에 있는 값을 서로 변환할 수 있게 만듦으로써 z-domain의 CP를 s-domain에서 Routh-Hurwitz criterion을 적용함으로써 그 stability를 알 수 있지 않을까, 생각해볼 수 있습니다.

 

이렇게 z-domain과 s-domain을 연결해주는 transformation을 Bilinear Transformation이라고 합니다.

 

결론적으로만 말하면,

$\text{Bilinear Transformation : }z=\frac{1+s}{1-s}$

 

Bilinear Transformation에 대한 자세한 설명은 다른 포스팅에서 하도록 하겠습니다. (작성하게 되면 이 글에 링크를 달아놓겠습니다.)

 

 

2) Routh-Hurwitz criterion

 

이제 Bilinear Transformation을 구했겠다, z-domain의 CP를 s-domain으로 바꾸겠습니다.

 

 

$A(z)=z^{n}+a_{1}z^{n-1}+\cdots+a_{n}$

$A(z)|_{z=\frac{1+s}{1-s}}=(\frac{1+s}{1-s})^{n}+a_{1}(\frac{1+s}{1-s})^{n-1}+\cdots+a_{n}=\frac{A^{*}(s)}{(1-s)^{n}}$

 

여기서 구한 $A^{*}(s)$를 Characteristic Polynomial로 사용하겠습니다.

 

$A^{*}(s)=a^{*}_{0}s^{n}+a^{*}_{0}s^{n-1}+\cdots+a^{*}_{n}=A(z)|_{z=\frac{1+s}{1-s}}(1-s)^{n}$

 

또한 $A(z)$와 $A^{*}(s)$는 둘이 Bilinear transformation으로 연결되어있기 때문에

$A^{*}(s_{0})=0\Leftrightarrow A(z_{0})=0\text{, where }z_{0}=\frac{1+s_{0}}{1-s_{0}}$이 성립합니다.

 

또한 $Re{s_{0}}<0\Leftrightarrow |z_{0}|<1$이므로 $A^{*}(s_{0})$에 대해 Routh-Hurwitz criterion을 적용할 수 있습니다.

만약 Routh-array의 첫번째 열이 모두 양수이면, 이 DT System은 stable합니다.

또한 Routh-array의 첫번쨰 열에 음수가 있어서 부호의 변화가 있다면, 이 부호의 변화 횟수만큼 $|z|>1$, 즉, 원 밖에 있는 roots값이 있다고 볼 수 있습니다.

 

 

Example)

 

$A(z)=z^{3}+0.8z^{2}+0.6z+0.5$

라는 식이 있을 때 Bilinear transformation과 routh-hurwitz를 이용해 stable한 지 알아보겠습니다.

 

$A^{*}(s)=A(z)|_{z=\frac{1+s}{1-s}}(1-s)^{3}=0.3s^{3}+3.1s^{2}+1.7s+2.9$

 

이 식의 routh array를 구하면,

 

첫번째 열이 모두 양수이므로 이 시스템은 stable합니다.

 

 

실제로 MATLAB을 통해 $A(z)=0$을 풀고 그 roots 값을 plot해보면, 이 CP를 가진 system이 stable임을 알 수 있습니다.

빨간색 원은 z=1인 원이고 파란색 원이 roots를 표시한 것입니다. 모든 roots가 이 원 안에 있으므로 system은 stable입니다.

 

 

간단한 MATLAB CODE

p=[1 0.8 0.6 0.5];
r=roots(p);
plot(r,'o');
i=1;
for t=0:0.01:10
    cir(i)=exp(-1i*t);
    i=i+1;
end
hold on;
plot(cir);
grid on;
xlabel('imaginary axis');
ylabel('real axis');

 

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

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

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바