새소식

🔹Control

[Control] Sliding Mode Control (SMC)

  • -

0. Sliding Mode Control

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$$


\begin{align} \dot{x}_{1} &= x_{2} + d\\ \dot{x}_{2} &= x_{1} + x_{2} + u \end{align}
$$|d|<\epsilon$$


Matched uncertainty


Mismatched / Unmatched uncertainty

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이 발생할 수 있다는 단점이 존재한다.
 


 

2. Sliding Mode Control design

$$\ddot{x} = f(x,t) + u(t) + d(t)$$
$$s(t) = \left( \dfrac{d}{dt} + \lambda \right)^{n-1} x$$

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차에서 사용이 가능하다.
 

2-1. Error define

$$e(t) = x(t) - x_{d}(t)$$
 

2-2. 2nd order system의 error에 대한 sliding surface

\begin{align} s(t) &= \left( \dfrac{d}{dt} + \lambda \right) e(t) \\ &= \dfrac{de(t)}{dt} + \lambda e(t) \\ &= \dot{e}_{t} + \lambda e(t) \end{align}

$\lambda$ is positive constant

2차 시스템에 대해 sliding surface는 위와 같고 결국 $s(t)$가 0으로 수렴하게 되면 $e(t)$와 $\dot{e}_{t}$가 0으로 수렴하게 된다.
 

2-3. Controller design

$$\ddot{x} = f(x,t) + u(t) + d(t)$$
$$s(t) = \dot{e}(t) + \lambda e(t)$$
$$e(t) = x(t) - x_{d}(t)$$
\begin{align} \ddot{e}(t) &= \ddot{x}(t) - \ddot{x}_{d}(t) \end{align}
\begin{align} \dot{s} &= \ddot{e}(t) + \lambda \dot{e}\\ &= \ddot{x}(t) - \ddot{x}_{d}(t) + \lambda \dot{e}(t)\\ &= f(x) + u + d(t) - \ddot{x}_{d}(t) + \lambda \dot{e}(t) \end{align}
Lyapunov function candidate
$$V = \frac{1}{2}s^2$$

$\therefore V \ge 0$

\begin{align} \dot{V} &= s \dot{s}\\ &= s \{ f(x) + u + d(t) - \ddot{x}_{d} + \lambda \dot{e}(t) \}\\ &= 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}\\ &= s \{f(x) - f(x) - \lambda \dot{e}(t) + \ddot{x}_{d}(t) - ks - \eta sgn(s) - \ddot{x}_{d}(t) + \lambda \dot{e}(t) \} + |s|d_{m}\\ &= -ks^{2} - s\eta sgn(s) + |s|d_{m}\\ &= -ks^{2} - \eta |s| + |s|d_{m}\\ &= -ks^{2} + (-\eta + d_{m})|s|  \end{align}

$u = -f(x) -\lambda \dot{e}(t) + \ddot{x}_{d} - ks - \eta sgn(s)$
$\therefore \dot{V} \leq 0$

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 해보면 다음과 같다.

[Fig. 3] Trajectory (Signum function)
[Fig. 4] Trajectory (tanh function)

Signum function을 사용한 제어기는 [Fig. 3]에서 처럼 Chattering phenomenon이 발생한다.
이는 모터에서 떨림으로 나타나게 되고 기계적인 고장이 발생할 가능성이 있다.
하지만 tanh function을 사용한 제어기는 [Fig. 4]처럼 문제가 발생하지 않는다.
물론 떨림이 없어 좋다고 할 수 있지만 마냥 좋은것 만은 아니다.
이 경우 안정도 증명에서 '0으로 수렴한다' 가 아닌 '안정하다' 까지밖에 증명이 안된다. (듣기로는,,)
 


 

# 마치며


결론 : 제어는 왜 다 수학자가 만들었는가

'🔹Control' 카테고리의 다른 글

[Control] Mobile robot Control  (2) 2023.08.27
[Control] Adaptive Control  (1) 2023.08.09
[Control] Backstepping Control  (0) 2023.05.31
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.