模型预测控制算法基础与车辆纵向控制仿真分析

第三章 模型预测控制算法基础与控制仿真分析

模型预测控制算法基础

模型预测控制的基本思想就是利用已有的模型、系统当前的状态和未来的控制量去预测系统未来的输出,通过滚动地求解带约束优化问题来实现控制目的

  • 预测模型:预测模型是模型预测控制的基础,能够根据历史信息和控制输入预测系统未来的输出
  • 滚动优化:模型预测控制通过使某项性能评价指标最优来得到最优控制量,这种优化过程不是离线进行的,而是反复在线进行的,这也是模型预测控制与传统最优控制的根本区别
  • 反馈校正:为了抑制由于模型失配或者环境干扰引起的控制偏差,在新的采样时刻,首先检测对象的实际输出,并利用这一实时信息对基于模型的预测进行修正,然后再进行新的优化


模型预测控制通常将待优化问题转换成二次型规划问题,二次型规划是一个典型的数学优化问题,它的优化目标为带有线性或者非线性约束的二次型实函数,常用的解法为有效集法或者内点法

基于MPC工具箱的速度控制实例

利用mpc工具箱,实现双积分系统的模型预测控制

mpcdoubleint.m

%% Control of a Single-Input-Single-Output Plant
% This example shows how to control a double integrator plant under input
% saturation in Simulink(R).% Copyright 1990-2014 The MathWorks, Inc.%% Define Plant Model
% The linear open-loop dynamic model is a double integrator.
plant = tf(1,[1 0 0]);%% Design MPC Controller
% Create the controller object with sampling period, prediction and control
% horizons.
Ts = 0.1;
p = 10;
m = 3;
mpcobj = mpc(plant, Ts, p, m);%%
% Specify actuator saturation limits as MV constraints.
mpcobj.MV = struct('Min',-1,'Max',1); %% Simulate Using Simulink
% To run this example, Simulink is required.
if ~mpcchecktoolboxinstalled('simulink')disp('Simulink is required to run this example.')return
end%%
% Simulate closed-loop control of the linear plant model in Simulink. The
% MPC Controller block is configured to use the |mpcobj| object as its
% controller.
mdl = 'mpc_doubleint';
open_system(mdl)
sim(mdl)%%
% The closed-loop response shows good setpoint tracking performance.%%
%bdclose(mdl)
mdl = 'mpc_doubleint';
open_system(mdl)
sim(mdl)



  • 一般来说,模型预测控制器需要给定被控系统的采样时间、预测时域、控制时域和预测模型
  • 如果需要加入系统的约束,还需要进一步给定约束条件
  • MPC工具箱只能用于较简单的场景,难以适应更加复杂的模型和环境

速度跟踪的模型预测方法

无人驾驶车辆的速度跟踪控制系统可分为上位控制器和下位控制器。其中,上位控制器计算期望加速度以快速、平稳地跟踪速度轨迹,下位控制器通过协调驱动机构和制动机构来实现期望加速度

速度跟踪的MPC问题建模

  • 首先将车辆的纵向控制用一阶惯性系统表示
  • 将一阶惯性系统表示为连续系统状态方程的形式
  • 通过前向欧拉法将连续系统状态方程转化为离散系统状态方程
  • 以速度跟踪精度为系统控制目标,同时避免过大加速度和冲击度,定义性能评价函数
  • 以加速度及其变化率为系统约束
  • MPC的控制原理是在满足控制约束式的前提下使性能评价函数式最小
  • 通常将MPC优化问题转化为标准的二次型规划问题进行求解
  • 构建新的状态向量,将系统未来时刻的输出以矩阵形式表达
  • 在预测时域内的状态量和输出量都可以通过系统当前的状态量和控制时域内的控制增量计算得到
  • 在优化前需要将约束条件中的变量统一

