是做毕业设计,以下是我在MATLAB script节点里编的P和PI的控制(都是对的),传递函数也在图中。由于PID的编不来,所以网上找了
Function PI(PI的)
G=tf(1,[1,3,3,1]);
Kp=1;Ti=[0.7:0.1:1.5];
for i=1:length(Ti)
Gc=tf(Kp*[1,1/Ti(i)],[1,0]); G_c=feedback(G*Gc,1);
step(G_c),hold on
end
axis([0,20,0,2])
Function PID(PID的)
N=[100,1000,10000,1:10];
G=tf(1,[1,3,3,1]);
Kp=1;Ti=1;Td=1;
Gc=tf(Kp*[Ti*Td,Ti,1]/Ti,[1,0]);
G_c=feedback(G*Gc,1);step(G_c), hold on
for i=1:length(N)
mn=Kp*([Ti*Td,0,0]+conv([Ti,1],[Td/N(i),1]))/Ti;
cd=[Td/N(i),1,0]; Gc=tf(mn,cd);
G_c=feedback(G*Gc,1);
step(G_c)
end
axis([0,20,0,2])
我按照着这些,然后类比下,自己尝试编了下,但是运行错误,大家能否帮我看看,或者会的,自己曾今做的提点我一下,帮我下。
注:在编PI时,K取的是1;在编PID时,K取1,Ti取1,N取10
|