MATLAB模型预测控制(MPC)示例

本文详细介绍了基于MATLAB/Simulink的模型预测控制(MPC)理论和应用。首先阐述了MPC的三个核心步骤:预测模型、滚动优化和反馈校正。接着,通过一个双积分器系统的实例,演示了如何设计MPC控制器,并在Simulink中进行闭环控制仿真,展示良好的设定点跟踪性能。最后,提供了相关参考资料,供深入学习。
摘要由CSDN通过智能技术生成


前言

本文是基于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的控制也可以在此进行。


总结

参考文献:《无人驾驶车辆模型预测控制》

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值