【控制】滑模控制,小例子,有程序有结果图

news/2024/5/19 15:44:26/文章来源:https://blog.csdn.net/weixin_36815313/article/details/126748846
目录滑模控制的一点笔记和看法
1【控制】滑动模型控制(Sliding Mode Control)
2【控制】滑模控制,小例子,有程序有结果图
3【控制】滑模控制,滑模面的选择

文章目录

  • 1 问题描述
  • 2 滑模控制器设计
    • 2.1 滑模面选择
    • 2.2 控制器设计
    • 2.3 稳定性证明
  • 3 实验验证
    • 3.1 单纯滑模面控制
    • 3.2 饱和函数替换符号函数
  • Ref.

1 问题描述

假设存在一个被控系统如下
x˙1=x2x˙2=x3x˙3=x1+x2x3+u(1)\begin{aligned} \dot{x}_1 &= x_2 \\ \dot{x}_2 &= x_3 \\ \dot{x}_3 &= x_1 + x_2 x_3 + u \\ \end{aligned} \tag{1}x˙1x˙2x˙3=x2=x3=x1+x2x3+u(1)

2 滑模控制器设计

接下来设计其滑模控制器

2.1 滑模面选择

设计滑模面为
s=x3+2x2+x1(2)s = x_3 + 2 x_2 + x_1 \tag{2}s=x3+2x2+x1(2)

2.2 控制器设计

对切换函数 sss 求导有
s˙=x˙3+2x˙2+x˙1=x1+x2x3+u+2x3+x2=x1+x2+2x3+x2x3+u(3)\begin{aligned} \dot{s} &= \dot{x}_3 + 2 \dot{x}_2 + \dot{x}_1 \\ &= x_1 + x_2 x_3 + u + 2 x_3 + x_2 \\ &= x_1 + x_2 + 2 x_3 + x_2 x_3 + u \end{aligned} \tag{3}s˙=x˙3+2x˙2+x˙1=x1+x2x3+u+2x3+x2=x1+x2+2x3+x2x3+u(3)

取指数趋近律有
s˙=−sgn(s)−s(4)\dot{s} = -\text{sgn}(s) - s \tag{4}s˙=sgn(s)s(4)

可得控制器 uuu
s˙=−sgn(s)−s=x1+x2+2x3+x2x3+uu=−sgn(s)−s−x1−x2−2x3−x2x3(5)\begin{aligned} \dot{s} &= -\text{sgn}(s) - s = x_1 + x_2 + 2 x_3 + x_2 x_3 + u \\ u &= -\text{sgn}(s) - s - x_1 - x_2 - 2 x_3 - x_2 x_3 \end{aligned} \tag{5}s˙u=sgn(s)s=x1+x2+2x3+x2x3+u=sgn(s)sx1x22x3x2x3(5)

2.3 稳定性证明

取李雅普诺夫函数有
V=12s2(6)V = \frac{1}{2} s^2 \tag{6}V=21s2(6)

求导有
V˙=ss˙=s(−sgn(s)−s)=−sgn(s)s−s2=−(∣s∣+s2)≤0(7)\begin{aligned} \dot{V} &= s \dot{s} \\ &= s (-\text{sgn}(s) - s) \\ &= -\text{sgn}(s) s - s^2 \\ &= -(|s| + s^2) \le 0 \end{aligned} \tag{7}V˙=ss˙=s(sgn(s)s)=sgn(s)ss2=(s+s2)0(7)

因为李雅普诺夫函数的微分是负定的,那么系统渐进稳定,即 sss 趋于0。又因为 s=x3+2x2+x1s = x_3 + 2 x_2 + x_1s=x3+2x2+x1,因此 x1,x2,x3x_1, x_2, x_3x1,x2,x3 都会趋于0。

3 实验验证

3.1 单纯滑模面控制

单纯使用滑模面的控制会出现抖振现象,这一点也可以从下图中看出。

在这里插入图片描述

clear
clcx_1(:,1) = rand;
x_2(:,1) = rand;
x_3(:,1) = rand;%%    
tBegin = 0;
tFinal = 20;
dT = 0.1;
times = (tFinal - tBegin) / dT;
t(1,1) = tBegin;for k = 1:times% record timet(:,k+1) = t(:,k) + dT;% slide model planes = x_3(:,k) + 2*x_2(:,k) + x_1(:,k);% control inputu = -sign(s)-s-x_1(:,k)-x_2(:,k)-2*x_3(:,k)-x_2(:,k)*x_3(:,k);% update statesdot_x_3 = x_1(:,k) + x_2(:,k) * x_3(:,k) + u;x_3(:,k+1) = x_3(:,k) + dT * (x_1(:,k) + x_2(:,k) * x_3(:,k) + u);dot_x_2 = x_3(:,k+1);x_2(:,k+1) = x_2(:,k) + dT * dot_x_2;dot_x_1 = x_2(:,k+1);x_1(:,k+1) = x_1(:,k) + dT * dot_x_1;
end%%
plot(t,x_1, t,x_2, t,x_3, 'linewidth',1.5);
legend('$x_1$', '$x_2$', '$x_3$', 'interpreter','latex');
grid on;

3.2 饱和函数替换符号函数

为了防止抖振,可以采用饱和函数 sat(s) 代替控制器中的符号函数sgn(s)。
在Matlab中没有相应的函数,因此我们写了个子函数来自己构建饱和函数,这一点可以在下边的代码里看到。

在这里插入图片描述

clear
clcx_1(:,1) = rand;
x_2(:,1) = rand;
x_3(:,1) = rand;%%    
tBegin = 0;
tFinal = 20;
dT = 0.1;
times = (tFinal - tBegin) / dT;
t(1,1) = tBegin;for k = 1:times% record timet(:,k+1) = t(:,k) + dT;% slide model planes = x_3(:,k) + 2*x_2(:,k) + x_1(:,k);% control inputu = -sat(s)-s-x_1(:,k)-x_2(:,k)-2*x_3(:,k)-x_2(:,k)*x_3(:,k);% update statesdot_x_3 = x_1(:,k) + x_2(:,k) * x_3(:,k) + u;x_3(:,k+1) = x_3(:,k) + dT * (x_1(:,k) + x_2(:,k) * x_3(:,k) + u);dot_x_2 = x_3(:,k+1);x_2(:,k+1) = x_2(:,k) + dT * dot_x_2;dot_x_1 = x_2(:,k+1);x_1(:,k+1) = x_1(:,k) + dT * dot_x_1;
end%%
plot(t,x_1, t,x_2, t,x_3, 'linewidth',1.5);
legend('$x_1$', '$x_2$', '$x_3$', 'interpreter','latex');
grid on;%% 
function out = sat(s)sMax = 10;sMin = -10;out = s;if s > sMaxout = sMax;endif s < sMinout = sMin;end  
end

Ref.

  1. 基于准滑动模态的滑模控制实例(采用饱和函数sat(s)代替符号函数)

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麻了,别再为难软件测试员了

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…

hive中使用iceberg表格式时锁表总结

1. 原因 写入iceberg表时,会在hive_locks表中插入一条记录,表示该表正在被写入(hive中的独占锁)当数据插入完成后,会自动删除该条记录。 2. 出现场景 (1)在同时往同一个iceberg表中写入数据时,会出现Retrying task after failure: Waiting for lock之类的警告信息 如果有…

Docker 环境 Nacos2 MySQL8

本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。 1 拉取镜像 1.1 创建目录 在硬盘上创建 nacos 的有关目录: mkdir -p /Users/yygnb/dockerMe/…

FPGA之旅设计99例之第十三例-----FPGA在OLED上显示DHT11数据

一. 简介 这是FPGA之旅设计的第十三例啦&#xff0c;本例是一个综合性的例程&#xff0c;基于OLED屏幕显示&#xff0c;和DHT11温湿度采集&#xff0c;将DHT11采集到的温湿度显示到OLED屏幕上。 在开始本例之前&#xff0c;先补充一下&#xff0c;在上例中&#xff0c;代码中…

Webpack 打包 - 14. html压缩

这里使用 html-webpack-plugin 插件压缩 html 文件。 1.文件结构 2.代码 index.html<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>webpack</title> </head> <body> <!--这里…

《Hyperspectral Image Classification With Deep Feature Fusion Network》论文笔记

论文题目《Hyperspectral Image Classification With Deep Feature Fusion Network》 论文作者:Weiwei Song, Shutao Li, Leyuan Fang,Ting Lu 论文发表年份:2018 网络简称:DFFN 一、本文提出的挑战 1.由于光谱混合和光谱特征空间变异性的存在,HSIs通常具有非常复…

KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例

KingbaseES 、repmgr案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作。若主节点已经失效,希望将异地备机提升为主节点。 $bin/repmgr standby promote 适用版本:KingbaseES V8R6 集群节点信息…