模型预测控制算法基础与车辆纵向控制仿真分析相关推荐

  1. 模型预测控制系列讲解(二):模型预测控制算法发展进程

    模型预测控制系列讲解(二)模型预测控制算法发展进程以及基本原理 写在前面 预测控制的产生和发展 预测控制的基本原理以及思想 写在前面 很多时候人们会忽略科技以及工程发展的历史,个人觉得这种习惯特别要不 ...

  2. ADRC,自抗扰控制器,扩张状态观测器,ESO,模型预测控制算法MPC

    ADRC,自抗扰控制器,扩张状态观测器,ESO,模型预测控制算法MPC,自适应模型预测控制算法,时变模型预测控制算法,H无穷算法,混合灵敏度,鲁棒控制算法,四旋翼,直升机,控制算法设计,仿真模型,算法 ...

  3. 模型预测控制算法(MPC算法)底层逻辑

    目录 MPC算法的基本原理 详细解析 预测模型中需要注意的点 滚动优化需要注意的点 构造目标函数约束部分 约束部分 举例说明 复盘总结 MPC算法的基本原理 MPC 的基本原理可以分为三个步骤:预测模 ...

  4. 1、MPC 算法(模型预测控制算法(MPC算法)轨迹跟踪控制)

    MPC 跟踪圆形轨迹/直线轨迹 MPC 跟踪双移线轨迹 MPC 进行局部路径规划+轨迹跟踪 MPC跟踪直线轨迹 N MPC 对直线轨迹进行跟踪 MPC 算法跟踪五次多项式曲线 以上为目录 推荐学习的软 ...

  5. 基于V2X多智能车辆协同控制仿真分析入门-基础知识-矩阵

    通过采用代数图论对车车间的通信拓扑关系进行描述,进而基于矩阵理论,采用矩阵的形式来表征车车间的通信拓扑结构,进而用相应矩阵及其性质进行刻画.图论中涉及到的矩阵主要有邻接矩阵,入度矩阵,连接矩阵,拉普拉 ...

  6. 控制算法-模型预测MPC

    本文记录一下MPC控制算法的学习过程和自己的理解,初步接触控制算法,理解肯定不是很完善,重在记录思考的过程. 背景 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作 ...

  7. 车辆的纵向控制之标定

    目录 前言 一.纵向控制开篇 二.油门/刹车标定表制定(电车) 1.Carsim设置 1.1.主界面设计: 1.2.Procedure设置 2.MATLAB仿真设计 2.1.整体框架图 2.2.Car ...

  8. H2/H∞半车悬架控制仿真分析

    目录 前言 1.悬架模型 2.LMI求解 3.simulink仿真分析 3.1结论 前言 对于H2/H∞控制的鲁棒项相比不用多说,之前也写过两篇关于1/4车的H2/H∞控制文章,链接如下: 基于LMI ...

  9. 【MATLAB】无人驾驶车辆的模型预测控制技术(精简讲解和代码)【运动学轨迹规划】

    文章目录 0.友情链接 1.引言 2.预测模型 3.滚动优化 3.1.线性化 3.2.UrU_rUr​的求取 3.3.离散化与序列化 3.4.实现增量控制 4.仿真示例 0.友情链接 B站链接1-北京 ...

最新文章

  1. 基于相交线的双目平面SLAM
  2. python语法面试题_Python语法面试题
  3. [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
  4. 会员系统用php框架,代码基地会员中心的PHP签到系统结合thinkphp框架
  5. 虹软2.0 离线人脸识别 Android 开发 Demo
  6. date类before()方法的主要作用是_过程(Sub)、函数(Function)、集合(Collection)作用范围...
  7. 2.安装 Android SDK
  8. 二叉树遍历算法C++实现
  9. 解决docker pull 速度过慢问题 - 使用阿里云加速器
  10. day32,尚硅谷视频学习中
  11. 高等数学(第七版)同济大学 总习题二 个人解答
  12. 简单的Django项目
  13. 不打补贴战,快狗打车凭什么冲刺“同城货运第一股”?
  14. 如何创建水晶报表模板
  15. 攻防世界 easyphp
  16. 我们将迎来另一个 VR 寒冬吗?
  17. led数码显示控制plc实验_一种LED数码显示的PLC控制程序及方法与流程
  18. 一入IT深似海,从此都是考证人~耗时,耗力,耗财,耗头发考过的证书 千万不要忘了延续~
  19. Kotlin第三章:AndroidUI简介
  20. kicad 排针_xconch: 神奇海螺,是时候该结束开发板裸奔的时代了。采用堆叠设计,拥有漂亮外观及超强扩展性。一款完全开源的结构及通用硬件扩展平台,旨在大家能更欢乐的DIY。...

热门文章

  1. 如何从无脑传话筒到高阶人才
  2. html设置margin无效,CSS中margin不起作用的原因及解决方法
  3. node-ffi使用指南(转载)
  4. A. Spring Couplets
  5. IP175DLF,IP175DLFI,开关控制器,以太网收发器
  6. 【c语言习题】输出球员身高数组最大值最小值平均值***数组循环遍历 比较
  7. php中文手册吧,transliterator_transliterate
  8. 解决zsh中无法正常使用home和end等键的问题
  9. 环境卫生学-练习题(有答案)
  10. c++ 沉思录笔记——句柄(第一部分)