1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MATLAB模型预测控制(MPC)示例

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

时间:2024-07-08 01:37:41

相关推荐

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- 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.')returnend%%% Simulate closed-loop control of the linear plant model in Simulink.% Controller "mpcobj" is specified in the block dialog.%在simulink中对线性模型进行闭环控制仿真,指定MPC块的名字为mpcobjmdl = 'mpc_doubleint';open_system(mdl);%打开simulink模型sim(mdl);%对模型开始仿真%%% The closed-loop response shows good setpoint tracking performance.%%%bdclose(mdl)%关闭simulink模型

2.simulink模型

结果

控制变量与控制结果

这里为MPC工具箱,相关MPC的控制也可以在此进行。


总结

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。