资源简介
一阶纯滞后的动态控制矩阵算法(DMC)控制,单容水箱控制的matlab程序,程序运行有效。
代码片段和文件信息
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仿真
相关资源
- lms算法处理含噪语音
- matla特征降维搜索算法,sfssffs等搜索
- 局部均值分解Local Mean Decomposition算法
- viterbi算法
- doa估计算法
- matlab实现边缘检测算法hough
- 多种DOA估计算法MATLAB,如MUSIC、ESPRI
- 极化SAR滤波算法总结
- 基二fft快速算法的matlab代码
- KNN算法代码
- 模拟退火算法函数最优解和路径规划
- 直方图均衡化去雾算法
- Vibe算法matlab
- SVM+SFS+KNN+SBS+LASSO+SRC算法matlab版
- 最大似然分类算法
- leach与sep算法matlab代码
- F5隐写算法
- 蚁群算法实现TSP问题
- 双基地MIMO雷达目标跟踪算法matlab程序
- 多目标粒子群算法matlab
- 运用粒子群算法解决车间调度问题m
- 运用MATLAB实现遗传算法求解规划问题
- 基于标记的分水岭算法matlab程序
- 33节点的遗传算法无功优化MATLAB程序
- 人工鱼群算法Matlab代码
- LSM和RLS算法实现系统辨识和逆辨识
- 快速傅里叶变换算法matlab实现
- 基于粒子群算法的无功优化MATLAB源代
- MATLAB图像分割提取算法源代码---车牌
- 极值搜索算法程序
评论
共有 条评论