基于趋近律的滑模控制器设计、仿真(S-function)

news2024/9/29 12:42:34

目录

  • 一、什么是滑模控制?
    • 1. 滑模面
    • 2. 控制策略
    • 3. 抗干扰和鲁棒性
    • 4. 滑模控制的应用
  • 二、什么是趋近律?
    • 1. 趋近律三大设计目标
    • 2. 常见的趋近律形式
      • 1. 等速趋近律
      • 2. 指数趋近律
      • 3. 幂次趋近律
  • 三、滑模控制器设计
  • 四、滑模仿真示例
    • 1. Simulink仿真框图
    • 2. 不同k值下的仿真结果(注意刻度变化)
    • 3. 仿真代码(S-function)

一、什么是滑模控制?

  • 滑模控制(Sliding Mode Control, SMC)是一种非线性控制方法,常用于处理具有不确定性、非线性或外部干扰的系统。其基本思想是通过设计一个滑模面,让系统状态沿着这个面滑动到达目标状态,即稳定点。
  • 滑模控制是一种鲁棒性强的非线性控制方法,通过设计滑模面让系统状态沿面滑动到目标状态。它分为趋近和滑模两个阶段,能够有效抵御不确定性和干扰,但需要处理因离散切换引发的抖振问题。

这个过程可以比喻为“驾车行驶”:滑模面是设计好的道路,系统状态是汽车的位置,滑模控制器是司机,通过不断调整方向盘,让汽车保持在这条路线上前进。即使遇到小的障碍物(干扰),也能自动调整让汽车继续沿着道路行驶。

为了更直观地理解,我们可以分步骤来讲解滑模控制的核心概念和工作原理:

1. 滑模面

  • 滑模控制的关键是“滑模面”。假设你正在引导一个小球(系统的状态)从某个地方移动到终点(目标状态),你设计了一条路径,这就是滑模面。滑模面是一个系统期望达到的状态轨迹,目的是让系统状态最终稳定在这条面上。
  • 举例来说,假设你要控制一个系统的输出 x x x 使其跟随某个参考轨迹 x r e f x_{ref} xref。可以设计一个“误差” e = x − x r e f e = x-x_{ref} e=xxref,并通过设计滑模面 s = e s=e s=e,希望误差趋向零,即系统的输出 x x x 能够跟踪目标 x r e f x_{ref} xref, 滑模面 s = 0 s = 0 s=0 就是我们希望系统最终稳定的地方。

2. 控制策略

滑模控制的目标是让系统状态从任意初始状态快速到达滑模面,并保持在该面上。这个过程可以分为两步:

  • 趋近阶段:在系统初始状态不在滑模面上时,控制策略会迫使系统状态向滑模面靠近。这个过程通过设计趋近律(Reaching Law)实现。
  • 滑模阶段:当系统状态到达滑模面之后,控制策略将保持系统状态在滑模面上滑动,直到最终到达目标状态。滑模阶段的控制目标是让系统沿着滑模面“滑动”到最终的期望状态。

3. 抗干扰和鲁棒性

滑模控制最强大的地方是它对系统模型中的不确定性和外界干扰有很好的鲁棒性。由于滑模控制仅依赖系统状态与滑模面之间的关系,而不依赖于系统的具体模型(尤其是未知部分或外界干扰),它能够很好地抵御外界干扰或模型不精确带来的影响。

例如,假设一个无人机在飞行过程中遇到突如其来的风,这时滑模控制可以通过保持状态在滑模面上的滑动来抵消风力的干扰,使无人机继续按照预定的轨迹飞行。

4. 滑模控制的应用

滑模控制广泛应用于机器人、自动驾驶、无人机控制、电机控制等领域,尤其在面对复杂、不确定系统时表现优异。例如,在自动驾驶汽车的轨迹跟踪中,滑模控制可以帮助汽车在不同的路面状况和外界干扰下,仍然保持在设定的轨迹上行驶。

