일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러기록
- Python
- ChatGPT
- 인공지능
- JAX
- Statics
- Linear algebra
- 우분투
- 논문작성
- 논문작성법
- Numerical Analysis
- 수식삽입
- 옵시디언
- 생산성
- WOX
- Zotero
- Dear abby
- 수치해석
- obsidian
- 고체역학
- 텝스공부
- teps
- 텝스
- Julia
- 딥러닝
- IEEE
- LaTeX
- matplotlib
- pytorch
- MATLAB
- Today
- Total
뛰는 놈 위에 나는 공대생
[고등자동제어] Solution matrix via Inverse Laplace & Z-transform 본문
[고등자동제어] Solution matrix via Inverse Laplace & Z-transform
보통의공대생 2020. 12. 31. 22:27
LTI system의 transfer function을 state space로 구성하는 것을 배웠고,
Laplace transform과 Z transform,
LTI system에서 solution을 이미 알고 있습니다.
이번에는 system의 solution을 inverse laplace transform을 통해서도 구하고자 합니다.
1. Solution of Continuous time nth order system
$\frac{d}{dt}x(t)=Ax(t)+Bu(t)$
$x(t)=e^{At}x(0)+\int_{0}^{t}e^{A(t-\tau)}Bu(\tau)d\tau$
우리가 이미 알고 있는 solution은 다음과 같습니다.
위의 equation에 Laplace transform을 취하면
$sX(s)-x(0)=AX(s)+BU(s)$$(sI-A)X(s)=x(0)+BU(s)$
$X(s)=(sI-A)^{-1}x(0)+(sI-A)^{-1}BU(s)$
우변에서 첫번째 항은 free response를 의미하고, 두번째 항은 forced response를 의미합니다.
위에서 이미 알고 있는 time domain의 solution과 s domain의 solution을 비교해보면,
$x(t)=e^{A(t-t_{0})}x(0)+\int_{0}^{t}e^{A(t-\tau)}Bu(\tau)d\tau$
$X(s)=(sI-A)^{-1}x(0)+(sI-A)^{-1}BU(s)$
따라서 다음과 같은 결과를 얻을 수 있습니다.
$\mathcal{L}\{e^{At}\}=(sI-A)^{-1}$
$\mathcal{L}\{\int_{0}^{t}e^{A(t-\tau)}Bu(\tau)d\tau\}=(sI-A)^{-1}BU(s)$
Continuous time forced response의 경우, time domain에 대해서 구할 때는 impulse response function과 input을 convolution함으로써 구할 수 있었습니다. (normal-engineer.tistory.com/25?category=930921, 목차 0번만 보면 됩니다.)
$ \frac{dx(t)}{dt} = Ax(t) + Bu(t)$
$ y(t) = Cx(t) + Du(t)$
다음과 같은 system에서 x(t)는 위에서 구했으므로 y(t) 식에 있는 x(t)에 대입합니다.
$x(t)=\int_{0}^{t}e^{A(t-\tau)}Bu(\tau)d\tau\text{, where initial condition is zero}$
$y(t)=\int_{0}^{t}Ce^{A(t-\tau)}Bu(\tau)d\tau+Du(t)$
다음과 같이 y(t)가 나옵니다. 이 때 input u(t)를 변형하겠습니다.
$u(t)=\int_{0}^{t}\delta(t-\tau)u(\tau)d\tau=\delta(t)*u(t)$
이는 impulse와 u(t)를 convolution 한 것 뿐입니다. 어차피 impulse와 특정 signal을 convolution을 하면 동일한 signal가 나옵니다. 이 형태를 위 식에 대입하겠습니다.
$y(t)=\int_{0}^{t}\{Ce^{A(t-\tau)}Bu(\tau)+D\delta(t-\tau)\}u(\tau)d\tau=g(t)*u(t)$
y(t)는 원래 u(t)와 g(t)(impulse response)의 convolution임을 알고 있었습니다. 따라서 우리는
$g(t-\tau)=Ce^{A(t-\tau)}Bu(\tau)+D\delta(t-\tau)$
다음과 같이 g(t)를 C,B,D에 대한 식으로 표현할 수 있습니다.
$g(t)=Ce^{At}B+D\delta(t)$
$\mathcal{L}\{e^{At}\}=(sI-A)^{-1}$
$\mathcal{L}\{g(t)\}=G(s)=C(sI-A)^{-1}B+D \Rightarrow$ 이 식은 state space model 자체를 laplace transform으로 transfer function을 구했을 때와 동일합니다.
G(s) : system의 transfer function
2. Solution of Discrete time nth order system
(생각해보니까 Discrete LTI system의 solution은 따로 구한 적이 없어서 나중에 쓰고 여기에 링크를 달도록 하겠습니다.)
$x(k+1)=Ax(k)+Bu(k)\text{, where} x\in R^{n}, A\in R^{n\times n}$
$x(k)=A^{k}x(0)+\sum_{j=0}^{k-1}A^{k-1-j}Bu(j)$
이미 위의 difference equation에 대한 solution은 알고 있습니다.
위의 equation에 z-transform을 적용하면,
$zX(z)-zx(0)=AX(z)+BU(z)$
$X(z)=(zI-A)^{-1}zx(0)+(zI-A)^{-1}BU(z)$
continuous time에서 했던 것과 마찬가지로
위의 integer domain에서의 solution과 z domain에서의 solution을 비교합니다.
$\mathcal{Z}\{A^{k}\}=z(zI-A)^{-1}$
$\mathcal{Z}\{\sum_{j=0}^{k-1}A^{(k-1-j)}Bu(j)\}=(zI-A)^{-1}BU(z)$
그리고 위에서 했던 것과 비슷한 forced response에 대해서 다뤄보려고 합니다.
$x(k+1)=Ax(k)+Bu(k)$
$y(k)=Cx(k)+Du(k)$
y(k)에 위에서 구한 $x(k)=\sum_{j=0}^{k-1}A^{k-1-j}Bu(j)$(초기조건 0)을 대입합니다.
$y(k)=C\sum_{j=0}^{k-1}A^{k-1-j}Bu(j)+Du(k)$
이제 (위에서 했던 것처럼) u(k)를 변형하도록 하겠습니다. $u(k)=\sum_{j=0}^{k}\delta(k-j)u(j)$
$\text{pulse : }\delta(k)=\begin{cases} 1,&\text{if k=0}\\ 0,&\text{otherwise}\end{cases}$
$\text{step : }1(k)=\begin{cases} 1,&\text{if }k\geq 0\\ 0,&\text{if }k<0\end{cases}$
$y(k)=C\sum_{j=0}^{k-1}A^{k-1-j}Bu(j)+\sum_{j=0}^{k}D\delta(k-j)u(j)$
$=\sum_{j=0}^{k}[CA^{(k-1-j)}B1(k-1-j)+D\delta(k-j)]u(j)$
y(k)는 원래 g(k)와 u(k)의 convolution($y(k)=\sum_{j=0}^{k}g(k-j)u(j)=(g*u)(k)$)인 것을 알고 있기 때문에 위 식에서 g(k)를 뽑아낼 수 있습니다.
$g(k)=CA^{(k-1)}B1(k-1)+D\delta(k)$
g(k)를 z-transform하면,
$\mathcal{Z}\{g(k)\}=G(z)=C(zI-A)^{-1}B+D$
(아래는 왜 위와 같은 결과가 나왔는지에 대한 참고 식입니다.)
$\mathcal{Z}\{A^{k}\}=z(zI-A)^{-1}=\sum_{k=0}^{\infty}A^{k}z^{-k}$ (이 때 사용한 z-transform은 unilateral z transform임을 유의해주세요.)
$\mathcal{Z}\{A^{k-1}1(k-1)\}=\sum_{k=1}^{\infty}A^{k-1}z^{-k}=z^{-1}+Az^{-2}+A^{2}z^{-1}+\cdots$
$=z^{-1}(I+Az^{-1}+A^{2}z^{-2}+\cdots=z^{-1}\sum_{k=0}^{\infty}=(zI-A)^{-1}$
state space model을 laplace transform으로 푼 것과 LTI system의 equation의 solution은 사실상 동일하다는 것을 이용해
solution의 laplace 형태, 또 laplace 식의 역변환 값을 모두 알 수 있었습니다.
'연구 Research > 제어 Control' 카테고리의 다른 글
[고등자동제어] Stability in the sense of Lyapunov (1) (0) | 2021.01.07 |
---|---|
[고등자동제어] Discrete time from continuous time (0) | 2021.01.05 |
[고등자동제어] Similarity Transformation for matrix exponential (2) (0) | 2020.12.29 |
[고등자동제어] Similarity Transformation for matrix exponential (1) (0) | 2020.12.29 |
[고등자동제어] LTI 시스템의 state equation 풀기 (2) (0) | 2020.12.16 |