MATLAB模型预测控制工具箱函数(2)

2018-12-08 18:26

制中得到成功应用。

MATLAB的模型预测控制工具箱提供了对动态矩阵控制方法的支持,有关的函数能够基于阶跃响应模型的模型预测控制器设计与仿真,见表8-3。

表8-3 动态矩阵控制设计与仿真函数

函数名 cmpc() mpccon() mpccl() mpcsim() nlcmpc() nlmpcsim() 功能 输入/输出有约束的模型预测控制器设计 输入/输出无约束的模型预测控制器设计 计算模型预测控制系统的闭环模型 模型预测控制系统的仿真(输入/输出无约束) Simulink块nlcmpc对应的S函数 Simulink块nlmpcsim对应的S函数

例8-12 考虑如下的双输入输出纯时延对象,其传递函数矩阵为

?12.8e?1s?16.7s?1G(s)????18.9e?3s??21.0s?1解:MATLAB程序如下: clc,clear; all; close %将传递函数模型转换为阶跃响应模型 g11=poly2tfd([12.8],[16.7 1],0,1); 6.6e?7s??10.9s?1? ?3s??19.4e?14.4s?1? g12=poly2tfd([6.6],[10.9 1],0,7); g21=poly2tfd([-18.9],[21 1],0,3); g22=poly2tfd([-19.4],[14.4 1],0,3); delt=3; %采样周期 ny=2; tfinal=90; tfd2step(tfinal,delt,ny,g11,g12,g21,g22); model=%进行模型预测控制器设计 plant=model; %预测时域长度为6 p=6;m=2; ywt=[];uwt=[]; %设置输入约束和参考轨迹等控制器参数 r=[1 1]; tend=30; %仿真时间为30 ulim=[-0.1 -0.1 0.55 0.5 0.1 100]; ylim=[]; [y,u,ym]=cmpc(plant,model,ywt,uwt,m,p,tend,r,ulim,ylim); plotall(y,u,delt) 第6页 共10页

闭环系统的输出和控制量变化曲线如图1所示。

图1 闭环系统的输出和控制量变化曲线

8.4 基于状态空间模型的预测控制器设计函数

在MATLAB模型预测控制工具箱中,除了提供基于阶跃响应模型的预测控制器设计功能外,还提供了MPC状态空间模型的预测控制器设计功能。有关的函数参见表8-4。

表8-4 基于MPC状态空间模型的预测控制器设计函数 函数名 scmpc() smpccon() smpccl() smpcsim() smpcest() 功能 输入/输出有约束的状态空间模型预测控制器设计 输入/输出无约束的状态空间模型预测控制器设计 计算输入/输出无约束的模型预测闭环控制系统模型 输入有约束的模型预测闭环控制系统仿真 状态估计器设计 8.4.1 输入/输出有约束的状态空间模型预测控制器设计

函数scmpc()用于进行输入/输出有约束条件下的状态空间模型预测控制器设计,该函数的调用格式为

第7页 共10页

[y, u, ym]=scmpc(pmod, imod, ywt, uwt, M, P, tend, r, ulim, ylim, kest, z, v, w, wu) 式中,pmod为MPC状态空间模型格式的对象状态空间模型,用于仿真;

imod为MPC状态空间模型格式的对象内部模型,用于预测控制器设计; ywt为二次型性能指标的输出误差加权矩阵; uwt为二次型性能指标的控制量加权矩阵; M为控制时域长度; P为预测时域长度; tend为仿真的结束时间; r为输入设定值或参考轨迹;

ulim=[ulow uhigh delu],式中,ulow为控制变量的下界,uhigh为控制变量的上界,delu为控制变量的变化率约束;

ylim=[ylow yhigh],式中,ylow为输出的下界,yhigh为输出的上界; kest为估计器的增益矩阵;

z为测量噪声;v为测量扰动;w为输出未测量扰动;wu为施加到控制输入的未测量扰动;

y为系统响应;u为控制变量;ym为模型预测输出。

第8页 共10页

例8-15 考虑如下的双输入输出纯时延对象,其传递函数矩阵为

?12.8e?1s?16.7s?1G(s)????18.9e?3s??21.0s?1解:MATLAB程序如下: clc,clear; all; close %将传递函数模型转换为状态空间模型 g11=poly2tfd([12.8],[16.7 1],0,1); 6.6e?7s??10.9s?1? ?3s??19.4e?14.4s?1? g12=poly2tfd([6.6],[10.9 1],0,7); g21=poly2tfd([-18.9],[21 1],0,3); g22=poly2tfd([-19.4],[14.4 1],0,3); delt=3; ny=2; tfd2mod(delt,ny,g11,g12,g21,g22); imodel= %进行模型预测控制器设计 pmodel=imodel; p=6;m=2; %预测时域长度为6,控制时域长度为2 ywt=[];uwt=[1 1]; %设置输入约束和参考轨迹等控制器参数 r=[0 1]; tend=30; %仿真时间为30 ulim=[-inf -0.15 inf inf 0.1 100]; ylim=[]; % ylim=[0 0 inf inf]; [y,u]=scmpc(pmodel,imodel,ywt,uwt,m,p,tend,r,ulim,ylim); plotall(y,u,delt) 闭环系统的输出和控制量变化曲线如图2所示。 第9页 共10页

图2 闭环系统的输出和控制量变化曲线

[1] 李国勇. 智能控制及其MATLAB实现[M]. 北京:电子工业出版社, 2005.

第10页 共10页


MATLAB模型预测控制工具箱函数(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:清华IE亮剑-2014年获奖论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: