在前面的两个文章中介绍了什么是MPC,以及MPC的参数设计。这些只是我们仿真编程呢个的基础,本节将以例子说明,MPC在Matlab中是如何使用的。

6. 怎么使用matlab的工具箱在Simulink搭建MPC控制器

使用的例子是Matlab里面的一个例子,具体的说明在Matlab中国的帮助文档里直接搜索这个标题“Autonomous Vehicle Steering Using Model Predictive Control”。

根据前面的描述,我们期望得到的MPC控制框架如上图所示。所以我们的控制系统在建立时也要类似的框架。
第一步:构建被控对象的模型

汽车的输入量是方向盘的转向角,输出为汽车的位置和偏航角。

第二步:构建MPC控制器的模型 

在SIMULINK的空白处双击打开搜索功能,输入MPC,搜索。选择MPC Controller.

         第一个输入是被控对象的输出。

第二个输入为给定的参考值。我们的目的就是让汽车形式在我们期望的道路上,而这个期望是我们手动给出的。我们可以给出路线的坐标,但是给出一个曲线的各个坐标点是很麻烦的。Matlab给我们提供了插件,可以直接画线就好。

根据上图中框起来的地方,创建两条四米宽的车道。并创建一个小车,放在道路上。

自己设置小车的行车路径,将小车的速度设置为15m/s,单机橙色框中的数据,可以使小车移动,绿色框中小车的位置在改变。上图中的√标志(export)可以将小车的形式轨迹转化为Matlab函数。

将数据添加到参考值里面。 md引脚作为干扰引脚,我们不考虑。下面开始设计MPC控制器的相关数据。设置采样时间,预测步长,控制步长等参数。(关于这些参数,前面有所介绍)

根据步骤,将输出设为两个。

将采样时间设置为0.1s.然后点击下面的框。

 

设置输入和输出,右侧的都为1是为了使他们近似,如果相差较大,可以使用比例因子,调整为近似值。

设置此参数的目的是更接近现实中的车道,使其具有爬坡的情景。

上面是设置了预测步长和控制范围。可以根据情况试试修改数值,从计算时间和控制精度的方面考虑,选择一组自己满意的数值。

上述设置了方向盘旋转的最大值与最小值,我们假定最大角度是30度。旋转的最大速率是15度每秒。还设置了输出的值,输出是软约束在一个范围之内。输入是硬约束。

上述部分是设置输入输出权重,根据自己的实际需要,设定想要的值。

仿真结果如图所示。

到底什么是模型预测控制MPC(三)相关推荐

  1. 模型预测控制_模型预测控制(MPC)算法之一MAC算法

    引言 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸.目前提出的模型预测控制算法主要有基于非参数模型的 ...

  2. 基于模型预测控制(MPC)的悬架系统仿真分析

    目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.2.1 随机C级路面 2.2.2 正弦路面 2.3 结论 3 总结 前言 模型预测控制是无 ...

  3. 【控制control】机器人运动控制器----基于模型预测控制MPC方法

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.模型预测控制(MPC)的介绍及构成 1.介绍 2.构成 二.模型 ...

  4. Apollo代码学习(六)—模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码

    Apollo代码学习(六)-模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码

  5. 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发

    基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB(工程项目线上支持 ...

  6. 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】

    前面介绍的PID,pure pursuit方法,Stanley方法都只是利用当前的系统误差来设计控制器.人们对这些控制器的设计过程中都利用了构建模型对无人车未来状态的估计(或者说利用模型估计未来的运动 ...

  7. 【附C++源代码】模型预测控制(MPC)公式推导以及算法实现,Model Predictive control介绍

    2022年的第一篇博客,首先祝大家新年快乐! 提示:本篇博客主要集中在对MPC的理解以及应用.这篇博客可以作为你对MPC控制器深入研究的一个开始,起到抛砖引玉,带你快速了解其原理的作用. 这篇博客将介 ...

  8. 基于模型预测控制MPC的光伏并网系统设计|太阳能发电|模型预测控制

    本课题提出一种基于最大功率点跟踪与有限集模型预测控制结合的光伏并网逆变策略,首先,针对模型预测控制算法在电网模型预测与控制时域中实时性不足等问题,引用快速求解MATMPC工具箱,降低MPC算法的单轮运 ...

  9. 模型预测控制(MPC)的公式推导与理解 (转)

    转自:https://blog.csdn.net/qq_40241332/article/details/105023605 (公式:预测域P和控制域M大小不同,且有常干扰) 在本文中,主要是针对线性 ...

最新文章

  1. 云计算的本质是什么?
  2. 简单的表单提交 by MVC 2
  3. 《Qt on Android核心编程》夹
  4. Mybatis笔记一:java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/DatabaseIdProvider
  5. MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数
  6. Android和IOS网页不一致汇总
  7. 机器学习基础(三十五)—— 协同过滤(从匹配用户到匹配商品)
  8. 离线安装.net4.032位_怎样在断网的情况下安装IE11
  9. 【AD封装】2.4G PCB天线(量产用)
  10. 计算机软件购销合同模版,软件销售合同范本
  11. python转换字符编码_python 字符串编码转换
  12. 【无人机】【2017.12】基于AGENT的防御群建模分析
  13. 学简单python好学吗_python好学吗语法简单吗举个例子
  14. CrawlSpider实现微信小程序社区爬虫【python爬虫入门进阶】(18)
  15. 高通SDX12平台:LINUX上MBIM功能异常
  16. 51信用卡前端笔试题
  17. 【VBA】批量转化表格格式(xls转xlsx、csv转xlsx)
  18. 免费下载无版权高清大图,我推荐这几个网站
  19. VBA-VBS脚本编辑-Visual Studio 调试-WScript
  20. 启动vscode不打开上次文件夹

热门文章

  1. JavaScript 语言
  2. 第3章:有限马尔可夫决策过程
  3. codeforces144——D. Missile Silos(最短路+枚举)
  4. linux日志自动清理归档,Linux系统实现log日志自动清理
  5. 洛谷刷题笔记 分糖果
  6. 【sql server】回车换行符的替代
  7. 图像保存为二进制文件及二进制文件读出图像数据
  8. linux系统重启网卡的方法步骤详解
  9. 什么是wxs脚本(小程序)
  10. (转)Docker镜像结构原理