二、什么是趋近律?

  • 在滑模控制系统中,趋近律(reaching law)是指系统状态向滑模面靠近的动态过程的控制律。滑模控制的核心思想是设计一个滑模面,使得系统的轨迹一旦到达并进入滑模面后,将沿着滑模面滑动,最终到达期望的平衡点。趋近律控制的是系统从任意初始状态如何快速、有效地到达滑模面。

  • 滑模运动包括趋近运动和滑模运动两个过程,系统从任意初始状态趋向切换面时,到达切换面的运动称为趋近运动,即 t → 0 t \rightarrow 0 t0的过程。根据滑模变结构原理,滑模可达性条件仅保证由状态空间任意位置运动点在有限时间内到到切换面的要求,而对于去趋近运动的具体轨迹未做任何限制,采用趋近律的方法可以改善趋近运动的动态品质。

1. 趋近律三大设计目标

趋近律的设计目标主要有三个:

  1. 收敛性:确保系统状态能够迅速收敛到滑模面。
  2. 鲁棒性:对外界干扰和系统不确定性的抑制能力。
  3. 避免抖振:减小滑模控制中的抖振现象,即系统在滑模面附近出现的高频震荡。

2. 常见的趋近律形式

1. 等速趋近律

s ˙ = − ε s g n ( s ) ε > 0 ( 1 ) \dot s = -\varepsilon sgn(s) \quad \varepsilon > 0 \qquad (1) s˙=εsgn(s)ε>0(1)
常数 ε \varepsilon ε表示系统的运动点趋近切换面 s = 0 s = 0 s=0的速率。 ε \varepsilon ε小,趋近速度慢,反之,运动点到达切换面时将具有较大的速度,引起抖动。

2. 指数趋近律

s ˙ = − ε s g n ( s ) − k s ε > 0 , k > 0 ( 2 ) \dot s = -\varepsilon sgn(s) - ks \quad \varepsilon > 0,k>0 \qquad (2) s˙=εsgn(s)ksε>0k>0(2)
式中, s ˙ = − k s \dot s = -ks s˙=ks是指数趋近项,其解为 s = s ( s ) e k t s = s(s)e^{kt} s=s(s)ekt。指数趋近律尤其适合解决具有大阶跃的相应控制问题。单纯的指数趋近,运动点逼近切换面是一个渐进的过程,不能保证有限时间内到达,切换面上也就不存在滑动模态,所以要增加一个等速趋近项 s ˙ = − ε s g n ( s ) \dot s = -\varepsilon sgn(s) s˙=εsgn(s),使当 s s s接近于0时,趋近速度是 ε \varepsilon ε而不是0,可以保证有限时间内到达。 在指数趋近律中,为了
保证快速趋近的同时削弱抖振,应该在增大 k k k值的同时减小 ε \varepsilon ε

3. 幂次趋近律

s ˙ = − k ∣ s ∣ α s g n ( s ) , k > 0 , 1 > α > 0 ( 3 ) \dot s = -k|s|^{\alpha} sgn(s),k>0,1>\alpha>0 \qquad (3) s˙=ksαsgn(s)k>01>α>0(3)
通过调整 α \alpha α的值,可保证当系统状态远离滑模动态(s较大)时,能以较大的速度趋近于滑模动态,反之,当系统状态趋近滑模动态(s较小)时,保证较小的控制增益,以降低抖振。

三、滑模控制器设计

考虑如下被控对象
θ ¨ ( t ) = − f ( θ , t ) + b u ( t ) ( 4 ) \ddot \theta(t) = -f(\theta,t)+bu(t) \qquad (4) θ¨(t)=f(θ,t)+bu(t)(4)
其中, f ( θ , t ) f(\theta,t) f(θ,t) b b b 已知,且 b > 0 b>0 b>0

滑模函数为
s ( t ) = c e ( t ) + e ˙ ( t ) s(t)= ce(t)+\dot e(t) s(t)=ce(t)+e˙(t)
其中, c > 0 c>0 c>0,满足 Hurwitz 条件。

跟踪误差为
e ( t ) = θ d ( t ) − θ ( t ) , e ˙ ( t ) = θ ˙ d ( t ) − θ ˙ ( t ) ( 5 ) e( t) = \theta_d(t)-\theta(t) ,\dot e(t) = \dot \theta_d(t)-\dot \theta(t) \qquad (5) e(t)=θd(t)θ(t)e˙(t)=θ˙d(t)θ˙(t)(5)

