Backstepping(反步控制方法)

一、基本思想

设计思想:首先由于非线性系统通常较为复杂,通过一系列方法将其分解为几个子系统,并且不超过系统阶数的,接着给分解后的每个子系统设计Lyapunov函数以及中间虚拟控制量,直到“返回”到整个系统,最后把各子系统集成起来实现整个控制律的设计。下面利用一个三阶(SISO)非线性系统来具体介绍Backstepping的设计过程

考虑下面的三阶(SISO)非线性系统:

Backstepping(反步控制方法)_第1张图片

Backstepping(反步控制方法)_第2张图片 

Backstepping(反步控制方法)_第3张图片 

Backstepping(反步控制方法)_第4张图片 

Backstepping(反步控制方法)_第5张图片 

二,代码示例

 本文的代码部分采用的是在csdn站内常见的简单二阶系统,参见​​​​​​(39条消息) 全网最细反步法控制(Backstepping)simulink设计与实例讲解!!(1)_小乖乖的臭坏坏-CSDN博客_backsteppingicon-default.png?t=LA92https://blog.csdn.net/weixin_42887138/article/details/109089396?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163902500216780366570077%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163902500216780366570077&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-109089396.first_rank_v2_pc_rank_v29&utm_term=backstepping&spm=1018.2226.3001.4187

 Backstepping(反步控制方法)_第6张图片

针对这个二阶系统 ,

(39条消息) 控制学习笔记(1)——反步控制法_ProjectJ的博客-CSDN博客_反步控制icon-default.png?t=LA92https://blog.csdn.net/ProjectJ/article/details/115334904?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163902778816780366539866%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163902778816780366539866&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-115334904.first_rank_v2_pc_rank_v29&utm_term=%E5%8F%8D%E6%AD%A5%E6%8E%A7%E5%88%B6&spm=1018.2226.3001.4187给出了Simulink 的仿真程序,但是经过实验,该仿真程序对输入正弦信号的幅值和频率以及K1和K2的取值由众多限制,究其原因,发现是在对\dot{x}_{1d}\dot{x}_{2d},也就是\ddot{x}_{1d}求导的部分,引用术语叫做“explosion of terms",即存在由求导引起的爆炸项,展示在Simulink的示波器内是变量值突然跃变为一个很大的值,在文献[1]中作者提出了一种解决方法,即采用一阶滤波器的形式,代替求导,也可以理解为用离散的方式近似求导,具体可以参见 

(39条消息) 全网最细反步法控制(Backstepping)设计讲解!!(3)——反步法控制、动态面matlab实例!(Dyanamic surface control)_小乖乖的臭坏坏-CSDN博客_反步法控制​​​​​​​


 

具体公式推导可以参见该文,并且文中附上了以m文件的形式的程序,本质上是以离散的方式来达到近似求导的目的,以代替连续系统中的求导 

本文的贡献是用Simulink 的方式实现了与m文件中的相同功能

Backstepping(反步控制方法)_第7张图片

仿真结果为

Backstepping(反步控制方法)_第8张图片 

 对于参考信号为正弦信号的输入,也不再受到幅值和频率的影响,也能有较好的跟踪效果,参数K1和K2无论其大小,都能保证其是稳定的,调节K1和K2的作用在于调节在跟踪过程中能够容许的跟踪误差,即K1和K2用于控制非稳态时的跟踪误差的大小

对应的slx文件后续上传

你可能感兴趣的:(经验分享)