实习还是能学到很多学校学不到的东西,总结下实习期间学到的一个自适应控制方法。最近比较忙,先大致写下原理的笔记供自己复习,后面有空再更下仿真。如有错误请不吝赐教~

背景

举个例子,目前公司自动驾驶车队主要有几款不同的车型,不同车型的方向盘型号都不同,可能有的用国产转向器,有的用进口转向器,有的车方向盘响应速度慢,有的方向盘响应速度快。不同的转向器在面对同一个上层算法指令时,所表现的执行效果肯定不完全相同。而且自动驾驶车队越庞大,同一算法下不同执行器的响应误差也就越大。为了使同一上层算法在不同执行器上执行效果尽可能相同,我们选用了模型参考自适应控制(Model Reference Adaptive Control, MRAC)。

为什么选择MRAC控制器

相比其他自适应控制器,MRAC可以自己设计一个参考的模型,使得不同的控制器在同一控制指令下,能够和我们自己设计的参考模型的响应曲线相同,而不受被控系统本身的性能影响。  且参考模型的性能要好于真实模型,如果参考模型性能还不如真实模型,那也没必要用参考模型来拉低原来的控制效果了。

整体框架

MRAC控制器整体框架如下图所示,MRAC在自动驾驶中往往与上层控制算法共同使用,根据上层的横向/纵向控制算法(MPC、LQR/PID)输出的参考输入,即方向盘转角/油门开度,经过自适应控制器重新计算输入,并作用于被控系统(方向盘/油门)。下面详细说明各模块计算方法。

基于Lyapunov方法证明了控制器的全局稳定性,Lyapunov法是一种无须求解系统的动力学方程,就可以直接评估非线性系统平衡点稳定性的强有力工具。

定义:若函数 V(x) 满足下述条件:

  • V(x) 是正定的,即 V(x) > 0 并且具有连续的一阶偏导数;
  • 至少是半负定的,即 dot V(x) ≤ 0。

根据Barbalat's Lemma,如果满足以上两个条件,则控制器稳定。

设计Lyapunov函数如下所示

控制器公式推导可以参考这两篇博客,本文就直接列出公式推导结果了。MATLAB2022也给出了几个MRAC的demo,有兴趣可以试试。

Apollo模型参考自适应控制MRAC (二)-MRAC例题_cyytum的博客-CSDN博客

Model Reference Adaptive Control (MRAC)(1) - 知乎

Model Reference Adaptive Control- MATLAB & Simulink- MathWorks 中国

参考模型

本文只讨论一阶模型的MRAC,状态方程如下:

式中:

  • r(t)是参考的输入(上层MPC/PID的参考控制指令)
  • xm(t)是参考控制系统状态(方向盘转角/油门开度)。由于r(t)已知,因此可以通过微分方程,使用龙格库塔或者双线性变换方法,仿真计算下一帧的xm(t)。
  • Am是参考系统状态转换参数矩阵。对于一个稳定系统来说,Am<0。
  • Bm是参考系统控制参数矩阵(对于一阶模型,Am和Bm均为为1×1的矩阵)。

对于一阶系统而言,有一个重要的性能指标:时间常数(TIme constant),用tau表示,它反映了一一阶系统的响应速度。a越大,tau越小,系统的反应速度越快,tau的计算公式:

控制器输入计算公式

控制器的设计如下图所示,计算输入u(t)公式:

式中:

  • x(t)是控制系统状态(方向盘转角/油门开度)
  • r(t)是参考的输入(上层MPC/PID的参考控制指令)
  • kx和kr分别是反馈、前馈控制增益(即自适应控制增益)

真实模型

在实际工程中,我们是不知道真实控制器的模型参数的(不同执行器的参数可能不同,如果知道了也不需要用模型参考自适应控制了,直接用真实模型参数计算就完事了)。因此仿真实验只能借鉴一个近似于实际控制器的参数,来模拟上车后达到的效果。

式中:

  • xp(t)是真实控制系统状态(我们想要控制的状态)
  • u(t)是控制器计算的输入
  • ApBp分别是真实模型的参数矩阵
  • f(x)是输入的扰动量(实际工程中很常见)

自适应控制率

自适应控制率即为kx和kr的变化率,按以下方式计算:

式中:

  • Γx和Γr是自适应增益变化的步长,它决定了自适应控制率收敛的快慢,也是实际使用中唯一能调的参数。
  • e(t)是参考模型的状态和真实模型状态之间的误差

扩展

1、具有纯延时的一阶系统使用MRAC能否全局稳定?

上面介绍的是最简单的一阶MRAC系统,该系统是全局稳定的,但具有延时的系统是否还能全局稳定呢?

实际工程中,许多被控对象都可以被视作是具有纯延时的系统。纯延时系统即被控对象的控制效果具有延迟,现在的控制指令td时间之后才能作用到控制器上。我们在公式推导时推导出的全局稳定是在u(t)能够立刻执行的基础上的,而一阶纯延时系统是拿在td时间之前能使系统稳定的输入,去给td时间之后执行。在原理上不能保证td之前的输入u(t)在td时间之后还能使系统稳定,因此这个系统不是一个全局稳定的系统,只能在某些条件下稳定,是一个局部稳定系统。

