# Sliding Mode Control (SMC), Robust control algorithm for nonlinear system

Sliding Mode Control algorithm is a robust controller for nonlinear systems.

Robust control means that even though the system model has a certain error, if the controller can control the system, we say that the controller is robust.

SMC has two fundamental ideas.

1. To attract the system states to the surface.

2. To make the state slide on the surface toward the origin.

To explain the above two ideas more easily, let’s assume a typical control problem.

$\dot&space;x&space;=&space;f_1&space;(x,\dot&space;x)$   — (1)

$\ddot&space;x&space;=&space;f_2&space;(x,&space;\dot&space;x)&space;+&space;u$

$y=Cx$ — (2) if it is nonlinear, you need to know Lie Derivatives.

To achieve the first idea, we need to define a surface like the below. (Let’s assume that $y$ is a scalar and differentiable.)

$s(x)=a_0&space;e&space;+&space;a_1&space;\dot{e}$  where  $e=y-y_d$ — (3)

Here we need to select a_0 and a_1 to make y->0 as t-> inf,s=0. You will see the reason after more several lines.

Let’s take the derivative of s(x) w.r.t. x. Then we can get the below equation.

$\dot{s}(x)=a_0&space;\dot&space;e&space;+&space;a_1&space;\ddot&space;e$  — (4)

In addition, if we add the additional term -$\eta&space;\text{sign}(s)$ we can obtain the below equation,

$\dot{s}(x)=a_0&space;\dot&space;e&space;+&space;a_1&space;\ddot&space;e=-\eta&space;\text{sign}(s)$ — (5)

Through a simple Lyapunov theorem, we can easily prove s-> 0 at t->inf .

if s=0, e-> 0 and \dot(e)-> 0, because we selected a_0 and a_1 to be like this.

Let’s look at (5),

$a_0&space;\frac{d}{dt}(y-y_d)+a_1&space;\frac{d^2}{dt^2}(y-y_d)=-\eta&space;\text{sign}(s)$

=> $C(a_0&space;\dot&space;x&space;+a_1&space;\ddot&space;x)=-\eta&space;\text{sign}(s)$

=>$C(a_0&space;f_1&space;+a_1&space;(f_2+u)))=-\eta&space;\text{sign}(s)$

=>$u=((-\eta&space;\text{sign}&space;(s))/C&space;-&space;a_0&space;f_1)/a_1&space;-f_2$

With this control input, we can control a nonlinear system with SMC.

it is difficult to explain quickly within short explanations…., if you need more explanation or questions, please leave me a reply.

## 5 thoughts on “Sliding Mode Control (SMC), Robust control algorithm for nonlinear system”

1. destousok

Great explanation! I am working on a project about second order sliding mode for trajector tracking and i have stuck on the part of the controller so I would like to ask if you can send me a part of matlab code about smc to understand the equations

2. Ras

hello sir,
Would you please leave some tip how to control four Dynamixel servo independently ? bulk_readWrite makes them run all together.
Thank you