滑模控制学习笔记(四)
滑模控制学习笔记(四)基于上界的滑模控制二级目录三级目录基于准滑动模态的滑模控制基于连续切换的滑模控制等效滑模控制基于上界的滑模控制二级目录三级目录基于准滑动模态的滑模控制基于连续切换的滑模控制等效滑模控制...
基于上界的滑模控制
系统描述
考虑二阶非线性系统如下: θ ¨ = f ( θ , θ ˙ ) + g ( θ , θ ˙ ) u + d ( θ , θ ˙ , t ) (1) \ddot \theta = f(\theta,\dot \theta)+g(\theta,\dot \theta)u+d(\theta,\dot \theta,t) \tag{1} θ¨=f(θ,θ˙)+g(θ,θ˙)u+d(θ,θ˙,t)(1)其中, ∣ d ( θ , θ ˙ , t ) ∣ ≤ D 。 |d(\theta,\dot \theta,t )|\leq D。 ∣d(θ,θ˙,t)∣≤D。
控制器设计
取理想位置指令为 θ d \theta_d θd,则误差为 e = θ d − θ e = \theta_d - \theta e=θd−θ。定义滑模函数 s = e ˙ + c e , c > 0 (2) s = \dot e + ce\ \ ,c>0\tag2 s=e˙+ce ,c>0(2)
对滑模面求导得到: s ˙ = e ¨ + c e ˙ = θ ¨ d − f − g u − d + c e ˙ (3) \dot s = \ddot e+c\dot e=\ddot \theta_d -f-gu-d+c\dot e \tag3 s˙=e¨+ce˙=θ¨d−f−gu−d+ce˙(3)滑模控制器设计为: u = 1 g ( − f + θ ¨ d + c e ˙ + η s i g n ( s ) ) (4) u = \frac{1}{g}(-f+\ddot \theta_d +c\dot e+\eta sign(s)) \tag4 u=g1(−f+θ¨d+ce˙+ηsign(s))(4)
取李雅普诺夫函数 V = 1 2 s 2 (5) V =\frac{1}{2}s^2\tag5 V=21s2(5)则 V ˙ = s s ˙ = s ( θ ¨ d − f − g u − d + c e ˙ ) = − s d − η ∣ s ∣ (6) \dot V = s\dot s = s(\ddot \theta_d -f-gu-d+c\dot e) = -sd-\eta|s| \tag6 V˙=ss˙=s(θ¨d−f−gu−d+ce˙)=−sd−η∣s∣(6)取 η ≥ D , η = D + η 0 , η 0 > 0 \eta\geq D,\eta = D+\eta_0,\eta_0>0 η≥D,η=D+η0,η0>0则 V ˙ = − s d − η ∣ s ∣ ≤ − η 0 ∣ s ∣ ≤ 0 (7) \dot V = -sd-\eta|s|\leq -\eta_0|s|\leq0\tag7 V˙=−sd−η∣s∣≤−η0∣s∣≤0(7)当 V ˙ ≡ 0 \dot V \equiv0 V˙≡0时, s ≡ 0 s \equiv0 s≡0,此时闭环系统渐进稳定。
仿真实例
倒立摆非线性模型如下: x ˙ 1 = x 2 x ˙ 2 = f ( x 1 , x 2 ) + g ( x 1 , x 2 ) u (8) \begin{aligned} \dot x_1 &= x_2 \\ \dot x_2 &=f(x_1,x_2)+g(x_1,x_2)u \end{aligned}\tag8 x˙1x˙2=x2=f(x1,x2)+g(x1,x2)u(8)其中 f ( x 1 , x 2 ) = g s i n x 1 − m l x 2 2 c o s x 1 s i n x 1 / ( m c + m ) l ( 4 / 3 − m c o s 2 x 1 / ( m c + m ) ) g ( x 1 , x 2 ) = c o s x 1 / ( m c + m ) l ( 4 / 3 − m c o s 2 x 1 / ( m c + m ) ) (9) \begin{aligned} f(x_1,x_2)&= \frac{gsinx_1-mlx_2^2cosx_1sinx_1/(m_c+m)}{l(4/3-mcos^2x_1/(m_c+m))} \\g(x_1,x_2) &=\frac{cosx_1/(m_c+m)}{l(4/3-mcos^2x_1/(m_c+m))} \end{aligned}\tag9 f(x1,x2)g(x1,x2)=l(4/3−mcos2x1/(mc+m))gsinx1−mlx22cosx1sinx1/(mc+m)=l(4/3−mcos2x1/(mc+m))cosx1/(mc+m)(9)其中, u u u为加在小车上的控制力; m c = 1 k g m_c = 1kg mc=1kg和 m = 0.1 k g m = 0.1kg m=0.1kg分别为小车和摆的质量; l = 0.5 m l=0.5m l=0.5m为摆杆旋转点到摆杆中心点的长度; x 1 = θ x_1= \theta x1=θ为摆杆的位置; x 2 = θ ˙ x_2 = \dot \theta x2=θ˙为摆杆的转动角度; g g g为重力加速度。
simulink模型如下:
其中非线性函数程序如下:
function f = fcn(x2,x1)
%% 参数定义
g = 9.8;
mc = 1;
m = 0.1;
l = 0.5;
%% 计算f(x1,x2)
f1 = g*sin(x1)-m*l*x2^2*cos(x1)*sin(x1)/(mc+m);
f2 = l*(4/3-m*cos(x1)^2/(mc_m));
f = f1/f2;
function y = fcn(x1,u)
%% 参数定义
mc = 1;
m = 0.1;
l = 0.5;
%% 计算g(x1,x2)
y1 = cos(x1)/(mc+m);
y2 = l*(4/3-m*cos(x1)^2/(mc_m));
g = y1/y2;
y = g*u;
根据式(4)设计滑模控制器,取 c = 1.5 , η = 0.2 c = 1.5,\eta = 0.2 c=1.5,η=0.2则得到滑模面和控制律 s = e ˙ + 1.5 e u = 1 g ( − f + θ ¨ d + c e ˙ + 0.2 s i g n ( s ) ) (10) \begin{aligned} s &= \dot e +1.5e\\ u &=\frac{1}{g}(-f+\ddot \theta_d +c\dot e+0.2sign(s)) \end{aligned}\tag{10} su=e˙+1.5e=g1(−f+θ¨d+ce˙+0.2sign(s))(10)
构建滑模控制器程序如下:
注:其中 g g g的计算是为了避免simulink建模过程中引入代数环
function u = fcn(f,x1,de,s,ddthd)
%% 参数定义
c = 1.5;
eta = 0.2;
mc = 1;
m = 0.1;
l = 0.5;
%% 计算g(x1,x2)
y1 = cos(x1)/(mc+m);
y2 = l*(4/3-m*cos(x1)^2/(mc+m));
g = y1/y2;
%% 控制律计算
u = (-f+ddthd+c*de+eta*sign(s))/g;
得到完整控制系统模型、位置响应曲线以及相轨迹:


