資源簡介
用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仿真
評論
共有 條評論