自适应控制设计(二)
自适应控制设计(二)
《自适应控制基本思想》一文主要介绍了自适应控制设计的基本思路,但是针对控制率的设计没有具体说明,这里针对反馈控制率的设计步骤进行具体介绍
控制器设计基本思想
对于任何一个动态系统,我们都可以根据Lyapunov稳定性设计其控制器,具体的说就是
- 首先根据期望值 xdx_{d} ,将原系统改为误差系统,即将 x˙=f(x,u)\dot{x} =f( x,u) 转化为 e˙=f(e,u,xd)\dot{e} =f( e,u,x_{d}) ,利用误差信息,并在此基础上进行控制系统则为闭环控制系统设计,即我们利用系统的输出值,开环控制则不需要任何系统的反馈信号
- 在误差系统 e˙=f(e,u,xd)\dot{e} =f( e,u,x_{d}) 的基础上,理论上,只要我们构造了某一个Lyapunov函数,为了满足系统稳定性的条件,构造了相对应的控制 uu ,则完成了系统控制率的设计
那么包括滑模控制,反馈线性化控制都是基于上述思想进行设计的,也基本代表了现代控制理论的设计思路,其实传统的控制系统设计也是基于满足系统稳定性进行设计,只不过传统的系统稳定性是是基于传递函数,保证系统的特征方程稳定
这里对比一个现代控制理论与传统控制理论设计思路上的区别
- 为了满足闭环控制,传统控制理论采用闭环设计,并在此基础上建立系统的传递函数;现代控制系统采用,将原系统转化为误差系统,并基于误差系统进行控制器设计
- 系统稳定性分析,传统控制理论建立系统的传递函数,并依据系统的特征方程根的分布,判断稳定性;现代控制理论采用Lyapunov稳定性分析
- 控制器设计思路,传统控制理论与现代控制理论都是为了保证系统的稳定性设计控制 uu ,即传传统控制理论将 uu 代入传递函数中,调整 uu 的结构,使得特征方程稳定;现代控制方法找到系统某一Lyapunov函数,对其求导,基于为了保证导数小于零的原则,设计相对应的控制 uu
补充说明
对于传统控制,之所以闭环系统鲁棒性高,是因为即使有了外接干扰,不会印象整个系统的特征方程根的分布,然后开环系统的特征方程直接与外界干扰有关,因此鲁棒性差;现代控制系统鲁棒性强的分析是基于Lyapunov稳定性
控制器设计整个思考过程为
- 一开始当我们看到一个系统时,首先想到的是如何可以求解输出与输入的解析表达式 y=f(u)\ y=f( u) ,就可以直接进行控制器的设计 u=f−1(yd)u=f^{-1}( y_{d}) ,但是人们发现这其中有两个问题,首先系统的微分方程往往难以求解,其次这种设计属于开环设计,即我们并没有利用输出与期望的误差,系统的稳定性难以保证
- 因此人们转而将研究思路放在对微分方程稳定性的研究上,如果我们不直接求解 u=f−1(yd)u=f^{-1}( y_{d}) ,而是设计一种控制 uu ,使得系统动态调整到期望的值并保持稳定
- 从微分方程的最简单形式,单变量线性微分方程,即线性单输入单输出系统(传统控制理论),到多变量非线性微分方程,即多输入多输出系统(现代控制系统理论)
对于很对系统而言,找到系统理想的Lyapunov函数是困难的,为了寻找Lyapunov函数,我们需要对问题进行分解转化。
反馈线性化控制的基本思路,首先设计稳定的误差系统,其次再设计控制使得稳定的误差系统可以保持。
比如可以结合传统控制理论与线控控制理论系统稳定性相关的理论。具体来说,传统控制是通过对线性系统进行拉普拉斯变换后,得到系统的特征方程,并依据特征根的分布进行设计的,那么我们就可以将系统的误差动态系统人为的设计成稳定的线性系统,如果该系统一直满足,那么原系统就可以稳定。如果才能让理想的误差动态系统满足,我们可以再根据现代控制理论,依据Lyapunov,对理想的误差系统进行设计。
比如
s2e+λ1se+λ2e=0s^{2} e+\lambda _{1} se+\lambda _{2} e=0 为人为设计的理想稳定的误差系统
设 es=s2e+λ1se+λ2ee_{s} =s^{2} e+\lambda _{1} se+\lambda _{2} e ,即需要满足 es=0e_{s} =0 ,因此我们需要研究 ese_{s} 的动态特性,建立 ese_{s} 的动态系统,并依据Lyapunov稳定性设计其控制率,满足 es=0e_{s} =0
当 es→0e_{s}\rightarrow 0,e→0e\rightarrow 0
设计的理想误差系统的不同衍生出了很多不同的控制方法,比如线性滑模,非线性滑模等等
根据上述讨论,总体设计分为以下两个步骤
设计理想误差动态系统
需要人为设计理想的误差动态系统,即
e˙=f(e)\dot{e} =f( e) ————(1)
如果设计的该误差动态系统(1)是稳定的,即 limt→∞e(t)=0\lim _{t\rightarrow \infty } e( t) =0 ,那么原系统稳定
控制率设计
根据稳定的误差系统(1),设计反馈控制 uu ,即如果设计的控制率可以满足该误差系统,则可以保证原系统稳定
具体步骤
理想误差动态系统设计
定义如下系统
⎧⎩⎨xi˙=xi+1˙xn˙=f(x)+g(x)u+d(t)y=x1i=1,…,n−1\begin{cases} \dot{x_{i}} =\dot{x_{i+1}} & i=1,\dots ,n-1\\ \dot{x_{n}} =f( x) +g( x) u+d( t) & \\ y=x_{1} & \end{cases}
定义系统误差
ei=xi−xid , i=1,…,n−1e_{i} =x_{i} -x_{id} \ \ ,\ \ i=1,\dots ,n-1
我们完全可以这么设计,比如设计误差系统
e1=0e_{1}=0
根据该系统求解控制 uu ,我们假设 e1=ese_{1} =e_{s} ,之所以要这么假设,是因为我们设计的uu并没有在 e1=0e_{1}=0 显含,也就是没有办法直接求解,那么只能通过分析e1=0e_{1}=0的动态系统,看是否可以找到控制 uu ,因此我们要把 e1=0e_{1}=0 当做一个系统来研究,因此给它设了一个变量 ese_{s}
补充说明
如果一个常量 e=0e=0 ,设 f=ef=e ,则 f˙=0\dot{f} =0
如果 e(t)e( t) 为一变量, e(t)=0\ e( t) =0,同理设 f=e(t)f=e( t) ,并不等同于 f˙=0\dot{f} =0 。而应该这么说,为了让 e(t)=0\ e( t) =0 ,我们需要设计其微分系统 f˙\dot{f} ,并使其 f˙=0\dot{f} =0 ,这个与控制系统的设计是一致的
上述说明看起来很显然,但其实说明,如果为了让一个变量为0,其实应该是分析其微分系统,即对变量求导如果 e(t)e( t) 中直接显含了控制 uu ,那么我们实际上就可以直接设计 uu 让 e=0e=0 ,但是这样的设计并不能保证系统的稳定,言外之意是,我们虽然让e=0e=0,但是系统不具备鲁棒性,也就是 e=0e=0 并不能一直保持下去,即使 uu 直接显含,我们也可以设 f=e(t)f=e( t) ,并对 ff 求导,我们可分析 ff 系统的稳定性,这与 uu 是否直接显含并无关系
- 因此对一个变量求导,再求解控制 uu ,使其 e(t)=0\ e( t) =0 ,主要是从其控制的稳定性角度出发的
- 那么如果e(t)e( t)中直接显含了控制uu,但又要保证系统的稳定性,该如何设计呢?实际上可以通过对 ff 求导后,f˙\dot{f} 中会出现 u˙\dot{u} ,我们对 u˙\dot{u} 设计,并对其求积分可以得到 uu
因此,根据上述说明,为了保证 es=0e_{s}=0 成立,直接让控制 uu 显含并直接求解并不能保证误差系统能够按照我们设定的那样一直保持。对于 e1=ese_{1} =e_{s} 而言,需要不断的求导直到 uu 显含,这样控制器的设计就会很复杂,与我们设计的初衷是违背的,我们是希望能在这一步中,简化控制器的设计,将白了就是为了降低yapunov函数构造的难度。因此我们最好设计一种理想稳定的误差系统,使得在该系统的一阶导里就显含控制 uu ,这样就可以降低了Lyapunov函数的构造,又能保证 es=0e_{s}=0 的稳定
基于上述考虑,我们可以将理想的误差系统设计为
λ1e1+λ2e2+⋯+λn−1en−1+en=0\lambda _{1} e_{1} +\lambda _{2} e_{2} +\dots +\lambda _{n-1} e_{n-1} +e_{n} =0
理想误差系统控制器设计
设理想的误差系统es=λ1e1+λ2e2+⋯+λn−1en−1+ene_{s} =\lambda _{1} e_{1} +\lambda _{2} e_{2} +\dots +\lambda _{n-1} e_{n-1} +e_{n}
可以改写成如下形式
es=[ΛT 1]ee_{s} =\left[ \Lambda ^{T} \ 1\right] e
e=x−xd=[e1,…,en]e=x-x_{d} =[ e_{1} ,\dots ,e_{n}]
Λ=[λ1,…,λn−1]T\Lambda =[ \lambda _{1} ,\dots ,\lambda _{n-1}]^{T}接下来需要分析ese_{s} 的动态特性,我们需要对其求一阶导,在设计之初就是将uu显含在ese_{s} 一阶导中
e˙s=λ1e1˙+⋯+λn−1en−1˙+en˙\dot{e}_{s} =\lambda _{1}\dot{e_{1}} +\dots +\lambda _{n-1}\dot{e_{n-1}} +\dot{e_{n}}
e˙s=λ1e2+⋯+λn−1en+en˙\dot{e}_{s} =\lambda _{1} e_{2} +\dots +\lambda _{n-1} e_{n} +\dot{e_{n}}
e˙s=[0 ΛT]e+a(x)+b(x)u\dot{e}_{s} =\left[ 0\ \Lambda ^{T}\right] e+a( x) +b( x) u
设v=[0 ΛT]ev=\left[ 0\ \Lambda ^{T}\right] e,则
e˙s=v+a(x)+b(x)u\dot{e}_{s} =v+a( x) +b( x) u针对 es{e}_{s} 系统,可以设计Lyapunov函数为
V=12e2sV=\dfrac{1}{2} e^{2}_{s}
为了保证系统的稳定性,我们需要相对应的控制uu
首先V˙=ese˙s=es[v+a(x)+b(x)u]\dot{V} =e_{s}\dot{e}_{s} =e_{s}[ v+a( x) +b( x) u]
可以采用如下思路进行设计
控制 uu 需要消除系统中的非线性项,即 v+a(x)v+a( x)
则 uu 的初版为 u=−1b(x)[a(x)+v]u=-\dfrac{1}{b( x)}[ a( x) +v] ,很显然代入 V˙\dot{V} 后系统并不稳定,但是结构上简单了很多
V˙=es⋅0\dot{V} =e_{s} \cdot 0但是该系统并不稳定,因此只是消去非线性项是不够的,还需要额外添加一些项,为了能够利用上 V˙\dot{V} 中已经存在的 ese_{s} 项,设额外添加项为
β(x)es\beta ( x) e_{s}
则Lyapunov函数导数转化为
V˙=es⋅β(x)es\dot{V} =e_{s} \cdot \beta ( x) e_{s}
具体 β(x)\beta ( x) 设计可以有很多种,但大体的思路就是让 V˙<0\dot{V}
当然系统的Lyapunov函数也不仅仅局限于 V=12e2sV=\dfrac{1}{2} e^{2}_{s} ,也可以设成 V=e2s2b(x)V=\dfrac{e^{2}_{s}}{2b( x)}
自适应控制设计(二)相关推荐
- (原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示
在(原创基于ZedBoard的Webcam设计(一):Zedboard上的USB摄像头(V4L2接口)的图片采集中,我们完成了ZedBoard上USB摄像头的单幅图片采集,采集到的图片是存储在文件系统 ...
- go二维map_mirrorlang——从0设计二维内存寻址语言及vm(五.内存管理的思考)
目录 鹏鹏李李:mirrorlang--从0设计二维内存寻址语言及vm [目录]zhuanlan.zhihu.com 由一段函数开始思考内存布局 func longestPalindrome(s s ...
- 计算机网络抓包参考文献,计算机网络课程设计二(网络抓包与分析)
<计算机网络课程设计二(网络抓包与分析)>由会员分享,可在线阅读,更多相关<计算机网络课程设计二(网络抓包与分析)(9页珍藏版)>请在人人文库网上搜索. 1.课程设计课程名称: ...
- LoRa 学习Day4 LoRa无线通信设计(二)空空距离测试
https://blog.csdn.net/jiangjunjie_2005/article/details/48102279 LoRa无线通信设计(二)空空距离测试 https://blog.csd ...
- Lua--棋牌游戏开发(概念性设计二
Lua–棋牌游戏开发(概念性设计二) 1:获取"棋牌工具.lua"文件,文件后return CardUtils 参考上一篇博文链接:Lua–棋牌游戏开发(概念性设计一) local ...
- 基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示
在(原创基于ZedBoard的Webcam设计(一):Zedboard上的USB摄像头(V4L2接口)的图片采集中,我们完成了ZedBoard上USB摄像头的单幅图片采集,采集到的图片是存储在文件系统 ...
- 【二维码营销案例】圣诞促销活动如何设计二维码能拉新留存促活转化?
圣诞节是品牌宣传造势的又一大节日,拉新留存促活转化考验大家KPI能力的时刻到了.二维码作为必不可少的移动互联网营销工具,能给品牌营销活动带来事半功倍的效果.那么,圣诞促销活动如何设计二维码才好呢?这是 ...
- (王爽)汇编语言-课程设计二完整版
王爽汇编语言-课程设计二 前言 特别感谢 实验结果 实验思路 如何优化调试流程以节省时间 源码 未完成部分 前言 刚刚把lab2调试完,2021年10月12日 16:26:36,本来是打算在oneno ...
- 将沁园春长沙写出来使用html css,高一语文教案:《沁园春长沙》教案设计二
高一 断肠句子:难过的诗句子.http://n.sinaimg.cn/news/1_img/dfic/2b0c102b/107/w1024h683/20190807/0ecd-iaxiufn3904 ...
最新文章
- 缓存 Cache-Control:max-age symfony
- js计算两个日期的时间差
- Android升级butterknife,Android组件化开发中使用Butterknife的坑
- linux三剑客试题,linux三剑客-awk
- ORC文件存储格式的深入探究
- Replace Temp with Query(以查询取代临时变量)
- 第34课 生命周期与素数 《小学生C++趣味编程》
- uni app 录音结束监听_全新重构,uni-app实现微信端性能翻倍
- 使用pyinstaller把pyton文件打包成exe文件
- mysql远程连接出错
- 修改typora主题的字体
- Visual Studio下载安装编写C语言
- 使用CSS制作图片相框以及图片放大旋转效果
- 100M宽带的网络下载速度可以达到多少
- 关于修改了网页源文件但是网站显示却没变的问题解决
- word文档编辑受限制怎么解除?
- 第十六届中国研究生电子设计竞赛记录
- 学习日记——图片有留白
- 第17课 项目成本管理
- 【Neuralink 与大脑的神奇未来】Part 2:大脑
热门文章
- html中第二行标签之间间隔不一样,Word第一行字和第二行字之间的间距怎么不一样...
- 数据结构-线性表-串
- 全网最强下载神器IDM使用教程:如何利用IDM加速下载百度网盘大文件
- WGS84、GCJ-02、BD-09、图吧坐标简介及坐标转换实现(java版)
- 新能源汽车BMS开发工程师
- iOS底层开发消息发送与转发流程
- intellij idea 无法使用复制,粘贴按钮
- Cisco交换机端口假死(err-disable)解决方法
- 【项目管理案例】第十期:如何做好项目采购管理
- Java如何把UNIX时间戳转换成日期格式-日期格式转化时间戳戳-当前时间戳