matlab里用ZN整定公式对系统进行PI、PID校正,程序问题,急!!0
K=1;T=20;tau=2.5; n1=[K];d1=[T 1];G1=tf(n1,d1); [np,dp]=pade(tau,2);Gp=tf(np,dp); [Gc2,Kp2,Ti2]=zn01(2,[K,T,tau]) [Gc3,Kp3,Ti3,Td3]=zn01(3,[K,T,tau]) Gcc2=feedback(G1*Gc2,Gp); set(Gcc2,'Td',tau); step(Gcc2);hold on Gcc3=feedback(G1*... K=1;T=20;tau=2.5;
n1=[K];d1=[T 1];G1=tf(n1,d1);
[np,dp]=pade(tau,2);Gp=tf(np,dp);
[Gc2,Kp2,Ti2]=zn01(2,[K,T,tau])
[Gc3,Kp3,Ti3,Td3]=zn01(3,[K,T,tau])
Gcc2=feedback(G1*Gc2,Gp);
set(Gcc2,'Td',tau);
step(Gcc2);hold on
Gcc3=feedback(G1*Gc3,Gp);
set(Gcc3,'Td',tau);
step(Gcc3); 此为校正程序
function [Gc,Kp,Ti,Td]=zn01(PID,vars)
K=vars(1);T=vars(2);tau=vars(3);
Kp=[];Ti=[];Td=[];
if PID==1,
Kp=T/(K*tau);
elseif PID==2,
Kp=0.9*T/(K*tau);
Ti=3.33*tau;
elseif PID==3,
Kp=1.2*T/(K*tau);
Ti=2*tau;
Td=tau/2;
end
switch PID
case 1,Gc=Kp
case 2,Gc=tf([Kp*Ti Kp],[Ti 0])
case 3,nn=[Kp*Ti*Td Kp*Ti Kp];
dd=[Ti 0];
Gc=tf(nn,dd)
end 此为调用zn函数
运行结果不出图,提示说No property of the class "tf" matches the string "Td". Use PROPERTIES to get the list of properties for this class.
怎么解决?? 展开