Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

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

연구 Research/제어 Control

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

보통의공대생 2021. 1. 15. 22:18

이번에는 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');

 

Comments