hyein's 로봇 알고리즘 연구소

Sliding mode control (SMC, 슬라이딩 모드 제어)란? 본문

Robotics Control Theory/Morden Control

Sliding mode control (SMC, 슬라이딩 모드 제어)란?

hyein14 2021. 3. 4. 01:05

안녕하세요. morden control(현대 제어) 카테고리에 첫 게시글이네요.

 

현대제어 첫 게시글로는 sliding mode control (SMC, 슬라이딩 모드 제어)에 대해 이야기를 해보고자합니다. 고전제어의 대표주자가 PID Control(제어)라면 비선형제어에서 강인제어의 대표주자는 바로 슬라이딩 모드 제어기(SMC) 입니다.

 

혹시 고전제어와 현대제어의 차이를 아직 모르는 분이 있으시다면, 아래 게시글을 참조하세요. 둘의 차이에 대해 자세히 이야기해 두었습니다. PID제어 역시 깊게 이해하기 좋을거예요.^^!

 

고전 제어의 절대 강자 PID Control(제어) A to Z - 2 편

 

고전 제어의 절대 강자 PID Control(제어) A to Z - 2 편

안녕하세요. :) 오랜만에 다시 포스팅을 하네요. 요즘 PID Control(제어)로 블로그를 방문해주시는 분들이 늘고있네요. 티스토리 블로그라 다음 유입이 가장 많았었는데, 최근에는 구글, 네이버로

hyein-robotics.tistory.com

 

SMC는 저에게 좀 특별한 제어기입니다. 학부때 Robotics 수업 담당 교수님께서 SMC 제어기를 연구하셨던 분이셔서.. PID제어보다 SMC를 먼저 적용하여 로봇시뮬레이션을 했었습니다. 그래서 당시에 기억에 많이 남았었습니다. 그러다 몇년 뒤에 현업에 가서 처음 성공적으로 적용한 제어기가 변형된 SMC였습니다. Series elastic actuator(SEA,직렬탄성 구동기)를 다룰 일이 있었는데, 구동기 사이에 있는 스프링때문에 기존 PID제어기로는 제어 성능은 물론 외란에 너무 취약했습니다. 이때 적분기가 붙은 Integral SMC(ISMC)가 성공적으로 적용된적이 있습니다. 그래서 저에게는 애정이 가는 제어기입니다.

 

여기서는 integral SMC(ISMC)가 아닌 전통적인 SMC 개념에 대해 이야기해보도록 하겠습니다. 글은 다음과 같은 흐름으로 이야기를 하고자 합니다.

 

1. Why SMC?

 1) Robust control(강인제어)의 필요성

 2) Matched and Mismatced Uncertainty

2. Phase Portrait

3. SMC Design(슬라이딩 모드 제어 설계) 원리

4. Example

5. 슬라이딩 모드 제어(SMC)의 고찰

 

1. Why SMC?

 

 1) Robust control(강인제어)의 필요성

 

   우리에게 매우 간단하고 강력한 PID 제어기가 있는데 왜 강인제어(robust control)가 필요할까요?

예를 하나 들어보겠습니다. 카트폴(cart pole)과 같은 inverted pendulum을 모델링을 통해 시뮬레이션에서 pid 게인을 구한 다음 실제(real) 카트폴(cart pole)에 적용하면 시뮬레이션의 결과처럼 좋은 성능을 보여줄까요? 외란에 대해서 좋은 성능을 보여줄까요? 답은 좋은성능을 보일 수도 있지만 대부분 시뮬레이션과 상이한 결과로 우리를 실망시키기 쉽습니다. 또, 외란에 취약하기도 쉽습니다.

 왜냐하면 우리가 설계한 Nominal model과 Real model사이에 불확실성(uncertainty)가 있는 경우 시뮬레이션과 실제와의 차이가 많이 날 것입니다. 아무리 완벽한 모델(model)을 세운다 하더라도 선형화를 하거나 모델링하지 못하는 성분들이 있다면 즉, 불확실성(uncertainty)가 있더라도 제어 성능(performance)과 안정성(stability)를 보장해주는 방법이 바로 robust control(강인제어)입니다.

 