其中, θ d ( t ) 为目标位置。 \theta_d(t)为目标位置。 θd(t)为目标位置。


s ˙ ( t ) = c e ˙ ( t ) + e ¨ ( t ) = c ( θ ˙ d ( t ) − θ ˙ ( t ) ) + ( θ ¨ d ( t ) − θ ¨ ( t ) ) ) = c ( θ ˙ d ( t ) − θ ˙ ( t ) ) + ( θ ¨ d ( t ) + f ( θ , t ) − b u ( t ) ) \dot s(t) = c\dot e(t)+\ddot e(t) \\ =c(\dot \theta_d(t)-\dot\theta(t))+(\ddot \theta_d(t)-\ddot\theta(t)))\\ =c(\dot\theta_d(t)-\dot \theta(t))+(\ddot \theta_d(t)+f(\theta,t)-bu(t)) s˙(t)=ce˙(t)+e¨(t)=c(θ˙d(t)θ˙(t))+(θ¨d(t)θ¨(t)))=c(θ˙d(t)θ˙(t))+(θ¨d(t)+f(θ,t)bu(t))
采用指数趋近律
s ˙ = − ε s g n ( s ) − k s ε > 0 , k > 0 ( 6 ) \dot s = -\varepsilon sgn(s)-ks\quad \varepsilon > 0,k>0 \qquad (6) s˙=εsgn(s)ksε>0k>0(6)
结合上式,得
c ( θ ˙ d ( t ) − θ ˙ ( t ) ) + ( θ ¨ d ( t ) + f ( θ , t ) − b u ( t ) ) = − ε s g n ( s ) − k s c(\dot \theta_d(t)-\dot \theta(t))+(\ddot \theta_d(t)+f(\theta,t)-bu(t))=-\varepsilon sgn(s) -ks c(θ˙d(t)θ˙(t))+(θ¨d(t)+f(θ,t)bu(t))=εsgn(s)ks
基于指数趋近律的滑模控制器为
u ( t ) = 1 b ( ε s g n ( s ) + k s + c ( θ ˙ d − θ ˙ ) + θ ¨ d + f ( θ , t ) ) ( 7 ) u(t) = \frac{1}{b}(\varepsilon sgn(s)+ks+c(\dot \theta_d-\dot \theta)+\ddot \theta_d+f(\theta,t)) \qquad (7) u(t)=b1(εsgn(s)+ks+c(θ˙dθ˙)+θ¨d+f(θ,t))(7)

四、滑模仿真示例

考虑如下被控对象
θ ¨ ( t ) = − f ( θ , t ) + b u ( t ) ( 8 ) \ddot \theta(t) = -f(\theta,t)+bu(t) \qquad (8) θ¨(t)=f(θ,t)+bu(t)(8)
其中, f ( θ , t ) = 25 θ ˙ f(\theta,t) = 25\dot \theta f(θ,t)=25θ˙ b = 133 b = 133 b=133

取目标位置为 θ d ( t ) = s i n ( t ) \theta_d(t) = sin(t) θd(t)=sin(t),被控对象初始状态为[-0.15 \quad -0.15 ],采用
(7)式控制器,取 c = 15 , ε = 5 c = 15, \varepsilon = 5 c=15,ε=5,分别取 k = 0 , k = 10 , k = 20 , k = 30 k = 0, k = 10, k = 20, k = 30 k=0,k=10,k=20,k=30

1. Simulink仿真框图

在这里插入图片描述

2. 不同k值下的仿真结果(注意刻度变化)

  • k = 0
    在这里插入图片描述
  • k = 10
    在这里插入图片描述
  • k =20
    在这里插入图片描述
  • k = 30
    在这里插入图片描述

3. 仿真代码(S-function)

  • chap2_2testctrl.m
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes

sizes = simsizes;

