MATLAB模型预测控制(MPC)示例
MPC matlab demo
- 前言
- 一、模型预测控制的理论(MPC)
- 二、实例代码
- 2.simulink模型
- 总结
前言
本文是基于matlab/simulink中的模型预测控制例子的学习记录
提示:以下是本篇文章正文内容
一、模型预测控制的理论(MPC)
模型预测控制在实现过程中有3个关键步骤,一般被称为3项基本原理,分别是预测模型、滚动优化和反馈校正。
1:预测模型:预测模型是模型预测控制的基础。其主要功能是根据对象的立式信息和未来输入,预测系统未来的输出。对预测模型的形式没有做严格的限定,状态方程、传递函数这类传统的模型都可以作为预测模型。对于线性稳定系统,阶跃响应、脉冲响应这类非参数模型,也可以直接作为预测模型使用。
2:滚动优化:模型预测控制通过某一性能指标的最优来确定控制作用,但优化不是一次离线进行,而是反复在线进行的。这就是滚动优化的含义,也是模型预测控制区别于传统最优控制的根本点。
3:反馈校正:为了防止模型失配或者环境干扰引起控制对理想状态的偏离,在新的采样时刻,首先检测对象的实际输出,并利用这一实时信息对基于模型的预测结果进行修正,然后再进行新的优化。
二、实例代码
代码如下:
%% 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(R)
% To run this example, Simulink(R) is required.
%判断是否存在simulink模型,显示需要simulink模型
if ~mpcchecktoolboxinstalled('simulink')disp('Simulink(R) is required to run this example.')return
end
%%
% Simulate closed-loop control of the linear plant model in Simulink.
% Controller "mpcobj" is specified in the block dialog.
%在simulink中对线性模型进行闭环控制仿真,指定MPC块的名字为mpcobj
mdl = 'mpc_doubleint';
open_system(mdl);%打开simulink模型
sim(mdl);%对模型开始仿真
%%
% The closed-loop response shows good setpoint tracking performance.%%
%bdclose(mdl)%关闭simulink模型
2.simulink模型
结果
控制变量与控制结果
这里为MPC工具箱,相关MPC的控制也可以在此进行。
总结
参考文献:《无人驾驶车辆模型预测控制》
MATLAB模型预测控制(MPC)示例相关推荐
- 模型预测控制_模型预测控制(MPC)算法之一MAC算法
引言 随着自动驾驶技术以及机器人控制技术的不断发展及逐渐火热,模型预测控制(MPC)算法作为一种先进的控制算法,其应用范围与领域得到了进一步拓展与延伸.目前提出的模型预测控制算法主要有基于非参数模型的 ...
- 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发
基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB 基于扩展卡尔曼滤波EKF和模型预测控制MPC,自动泊车场景建模开发,文复现. MATLAB(工程项目线上支持 ...
- 无人车系统(十一):轨迹跟踪模型预测控制(MPC)原理与python实现【40行代码】
前面介绍的PID,pure pursuit方法,Stanley方法都只是利用当前的系统误差来设计控制器.人们对这些控制器的设计过程中都利用了构建模型对无人车未来状态的估计(或者说利用模型估计未来的运动 ...
- Apollo代码学习(六)—模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码
Apollo代码学习(六)-模型预测控制(MPC)_follow轻尘的博客-CSDN博客_mpc代码
- 基于模型预测控制(MPC)的悬架系统仿真分析
目录 前言 1.悬架系统 2.基于MPC的悬架系统仿真分析 2.1 simulink模型 2.2仿真结果 2.2.1 随机C级路面 2.2.2 正弦路面 2.3 结论 3 总结 前言 模型预测控制是无 ...
- 【控制control】机器人运动控制器----基于模型预测控制MPC方法
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.模型预测控制(MPC)的介绍及构成 1.介绍 2.构成 二.模型 ...
- 【附C++源代码】模型预测控制(MPC)公式推导以及算法实现,Model Predictive control介绍
2022年的第一篇博客,首先祝大家新年快乐! 提示:本篇博客主要集中在对MPC的理解以及应用.这篇博客可以作为你对MPC控制器深入研究的一个开始,起到抛砖引玉,带你快速了解其原理的作用. 这篇博客将介 ...
- 了解模型预测控制2--什么是模型预测控制(MPC)
本节,我们将讨论模型预测控制器的工作原理. 在控制问题中,控制器的目标是计算被控对象的输入,使得被控对象输出遵循期望的参考信号.模型预测控制器计算此输入的策略是预测未来. ...
- 差分轮移动机器人模型预测控制MPC
模型预测控制(MPC)与PID.纯追踪法相比有更好的路径跟踪效果,在自动驾驶领域有广泛应用.本文将以运动学为基础详细推导差分轮移动机器人模型预测控制(MPC) 运动学模型 根据移动机器人的运动学结构可 ...
最新文章
- 深入理解Ribbon之源码解析
- 我的Oracle 9i学习日志(20)-- profile
- 应用场景的多样,奠定了区块链的未来
- pt100 c 语言,PT100计算公式 C程序.doc
- patience counts
- win10远程桌面连接ubuntu18.04
- 在vue中methods互相调用的方法
- Mac使用crontab来实现定时任务
- 1 Hadoop简介
- Lockdoor Framework:一套自带大量网络安全资源的渗透测试框架
- .Net Core项目 Encoding不全问题
- 鸿蒙OS应用开发_基础篇_编写第一个HarmonyOs应用_体会HarmonyOs的一次开发多端部署_以及分布式任务调度_IDE安装_了解应用组件以及应用布局---HarmonyOs开发工作笔记001
- 单手撸了个springboot+mybatis+druid 1
- 后端已经配置 前端还是报cors错误怎么回事_换一种姿势挖掘CORS漏洞
- 什么是UML?分哪两类?
- jQuery 异步和同步请求
- Android-Activity详解与汇总
- 带视频加密功能的视频播放器
- 题目:L2-029 特立独行的幸福 (25 分)
- Nagios如何配置告警短信?
热门文章
- 简单计算 ( 山东科技大学第二届ACM校赛)
- Opencv教程-图像二值化
- Adobe Premiere基础-常用的视频特效(边角定位,马赛克,模糊,锐化,手写工具,效果控件层级顺序)(十六)
- 谷歌浏览器扩展快捷键设置
- Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集
- 华中科技大学计算机复试答案,华中科技大学计算机复试题目
- java微信支付v3系列——4.创建订单的封装及使用
- 用 Swift、Foursquare API 和 Realm 創建一個咖啡屋 App
- 渗透测试工程师的职业发展
- Neutron的介绍