基于扩张观测器(LESO)的滑模控制

2023-05-16

目录

前言

1 二阶系统LESO观测器设计

2.基于LESO的滑模控制器设计

​​​​3. 仿真分析(普通高增益项)

3.1仿真模型

3.2仿真结果

3.3 总结

4. 仿真分析(优化后的高增益项)

4.1 优化高增益项

4.2仿真结果

4.2.1 高增益①仿真结果

4.2.2 高增益②仿真结果

4.3 总结

5 学习问题


前言

上两篇文章我们介绍了扰动观测器和高增益观测器,顾名思义,扰动观测器就是观测未知的扰动,使我们系统针对扰动时能够“对症下药”;高增益观测器就是一种状态观测器,由于实际中系统并非都是理想的可直接测量的,所以需要借助观测器得到状态变量。

VSC/SMC(八)——基于慢时变干扰观测器的滑模控制(含程序模型)_Mr. 邹的博客-CSDN博客_慢时变干扰观测器

VSC/SMC(七)——基于高增益观测器的滑模控制(白嫖程序模型)_Mr. 邹的博客-CSDN博客

本篇文章,继续介绍一种常见的扩张观测器,也就是我们文献中常看到的缩写:LESO,并且可以和控制器并行设计。

那为什么叫“扩张”?是因为它的结构上比系统多了状态变量。

好了我们开始介绍以及仿真分析吧。

1 二阶系统LESO观测器设计

先以一个简单的二阶系统为例进行设计,它的状态空间方程为如下标准形式:

其中:

假设这个系统的状态变量是不可测的,为其设计如下的LESO:

 其中,ε > 0,且α1、α2、α3均为正实数,即满足如下多项式为Hurwitz多项式:

观测器的状态变量为:

可以看到,比上述二阶系统的状态变量多了一个,实际上σ可以看成是对扰动f的一个观测/估计

也有的文献直接将分式看成一个调节参数,如下:

同理,λ1、λ2、λ3均为正实数。

还有的文献直接将误差变量进行观测,有兴趣的读者可以参考这篇:

《基于扩张观测器的非线性不确定系统输出跟踪---王新华》

对于稳定性分析,读者可以自行阅读文献,这里篇幅原因就不介绍了,谢谢理解!

2.基于LESO的滑模控制器设计

为了使x1能跟踪指令位置x1d,所以跟踪误差e = x1-x1d,并定义如下的线性滑模面:

 其中,c > 0。

注:其实这个滑模面是“中间”滑模面,“中间”指的是观测器,所以后面证明稳定性还是要引入第一级滑模面。

这里我还是应用等效滑模的思想设计控制律:

①对滑模面求导,有:

 ②选取等速趋近律,并且联立滑模导函数,有:

③Lyapunov稳定性证明

略...... 

所以得到得控制律为: 

为了减少抖阵,取ηsign(s) = ηs ,进而得到:

其中:

