일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- LaTeX
- MATLAB
- Dear abby
- 우분투
- JAX
- IEEE
- obsidian
- Numerical Analysis
- 에러기록
- 논문작성법
- Julia
- 수식삽입
- 옵시디언
- 논문작성
- 수치해석
- 텝스
- 텝스공부
- teps
- Python
- 딥러닝
- ChatGPT
- pytorch
- matplotlib
- Linear algebra
- Zotero
- 고체역학
- Statics
- 인공지능
- 생산성
- WOX
- Today
- Total
뛰는 놈 위에 나는 공대생
[고등자동제어] Stability in the sense of Lyapunov (3) 본문
이번에는 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 |