2、控制器优化思路

给自适应控制增益加上一个修正系数,让自适应变化率能够参考上一次的自适应控制增益。试过,用处不是很大,在应对纯延时系统时有一点帮助。

参考

[1]Apollo模型参考自适应控制MRAC (二)-MRAC例题_cyytum的博客-CSDN博客

[2]Model Reference Adaptive Control (MRAC)(1) - 知乎

[3]Model Reference Adaptive Control- MATLAB & Simulink- MathWorks 中国

基于模型参考自适应控制(MRAC)的自动驾驶方向盘(油门)控制方法相关推荐

  1. 【控制】自适应控制,模型参考自适应控制,公式推导,有程序有结果图

    目录 自适应控制的一点笔记和看法 1 [控制]自适应控制基本概念 2 [控制]自适应控制,对参考信号跟踪,对未知参数估计的小例子,带程序有结果图 3 [控制]自适应控制,模型参考自适应控制,公式推导, ...

  2. 基于RGB和LiDAR融合的自动驾驶3D语义分割

    基于RGB和LiDAR融合的自动驾驶3D语义分割 论文 RGB and LiDAR fusion based 3D Semantic Segmentationfor Autonomous Drivin ...

  3. Control-模型参考自适应控制(MRAC)

    自适应控制可以在系统老化或者存在建模不确定性的情况下改善控制系统性能.自适应控制是一类处理不确定性系统的非线性控制方法,这些不确定性可能来自系统的动力学自身无法预见的变化或者外部的干扰.自适应控制系统 ...

  4. 【控制】自适应控制,模型参考自适应控制,参考模型如何求取,有程序有图

    目录 自适应控制的一点笔记和看法 1 [控制]自适应控制基本概念 2 [控制]自适应控制,对参考信号跟踪,对未知参数估计的小例子,带程序有结果图 3 [控制]自适应控制,模型参考自适应控制,公式推导, ...

  5. python路线寻优_使用模型预测控制和PID实现自动驾驶的车道保持

    本文为 AI 研习社编译的技术博客,原标题 : Lane keeping in autonomous driving with Model Predictive Control & PID 作 ...

  6. 基于模型参考自适应的永磁同步电机参数辨识模型

    基于模型参考自适应的永磁同步电机参数辨识模型 编号:7540655961097765三人班

  7. 基于车路协同的高等级自动驾驶数据交互内容

    基于车路协同的高等级自动驾驶数据交互内容 基于车路协同的高等级自动驾驶系统组成 1. 系统架构 2. 系统功能 2.1 RSS各组成单元功能 2.2 VSS各组成单元功能 3. 系统交互 基于车路协同 ...

  8. 自适应控制---模型参考自适应控制(一)基于局部参数最优化的设计方法(MIT方案)

    模型参考自适应简介 基于局部参数最优化的设计方法(MIT方案) 举例 n<=4时的劳斯判据: n=1时,特征方程为:,各系数为正. n=2时,特征方程为,各系数为正. n=3时,特征方程为,各系 ...

  9. Goodwin模型参考自适应控制方案

    本篇博客简要介绍Goodwin控制方案,并进行了Matlab实现. 博主在完成自适应控制小课程设计时需要用到Goodwin MRAC控制方案,但是在国内外网站上均没有找到简单易懂的参考资料,而学校用到 ...

最新文章

  1. 2017清华本科生特等奖得主出炉,AI学霸乔明达获奖
  2. java 音乐api接口_关于网易云音乐爬虫的api接口?
  3. 30岁自学python找工作-程序员自学Python开发,20到30岁几乎决定了你的未来!
  4. python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
  5. Python应用实战-Python爬取4000+股票数据,并用plotly绘制了树状热力图(treemap)
  6. web安全之CSRF
  7. python数独游戏源代码100行_python实现自动解数独小程序
  8. 贪吃蛇大作战html5,贪吃蛇大作战5.0.1
  9. 部署VC2008应用程序
  10. 《AutoCAD 2013中文版从入门到精通》—— 导读
  11. attachEvent方法绑定事件
  12. C# + OpenXML 生成 Word 文档(VS2015)
  13. 励志电影排行榜2011
  14. 【配置】Pycharm远程连接服务器、配置SSH、配置py环境
  15. PHP抓取某页面指定内容
  16. 图像处理(二十三)基于调色板的图像Recoloring-Siggraph 2015
  17. 面对一切,我们要坦然
  18. Android 之路56---AIDL建立远程通信
  19. luoguP3625 APIO2009 采油区域
  20. Android - 双向绑定

热门文章

  1. Android通过读取AndroidManifest里面的meta-data获取参数
  2. nginx+php-fpm的安装和配置
  3. 注解(Annotation) 学习笔记(尚硅谷康师傅版)
  4. linux命令与编程笔记
  5. 【ONNX】yolov5 onnx修改
  6. OBD-II接口引脚定义
  7. python+flask实现和人工智能机器人对话(仿微信聊天页面)| 【Python系列】
  8. Window系统白苹果恢复方法(进入DFU模式)
  9. 上线8年,腾讯为何现在暂停“漂流瓶”?
  10. 多路I/O复用的三个函数select、poll、epoll