資源簡介
DMC程序源代碼,包含對象不匹配,干擾等情況
代碼片段和文件信息
clear?all
%離線準備工作
%階躍響應模型系數
N=70;%截斷時間
sys1=tf(2[41]‘inputdelay‘4);?????%傳遞函數形式
sys2=tf(2.4[31]‘inputdelay‘6);
dsys=tf(1[21]);
%step(sys)
Ts=1;%采樣時間等同于tfd2mod中的delt
dsys1=c2d(sys1Ts);
dsys2=c2d(sys2Ts);
sysd=c2d(dsysTs);
[num1?den1]=tfdata(dsys1‘v‘);
[num2?den2]=tfdata(dsys2‘v‘);
[numd?dend]=tfdata(sysd‘v‘);
[yptpxp]=step(dsys1N);
a=[yp(2:end)];%因為step的第一個值是從0時刻開始的,而模型階躍系數是從s1第一個時刻開始的
%計算動態矩陣A
P=60;M=1;%預測時域,控制時域
alfa=1;%加權系數
R=eye(M);
tend=180;%運行時間
nn=tend/Ts;
for?j=1:M
????for?i=j:P
????????A(ij)=a(i-j+1);
????end
end
alfa0=alfa*abs(A‘*A);
for?i=1:P
????k=0;
????for?j=i:N-2
????A0(ij)=a(N-k)-a(N-k-1);
????k=k+1;
????end
end
for?i=1:P
????A0(iN-1)=a(i+1);
end
for?i=1:P
????H(i)=1;
end
Q=eye(P);
for?i=1:N-1
????U(i)=0;
end
for?i=1:10
????e(i)=0;
????Y1(i)=0;
????Y2(i)=0;
????Yy(i)=0;
????Yc(i)=0;
????Yd(i)=0;
end
%確定設定值
for?j=1:nn+1
????????Ysp(j)
評論
共有 條評論