基于准滑动模态的滑模控制
准滑动模态指的是系统运动轨迹被限制在理想滑动模态某一邻域 Δ \Delta Δ内的模态,通常称 Δ \Delta Δ内的区域为滑动模态切换面的边界层。在连续系统中,常用的准滑动模态有以下两种方法:
(1)用饱和函数 s a t ( s ) sat(s) sat(s),代替符号函数 s i g n ( s ) sign(s) sign(s): s a t ( s ) = { 1 s > Δ k s ∣ s ∣ ≤ Δ − 1 s < Δ , k = 1 Δ (11) sat(s) = \left \{ \begin{aligned} &1 &s>\Delta \\ &ks &|s|\leq\Delta \\&-1&s<\Delta \end{aligned} \right. , \ \ \ k= \frac{1}{\Delta}\tag{11} sat(s)=⎩⎪⎨⎪⎧1ks−1s>Δ∣s∣≤Δs<Δ, k=Δ1(11)其中, Δ \Delta Δ称为边界层,饱和函数的本质为:在边界层外,采用切换控制;在边界层内,采用线性反馈控制。
(2)采用继电特性进行连续化,用连续函数 θ ( s ) \theta(s) θ(s)取代 s i g n ( s ) sign(s) sign(s): θ ( s ) = s ∣ s ∣ + δ (12) \theta (s) = \frac{s}{|s|+\delta}\tag{12} θ(s)=∣s∣+δs(12)其中, δ \delta δ很小的正常数。
仿真实例
与上例选择相同被控对象,但为了消除抖振,采用饱和函数 s a t ( s ) sat(s) sat(s)代替符号函数 s i g n ( s ) sign(s) sign(s): s a t ( s ) = { 1 s > Δ k s ∣ s ∣ ≤ Δ − 1 s < Δ , k = 1 Δ (13) sat(s) = \left \{ \begin{aligned} &1 &s>\Delta \\ &ks &|s|\leq\Delta \\&-1&s<\Delta \end{aligned} \right. , \ \ \ k= \frac{1}{\Delta} \tag{13} sat(s)=⎩⎪⎨⎪⎧1ks−1s>Δ∣s∣≤Δs<Δ, k=Δ1(13)
选取 Δ = 0.05 \Delta=0.05 Δ=0.05,构建新的滑模控制器程序如下:
function u = fcn(f,x1,de,s,ddthd)
%% 参数定义
c = 1.5;
eta = 0.2;
mc = 1;
m = 0.1;
l = 0.5;
delta = 0.05;
%% 计算g(x1,x2)
y1 = cos(x1)/(mc+m);
y2 = l*(4/3-m*cos(x1)^2/(mc+m));
g = y1/y2;
%% 饱和函数
if s>delta
sat = 1;
elseif s<-delta
sat = -1;
else
sat = s/delta;
end
%% 控制律计算
u = (-f+ddthd+c*de+eta*sat)/g;
仿真结果如下:

从图中可以看到,采用准滑动模态的方式,控制律的抖动明显减小,相轨迹在也不会在滑模面附近进行切换,抖振现象得到了抑制。
更多推荐


所有评论(0)