资源简介
一阶纯滞后的动态控制矩阵算法(DMC)控制,单容水箱控制的matlab程序,程序运行有效。
![](http://www.nz998.com/pic/52438.jpg)
代码片段和文件信息
clc
clear
num=[1];
den=[2 1 1];
numm=[1];
denm=[2 2 1]; %定义对象和模型的传递函数
n=200;
t1=0:0.5:n/10;
a=1*step(numdent1)‘;
am=1*step(nummdenmt1)‘; %分别定义动态矩阵a和am
for i=1:40
a(i)=a(i+1);
end
for i=1:40
am(i)=am(i+1);
end
N=40;p=8;
M=3;m=M;
A=zeros(pm);
for i=1:p
for j=1:m
if i==j
A(ij)=am(1);
else if i>j
A(ij)=am(1+i-j);
else A(ij)=0;
end
end
end
end
R=0.9*eye(m);
Q=1.0*eye(p);
H=0.8*ones(p1); %系数矩阵初始附值
A0=zeros(pN-2);
for i=1:p
for j=1:N-2
if(i<=j) A0(ij)=am(N-1-j+i);
else A0(ij)=0;
end
end
end
e=zeros(14*N);
y=e;ym=y;U=ym;vU=U;U0=U;
Y0=zeros(14*N);
C=1;
Yr=zeros(14*N);
for k=N+1:4*N
y(k)=a(1:N-1)*vU(k-1:-1:k-N+1)‘+a(N)*U(k-N); %求解对象输出量
ym(k)=am(1:N-1)*vU(k-1:-1:k-N+1)‘+am(N)*U(k-N); %求解模型输出量
e(k)=y(k)-ym(k);
Y0(k+1:k+p)=(A0*vU(k+2-N:k-1)‘+am(N)*U(k+1-N:k+p-N)‘)‘; %求初始预测值
for j=1:p
w=0.8;
Yr(k+j)=w^(j)*y(k)+(1-w^(j))*C;
end
dt=[1 zeros(1m-1)]*inv(A‘*Q*A+R)*A‘*Q;
vU(k)=dt*(Yr(k+1:k+p)‘-Y0(k+1:k+p)‘-H*e(k));
U(k)=U(k-1)+vU(k);
end
t=0:0.5:70/2-0.5;
plot(ty(N:N+69)tYr(N:N+69)tC*ones(170));
grid on
legend(‘输出‘‘柔化曲线‘‘期望曲线‘);
hold on
stairs(tU(N:N+69)‘k‘);
title(‘The Predictive control plot of DMC‘);
xlabel(‘t‘);
ylabel(‘y、u、Yr、C‘);
hold off
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1741 2012-06-11 14:54 DMC.m
----------- --------- ---------- ----- ----
1741 1
- 上一篇:离散系统理发店排队模型
- 下一篇:径向基神经网络MATLAB仿真
相关资源
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 光纤传输中的分布傅立叶算法matlab实
- k近邻算法matlab实现
- matlab编写的susan算法程序
- matlab-图像处理算法
- matlab链码提取算法
- matlab 数字图像对比度拉伸算法
- 数字图像处理radon matlab变换算法代码
- 主动轮廓模型算法matlab程序
- MATLAB 实现各类常见算法
- 数字信号处理 理论算法与实现 胡广书
- 基于BP神经网络的盲均衡算法 C程序(
- 基于harris算法的角点检测matlab原代码
- 图像匹配matlab源程序sift算法
- matlab编写的量子遗传算法
- 用蚁群算法求解TSP问题的matlab程序
- 粒子群算法matlab工具箱
- Matlab图像分割边缘提取算法
- prony 算法
- 蚁群算法论文+源代码
- 基于粒子群算法的非合作博弈的matl
- 协同进化遗传算法求解函数优化问题
- pri传统分选算法
- 基于RSSI的VIRE定位算法
- 相关向量机的快速算法
- Gardner_for _MPSK(PSK的符号同步算法)
- 粒子群算法优化pid源码 matlab仿真.ra
- 系数绝对值最大 图像融合MATLAB算法
- 灰度共生矩阵特征值不错的算法
评论
共有 条评论