Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-05-21
年龄: 37
帖子: 6
声望力: 0 ![]() |
![]()
clear all
num=10;den=[100,20,1]; [a1,b,c,d]=tf2ss(num,den); x=[0;0]; T=0.01;h=T; td=1 Nd=td/T; %纯延时环节; N=1000; R=1*ones(1,N); %PID部分 e=0;de=0;ie=0;Td=7/3.5;Ti=30 kp=2.5;kd=kp*Td/T;ki=kp*T/Ti; for k=1:N uu1(1,k)=-(kp*e+kd*de+ki*ie); %延迟环节 if k<=Nd u1=0; else u1=uu1(1,k-Nd); end k0=a1*x+b*u1; k1=a1*(x+h*k0/2)+b*u1; k2=a1*(x+h*k1/2)+b*u1; k3=a1*(x+h*k2)+b*u1; x=x+(k0+2*k1+2*k2+k3)*h/6; y=c*x+d*u1; %计算误差,微分和积分 e1=e; e=y(1,1)-R(1,k); de=(e-e1)/T; ie=e*T+ie; yy1(1,k)=y; plot(yy1) end 这是M文件,但是simulink图我不会发,其实就是单纯的PID控制器然后一个系统传函,一个延迟,一个单位负反馈,就这么简单,请高手赐教!!!!!! |
![]() |
![]() |