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


前言

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


总结

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

  • 25
    点赞
  • 246
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Matlab的MPC(Model Predictive Control)实例是一个强大的工具,用于实现和分析模型预测控制算法。MPC是一种模型驱动的控制方法,通过使用系统模型和预测模型来优化控制输入,以达到所需的控制目标。 在Matlab,我们可以使用mpc对象来创建MPC控制器的实例。首先,需要定义系统模型、预测模型、控制输入和输出变量等参数,然后使用这些参数创建一个mpc对象。mpc对象提供了一系列方法和属性,可以用于设计、调整和分析MPC控制器。 通过设置mpc对象的属性,可以指定控制目标和约束条件,比如设定输出变量的参考轨迹、限制控制输入的范围等。mpc对象还可以根据实时测量数据来更新预测模型和状态估计,从而实现自适应控制。 一旦创建了mpc对象,就可以使用其控制方法来计算控制输入。MPC控制器的主要计算步骤包括:预测模型的运算、参考轨迹的生成、优化问题的求解等。根据系统的实时状态和预测模型,MPC控制器可以计算出最优的控制输入,并将其应用于系统。 除了控制计算,mpc对象还提供了误差检测、系统仿真、性能评估等功能。通过使用这些功能,可以分析和优化MPC控制器的性能,并进行系统的故障检测和诊断。 总之,Matlab的MPC实例是一个功能强大的工具,可以用于开发、实现和优化模型预测控制算法。它提供了丰富的方法和属性,便于用户灵活地设计和调整控制器,以实现系统的最优控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值