1.//模型预测控制算法基础
/模型预测控制的基本思想就是利用已有的模型、系统当前的状态和未来的控制量去预测系统未来的输出。通过滚动地求解带约束优化问题来实现控制目的。
预测模型。预测模型是模型预测控制的基础,能够根据历史信息和控制输入预测系统未来的输出。
滚动优化。模型预测控制通过使某项性能评价指标最优来得到最优控制量,这种优化过程不是离线进行的,而是反复在线进行的,这也是模型预测控制与传统最优控制的根本区别。
反馈校正。为了抑制由于模型失配或者环境干扰引起的控制偏差,在新的采样时刻,首先检测对象的实际输出,并利用这一实时信息对基于模型的预测进行修正,然后再进行新的优化。
/
/模型预测控制通常将待优化问题转换成二次型规划问题。二次型规划是一个典型的数学优化问题,它的优化目标为带有线性或者非线性约束的二次型实函数,常用的解法为有效集法或者内点法。/
//
2.//一个基于MPC工具箱的速度控制实例
/
/
/doubleint.m/
%% 利用mpc工具箱,实现双积分系统的模型预测控制
%% 模型
plant = tf(1,[1 0 0]);
%% 设置mpc控制器
%采样时间
Ts = 0.1;
%预测范围
p = 10;
%控制范围
m = 3;
% MPC控制器
mpcobj = mpc(plant, Ts, p, m);
%限制控制器的输出,对双积分系统来说是限制输入
mpcobj.MV = struct('Min',-1,'Max',1);
%% 判断是否具有simulink模块
if ~mpcchecktoolboxinstalled('simulink')
disp('Simulink(R) is required to run this example.')
return
end
%% 打开搭建好的simulink模型
mdl = 'DoubleInt';
open_system(mdl);
sim(mdl);
/DoubleInt.slx/
注意:此时查看示波器没有任何输出。因为m文件中的mpcobj还没有导入simulink中。需要按以下步骤设置。并且设置初始状态为空。
/输入、输出/
//
3.//速度跟踪的模型预测控制方法
待更新
//