sizes.NumContStates  = 0;%%是否是连续
sizes.NumDiscStates  = 0;%%是否是离散
sizes.NumOutputs     = 4;%%几个输出
sizes.NumInputs      = 3;%%几个输入
sizes.DirFeedthrough = 1;%%输入输出是否有直接关系
sizes.NumSampleTimes = 0;% at least one sample time is needed 采样时间有几个
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [];%%采样时刻 采样时间偏移量
simStateCompliance = 'UnknownSimState';

function sys=mdlOutputs(t,x,u)
thd = u(1);
dthd = cos(t);
ddthd = -sin(t);
th = u(2);
dth = u(3);

b = 133;
f = 25*dth;
c = 15;
epc = 5;
%在此处更改K值大小
S = 1;
if S == 1
    k = 0;
elseif S == 2
    k = 10;
elseif S == 3
    k = 20;
elseif S == 4
    k = 30;
end
e = thd - th;
de = dthd - dth;
s = c*e+de;
ut = 1/b*(epc*sign(s)+k*s+c*de+ddthd+f);
sys = [ut,e,de,k];
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 2;%%是否是连续
sizes.NumDiscStates  = 0;%%是否是离散
sizes.NumOutputs     = 2;%%几个输出
sizes.NumInputs      = 1;%%几个输入
sizes.DirFeedthrough = 0;%%输入输出是否有直接关系
sizes.NumSampleTimes = 0;% at least one sample time is needed 采样时间有几个
sys = simsizes(sizes);
x0  = [-0.15,-0.15];
str = [];
ts  = [];%%采样时刻 采样时间偏移量
simStateCompliance = 'UnknownSimState';

function sys=mdlDerivatives(t,x,u)
b = 133;
th = x(1);
dth = x(2);
ut = u(1);
f = 25*dth;
ddth = -f + b * ut;
sys=[dth, ddth];

function sys=mdlOutputs(t,x,u)
th = x(1);
dth = x(2);
sys = [th,dth];%th,dth

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2176725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA全球美业新风尚国际版同城美容美发到店上门一体化服务系统小程序源码

全球美业新风尚,美丽触手可及!✨ 🌍 开篇:引领国际美业新潮流 在这个追求个性与美丽的时代,美容美发已不再是简单的日常护理,它成为了我们展现自我、追求品质生活的一种方式。而“全球美业新风尚国际版同…

ASP.NET Zero是什么?适合哪些业务场景?

一、ASP.NET Zero是什么? ASP.NET Zero 是一个基于 ASP.NET Boilerplate (ABP) 框架的模板项目,它提供了预建的页面和强大的基础设施架构,以便开发者能够快速开发应用层。它的特点包括但不限于: 多合一解决方案:提供多…

4.数据结构与算法-线性表的顺序表示和实现

2.1 线性表的定义和特点 线性表例子 线性表的逻辑特征 2.2 案例引入 案例2.1 案例2.1:一元多项式的运算 案例2.2:系数多项式的运算 用时间换取空间--线性数组相对链式访问速度快 但这种方法链式更节省空间,所以用时间换取空间 案例2.3&…

2024平价电容笔推荐!精选五大靠谱电容笔测评盘点!

现在电子设备已经成为我们生活、学习和工作中不可或缺的重要工具。而电容笔作为与电子设备紧密配合的配件,其重要性也日益凸显,为我们的数字操作体验带来极大的便利和提升。然而,市场上电容笔的品牌众多,价格、性能和品质参差不齐…

工业制氮机在食品行业的应用优势

作为一种高效、环保的设备,制氮机通过物理方法从空气中分离出高纯度氮气,为食品行业提供了全方位的品质提升和安全保障。本文将详细探讨工业制氮机在食品行业的应用优势。 一、保障食品质量与安全性 工业制氮机在食品行业中最为显著的应用优势之一&#…

Ubuntu-WSL2一键设置代理操作

现状: Window11中拥有自己的代理软件 ,可以科学上网已在WSL2中安装Ubuntu22.04 需求: Ubuntu-WSL2实现科学上网 实现: 参考:为 WSL2 一键设置代理 Linux 子系统中的网关指向的是 Windows,DNS 服务器指…

深入调研400+手游公司,此时正是入行好时机?

