资源简介
用MATLAB设计实现动态矩阵dmc预测控制的源代码,方便学习交流
代码片段和文件信息
clear all;%以下2--5语句与[at]=step(tf(numden‘inputdelay‘3))等价
close all;
num=2.994;
den=[82^2 164 1];
;%基本算法对象2
Ts=5;
dt=Ts;
t0=1:dt:1045;
Delta_u=0;y=0;
[aat]=step(numdent0);
a=aa(2:209);
%也对aaa1=0;aaa2=0;
%for i=2:161
% aaa1(i)=exp(-Ts/82)*aaa1(i-1)+2.994*(1-exp(-Ts/82))*1;%零阶保持器下的差分方程;
% aaa2(i)=exp(-Ts/82)*aaa2(i-1)+(1-exp(-Ts/82))*aaa1(i);
%end
%a=aaa2(2:161);
P=30;
for i=1:P
Q(i)=1;
end %误差加权系数
Tr=3;
ArfaR=exp(-Ts/Tr);
M=30;
for i=1:M
R(i)=0.3;
end %控制加权系数
Q=diag(Q);%误差加权矩阵
R=diag(R);%控制加权矩阵
N=length(a);
%构造矩阵A,可以从Workspace复制,也可以由line5直接得出;
for i=1:P
for j=1:M
if i==j
A(ij)=a(1);
end
if i>j
A(ij)=a(i-j+1);
end
if i A(ij)=0;
end
end
end
%构造矩阵A0b;
for i=1:P
for j=1:i+1
A0b(ij)=a(N);
end
for j=i+2:N
A0b(ij)=a(N-j+i+1);
end
end
%构造矩阵A0;
for i=1:P
for j=2:N-1
A0(ij)=A0b(ij)-A0b(ij+1);
- 上一篇:机器人控制系统设计与matlab仿真程序
- 下一篇:matlab HARQ仿真
评论
共有 条评论