Sliding mode control은 robust한 제어기이다. 많은 제어 중에 왜 robust control이 필요할까
완벽한 model을 설계한다 하더라도 정확히 modeling하지 못하는 성분들이 존재한다.
이는 설계한 model과 실제 model 사이의 uncertainty (불확실성)로 나타나게 된다. 또한, disturbance (외란)도 제어를 어렵게 하고 simulation과 실제 실험의 차이가 많이 날 것이다. 이런 uncertainty가 있더라도 제어 성능과 안정성을 보장해 줄 수 있는 방법이 robust control (강인 제어)이며 대표적인 강인제어로 sliding mode control을 소개한다.
순서는 Matched / Mismatched uncertainty, Controller design, MATLAB simulation 순으로 정리해 놓았다.
1. Matched / Mismatched uncertainty
\begin{align} \dot{x}_{1} &= x_{2}\\ \dot{x}_{2} &= x_{1} + x_{2} + u + d \end{align} $$|d|<\epsilon$$
Sliding Mode Control에 대해 설명하기에 앞서 matched uncertainty와 mismatched uncertainty에 대해 알아보자. 둘의 차이를 간단하게 설명하면 입력 (u)에 uncertainty의 유무에 따라 나뉘게 된다. 전통적인 Sliding Mode Control에서는 matched uncertainty의 경우 좋은 성능을 발휘하나 unmached uncertainty의 경우 좋은 성능을 보장하지 못한다. 대부분의 실제 시스템의 경우 모든 상태변수($\dot{x}_{1}, \dot{x}_{2} ...$)에 uncertainty가 포함되어 있으므로 unmached uncertainty라 할 수 있다. 이 경우 Integral Sliding Mode Control (ISMC)을 사용하면 두 uncertainty 모두 억제가 가능하다. 하지만 ISMC의 경우 overshoot이 발생할 수 있다는 단점이 존재한다.
Assumption The external disturbance $d(t)$ is bounded such that $|d(t)| < d_{m}$, where $d_{m}$ is a known constant $f(x,t)$ : Known nonlinear function $u(t)$ : Control input $d(t)$ : Unknown disturbance $s(t)$ : Sliding surface $n$ : System order
위와 같은 간단한 model이 있다 하자. Sliding surface는 $s(t)$와 같이 정의된다. $n$은 system 차수로 1차의 경우 sliding surface가 존재하지 않아 2차에서 사용이 가능하다.
Lyapunov 함수를 $V=\frac{1}{2}s^2$으로 잡고 이를 미분하게 되면 위와 같다. Control input에 우리가 알고있는 값 ($-f(x) - \lambda \dot{e}(t) + \ddot{x}_{d}(t)$)과 제어 이득 ($-ks$), 부호함수인 Signum function을 입력하게 되면 최종적으로 negative함을 만족하게 되므로 안정하게 된다. Signum function은 부호 함수로 아래의 그래프 처럼 나타날 수 있다. 하지만 연속적이지 못하므로 0 근처에서 심하게 떨리는 Chattering phenomenon이 나타날 수 있어 Saturation function이나 Hyperbolic Tangent를 사용하기도 한다.
[Fig. 1] Signum function의 문제[Fig. 2] Signum function / Saturation function
식의 네 번째 줄에서 $s$ 보다 $|s|$가 항상 더 크기 때문에 간단한 대소 비교로 나타낼 수 있다.
$$ \begin{align} \dot{V} &= s{f(x) + u - \ddot{x}_{d}(t) + \lambda \dot{e}(t)} + sd(t)\\ &\leq s{f(x) + u - \ddot{x}_{d}(t) + \lambda \dot{e}(t)} + |s|d_{m} \end{align} $$ 또한 식의 아래에서 세 번째 줄에서 $$-ks^{2} - s\eta sgn(s) + |s|d_{m} = -ks^{2} - \eta |s| + |s|d_{m}$$ $s$와 $sgn(s)$의 곱의 경우 단순히 $|s|$로 나타날 수 있다. 최종적으로 $ -k s^{2} < 0 $, $-\eta + d_{m} < 0$, $|s| > 0$으로 negative함을 만족하게 된다.
3. MATLAB simulation
위 내용을 바탕으로 Mobile robot의 controller를 설계하여 MATLAB에서 simulation 해보면 다음과 같다.
Signum function을 사용한 제어기는 [Fig. 3]에서 처럼 Chattering phenomenon이 발생한다. 이는 모터에서 떨림으로 나타나게 되고 기계적인 고장이 발생할 가능성이 있다. 하지만 tanh function을 사용한 제어기는 [Fig. 4]처럼 문제가 발생하지 않는다. 물론 떨림이 없어 좋다고 할 수 있지만 마냥 좋은것 만은 아니다. 이 경우 안정도 증명에서 '0으로 수렴한다' 가 아닌 '안정하다' 까지밖에 증명이 안된다. (듣기로는,,)