基于李雅普诺夫函数的跟踪控制(三)
基于李雅普诺夫函数的跟踪控制(三)
前言
本系列将会介绍基于李雅普诺夫函数的跟踪控制问题,以多个不同的例子来具体说明,如何根据李雅普诺夫函数来求解控制律,实现跟踪控制。总共分为7篇博客讲解,分别针对不同的情况。
跟踪控制—系列博客总览
- 一阶时不变系统,系统已知,且无扰动
- 一阶时不变系统,系统已知,有扰动
- 高阶时不变系统,系统已知,且无扰动
- 一阶时不变系统,系统部分已知,且无扰动
- 一阶时变系统,系统部分已知,且无扰动
- 一阶时变系统,系统部分未知,且有扰动
- 一阶时不变系统,系统完全未知,且无扰动
本期讲解的是:高阶时不变系统,系统已知,且无扰动。
问题描述
已知系统
x˙=f(x)+uy˙=x(1)\begin{matrix} \dot x=f(x)+u \\ \dot y=x \tag{1} \end{matrix} x˙=f(x)+uy˙=x(1)
其中,f(x)f(x)f(x)已知,,求解uuu使得yyy跟踪ydy_dyd。
求解
对于这个问题,首先得拆解问题,首先设计xxx跟踪ydy_dyd,然后设计uuu跟踪xdx_dxd。
(1) 设计xxx跟踪ydy_dyd
设xxx跟踪ydy_dyd的误差及其导数
e1(t)=yd(t)−y(t)(2)e_1(t)=y_d(t)-y(t) \tag{2}e1(t)=yd(t)−y(t)(2)
e1(t)˙=yd(t)˙−y(t)˙=yd(t)˙−x(3)\dot {e_1(t)}=\dot{y_d(t)}-\dot{y(t)} = \dot{y_d(t)}- x \tag{3}e1(t)˙=yd(t)˙−y(t)˙=yd(t)˙−x(3)
取李雅普诺夫函数:
V1=12e12(4)V_1 = \frac{1}{2}e_1^2 \tag{4} V1=21e12(4)
则,V˙1=e1(e˙1)=e1(yd(t)˙−x)(5)\dot V_1 = e_1(\dot e_1) = e_1(\dot{y_d(t)}- x) \tag{5} V˙1=e1(e˙1)=e1(yd(t)˙−x)(5)
令:
−k1e1==yd(t)˙−x(8)-k_1e_1= = \dot{y_d(t)}- x \tag{8} −k1e1==yd(t)˙−x(8)
则可以得到:
V˙1=−k1e12(7)\dot V_1 = -k_1e_1^2 \tag{7} V˙1=−k1e12(7)
所以:
xd=yd(t)˙+k1e1(8)x_d=\dot{y_d(t)}+k_1e_1 \tag{8} xd=yd(t)˙+k1e1(8)
(2) 设计uuu跟踪xdx_dxd
设uuu跟踪xdx_dxd的误差及其导数
e2(t)=xd(t)−x(t)(9)e_2(t)=x_d(t)-x(t) \tag{9}e2(t)=xd(t)−x(t)(9)
e2(t)˙=xd(t)˙−x(t)˙=yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t)(10)\dot {e_2(t)}=\dot{x_d(t)}-\dot{x(t)} = \ddot{y_d(t)}+k_1( \dot{y_d(t)}-x)-f(x)-u(t) \tag{10}e2(t)˙=xd(t)˙−x(t)˙=yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t)(10)
取李雅普诺夫函数:
V2=12e22(11)V_2 = \frac{1}{2}e_2^2 \tag{11} V2=21e22(11)
则,V˙2=e2(e˙2)=e2(yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t))(12)\dot V_2 = e_2(\dot e_2) = e_2( \ddot{y_d(t)}+k_1( \dot{y_d(t)}-x)-f(x)-u(t)) \tag{12} V˙2=e2(e˙2)=e2(yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t))(12)
令:
−k2e2==yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t)(13)-k_2e_2= = \ddot{y_d(t)}+k_1( \dot{y_d(t)}-x)-f(x)-u(t) \tag{13} −k2e2==yd(t)¨+k1(yd(t)˙−x)−f(x)−u(t)(13)
则可以得到:
V˙2=−k2e22(14)\dot V_2 = -k_2e_2^2 \tag{14} V˙2=−k2e22(14)
所以:
u(t)=yd(t)¨+k1(yd(t)˙−x)−f(x)+k2e2(15)u(t) = \ddot{y_d(t)}+k_1( \dot{y_d(t)}-x)-f(x) +k_2e_2 \tag{15} u(t)=yd(t)¨+k1(yd(t)˙−x)−f(x)+k2e2(15)
(3) 同时收敛分析
以上的V1V_1V1和V2V_2V2必须保证同时收敛,也就是能够同时实现xxx跟踪ydy_dyd,然后设计uuu跟踪xdx_dxd。
因此取:
V=V1+V2=12e12+12e22(16)V = V_1+V_2= \frac{1}{2}e_1^2 + \frac{1}{2}e_2^2 \tag{16}V=V1+V2=21e12+21e22(16)
V˙=V1˙+V2˙=−k1e12−k2e22(17)\dot V = \dot{V_1}+\dot{V_2}= -k_1 e_1^2 - k_2 e_2^2 \tag{17}V˙=V1˙+V2˙=−k1e12−k2e22(17)
dotV<=0dot V <=0dotV<=0,而且VVV是一个负定的,因此,当存在e1e_1e1和e2e_2e2不等于0时,一定有V˙<0\dot V <0V˙<0,VVV将会一直下降,同时VVV是满足V>=0V >=0V>=0,所以VVV就会一直趋近于0,即e下降,直到e=0e=0e=0。因此当e1e_1e1和e2e_2e2都为0时,系统才会稳定。
基于李雅普诺夫函数的跟踪控制(三)相关推荐
- 基于李雅普诺夫函数的跟踪控制(二)
基于李雅普诺夫函数的跟踪控制(二) 前言 本系列将会介绍基于李雅普诺夫函数的跟踪控制问题,以多个不同的例子来具体说明,如何根据李雅普诺夫函数来求解控制律,实现跟踪控制.总共分为7篇博客讲解,分别 ...
- 【Carsim Simulink自动驾驶仿真】基于MPC的轨迹跟踪控制
如果对Carsim的基础使用还不了解,可以参考:[Carsim Simulink自动驾驶仿真]基于MPC的速度控制 如果对MPC算法原理不清楚,可以参考:如何理解MPC模型预测控制理论 项目介绍: 教 ...
- 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) zouxy09@qq.com http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无 ...
- 基于MPC的移动机器人轨迹跟踪控制qpOASES例程
参考了 一个模型预测控制(MPC)的简单实现 https://www.cnblogs.com/zhjblogs/p/13880682.html 与 基于MPC的移动机器人轨迹跟踪控制matlab例程 ...
- 基于深度强化学习的智能船舶航迹跟踪控制
基于深度强化学习的智能船舶航迹跟踪控制 人工智能技术与咨询 昨天 本文来自<中国舰船研究> ,作者祝亢等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 0. 引 言 目前,国内外 ...
- 【论文笔记】基于强化学习的连续型机械臂自适应跟踪控制
文章目录 摘要 关键词 0 引言 1 空间连续型机器人动力学模型 1.1 场景假设 (1) 环境假设 (2) 模型假设 1.2 公式分析 2 空间连续型机器人滑模控制器 3 基于强化学习的滑模控制器 ...
- 基于运动学模型的轨迹跟踪控制
章四 基于运动学模型的轨迹跟踪控制 MPC(4)基于运动学模型的轨迹跟踪控制器设计 无人驾驶车辆模型预测控制(龚建伟)第四章 基于运动学模型的轨迹跟踪控制(仿真部分) 无人车辆在惯性坐标系中,车辆必须 ...
- 论文研读笔记(三)——基于障碍函数的移动机器人编队控制安全强化学习
基于障碍函数的移动机器人编队控制安全强化学习(Barrier Function-based Safe Reinforcement Learning for Formation Control of M ...
- 【飞行器】基于matlab四旋翼无人机几何跟踪控制【含Matlab源码 2270期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[飞行器]基于matlab四旋翼无人机几何跟踪控制[含Matlab源码 2270期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 基于模糊补偿的液压机械臂轨迹跟踪控制
摘要: 针对具有摩擦和负载等不确定性的液压机械臂轨迹跟踪控制问题,建立机械臂机械系统.液压系统的数学模型,基于李亚普洛夫函数,提出一种模糊补偿策略进行控制,构造模糊系统逼近摩擦力和负载,应用流量补偿器 ...
最新文章
- Go 学习笔记(3)— 包概念、包特点、包名约束、main 包、包的声明、包的引用、包初始化
- 上海考研计算机专业院校排名,2018考研:计算机专业全球院校排名公布,上海交通大学竟排第一?...
- 【全新打造】思科认证跟踪系统考试注册教程(08.8.30)附word文件下载
- ArcEngine创建字段集
- RTP协议全解(H264码流和PS流)
- jQuery找兄弟系列next(),nextAll(),nextUntil(),prev(),prevAll(),prevUntil(),siblings()
- CodeForces - 1345E Quantifier Question(dfs实现拓扑序)
- axure原型案例_Axure RP9原型案例:制作一个可以滑动的菜单
- 20 Excellent AJAX Effects You Should Know
- 使用gdb调试当前运行的程序
- Glade3 tutorial in chinese
- Opencv_缺少CV_CAP_PROP_FRAME_WIDTH
- C#读取 *.exe.config
- Android系统中的广播(Broadcast)机制简要介绍和学习计划 .
- .Net获取URL中文参数值乱码问题
- hbuilder调试代码_【移动端】hbuilder创建app并利用真机运行调试
- 关于理财的一点点学习成果(先写这些吧)
- Ubuntu下的文件比较工具--meld
- ASEMI整流二极管MR754参数,MR754图片,MR754应用
- linux joe编辑器,Linux joe命令
热门文章
- 如何帮银行保持长期竞争力?融360天机公布独家秘诀
- 去大公司,还是小公司?我也曾犹豫彷徨……
- 老板,上班迷路了,晚点到~
- zstuACM 问题 H: 超级跳跳跳1281
- 【BP-GA】基于GA的BP神经网络优化算法
- js报错“TypeError: ‘stepUp‘ called on an object that does not implement interface HTMLInputElement”
- CM9和AOKP的区别
- oracle_用户与概要文件
- 隔离:正向隔离、反向隔离。
- Android APK文件反编译 查看appid等信息