2) Matched and Mismatched Uncertainty

 그럼 불확실성(uncertainty)는 어떤 종류가 있을까요? 슬라이딩 모드 제어(SMC)와 관련된 논문을 보다보면 가장 많이 나오는 불확실성(uncertainty)는 바로 matched와 mismatched uncertainty입니다. 둘의 구분은 u 채널에 불확실성(uncertainty)이 있냐 없냐로 구분하면 됩니다.

 

 뒤에서 다루겠지만 전통적인 슬라이딩 모드제어 (SMC)에서는 Matched uncertainty의 경우 좋은 성능을 발휘하나 Mismatched uncertainty의 경우는 좋은 성능을 보장하지(uncertainty에 민감함) 못합니다. 대부분의 실제 시스템의 경우는 모든 상태변수에 uncertainty가 들어가 있으므로 mismatched uncertainty가 있습니다. 이와 같은 경우 위에서 언급한 integral SMC(ISMC)와 같은 SMC를 적용하면 두 불확실성(uncertainty) 모두 억제할 수 있습니다.

 

2. Phase Portrait

 

자 그럼 슬라이딩 모드 제어(SMC)에 대해 본격적으로 다루기전에 다른 중요한 개념인 phase portrait에 대해 이야기를 해보도록 하겠습니다. 동역학이나 제어를 공부하신분들이라면 phase portrait을 바탕으로 분석하는 것에 익숙하실 겁니다. Fig3과 같이 state space(상태 공간) 방정식이 있습니다. state(상태) ${x}$는 쉽게 이야기를 하기 위해 x1과 x2로 이루어진 2차원 벡터라고 하겠습니다.state space(상태 방정식)의 해(state, 상태)를 좌표로 갖는 그래프를 그린 것이 바로 phase portrait입니다.

 

 

 

 

phase portrait은 시스템의 특성을 파악할 수 있는 강력한 도구입니다.phase portrait은 Fig 4에서 보여지듯 sink라고 불리는 atrractor나 Fig 5에 있는 limit cycle과 같은 정보들이 나타납니다. 그리고 phase portrait을 통해 안정성(stability) 여부를 판단 할 수 있습니다. Fig4와 같이 시간이 지남에 따라 모든 상태(state) 값이 0 으로 수렴할 때 우리는 그 시스템이 stable하다고 말합니다. Fig6과 같이 모든 상태(state)가 0으로 수렴하지 않고 발산할때, 우리는 그 시스템을 unstable하다고 말합니다. 슬라이딩 모드 제어(SMC)에서 이 phase portait이 중요한 컨셉이니 기억해주세요~

 

 

3. SMC Design(슬라이딩 모드 제어 설계)

 

슬라이딩 모드 제어(SMC) 설계는 심플하지만 강력합니다. 아래와 같이 일반적인 n차 시스템이 있습니다. 여기서 ${u(t)}$는 제어 인풋(control input) 그리고 ${v(t)}$는 bounded된 외란이라고 하겠습니다.

그리고 state로 구성된 sliding surface(비선형인 경우는 sliding manifold), ${\sigma}$를 만듭니다.

간단하게 표현하기 위해 2차 시스템으로 고려한다면 다음과 같은 sliding surface가 됩니다.

우리가 만든 sliding surface를 보면 disturbance(외란)이나 uncertainty(불확실성)이 나타나 있지 않습니다. 즉, sliding surface에서는 외란과 불확실성에 무관하게(=강인하게, robust하게) 시간이 지남에 따라 state가 0으로 수렴함을 알 수 있습니다. state가 0 으로 수렴한다는 말은 stability가 보장 된다는 말입니다. 그리고 ${\lambda}$는 수렴율(convergence rate)을 의미하는 것을 알 수 있습니다. 

 

이를 바탕으로 슬라이드 모드 제어(SMC)의 원리에 대해 보자면 다음과 같습니다.

 

1) reaching phase

 상태(state)가 sliding surface에 도달하기까지 과정

 

2) sliding phase

sliding surface 위에서(=외란이나 불확실성에 강인함) 유한 시간 내에 원점으로 향하도록 제어 인풋을 만드는 제어방법입니다. sliding phase에서 외란이나 불확실성에 의해 sliding surface를 벗어나지 않도록 ${\sigma}$ = 0을 기준으로 sliding surface에 계속 붙어서 0으로 타고 가도록  추가적으로 불연속적인 제어 입력을 넣자는 것이 바로 SMC입니다.

 

Fig 7. ref. Fixed Frequency Sliding Mode Control of Power Converters for Improved Dynamic Response in DC Micro-Grids

 

만약 외란이 없다면 sliding surface를 흐르는데 필요한 effort는 다음과 같습니다. 외란이 없을 경우 sliding surface 위에 있다는 것은 ${\dot{sigma}}$역시 0이므로 다음과 같이 식이 정리될 수 있습니다.

 

 

