2023.02.12 - [Automatic Control] - 4-1. Impulse Response - 임펄스 응답
4-1. Impulse Response - 임펄스 응답
일반적으로 정지해 있는 물체에 힘이 작용하면 움직인다. 힘이 가해지는 세기에 따라 많이 움직일수도 있고 움직이지 않을 수 도 있다. 또는 진동할 수 도 있다. 이 물체의 위치가 변하지 않는
dongmin-archive.tistory.com
Impulse Response에 이어 이번 글에서는 Step Response를 공부해 보자.
Impulse Response는 순간적인 힘이 작용 했을 때 물체의 응답을 의미했다. 그러나 현실에서는 순간적인 힘 보다는 지속적인 힘이 많이 작용한다. 그럴 경우에 물체는 어떻게 반응할까?
Unit Step Function
Unit Step Function은 일정 시간동안 동일한 값을 갖는 Function을 의미한다. 수학적으로 아래와 같이 표현한다.
$$u(t-a) = \begin{cases} 1 \quad (t>a) \\ 0 \quad (t<a) \end{cases}$$
이때 $u(t-a)$를 Unit Step Function이라고 한다. a초 이후 크기가 1인 힘이 계속 작용한다고 생각하면 된다.
미분 방정식을 쉽게 풀기 위해, 힘이 작용하기 시작하는 순간을 0초로 설정한다. 수식으로는 $u(t)$이다. 이 함수의 라플라스 변환은 아래와 같다.
$$\int_0^{\infty}u(t)e^{-st}dt = \int_0^{\infty}e^{-st}dt=[-\frac{1}{s}e^{-st}]_0^{\infty}=\frac{1}{s}$$
Step Response
Unit Step Function을 이용해 아래와 같이 모델링하자.
$$\ddot{x} + 2\zeta\omega\dot{x}+\omega^2x = \omega^2u(t)$$
그러면 이전 글과 같은 방법으로 해를 구할 수 있다.
$$\mathscr{L}\{\ddot{x} + 2\zeta\omega\dot{x}+\omega^2x\} = \mathscr{L}\{u(t)\}$$
$$X(s)(s^2+2\zeta\omega s+\omega^2) = \frac{\omega^2}{s}$$
$$\therefore X(s) = \frac{\omega^2}{s(s^2+2\zeta\omega s+\omega^2)}$$
$$=\frac{1}{s} - \frac{s+2\zeta\omega}{s^2+2\zeta\omega s+\omega^2}$$
이때 우변을 $\omega^2 u(t)$로 한 이유는, 첫 번째로 미분 방정식을 쉽게 풀기 위해서 이며 두 번째 이유는 추후에 배우게 될 것이다. $X(s)$를 역변환 하면 해는 아래와 같다.
$$x(t)=1-e^{-\sigma t}\bigg\lgroup cos(\omega_d t)+\frac{\sigma}{\omega_d}sin(\omega_dt)\bigg\rgroup \; \big(\sigma=\zeta\omega, \quad \omega_d = \omega\sqrt{1-\zeta^2} \big)$$
$$s = -\sigma \pm j\omega_d$$
Case 1. $\zeta=1.5$, $\omega=1$
$\zeta$가 1보다 크므로 진동하지 않을 것으로 예상할 수 있다.
Case 2. $\zeta=3$, $\omega=1$
case1 보다 수렴하는 기울기는 안정적으로 변했지만, 수렴 속도가 느려진 것을 확인할 수 있다.
Case 3. $\zeta=0.7$, $\omega=1$
진동으로 인해 overshoot 현상이 있었지만 빠르게 수렴하는 것을 확인할 수 있다.
Case 4. $\zeta=0.2$, $\omega=1$
진동이 심해 불안정하고 수렴하는데까지 시간이 오래 걸린 것을 알 수 있다.
위의 경우로 보아 Step Response도 Impulse Response와 마찬가지로 $\zeta$에 따라 수렴성이 변한다. $\zeta$가 1보다 클 경우 진동하지 않으며 $\zeta$가 1보다 작을 경우 진동한다. 그러나 $\zeta$가 1보다 크게 되면 수렴하기 까지 시간이 오래 걸린다. 또한 $\zeta$가 너무 작을 경우 진동이 심해진다. 그러므로 적절한 $\zeta와 \omega$를 갖도록 M, K, C를 정해 주어야 한다.
cf.
앞 글에서 언급했지만 M, K, C는 센서로부터 읽어온 센서값에 곱해주는 Parameter가된다. 그것들의 합이 입력값이 되는 것이다. 따라서 제어 목표를 얼마나 안정적이고 빠르게 수렴할지 정해졌다면, 그에 따르도록 M, K, C를 정해주어야 한다. 자세한 이론은 Feedback control에서 공부할 것이다.
Final Value Theorem
Final Vaulse Theorem이란 시간이 충분히 흘렀을 때 x(t)가 어디로 수렴하는지에 대한 이론이다. 앞서 Step Response에서 입력값은 외력 이라고 설명했다. 그러나 이렇게 말 할 수 도 있다. "제어 커멘드". 즉, 물체를 1만큼 이동시키고 싶어서 1이라는 입력값을 주었다. 물론 1의 힘을 준다고 해서 물체가 1로 갈지 말지는 모른다. $($ 그렇기 때문에 Feedback control이 필요하다 $)$ Final Value Theorem은 물체가 최종적으로 위치하는 곳을 알 수 있게 해준다. 한마디로 출력값이 입력값을 잘 따라가 수렴하는지 알 수 있게 해준다. 우리가 알고싶은 것은 아래와 같다. $($ u 를 $x_{command}$라고 쓰겠다.$)$
$$\lim_{t \rightarrow \infty}x(t) = x_{command} ?$$
위에 그래프를 다시 보자. 우리는 1이라는 입력값을 주었다. 이것이 제어 목표라면, x의 최종값은 1이 될 것으로 기대할 것이다. 실제로 위의 예제들은 1로 수렴했다. 위에서 $\omega^2 u(t)$를 붙인 이유를 설명한 적 있다. 아래 수식에 의해 출력값이 입력값을 잘 따르게 하기 위함이었다.
$$①\; \lim_{s \rightarrow 0}sX(s)=\lim_{s \rightarrow 0}\int_0^{\infty}\frac{dx}{dt}e^{-st}dt = \lim_{s \rightarrow 0}(sX(s)-x(0))$$
$$②\; \int_0^{\infty}\lim_{s \rightarrow 0}\frac{dx}{dt}e^{-st}dt=\int_{0 \rightarrow{\infty}}\frac{dx}{dt}dt=x(\infty)-x(0)$$
$$\therefore \lim_{t \rightarrow \infty}x(t)=\lim_{s \rightarrow 0}sX(s)$$
이로부터 수렴값을 예측할 수 있다. 수식에서 알 수 있듯이 이 이론은 수렴값이 존재하는 시스템에만 적용이 가능하다.
조금 더 분석하면 다음과 같다,
$$X(s) = G(s)U(s)$$
$$\lim_{t \rightarrow \infty}x(t)=\lim_{s \rightarrow 0}sX(s)=\lim_{s \rightarrow 0}sG(s)U(s)$$
$U(t)$의 크기를 1로 하고 계수를 $\bar{u}$라고 하자
$$\lim_{t \rightarrow \infty}\frac{x(t)}{\bar{u}}=\lim_{s \rightarrow 0}sG(s)\bar{U}(s) = DC \; GAIN$$
즉, 이는 입력값의 크기에 대한 출력값의 비율이 된다. 이 비율을 DC Gain이라고 한다.
$$\frac{x(\infty)}{u(\infty)} = DC \;Gain$$
그러므로 출력값이 입력값을 잘 따르기 위해선, DC Gain이 1이어야 한다.
DC Gain이 1이 아닐경우, 1-DC Gain만큼의 Steady State Error가 있다고 한다.
예시로, Step Response에서 $X(s) = \frac{\omega^2}{s(s^2+2\zeta\omega s+\omega^2)}$ 이었다. Final Value Theorem을 적용하면 $$ \lim_{s \rightarrow 0}sX(s)= \frac{s \omega^2}{s(s^2+2\zeta\omega s+\omega^2)}=1$$이다. 이로부터 그래프를 그리지 않고도 Steady State Error가 0인 것을 알 수 있다.
Initial Value Theorem
initial value theorem은 x의 초기 상태를 알아내기 위한 이론이다. 증명 방법은 Final Value Theorem과 같으니 직접 해보기 바란다.
$$\lim_{t \rightarrow 0^+}x(t)=\lim_{s \rightarrow \infty}sX(s)$$
$$\lim_{t \rightarrow 0^+}\dot{x}(0^+)=\lim_{s \rightarrow \infty}s\dot{X(s)}=\lim_{s \rightarrow \infty}s^{2}X(s)$$
일반적인 경우에서 초기 x의 위치는 0으로 설정하므로 $\lim_{s \rightarrow \infty}sX(s)=0$이다.
$\lim_{s \rightarrow \infty}s^{2}X(s)$는 초기의 속도를 의미한다. 즉 입력값에 따라 초기 x가 얼마나 빠르게 변하는지 알 수 있다.
결국 DC gain과 초기 속도는 시스템의 M, C, K와 큰 연관이 있다. 이 값을 어떻게 정해야 하는지 아직 구체적으로 배우지는 않았지만 $($ Feedback control에서 다룬다$)$ Steady State Error를 고려하여 정해야 한다는 것을 알아두면 좋다.
To do
지금까지 Impulse Response와 Step Response에 대해 공부했다. 그리고 모든 경우에 대해 값이 수렴했다. 그러나 실제로는 수렴하지 않을 수 있고 진동하다가 발산할 수도 있다. 다음 글에서는 제어 목표가 수렴하는 경우와 그렇지 않은 경우를 살펴보고 수렴하기 위한 조건에 대해 공부할 것이다.