滑模控制浅述|[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计


[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计

  • [滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计
    • 1 前言
    • 2 无人机位置环的滑模控制器设计

[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计 本博客需要一些现代控制理论中Lyapunov稳定性的一些理论知识。
关于滑模控制的原理这里将不再赘述,读者们可以参考别的理论文献,会有很长的故事,这里将主要从数学和稳定性的角度,利用笔者浅薄的知识,为各位读者最通俗易懂的浅述滑模控制器的简单设计。
这将会是一个系列博客(如果笔者不咕咕咕),后面还会对滑模控制的抗干扰原理介绍,以及介绍几种笔者用过的近年来改良的滑模控制器。
[滑模控制器浅述] (2) 滑模控制抗干扰原理
[滑模控制器浅述] (3) 滑模控制抗系统参数不定原理
[滑模控制器浅述] (4) Terminal滑模简述及其与普通滑模收敛速度比较
1 前言 本文将针对二阶系统,即输入直接改变目标的加速度(被控量的二阶导数),控制目标是位置状态的跟踪,如果你没有一个合适的研究对象,可以选取多旋翼无人机,笔者的前文对其有较为详细的介绍,本文将以无人机的位置控制为例,控制器设计的方法同样可以推广到别的系统上去:
MATLAB Simmechanics/Simscope四旋翼无人机控制仿真(3) 无人机控制器设计(非PID)
2 无人机位置环的滑模控制器设计 【滑模控制浅述|[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计】关于无人机的数学模型和控制原理逻辑可以参考前面提到的系列博客。
考虑无人机 x x x方向位置状态方程:
{ x ˙ = x ˙ x ¨ = u x u 1 m \left\{ \begin{matrix} \dot{x}=\dot{x} \\ \ddot{x}=\frac{{{u}_{x}}{{u}_{1}}}{m} \\ \end{matrix} \right. {x˙=x˙x¨=mux?u1???令 x 1 = x {{x}_{1}}=x x1?=x, x 2 = x ˙ {{x}_{2}}=\dot{x} x2?=x˙:
{ x ˙ 1 = x 2 x ˙ 2 = u x u 1 m \left\{ \begin{matrix} & {{{\dot{x}}}_{1}}={{x}_{2}} \\ & {{{\dot{x}}}_{2}}=\frac{{{u}_{x}}{{u}_{1}}}{m} \\ \end{matrix} \right. {?x˙1?=x2?x˙2?=mux?u1???定义误差:
e 1 = x 1 d ? x 1 {{e}_{1}}=x_{1}^{d}-{{x}_{1}} e1?=x1d??x1?考虑滑模面, c > 0 c>0 c>0:
s = e ˙ 1 + c e 1 s={{\dot{e}}_{1}}+c{{e}_{1}} s=e˙1?+ce1?求导:
s ˙ = e ¨ 1 + c e ˙ 1 = x ¨ 1 d ? x ˙ 2 + c e ˙ 1 \dot{s}={{\ddot{e}}_{1}}+c{{\dot{e}}_{1}}=\ddot{x}_{1}^{d}-{{\dot{x}}_{2}}+c{{\dot{e}}_{1}} s˙=e¨1?+ce˙1?=x¨1d??x˙2?+ce˙1?设计趋近律, ε > 0 \varepsilon >0 ε>0, r > 0 r>0 r>0:
s ˙ = ? ε s g n ( s ) ? r s \dot{s}=-\varepsilon sgn \left( s \right)-rs s˙=?εsgn(s)?rs根据上面两式,可以求解输入:
x ¨ 1 d ? x ˙ 2 + c e ˙ 1 = ? ε s g n ( s ) ? r s x ¨ 1 d ? u x u 1 m + c e ˙ 1 = ? ε s g n ( s ) ? r s u x = m x ¨ 1 d + ε s g n ( s ) + r s + c e ˙ 1 u 1 \begin{aligned} \ddot{x}_{1}^{d}-{{{\dot{x}}}_{2}}+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs \\ \ddot{x}_{1}^{d}-\frac{{{u}_{x}}{{u}_{1}}}{m}+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs \\ {{u}_{x}}=m\frac{\ddot{x}_{1}^{d}+\varepsilon sgn \left( s \right)+rs+c{{{\dot{e}}}_{1}}}{{{u}_{1}}} \end{aligned} x¨1d??x˙2?+ce˙1?=?εsgn(s)?rsx¨1d??mux?u1??+ce˙1?=?εsgn(s)?rsux?=mu1?x¨1d?+εsgn(s)+rs+ce˙1???对于本滑模控制,其稳定性分析不是考虑状态量,而是考虑滑模面,考虑如下Lyapunov函数:
V = 1 2 s 2 V=\frac{1}{2}{{s}^{2}} V=21?s2求导:
V ˙ = s s ˙ = ? ε s s g n ( s ) ? r s 2 = ? ε ∣ s ∣ ? r s 2 < 0 \begin{aligned} & \dot{V}=s\dot{s} \\ & =-\varepsilon s sgn \left( s \right)-r{{s}^{2}} \\ & =-\varepsilon \left| s \right|-r{{s}^{2}}<0 \end{aligned} ?V˙=ss˙=?εssgn(s)?rs2=?ε∣s∣?rs2<0? s s s是收敛的,而且这是在设计滑模趋近律 s ˙ \dot{s} s˙的时候就已经决定的,说明有 s → 0 s\to 0 s→0,即 e ˙ 1 + c e 1 → 0 {{\dot{e}}_{1}}+c{{e}_{1}}\to 0 e˙1?+ce1?→0,这又说明了什么呢?说明 e ˙ 1 {{\dot{e}}_{1}} e˙1?和 e 1 {{e}_{1}} e1?正负异号,最终必同时有 e ˙ 1 → 0 {{\dot{e}}_{1}}\to 0 e˙1?→0, e 1 → 0 {{e}_{1}}\to 0 e1?→0。从而实现状态量的跟踪,因此不用直接分析误差的Lyapunov函数。
这里笔者就偷懒不放仿真曲线了,因为手边现在没有现成的,不过效果当然是会跟踪上期望的状态。
值得一提的是,这里的参数 c c c能够影响 e 1 {{e}_{1}} e1?和 e ˙ 1 {{\dot{e}}_{1}} e˙1?的收敛速度, c c c越大, e 1 {{e}_{1}} e1?收敛的相比较 e ˙ 1 {{\dot{e}}_{1}} e˙1?而言是越快的,反之亦然。
还有别的常用趋近律:
s ˙ = ? ε s g n ( s ) ε > 0 \begin{matrix} \dot{s}=-\varepsilon sgn \left( s \right) & \varepsilon >0 \\ \end{matrix} s˙=?εsgn(s)?ε>0?
s ˙ = ? r s r > 0 \begin{matrix} \dot{s}=-rs & r>0 \\ \end{matrix} s˙=?rs?r>0?
s ˙ = ? r ∣ s ∣ α r > 0 , 0 < α < 1 \begin{matrix} \dot{s}=-r{{\left| s \right|}^{\alpha }} & r>0,0<\alpha <1 \\ \end{matrix} s˙=?r∣s∣α?r>0,0<α<1?
s ˙ = ? ε ∣ s ∣ α s g n ( s ) ε > 0 , 0 < α < 1 \begin{matrix} \dot{s}=-\varepsilon {{\left| s \right|}^{\alpha }}sgn \left( s \right) & \varepsilon >0,0<\alpha <1 \\ \end{matrix} s˙=?ε∣s∣αsgn(s)?ε>0,0<α<1?他们其中的项也可以交叉使用。

    推荐阅读