반응형

슬라이딩 모드 제어(SMC, Sliding Mode Control)이란?[1]

 슬라이딩 모드 제어는 비선형 제어 기법으로, 주목할만한 제어 정확도, 강건성, 그리고 쉬운 튜닝과 구현이 특징이다. 슬라이딩 모드라는 이름의 유래는 시스템의 상태가 상태 공간 상의 특정 평면인 sliding surface에서 움직이도록 설계되었기 때문이다. 다시 말하면 특정 평면에서 슬라이딩하듯 상태가 움직여서 그렇다는 것이다.

 슬라이딩 모드 제어의 장점은 첫 번째로 sliding function을 적절히 선택해서 시스템의 동적 거동을 조절해 줄 수 있다는 점이다. 그리고 두 번째는 폐루프 응답이 특정 불확실성에 대해서 전반적으로 둔감하다는 점이다.

 슬라이딩 모드 제어기의 합성은 다음의 두 가지 phase로 이루어진다. phase 1은 sliding surface의 설계이며, phase 2는 제어 입력의 설계이다.

 슬라이딩 모드에서 제어 상태는 sliding surface 에 상태가 접근하고 있고, 상태가 놓여있는 두 개의 phase가 존재한다. 이를 각각 reaching phase, sliding phase라고 부른다.

SMC의 종류는?

1st-order SMC

이 제어는 Sliding Surface에서 불연속적이다.

$$u=-U\text{sgn}(s)$$

위와 같은 형태는 manifold $s=0$을 따라 흐를 때, Sliding Surface에 있을 때 떨리는 현상(Chattering Phenomenon)이 있다.

1st-order smoothed SMC

이 제어는 불연속적인 부호함수 $\text{sgn}()$를 연속적이고 부드럽게 근사한다.

- 0으로 나누는 것을 방지하는 함수를 이용한 방법

$$u=-U \text{sat}(s,\varepsilon)=-U\frac{s}{|s|+\varepsilon}\hspace{5mm}\varepsilon>0$$

- 하이퍼볼릭 탄젠트를 이용한 방법

$$u=-U \text{tanh}(s/\varepsilon)\hspace{5mm}\varepsilon>0$$

- Saturation을 이용하는 방법

$$u=-U \text{minmax}(s,\text{min}=-1,\text{max}=1)$$

 

2차 SMC, Super-Twisting Algorithm(STA)

STA SMC는 적분 연산기를 통해서 제어 출력이 떠는 chattering 문제를 해결하고 제어 정확도를 향상시켰다고 한다.

$$\cases{u=-\lambda \sqrt{|s|} \text{sgn}(s) + w \\ \dot{w}=-W \text{sgn}(s)}$$


Mass-Spring-Damper 시스템 예제

 참고문헌 [1] 10 페이지의 예제를 따라서 시변 외란 $d(t)$를 고려한 모델 불확실성을 가지는 Mass-Spring-Damper 시스템의 위치 제어 문제를 상정해보자. M=2, B=5, K=2 이다.
$$M \ddot{x} + B \dot{x} + Kx = F + d(t)$$

비교 대상은 다음과 같다.

1. PI 제어기

2. Smooth 1st-order SMC (Saturation)

3. Smooth 1st-order SMC (sat)

4. Super-Twisting Algorithm SMC

PI 제어기는 교차 주파수를 1.0 rad/s, 위상 여유를 60도로 설계했다. 이때의 제어 이득은 P=4.33, I=2.50이다.

SMC의 $F^* =4$로 설정했다.

Smooth SMC는 sat 함수를 사용했으며, $\epsilon=0.01$이다.

STA SMC는 다음과 같이 정했다.

$$F = F_1 + F_2$$ $$F_1 = -\sqrt{F^*} \sqrt{|\sigma|} \text{sgn}(\sigma) $$ $$\dot{F_2} = -1.1 F^* \text{sgn}(\sigma)$$

 결과 해석

 1st-order SMC는 sliding surface를 지속적으로 가로지르면서 제어 출력의 변화가 극심하다. 반면, smooth 함수 혹은 STA 를 적용한 SMC는 상대적으로 부드럽게 트림 제어 출력으로 수렴하는 경향이 있다. 그래프로 봤을 때, STA SMC는 매우 적은 chattering이 있는데, 이는 STA를 구성하는 식이 1st-order SMC로 구성되어있기 때문에 완벽하게 chattering 현상을 잡기는 어려웠을 것이다. smoothing한 Smooth SMC를 보면 제어 출력이 튀는 부분은 있으나 smoothing이 된 덕에 수렴 구간에서 상대적으로 부드럽게 움직이는 것을 볼 수 있다. 그래서 STA에 smooth를 해준다면 chattering 현상을 어느정도 해결할 수 있을 것 같다.

 

추가적인 이야기

 1st-order SMC의 sgn 함수에서 부호 추출을 위해 $s/abs(s)$를 이용하면 $s$가 매우 작을 경우, 0으로 나누는 꼴이 되서 제어 출력이 Nan 이 되는 경우가 있다. 이는 똑같이 부호 함수 sgn을 사용하는 STA SMC 도 동일한 문제를 겪는데. 그리고 MATLAB 같은 경우에는 Zero-crossing error를 띄울 수 있는데, 이때는 Sgn 블록에 'Enable zero-crossing detection' 체크 박스를 끄면 된다.

 이와 같은 문제로 인해 1st-order SMC는 하지 않았다.


Reference
[1] DeCarlo, R., & Żak, S. (2008). A Quick Introduction to Sliding Mode Control and Its Applications 1. Available at
https://www.researchgate.net/profile/Mohamed_Mourad_Lafifi/post/Please_I_am_working_on_Sliding_Mode_Control_of_Active_Filters_for_Industrial_Application_I_am_having_Difficult_in_Proposing_a_Sliding_Surface/attachment/59d6386179197b807799599c/AS:397270366343171@1471728044595/download/A+QUICK+INTRODUCTION+TO+SLIDING+MODE+CONTROL.pdf

 

 

728x90

+ Recent posts