외란이 없을 때의 effort를 ${u_{eq}}$라고 부릅니다. 만약 외란이 있다면, ${\dot{\sigma} = v(t)}$가 됩니다. 따라서 SMC는 이 외란을 제거하기 위해 외란보다 더 큰 불연속적인 텀(switching term)을 effort에 추가되어야 합니다. ${\epsilon}$은 매우 작은 임의의 양의 상수입니다. 

 

비선형 시스템이므로 이 시스템이 Lyapunov관점에서 asymptotically stable하기 위해서는 ${V(x) > 0}$과 ${\dot{V(x)} < 0}$을 만족하여야 하고, 만족함을 볼 수 있습니다.

 

4. Example

 

위에서 이야기한 슬라이딩 모드 제어(SMC) 설계 방법을 예시를 통해 적용해보겠습니다. 

 

초기 조건은 (x1(0), x2(0)) = (-2, 3) 이고, d는 0.5sin(3t)입니다. 설계 순서는 1) sliding surface 선정 2) ${u_{eq}}$ 계산 3) switching term 추가로 진행됩니다.

 

1) suface 설정

초기 조건을 고려하여 c는 2으로 선정

 

2) ${u_{eq}}$ 계산

 

${\sigma}$ = 0일 때, ${\dot{\sigma}}$ = 0

 

3) switching term 추가

외란 d보다 큰 값의 크기를 갖는 switching term 추가

d의 외란의 크기는 0.5이므로 switching term k = 2로 선정

 

 

Fig8의 결과 그래프를 보면 일정 시간이 흐른뒤 state x1과 x2 모두 0으로 수렴함을 알수 있습니다. 그리고 Fig9를 보면 우리가 설정한 sliding surface에 도달하여 서피스를 타고 흘러 0으로 가는 것을 볼 수 있습니다.

 

5. 슬라이딩 모드 제어(SMC) 고찰

 

1) 불연속 텀(switching term)의 게인

 만약에 switching term 게인을 키우면 어떻게 될까요?

 

K가 커진다는 것은 다음을 의미합니다.

① 제어 입력(control input)이 증가한다는 말이므로 0으로 도달하는 속도(regulating time)이 줄어들 것입니다. 

② 외부 외란을 없애기 위해 도입된 불연속적인 텀으로 인해 과한 응답으로 인해 chattering이 생길 것입니다. 

위의 예제에서 k = 10으로만 변경한 결과는 위의 예상과 일치합니다.

 

chattering을 줄이기 위한 방법으로 많이 사용되는 대표적인 방법은 아래와 같습니다.

 

① s와 x = (x1, x2) 거리에 따른 k 값 조절 

- sliding surface에서 x가 먼 상태라면, 응답 속도를 빠르게 하기 위해 큰 k값을 사용

- sliding surface에서 x가 가까운 상태라면, chattering을 줄이기 위해 작은 k값을 사용

 

② 불연속 텀을 saturation function으로 근사

 - 불연속으로 인해 생기는 chattering을 완화하기 위해 boudary layer를 두어 연속적으로 만들어 줌으로써 chattering의 효과를 완화시킬 수 있습니다.

Fig 12. ref. Design of an adaptive sliding mode controller for robust yaw stabilisation of in-wheel-motor-driven electric vehicles

 

Fig 10과 Fig 11에서 sgn function을 sat function으로 대체를 하면 아래와 같이 됩니다.

 

2) sliding surface 게인

 sliding surface의 게인은 ${\lambda}$는 phase portrait의 기울기임을 볼 수 있습니다. 이는 초기 상태의 값이 어떻게 되어있느냐에 따라 빠르게 phase surface에 붙을 수 있도록 기울기를 설정하면 됩니다.

혹은 수렴 속도를 빠르게 하기 위해 sliding surface를 움직이게 하거나 여러개의 sliding surface를 두는 방법도 있습니다.

 

 

자 SMC에 대해 이해가 되셨나요? 간단하면서도 강력한 robust control(강인제어)의 대표격이니 알아두면 좋습니다. 물론 mismatced uncertainty이 고려된 실제 시스템에 적용한다면 위의 전통적은 smc로는 한계가 분명 존재합니다. 이와 관련된 내용은 추후에 integral smc를 다룬다면 이야기해보겠습니다. ^^ 

 

Comments