滑模算法简单入门

一、什么是滑模

什么是滑模?这是一个值得思考的问题!

简单的来讲,滑模简单理解就是构造上述s(x1,x2,x3…)=0这样的一个超曲面,当超曲面s=0时,构成s的所有状态,也将为0。

举个经典滑模面的例子,S=c*e+de。其中,e是理想轨迹与实际轨迹的误差。那么c*e+de=0,这是一个经典的一阶线性齐次微分方程,解得e(t) = e(0) e^{-ct},当t趋向正无穷的时候,e也趋于0,也就是说明了,我们理想轨迹与实际轨迹的误差为0 ,实现了我们实际轨迹跟踪到理想轨迹的控制目标。

那么好,说了这么多,咱到底怎么才能实现我们想法呢?

看上面的图,我们先稍微分析一下哈。

超曲面s(x1,x2,x3…)=0,将空间分为上下两部分s>0s<0)。我们称切换面s=0上所有的运动点都是终止点的区域为“滑动模态区”,或简称为"滑模"区。系统在滑模区中的运动就称为“滑模运动”。

你看,我们的目标是为了保持S=0一直成立,那么当S>0的时候,我们希望它“下来”,这个时候我们只需要让\dot{S}<0就可以,结合下高中物理知识,仔细想想,动一动大家聪明的小脑袋瓜子。那么当S<0的时候,我们希望它“上去”,这个时候我们只需要让\dot{S}>0就可以。

将上面的抽象的汉语,换成简介的数学语言可以得到:

\lim_{s \to 0^+} \dot{s} \leq 0,\lim_{s \to 0^-} \dot{s} \geq 0

在简洁下

\lim_{s \to 0} s \dot{s} \leq 0

妙!多么美妙的公式!

这样,我们就可以保证S=0成立

(其实,真实情况是,在变量S在s=0这条分界线上,上下鬼畜横跳。。。。。)

二、控制率推导

由上次建模推导,我们得到两连杆的动力学建模如下所示公式:

M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + G(q) = \tau

定义跟踪误差为:

e_1 = q - q_d \quad e_2 = \dot{q} - \dot{q}_d \quad \ddot{e}_2 = \ddot{q} - \ddot{q}_d

设计滑模面为:

s = {e}_2 + k_1 e_1

对滑模面求导:

\dot{s} = \dot{e}_2 + k_1 \dot{e}_1 = \ddot{q} - \ddot{q}_d + k_1 \dot{e}_1 = M^{-1} \left( \tau - C(q, \dot{q}) \dot{q} - G(q) \right) - \ddot{q}_d + k_1 \dot{e}_1

构造V = \frac{1}{2} s s^T

进行求导

\begin{aligned} \dot{V} &= s\dot{s} \\ &= s(M^{-1}\left(\tau - C(q,\dot{q})\dot{q} - G(q)\right) - \ddot{q}_d + k_1\dot{e}_1) \\ &= -s\left(k_2s + k_3 \text{sig}^\alpha(s)\right) \\ &\leq 0 \end{aligned}

这里,我写在一起了,猛一看,我感觉对新手来说有点突兀。来,我们讲解下。

首先,求导完,我们需要将\dot{s}代入,我们将\tau分成三部分,\tau_1,\tau_2,\tau_3,分别是理想控制率,鲁棒项,和扰动观测器(扰动观测器本文不涉及哈,这里只是笔者的习惯)。

我们设计\tau_{1} = M(\dot{q}_d - k_1 \dot{e}_1) + C(q,\dot{q}) \dot{q} + G(q)

\tau_{2} = - M \left( k_2 s + k_3 \text{sig}^{\alpha} (s) \right)

\tau_{1}是为了消去系统中的变量,简单来说,强制保持s=0,但是这玩意就像爱情一样,会乱跑,这时候我们加入\tau_{2}-鲁棒项,你想跑?没门!我强行给你保证你在S=0的位置。(强扭的瓜不甜,所以系统会产生抖动。)

后续的一些证明,关于sig的定义等等

三、总结

优点:无视外部扰动和不确定参数,采用一种比较“暴力”的方式达到控制的目的。

研究方向:渐进时间稳定,有限时间稳定,固定时间稳定,预设时间稳定,事件触发等等   …..

建议大家自己手推导一遍,加强理解,纸上得来终觉浅,绝知此事要躬行!

谢谢大家的观看,希望大家学有所成,身体健康!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值