• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: DMC  

资源简介

文件里有DMC算法的源程序,在matlab中可以完美的运行,文件格式为m文件。

资源截图

代码片段和文件信息

clc
clear
%DMC预测控制在加热系统温度控制中的应用仿真程序
startvalue=0;%系统初始输出值
x1=startvalue;        
x2=0;
c=3;%阶跃值
pipestartvalue=0;%管温初始值
step=250;%仿真长度
P=80;%预测时域长度赋值
M=2;%控制时域长度赋值
Q=eye(P);%构造预测输出误差加权阵
for i=1:1:15
Q(ii)=0;
end%预测输出误差加权阵.对应纯滞后长度的权值取0
S=zeros(P);%构造移位矩阵
for i=1:1:P
if iS(ii+1)=1;
end
if i==P
S(PP)=1;
end
end
Rl=eye(M);%构造控制增量加权矩阵R
R=0.1*Rl;
HT=linspace(11P);
H=HT;%构造误差校正向量
for i=2:1:P
H(i)=0.9;
end
d1=linspace(00M);%构造向量d
d1(1)=1;
d=d1;
%给阶跃响应序列al赋值
a1=[2.122.22.192.182.172.162.152.192.202.112.22.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.202.112.122.132.142.152.162.172.182.192.20];
a1=a1*1;
%计算AT
for i=1:1:P
for j=1:1:M
if j<=i
A(ij)=a1(i-j+1);
end
if j>i&j<=M
A(ij)=0;
end;
if i>=M
A(ij)=a1(i-j+1);
end
end
end
AT=A‘;
%计算DT
DT=d*inv(AT*Q*A+R)*AT*Q;%计算得到行向量DT(1xP,1x80)
a=a1(1:P);%计算a列向量(80x1Pxl)
qul=linspace(00P);
qul(1)=1;%构建取1向量
for i=1:1:step
Uk(i)=0;%初始化Uk,用来记录控制量
Yk1(i)=0;%初始化Ykl,用来记录实际仿真输出值
t(i)=i;%计时

评论

共有 条评论