Postman和Jmeter的区别

Postman是一款功能强大的用于发送HTTP请求的Chrome插件&#xff0c;主要用于接口测试&#xff1b; Jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;也可以用来进行接口测试。 很多同学经常将两款工具混淆&#xff0c;这里就为大家介绍一下二者的区别。 1…

Java 将Excel转为UOS

以.uos为后缀的文件,表示Uniform Office Spreadsheet文件,是一种国产的办公文件格式,该格式以统一办公格式(UOF)创建,使用XML和压缩保存电子表格。既有的Excel表格文件,可以通过格式转换的方式转换为UOS格式,本文将对此作相关介绍。 【导入jar包】 使用jar包:Spire.Xls…

Nginx log 日志分割

Nginx日志不处理的话,会一直追加,文件会变得很大 Linux nginx_log.sh#!/bin/bash date=$(date +%F -d -1day) cd /usr/local/nginx/logs if [ ! -d bak ] ; thenmkdir -p bak fi mv access.log bak/access_$date.log mv error.log bak/error_$date.log # /usr/bin/…

Cache一致性导致的踩内存问题【转】

转自:http://blog.coderhuo.tech/2019/07/28/DMA_mem_crash/ 本文主要分享一个Cache一致性踩内存问题的定位过程,涉及到的知识点包括:backtrace、内存分析、efence、wrap系统函数、硬件watchpoint、DMA、Cache一致性等。 1 背景 设备上跑的是嵌入式实时操作系统(RTOS,具体为…

9.7--prompt理论学习

但是这些表现低于有监督的方法&#xff0c;但是我们在工作当中&#xff0c;我们引入了PET 利用模板的训练 Pattern Exploiting Training(PET) 把分类变成了完形填空的问题&#xff0c;来帮助模型理解任务 最后卖弄一下他的论文 最后在训练集上运用了有监督的训练。 并且远远…

[NOIP2014 提高组] 飞扬的小鸟题解

[NOIP2014 提高组] 飞扬的小鸟题解 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏…

java1.8环境配置

https://blog.csdn.net/blbyu/article/details/126152202 可用,java1.8环境配置 最主要的是这个步骤,小心仔细看清楚 java1.8 下载 地址 https://www.oracle.com/java/technologies/downloads/#java8-windows 往下拉可用看到jdk8版本下载即可

iOS APP 转让避坑指南

背景 由于公司主体改变&#xff0c;跟进法务要求&#xff0c;需要将APP下面的主体改变成新主体。主体改变有两种途径&#xff1a; 直接在开发者账号-联系我们-会员资格和账户-组织名称更改。 通过App Store Connect 来进行APP转让&#xff0c;将APP转让到新主体下面。 第一…

Apple iPhone 14 Pro 药丸设计看不懂,药丸上面那条屏幕缝隙完全没有用处呀?

Apple iPhone 14 Pro 药丸设计看不懂,药丸上面那条屏幕缝隙完全没有用处呀?Apple iPhone 14 Pro 药丸设计看不懂,药丸上面那条屏幕缝隙完全没有用处呀?iPhone 14 Pro 不值得购买的原因不支持 Type-C (国外禁售罚款,欧盟;国内什么时间行动呀) 不配备充电器 (国外禁售罚…

操作系统学习笔记8 |段页式内存管理

多进程图像中的CPU管理已经告一段落,接下来要介绍另一大方面——内存管理。首先我们也来看看内存是如何被使用起来的。最后介绍段页式内存管理的实现过程。多进程图像中的CPU管理已经告一段落,接下来要介绍另一大方面——内存管理。首先我们也来看看内存是如何被使用起来的。…

阿里云的“终端云化”实践,基于ENS进行边缘架构构建

终端无休止的更新迭代,是软件对计算资源的需求激增。作者|王广芳 编辑|IMMENSE 终端云化:打破硬件的桎梏 近几年,“终端云化”技术开始规模化落地,其核心思想是“计算卸载”,即将智能终端的计算任务卸载到边缘云虚拟终端处理,解决终端设备在算力和存储等方面的不足…

数学建模—模糊综合评价模型

一、概述 1、数学归纳法和秃子悖论 数学归纳法&#xff1a;&#xff08;1&#xff09;当n1时&#xff0c;成立&#xff1b;&#xff08;2&#xff09;当nk时&#xff0c;成立&#xff1b;&#xff08;3&#xff09;只需要证明当nk1时&#xff0c;也成立&#xff1b;则推出对所…