滑模控制学习笔记(五)

本文介绍了基于连续切换的滑模控制方法,使用双曲正切函数来替代不连续的饱和函数,以减少控制过程中的抖振。详细阐述了双曲正切函数的特性,并给出了滑模控制的设计过程,包括滑模函数、李雅普诺夫函数的构建以及控制律的推导。通过仿真实例展示了双曲正切函数在实际系统中的应用,揭示了系统存在的稳态误差和误差收敛速度与参数的关系。
摘要由CSDN通过智能技术生成

基于连续切换的滑模控制

  采用饱和函数虽然可以抑制抖振,但其并非连续函数,不适合对于切换函数需要求导的场合,采用双曲函数可代替不连续的饱和函数降低滑模控制中的抖振。

双曲正切函数

  双曲正切函数表达式如下: t a n h ( x ϵ ) = e x ϵ − e − x ϵ e x ϵ + e − x ϵ ,    ϵ > 0 (1) tanh(\frac{x}{\epsilon})=\frac{e^\frac{x}{\epsilon}-e^{-\frac{x}{\epsilon}}}{e^\frac{x}{\epsilon}+e^{-\frac{x}{\epsilon}}},\ \ \epsilon>0 \tag1 tanh(ϵx)=eϵx+eϵxeϵxeϵx,  ϵ>0(1)其中 ϵ \epsilon ϵ决定了趋于极限的速度,双曲函数有以下两个特点:

  1. x   t a n h ( x ϵ ) ≥ 0 x\ tanh(\frac{x}{\epsilon}) \geq0 x tanh(ϵx)0
  2. 0 ≤ ∣ x ∣ − x tanh ⁡ ( x ϵ ) ≤ μ ϵ ,    μ = 0.2785 0\leq |x|-x\tanh(\frac{x}{\epsilon})\leq\mu\epsilon,\ \ \mu=0.2785 0xxtanh(ϵx)μϵ,  μ=0.2785

其函数图像如下:
在这里插入图片描述

基于双曲正切函数的滑模控制

  考虑被控对象: J θ ¨ ( t ) = u ( t ) + d ( t ) (2) J\ddot \theta(t) = u(t)+d(t)\tag{2} Jθ¨(t)=u(t)+d(t)(2)其中 J J J为转动惯量, θ ( t ) \theta(t) θ(t)为角度, u ( t ) u(t) u(t)为控制输入, d ( t ) d(t) d(t)为外加干扰,且 ∣ d ( t ) ∣ ≤ D |d(t)|\leq D d(t)D
  设计滑模函数: s ( t ) = c e ( t ) + e ˙ ( t ) (3) s(t) = ce(t)+\dot e(t)\tag3 s(t)=ce(t)+e˙(t)(3)跟踪误差及其导数为 e ( t ) = θ d ( t ) − θ ( t ) , e ˙ ( t ) = θ ˙ d ( t ) − θ ˙ ( t ) (4) e(t) = \theta_d(t) -\theta(t),\dot e(t) = \dot \theta_d(t)-\dot \theta(t)\tag4 e(t)=θd(t)θ(t),e˙(t)=θ˙d(t)θ˙(t)(4)定义李雅普诺夫函数 V = 1 2 s 2 (5) V = \frac{1}{2}s^2\tag5 V=21s2(5) V ˙ = s s ˙ = s ( θ ¨ d + c e ˙ − 1 J ( u + d ) ) (6) \dot V = s\dot s = s(\ddot \theta_d+c\dot e-\frac{1}{J}(u+d))\tag6 V˙=ss˙=s(θ¨d+ce˙J1(u+d))(6)基于双曲正切函数得到控制律 u = J ( θ ¨ d + c e ˙ + η s ) + D t a n h ( s ϵ ) (7) u = J(\ddot \theta_d+c\dot e+\eta s)+Dtanh(\frac{s}{\epsilon})\tag7 u=J(θ¨d+ce˙+ηs)+Dtanh(ϵs)(7)将控制律带入 V ˙ \dot V V˙得到 s s ˙ = − η s 2 − s J ( d + D t a n h ( s ϵ ) ) (8) s\dot s = -\eta s^2-\frac{s}{J}(d+Dtanh(\frac{s}{\epsilon}))\tag8 ss˙=ηs2Js(d+Dtanh(ϵs))(8)根据双曲函数性质 − D s   t a n h ( s ϵ ) ≤ − D ∣ s ∣ + D μ ϵ (9) -Ds\ tanh(\frac{s}{\epsilon})\leq -D|s|+D\mu\epsilon \tag9 Ds tanh(ϵs)Ds+Dμϵ(9) s s ˙ ≤ − η s 2 + D μ ϵ J (10) s\dot s \leq -\eta s^2 +\frac{D\mu\epsilon}{J}\tag{10} ss˙ηs2+JDμϵ(10)根据上式求解 V V V的微分方程 V ˙ = − 2 η V + D μ ϵ J (11) \dot V = -2\eta V+\frac{D\mu\epsilon}{J}\tag{11} V˙=2ηV+JDμϵ(11)得到 V ( t ) = c e − 2 η t + D μ ϵ 2 η J (12) V(t) = ce^{-2\eta t}+\frac{D\mu\epsilon}{2\eta J}\tag{12} V(t)=ce2ηt+2ηJDμϵ(12)根据该解可以得到结论:

  1. t → ∞ t \rightarrow \infty t V → D μ ϵ 2 η J V \rightarrow \frac{D\mu \epsilon}{2 \eta J} V2ηJDμϵ,可见系统存在稳态误差,误差大小取决于 D 、 ϵ 、 η D 、\epsilon 、\eta Dϵη
  2. V ( t ) V(t) V(t)的收敛速度取决于 η \eta η的大小, η \eta η越大,收敛速度越快。

仿真实例

  考虑被控对象: J θ ¨ ( t ) = u ( t ) + d ( t ) J\ddot \theta(t) = u(t)+d(t) Jθ¨(t)=u(t)+d(t)。其中 J = 10 , θ d ( t ) = s i n t , d ( t ) = 50 s i n t J=10,\theta_d(t) = sint,d(t) = 50sint J=10θd(t)=sintd(t)=50sint。初始状态设置为 [ − 0.5 , 0.8 ] [-0.5,0.8] [0.5,0.8]
  控制器设计参数为 c = 0.5 , η = 10 , D = 50 , ϵ = 0.02 c = 0.5,\eta =10,D = 50,\epsilon = 0.02 c=0.5,η=10,D=50,ϵ=0.02,得到如下模型,其中SMC控制器函数如下:

function u = fcn(de,s,ddthd)
c = 0.5;
eta = 10;
D =50;
eps = 0.02;
J = 10;
u = J*(c*de+ddthd+eta*s)+D*tanh(s/eps);

基于双曲函数的滑模控制
其位置输出、控制律以及误差的相轨迹如下图所示:
位置跟踪

在这里插入图片描述

在这里插入图片描述

通过观察相轨迹发现,误差并未在原点处,而是在一个近似的圆周上运动,这也就说明系统存在着稳态误差。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值