注:这里的误差是观测器与指令位置之间的误差,同理(x1^)'-(x1d)' = (e')^,即跟踪位置导数(速度)的观测误差。

​​​​3. 仿真分析(普通高增益项)

3.1仿真模型

取上述系统b = 0.1,扰动d = 3*sin(t),指令位置xd = sin(t),并取初始状态为[0.5;0],建立的simulink模型如下:

3.2仿真结果

3.3 总结

优点:可以看到,这样的状态观测器因为有高增益的存在,所以能使跟踪误差迅速趋于0,即跟踪效果和反应速度很快;

缺点:但是导致了一个问题,由于高增益项的存在使得初始峰值很大,这样导致初始的误差很大,而且对控制器的伤害也很大,所以需要优化设计高增益项。

4. 仿真分析(优化后的高增益项)

4.1 优化高增益项

由于扩张观测器本质上也是一种高增益观测器,从上述的仿真结果我们可以看到虽然最终效果不错,但是如果扩张观测器的初始值与被控对象的初值不同,便会导致峰值现象,现在设计如下的两种高增益:

 其中,u > 0,λ1 > 0,λ2 > 0。

4.2仿真结果

4.2.1 高增益①仿真结果

 ​​4.2.2 高增益②仿真结果

4.3 总结

可以看到相比较普通增益,优化后的自适应增益对初始状态的峰值明显较小,说明了所设计优化增益的合理性。

5 学习问题

①对于Simulink Scope模块的多次使用会导致运算时间长,可以选择使用To Workspace模块将数据输出到工作区间后,使用命令画图。

②所谓的“扩张”指的是扩张了对不确定性项f的估计,把f当成状态变量,所以整体的观测器比被控对象多了一个状态变量f^。

③从相轨迹看稳态误差感觉有些奇怪。

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

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

参考资料:

《Nonlinear Control》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于扩张观测器(LESO)的滑模控制 的相关文章

随机推荐

  • python的list列表的增加方法运用

    目录 1 append方法的用法和实例 xff08 1 xff09 语法 xff1a list append object xff08 2 xff09 用法 xff1a 可以在原有列表尾部插入目标的值 xff08 3 xff09 实例 简单
  • python的list列表的删除方法运用

    目录 1 pop方法的用法和实例 1 语法 list pop index
  • python列表list的index方法的用法和实例

    目录 1 index方法的用法和实例 xff08 1 xff09 语法 xff1a list index xff08 object start end xff09 xff08 2 xff09 用法 xff1a 从列表中获取指定索引元素的第一
  • python的列表list排序方法——sort、reverse用法及实例

    目录 1 sort方法的用法和实例 xff08 1 xff09 语法 xff1a list sort key reverse xff08 2 xff09 用法 用于对列表进行排序 xff08 3 xff09 实例 简单的用法实例 与lamb
  • python数据类型之间的互相转换

    目录 1 将元组转为列表 xff08 1 xff09 语法 xff1a list tuple xff08 2 xff09 实例 简单的用法实例 与for函数 if函数 split函数结合使用 2 将列表转为元组 xff08 1 xff09
  • excel的frequency函数的用法和实例

    目录 1 语法和用法 xff08 1 xff09 语法 xff1a frequency data array bins array xff08 2 xff09 用法 xff1a 用于统计指定分组区间的频率 xff0c 以已裂垂直数组返回一组
  • Linux系统下通过命令行获取bios等相关信息

    查看服务器型号 xff1a dmidecode grep 39 Product Name 39 查看主板的序列号 xff1a dmidecode grep 39 Serial Number dmidecode t 1 查看序列号及品牌型号
  • python如何获取时间和格式化时间和日期 ?

    目录 1 time time xff08 1 xff09 用法 xff1a 用于获取当前时间戳 xff08 2 xff09 实例 2 time localtime xff08 1 xff09 语法 xff1a time localtime
  • python的datetime模块常用的语法和实例

    目录 1 datetime类获取日期时间 xff08 1 xff09 datetime datetime now 用法 xff1a 获取系统当前时间 xff08 2 xff09 datetime datetime today 用法 xff1
  • python的自定义函数的用法和实例

    目录 1 自定义函数的语法和用法 xff08 1 xff09 引入 xff08 2 xff09 语法 xff08 3 xff09 用法 xff1a 用于自定义目标函数语法 xff08 4 xff09 调用函数 语法 解释 2 实例 xff0
  • python的字典dict实例

    1 获取目标字典 xff0c 将字典中的字键和值调换 xff0c 读取名字 dict 61 39 Zara 39 39 Name 39 7 39 Age 39 39 First 39 39 Class 39 dict items 以列表返回
  • python利用read()、readline()、readlines()读取文件

    目录 1 语法和用法 2 实例 1 语法和用法 with open file mode 61 39 r 39 encoding 61 None as f 读取所有文本 data1 61 f read 读取第一行数据 data2 61 f r
  • python的panda库读写文件

    目录 1 读取excel文件 xff08 1 xff09 语法 xff08 2 xff09 实例 2 读取cvs文件 xff08 1 xff09 语法 xff08 2 xff09 实例 3 读取txt文件 xff08 1 xff09 语法
  • frankmocap

    1 配置和报错 1 1 模块缺失 ModuleNotFoundError No module named detectors body pose estimator pose2d models 下载问题 xff0c 下载完之后该文件夹下面的
  • java的三种代码注释方式

    1 注释的作用 注释是对程序语言的说明 xff0c 有助于开发者之间的交流 xff0c 方便理解和维护程序 注释不是编程语句 xff0c 不会被编译器执行 一些代码量少较少的程序 xff0c 我们加不加注释对我们的理解和修改代码没有太大影响
  • UCOS的多任务

    初学UCOS多任务调度 xff0c 总是有这样一个疑惑 xff1a 为什么多使用多任务 xff0c 写多个函数不就可以了吗 xff1f 随着不断学习 xff0c 后面终于有了一个答案 多任务是并发执行 xff0c 每个任务都做一点 xff1
  • IAR编译成功,但烧录不进去

    把默认的Simulator改为ST LINK试试 xff1f
  • ipmitool使用

    BMC IPMI常用命令 BMC Baseboard Management Controler 提供了多种通道来和主机通信 xff0c 进而检测主机的温度 风扇转速 电压 电源和现场可替代器件 为了便于用户使用 xff0c 它提供了非常丰富
  • 基于LMI的等效滑模控制

    目录 前言 1 一阶欠驱动倒立摆系统 2 基于LMI的等效滑模控制器 3 simulink仿真 3 1 simulink模型 3 2 结果分析 3 2 结论 前言 关于LMI和滑模控制的结合上两篇文章已有介绍和仿真分析 xff0c 本篇文章
  • 基于扩张观测器(LESO)的滑模控制

    目录 前言 1 二阶系统LESO观测器设计 2 基于LESO的滑模控制器设计 3 仿真分析 普通高增益项 3 1仿真模型 3 2仿真结果 3 3 总结 4 仿真分析 优化后的高增益项 4 1 优化高增益项 4 2仿真结果 4 2 1 高增益