316854150
2010-03-04, 15:16
网上有这段函数,是什么意思呀,谁能简单说明一下,万分感谢
function ITAE(x)%(x,ht)
% axis([0,40,1,1.2]);
Kp=x(1);Ki=x(2);Kd=x(3);
Ti=Kp/Ki;Td=Kd/Kp;
T=0.5
numpid=[Kp*Td*Ti,Kp*(Ti+Td),Kp];denpid=[Td*Ti,Ti,0];
[numz,denz]=pade(T,4);
numd=([0,0,1]);dend=([1,2,1]);
% num=conv(conv(numpid,numd),denz);xyj
% num=conv(conv(numpid,numd),numz); jsx1
num=conv(conv(numpid,numd),denz);%jsx2
den1=conv(conv(denpid,dend),denz);
den2=conv(conv(numpid,numd),numz);
den=den1+den2;
% t=0:0.1:50;xyj
t=0:0.1:100;
% ii=find(t>=T);
% [y,x]=step(num,den,t);
% y=[zeros(ii(1)-1,1);y((ii(1)+1):length(t))];
% y(1:length(t)-ii(1)+1)];
% if (ht==1) plot(t,y,'-');
% end
% if (ht==2) plot(t,y,'--');
% end
q=0;tt=0;
for j=1:501
q=q+abs(1-y(j))*tt*0.1;
tt=tt+0.1;
end
end
function ITAE(x)%(x,ht)
% axis([0,40,1,1.2]);
Kp=x(1);Ki=x(2);Kd=x(3);
Ti=Kp/Ki;Td=Kd/Kp;
T=0.5
numpid=[Kp*Td*Ti,Kp*(Ti+Td),Kp];denpid=[Td*Ti,Ti,0];
[numz,denz]=pade(T,4);
numd=([0,0,1]);dend=([1,2,1]);
% num=conv(conv(numpid,numd),denz);xyj
% num=conv(conv(numpid,numd),numz); jsx1
num=conv(conv(numpid,numd),denz);%jsx2
den1=conv(conv(denpid,dend),denz);
den2=conv(conv(numpid,numd),numz);
den=den1+den2;
% t=0:0.1:50;xyj
t=0:0.1:100;
% ii=find(t>=T);
% [y,x]=step(num,den,t);
% y=[zeros(ii(1)-1,1);y((ii(1)+1):length(t))];
% y(1:length(t)-ii(1)+1)];
% if (ht==1) plot(t,y,'-');
% end
% if (ht==2) plot(t,y,'--');
% end
q=0;tt=0;
for j=1:501
q=q+abs(1-y(j))*tt*0.1;
tt=tt+0.1;
end
end