自2022年起,手游市场在疫情阴霾消散后遭遇的增长瓶颈,成为了业界持续聚焦的热点议题。转眼间,两年时光匆匆流逝,这一领域的现状与前景究竟几何? 国际知名发行商Sandsoft最新出炉的《发行商洞察报告》中,对…

开源物联网技术--TFT_LCD屏驱动软硬件设计分享

01 一、物联网系统中为什么要使用TFT-LCD屏 在物联网系统中使用TFT-LCD(薄膜晶体管液晶显示器)驱动芯片的原因主要可以归纳为以下几点: 专业性与高效性 专业图形处理:TFT-LCD驱动芯片内置了专业的图形处理引擎,能够…

探索Langchain与国内智谱清言:构建先进的智能对话系统[第二课]

在当今的人工智能领域,构建一个能够流畅对话的智能系统是许多企业和开发者的目标。Langchain和国内智谱清言(BigModel)提供了强大的工具和API,使得这一目标变得更加容易实现。 语言模型的力量 语言模型是智能对话系统的核心&am…

git分支-创建、合并、删除

Git会将每次提交串成一条时间线,这条时间线就是一个分支。在最初,只有一个master分支 在目录下创建项目 对目录进行输入 项目被修改 创建dev分支 合并分支 删除dev分支

maven项目自动reload依赖库设置

修改后,自动reload 不需要点加载按钮了。

牛客SQL练习详解 04:多表查询

牛客SQL练习详解 04:多表查询 1、子查询sql21 浙江大学用户题目回答情况 2、链接查询sql22 统计每个学校的答过题的用户的平均答题数sql23 统计每个学校各难度的用户平均刷题数sql24 统计每个用户的平均刷题数 3、组合查询sql25 查找山东大学或者性别为男生的信息 叮…

大数据新视界 --大数据大厂之Cassandra 分布式数据库在大数据中的应用与调优

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

常用激活函数总结

文章目录 什么是激活函数激活函数的作用常用激活函数1.Sigmoid函数2.Softmax函数3.Tanh函数4.Relu函数5.LeakyRelu函数6.PRelu函数7.ELU函数8.SELU函数 什么是激活函数 激活函数,通俗讲,就是一个函数,针对某个神经元,就是将输入经…

AI读教链《关于美国、中国和BTC的三个超级变量​》

这篇文章探讨了美国、中国及比特币(BTC)当前经济形势中的三个超级变量,强调了对经济状况的重新审视。 美国经济与衰退:尽管有观点认为美国经济正在衰退,文章指出这取决于如何定义衰退。美股市场的市盈率处于高位&#…

KQM6600空气质量传感器

KQM6600空气质量传感器 目录 KQM6600空气质量传感器 查找资料 编程 1、初始化(时钟、IO、外设、中断、其他) 2、中断服务函数 3、数据解析函数 kqm6600.h 硬件连接 安装ST-LINK驱动 实验结果 查找资料 找相应的资料,看资料 1、…

百度智能体创建:情感领域的创新力量

《百度智能体:情感领域的创新力量》 一、百度智能体:开启智能新征程 百度智能体,准确叫法为百度文心智能体。它是由百度推出的基于文心大模型的智能体平台。2023 年 9 月 1 日,平台的前身 “灵境矩阵” 上线并开始内测&#xff0c…

变幅液压系统比例阀放大器

变幅液压系统是用于控制起重机或类似设备臂架角度变化的关键系统,它通过调节液压缸的伸缩来实现臂架的升降和变幅。以下是一些关于变幅液压系统的基本原理、组成和应用领域的信息: 基本原理:变幅液压系统通常由液压泵、液压缸、液压马达、控制…

【BMS】BJB MC33772 电流测量

一、硬件准备 1、主控板子:S32K312 板子 2、BJB 板子:MC33772 BJB 板子 3、硬件连接: 两个板子独立 12V 供电,外部电流接线流经分流器 Shunt ,分流器方向从下往上流向得到正值数据。 4、BJB 测量电流电路注意事项 ① 板子上预…

【python】如何切换ipynb的kernel至指定conda环境

需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…