这里写自定义目录标题

  • 1.什么是滑模变结构控制
  • 2.滑模变结构的一些基本知识
  • 3.滑模控制器设计
  • 4.滑模控制器例子

1.什么是滑模变结构控制

在开始介绍滑模变结构控制之前,最好先学习一些线性控制的基础,知道什么是李亚普诺夫函数,怎么判断系统稳定性,有一点相轨迹的基础。有了这些基础知识才可以理解这篇文章。好了,废话不多说了,让我们开始滑模变结构控制之旅吧。
我们先从一个例子开始吧,假设有一个二阶系统如下:
{ x 1 ˙ = x 2 x 2 ˙ = 2 x 2 − x 1 + u \left\{\begin{matrix} \dot{x_{1}}=x_{2}\\ \dot{x_{2}}=2x_{2}-x_{1}+u \end{matrix}\right. {x1​˙​=x2​x2​˙​=2x2​−x1​+u​
假设我们令 u = − k x 1 u=-kx_{1} u=−kx1​,其中k的值取4和-4。
当 k = 4 k=4 k=4时,上式可以改写如下
{ x 1 ˙ = x 2 x 2 ˙ = 2 x 2 − 5 x 1 \left\{\begin{matrix} \dot{x_{1}}=x_{2}\\ \dot{x_{2}}=2x_{2}-5x_{1} \end{matrix}\right. {x1​˙​=x2​x2​˙​=2x2​−5x1​​
令 y = x 1 , y ˙ = x 2 y=x_{1},\dot{y}=x_{2} y=x1​,y˙​=x2​,则上式可以改写为 y ¨ − 2 y ˙ + 5 y = 0 \ddot{y}-2\dot{y}+5y=0 y¨​−2y˙​+5y=0该微分方程有一对共轭复根 λ 1 , 2 = 1 ± 2 i \lambda _{1,2}=1\pm 2i λ1,2​=1±2i,它的实部为正,是一个不稳定系统,其相轨迹图如下
k=4

k=-4

从图中可以看出,不管k=4还是-4,系统都无法稳定,此时过相坐标系原点做一条直线,直线方程如下: s = y ˙ + y = 0 s=\dot{y}+y=0 s=y˙​+y=0其中s直线上方s>0,s直线下方s<0,如上图所示。打阴影的部分是ys<0的部分,其余部分ys>0,ys表示y乘以s。此时我们按下面的方程取k:当ys>0时,k=4;ys<0时,k=-4。 k = { 4 , y s > 0 − 4 , y s < 0 k=\left\{\begin{matrix} 4 ,& ys>0 & \\ -4, & ys<0 & \end{matrix}\right. k={4,−4,​ys>0ys<0​​此时相轨迹图变换如下:
直线s=0与y=0(即 y ˙ \dot{y} y˙​轴)将坐标系分为四个区域,ys>0时,k=4;ys<0时,k=-4。你会发现系统的相轨迹最终会运动到s=0这条直线上,而 s = y ˙ + y = 0 s=\dot{y}+y=0 s=y˙​+y=0,它具有负的特征根 λ = − 1 \lambda =-1 λ=−1,因此在s=0这条直线上的点最终会收敛到 y = 0 , y ˙ = 0 y=0,\dot{y}=0 y=0,y˙​=0,即坐标原点。此时系统就可以稳定,这个控制方法就是滑模变结构控制。
变结构指的是控制u在4x与-4x之间的切换,滑模指在s=0这条直线上滑动到原点。因此滑模变结构控制器设计也包括两部分,一是能从状态空间的任何位置有限时间到达滑模面s=0,二是在滑模面上可以收敛到原点(平衡点)。

2.滑模变结构的一些基本知识

由上例的图形可知,s=0两侧的相轨线都吸引向切换线 s=0。因此状态轨线一旦到达直线s=0上,就沿此直线收敛到原点。
这种沿s=0滑动至原点的特殊运动称为滑动模态运动,直线s=0称为切换线(切换面)或切换流形(switching manifold),相应函数称为切换函数。
考虑一般情况,系统表述如下: x ˙ = f ( x ) , x ∈ R n \dot{x}=f(x),x\in R^{n} x˙=f(x),x∈Rn在系统状态空间存在超曲面 s ( x ) = s ( x 1 , x 2 , ⋅ ⋅ ⋅ x n ) = 0 s(x)=s(x_{1},x_{2},\cdot \cdot \cdot x_{n})=0 s(x)=s(x1​,x2​,⋅⋅⋅xn​)=0,如下图所示:

它将状态空间分为上下两个部分:s>0与s<0,在切换面上的运动点有三种情况:
1.常点,即图中A点。系统运动点运动到切换面s=0时,并不停留在切换面上,而是穿越此点,在A点旁边,满足以下关系: s ˙ > 0 , s > 0 \dot{s}>0,s>0 s˙>0,s>0 s ˙ > 0 , s < 0 \dot{s}>0,s<0 s˙>0,s<0当处于s=0上方即s>0时,s不断变大,远离s=0;当处于s=0下方即s<0时,s不断变大,接近s=0。(也可以从s>0穿越到s<0,方向与A处箭头反向)
2.起点,如图中B点。系统运动点到达切换面s=0附近时,从切换面的两边离开该点,在B点附近,满足以下关系: s ˙ > 0 , s > 0 \dot{s}>0,s>0 s˙>0,s>0 s ˙ < 0 , s < 0 \dot{s}<0,s<0 s˙<0,s<0
3.止点,如图中C点。系统运动点到达切换面s=0附近时,从切换面的两边趋向于止点,并停留在切换面上。在C点附近满足以下关系: s ˙ > 0 , s < 0 \dot{s}>0,s<0 s˙>0,s<0 s ˙ < 0 , s > 0 \dot{s}<0,s>0 s˙<0,s>0
由第一节可知,我们在设计滑模变结构控制器时,需要让状态空间中的点有限时间到达滑模面s=0,即图中C点,所以我们在设计控制器时得满足C点条件,在s>0时, s ˙ < 0 \dot{s}<0 s˙<0;s<0时, s ˙ > 0 \dot{s}>0 s˙>0。

3.滑模控制器设计

通过前两章的介绍,我们理清了要设计滑模控制器需要满足以下条件:
1.稳定性条件:在s=0的滑模面上,状态是收敛的,即滑动模态存在;
2.可达性条件:在切换面s=0以外的运动点将于有限时间内到达切换面;
3.保证滑模运动的稳定性;
4.达到控制系统运动品质要求。
接下来开始根据这四个条件来叙述如何设计滑模变结构控制器,首先是滑动模态存在

针对线性系统 x ˙ = A x + b u \dot{x}=Ax+bu x˙=Ax+bu可以设计如下的滑模面 s ( x ) = ∑ i = 1 n − 1 c i x i + x n s(x)=\sum_{i=1}^{n-1}c_{i}x_{i}+x_{n} s(x)=i=1∑n−1​ci​xi​+xn​在滑模控制中,要保证多项式 p n − 1 + c n p n − 2 + . . . + c 2 p + c 1 p^{n-1}+c_{n}p^{n-2}+...+c_{2}p+c1 pn−1+cn​pn−2+...+c2​p+c1为Hurwitz(简单来说这条条件是为了满足状态在s=0的滑模面上可以收敛)什么是Hurwitz,即上述多项式的特征值的实数部分在左半平面,即为负,下面举例说明:
当n=2时, s ( x ) = c 1 x 1 + x 2 s(x)=c_{1}x_{1}+x_{2} s(x)=c1​x1​+x2​,为了保证多项式p+c1为Hurwitz,需要多项式p+c1=0的特征值实数部分为负,即c1>0.

接下来介绍可达性条件,即状态x从状态空间中任意一点出发,可以在有限时间到达s=0的滑模面上,此时我们可以采用李雅普诺夫间接法来分析,从前面可知,切换函数s是状态变量x的函数,取以下的李雅普诺夫函数 V = 1 2 s 2 V=\frac{1}{2}s^{2} V=21​s2对时间求导可得 V ˙ = s s ˙ \dot{V}=s\dot{s} V˙=ss˙为了使系统稳定,我们需要使 V ˙ < 0 \dot{V}<0 V˙<0,即 s s ˙ < 0 s\dot{s}<0 ss˙<0,此时系统对于s而言是渐进稳定,不能保证其有限时间到达s=0的滑模面上(渐进稳定是当t趋于无穷时,状态变量x趋于0,即无限时间到达),因此需要 s s ˙ < − σ s\dot{s}<-\sigma ss˙<−σ, σ \sigma σ是一个极小的正数。
但是每次设计总不能都用李雅普诺夫函数判断,于是人们就提出了趋近律这一概念,常用的趋近律有如下几种:
1.等速趋近律: s ˙ = − ε s g n ( s ) \dot{s}=-\varepsilon sgn(s) s˙=−εsgn(s), ε > 0 \varepsilon>0 ε>0。sgn(s)是符号函数,s>0时,sgn(s)=1;s<0时,sgn(s)=-1;s=0,sgn(s)=0。
2.指数趋近律: s ˙ = − ε s g n ( s ) − k s \dot{s}=-\varepsilon sgn(s)-ks s˙=−εsgn(s)−ks, ε > 0 , k > 0 \varepsilon>0,k>0 ε>0,k>0。
3.幂次趋近律: s ˙ = − k ∣ s ∣ α s g n ( s ) − k s \dot{s}=-k |s|^{\alpha }sgn(s)-ks s˙=−k∣s∣αsgn(s)−ks, k > 0 , 1 > α > 0 k>0,1>\alpha>0 k>0,1>α>0。至于趋近律怎么使用,看第四节的例子,毕竟理论毕竟没有实操刺激)

4.滑模控制器例子

随意举一个简单例子如下: { x 1 ˙ = x 2 x 2 ˙ = x 3 x 3 ˙ = x 1 + x 2 x 3 + u \left\{\begin{matrix} \dot{x_{1}}=&x_{2}& \\ \dot{x_{2}}=&x_{3}& \\ \dot{x_{3}}=&x_{1}&+&x_{2}x_{3}+u \end{matrix}\right. ⎩⎨⎧​x1​˙​=x2​˙​=x3​˙​=​x2​x3​x1​​+​x2​x3​+u​设计一个镇定控制器,使系统稳定
设计步骤如下:
Step1.先设计切换函数s,其中切换函数s为Hurwitz,s设计如下: s = x 3 + 2 x 2 + x 1 s=x_{3}+2x_{2}+x_{1} s=x3​+2x2​+x1​其中 c 1 = 1 , c 2 = 2 c_{1}=1,c_{2}=2 c1​=1,c2​=2,多项式可以写为 p 2 + 2 p + 1 p^{2}+2p+1 p2+2p+1,该多项式具有两个相同的特征根-1,满足Hurwitz条件,s设计完毕。
Step2.设计切换函数的导数,使系统满足可达性条件,即有限时间到达滑模面。对切换函数s求导 s ˙ = x 3 ˙ + 2 x 2 ˙ + x 1 ˙ \dot{s}=\dot{x_{3}}+2\dot{x_{2}}+\dot{x_{1}} s˙=x3​˙​+2x2​˙​+x1​˙​将系统方程代入,替换掉 x 3 ˙ , x 2 ˙ , x 1 ˙ \dot{x_{3}},\dot{x_{2}},\dot{x_{1}} x3​˙​,x2​˙​,x1​˙​,可得 s ˙ = x 1 + x 2 + 2 x 3 + x 2 x 3 + u \dot{s}=x_{1}+x_{2}+2x_{3}+x_{2}x_{3}+u s˙=x1​+x2​+2x3​+x2​x3​+u我们可以看到, s ˙ \dot{s} s˙中出现我们想要设计的控制u,但此时我们无法得到u,因为我们不知道 s ˙ \dot{s} s˙是多少。这时我们前面提到的趋近律就起了作用,我们令 s ˙ \dot{s} s˙=趋近律,就可以算出u,这个u就是滑模控制器的控制律。例如,取指数趋近律 − s g n ( s ) − s -sgn(s)-s −sgn(s)−s,那么 u = − s − s g n ( s ) − x 1 − x 2 − 2 x 3 − x 2 x 3 u=-s-sgn(s)-x_{1}-x_{2}-2x_{3}-x_{2}x_{3} u=−s−sgn(s)−x1​−x2​−2x3​−x2​x3​ s ˙ = − s g n ( s ) − s \dot{s}=-sgn(s)-s s˙=−sgn(s)−s
Step3.稳定性证明,取李雅普诺夫函数 V = 1 2 s 2 V=\frac{1}{2}s^{2} V=21​s2对李亚普诺夫函数求导 V ˙ = s s ˙ \dot{V}=s\dot{s} V˙=ss˙ V ˙ = − ∣ s ∣ − s 2 \dot{V}=-|s|-s^{2} V˙=−∣s∣−s2李亚普诺夫函数的导数是严格负定的,因此系统渐进稳定,即s会趋于0,又因为 s = x 3 + 2 x 2 + x 1 s=x_{3}+2x_{2}+x_{1} s=x3​+2x2​+x1​因此 x 3 , x 2 , x 1 x_{3},x_{2},x_{1} x3​,x2​,x1​都趋于0,达到了使系统镇定的目的,控制器设计完成,控制律如下 u = − s − s g n ( s ) − x 1 − x 2 − 2 x 3 − x 2 x 3 u=-s-sgn(s)-x_{1}-x_{2}-2x_{3}-x_{2}x_{3} u=−s−sgn(s)−x1​−x2​−2x3​−x2​x3​
接下来我会用Matlab simulink来验证控制器设计的正确性(下一章)

通俗理解滑模变结构控制(1)相关推荐

  1. 通俗理解滑模变结构(2)

    一.仿真 接上一节的内容,用Matlab simulink模块搭建模块,搭建模型如下: 前面control是控制器部分,model是我们上一节的对象. 给定x1初始值为3,x2,x3的初始值为0,仿真 ...

  2. 终端滑模matlab程序,滑模变结构控制 MATLAB程序

    [实例简介] 滑模控制 MATLAB [实例截图] [核心代码] fac23b3f-e420-4e36-9a5a-2e225aeaf4da └── 滑模变结构控制MATLAB仿真(第3版):基本理论与 ...

  3. 滑模变结构控制(2)--RBF神经网络

    目录 前言 1 问题描述 2 RBF神经网络原理 3 控制算法设计与分析 4 仿真实例 5 总结 参考文献 前言 如果被控对象的数学模型已知,滑模控制器可以使系统输出直接跟踪期望指令,但较大的建模不确 ...

  4. 滑模变结构控制SMC(一)——滑模变结构控制的设计步骤

    滑模变结构控制 滑模控制的基本原理 滑模控制的设计步骤 参考文献 滑模控制的基本原理 滑模控制是变结构控制系统的一种控制策略.这种控制策略与常规控制的根本区别在于控制的不连续性,即一种使系统结构随时间 ...

  5. 滑模变结构控制matlab仿真 程序,滑模变结构控制MATLAB仿真 程序代码

    [实例简介] 滑模变结构控制MATLAB仿真 程序代码,值得借鉴 [实例截图] [核心代码] 滑模变结构控制MATLAB仿真 └── 滑模变结构控制MATLAB仿真 ├── 43188036Slidi ...

  6. 自适应参数估计+滑模变结构控制高超声速飞行器(源代码)

    一.高超声速飞行器数学模型 二.滑模变结构+自适应参数估计控制器的设计 (滑模控制器设计略) 三.部分仿真结果

  7. 模糊函数逼近器+滑模变结构控制高超声速飞行器(源代码)

    一.高超声速飞行器数学模型 二.模糊函数逼近器+滑模变结构控制器的设计 滑模变结构控制器参考: 模糊函数逼近器参考:<Fuzzy DisturbanceObserverBasedAttitude ...

  8. 滑模变结构控制高超声速飞行器(源代码)

    一.高超声速飞行器数学模型 二.滑模变结构控制器的设计 三.仿真结果

  9. 滑模变结构控制的几种切换函数

    滑模控制中的切换函数 1,符号函数          2,饱和函数          3,连续函数          4,反正切函数          5,双曲正切函数性质          simu ...

最新文章

  1. 小程序 音频API采坑完全手册
  2. Linux Used内存到底哪里去了?
  3. 如何处理Angular项目在Visual Studio Code打开报关于@Decorators的警告信息
  4. 状压[Jxoi2012]奇怪的道路
  5. 【高校宿舍管理系统】第五章 JWT原理和应用以及实现功能菜单
  6. 判断回文数 java_java如何判断回文数
  7. WP7 App性能优化(12):检测应用程序性能(Ⅴ)
  8. iOS UIView视图的图层控制
  9. 让天之痕窗口化运行!
  10. 计算机应用基础试题及答案东师,计算机应用基础试题及答案东师
  11. Servlet面试题汇总
  12. 第六节 ftpserver的安装与配置(Windows)
  13. ajax提交图片流,img显示
  14. 【学习总结】H2数据库
  15. Zepto中文API
  16. 一种简单的色彩平衡算法的OPENCV实现
  17. 二叉树的深度和平衡二叉树的深度
  18. C#数据库四种执行方法(ExecuteNonQuery)
  19. 【C语言】辗转相除法
  20. Planet of the phones手机星球

热门文章

  1. Smart “Predict, then Optimize”
  2. 标准坐标系与火星坐标系(高德)百度坐标系之间互转
  3. Layui数据表格获取数据库数据
  4. NX二次开发-UFUN获取当前工作部件tag UF_ASSEM_ask_work_part
  5. Vue中.env|.env.development|.env.production文件说明
  6. 开源~~~~spring boot +vue 前后端分离 在线考试系统 加自动组卷!!!!
  7. MATLAB小技巧(10)圆形检测实例
  8. java负载均衡原理_多种负载均衡算法及其 Java 代码实现
  9. mysql 索引index_MySQL查询优化之 index 索引的分类和使用
  10. 矩阵链相乘(动态规划法)