基于LMI的非线性混沌系统滑模控制

2023-12-05 19:40

本文主要是介绍基于LMI的非线性混沌系统滑模控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

1.非线性系统

2.控制器设计

3.仿真分析

3.1仿真混沌系统

3.2 LMI求解反馈阵F 

3.3仿真模型

​​​​3.4仿真结果

3.5注意事项


前言

前面我们介绍了很多种滑模面设计,以及介绍了几篇结合LMI的滑模控制,其核心思想可以看作是用LMI去控制非线性的状态反馈部分,滑模去做线性的鲁棒部分,本篇博客介绍一篇非线性系统的滑模控制。

1.非线性系统

\dot{x}=f+Ax+Bu+d

其控制目标为使状态变量x趋近于目标量xr,其中非线性函数f满足Lipschitz条件,即:,L为Lipschitz条件的矩阵。

2.控制器设计

定义误差变量z=x-xr,则误差变量导数z'=x'-xr',这里可以将误差z看作为动态的滑模面,所以将z设计为滑模函数,设计如下形式的控制律:

u=Fx+u_{r}+u_{s}

其中:

①F为求解LMI得到的状态反馈增益,F=inv(PB)M;

 

②ur=-Fxr-inv(B)(Axr+f(xr)-xr')为前馈控制项;

③us=-inv(B)(εsign(z))为滑模鲁棒项。

所以控制律变为:

3.仿真分析

3.1仿真混沌系统

​​​​​​​

 Lipschitz矩阵L的选取:

当状态变量x∈[a,b],f(x)为定义在该区间的连续光滑函数,根据中值定理有:f(a)-f(b)<f'(x)(a-b),所以上述非线性函数f有如下不等式成立:

显然f'(x)是一个3x3的雅可比矩阵,且最大的元素即对x1的偏导为1,可以令L≥max(f'(x)),所以定义矩阵L为: 

3.2 LMI求解反馈阵F 

这里使用YALMIP工具箱求解,也可以使用maltab自带的LMI工具箱求解,具体求解就不再叙述了,往期文章有很多。

求解结果为:F =

   -1.5127   -5.0500    0.0001
   -5.0497   -2.6069    6.5995
    0.0001    6.6000   -3.6072

3.3仿真模型

这里选择初始的状态为[1 -1 -1]

​​​​3.4仿真结果

 总结:可以看到对于跟踪的效果在峰值的时候误差还是比较大的,效果不是特别理想,具体的原因等待后面的探索

3.5注意事项

①对于求解器的选择和步长的选择对仿真结果的影响还是比较大的,刚开始选择任意求解和任意步长的时候求解的效果较差,此外选择定步长为0.01时效果也很差,后面将步长调整到0.001才有了上面较好的效果。但是对于初始步长到跟踪目标所需的时间极短!

②对于L的选择冒失在这里影响不是很大,因为我试图将L增大重新求解F矩阵,但是仿真结果几乎相差不大,可能是LMI反馈项影响权重不是很大的原因。

如果有帮助,麻烦帮忙点个赞是我最大的分享动力,非常感谢!

注:仅为便利自己学习,错误在所难免,如有侵权,请联系删除,有兴趣的学者可以参考学习交流,谢谢!

这篇关于基于LMI的非线性混沌系统滑模控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/458891

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1