PID编程相关知识.ppt

P I D 主要内容: 原理简述 常规PID算法 基于衰减曲线法参数整定的PID算法 蚁群PID参数整定 原理简述 PID作用的原理: 原理简述 P:比例作用越强,动态响应越快,消除误差的能力越强。由于实际系统是有惯性的,比例作用不宜太强,比例作用太强会引起系统振荡不稳定。P参数的大小应根据系统响应情况,以达到最快响应又无超调(或无大的超调)为最佳参数。 I:比例作用是有差调节,是有静差的,加强比例作用只能减少静差,不能消除静差。为了消除静差必须引入积分作用。如果积分作用太强,积分输出变化过快,就会引起积分过头的现象,产生积分超调和振荡。因此积分的快慢必须与实际系统的惯性相匹配,惯性大、积分作用就应该弱,积分时间I就应该大些,反之而然。 D:比例作用和积分作用是事后调节(即发生误差后才进行调节),而微分作用则是事前预防控制,可以防止出现过冲或超调等。D越大,微分作用越强,D越小,微分作用越弱。 离散化处理: Z变换: N 阶差分方程可以化为: 原理简述 常规PID算法 function My_PID_control(num,den,P,I,D,ts) G=tf(num,den); mydiscrete=c2d(G,ts,zoh); [new_num,new_den]=tfdata(mydiscrete,v); count_new_num=length(new_num);%判断几阶系统 count_new_den=length(new_den); U=zeros(1,count_new_num);%存放前n次输入 Y=zeros(1,count_new_den);%存放前n次输出 three_errors=zeros(1:3);%存放误差、误差积分及微分 for i=1:15/ts rin(i)=1; %输入信号(设定值) end 常规PID算法 for i=1:15/ts t(i)=i*ts; error_last=three_errors(1); U(1)=P*three_errors(1)+I*three_errors(2)+... D*three_errors(3); %PID作用 if U(1)10 U(1)=10; end if U(1)-10 U(1)=-10; end yout(i)=-new_den(2:count_new_den)*Y(2:count_new_den)+... new_num*U‘; %经传递函数输出,即系统输出。 Y(1)=yout(i); three_errors(1)=rin(i)-yout(i); three_errors(2)=three_errors(2)+three_errors(1)*ts; three_errors(3)=(three_errors(1)-error_last)/ts; U=[U(1),U(1:count_new_num-1)]; Y=[Y(1),Y(1:count_new_den-1)]; end plot(t,rin,t,yout,r); grid on 常规PID算法 常规PID算法 以 Kp=3 Ki=5 Kd=3 为例: My_PID_control(6,[1,6,11,6],3,5,3,0.01) 基于衰减曲线法参数整定的PID算法 使Ki=Kd=0,Kp有小到大变化;当P1/P2=4:1时,记下Kp、Ts值。根据经验公式,计算出Kp,Ki,Kd的值。 Kp Ki Kd PID Kp/0.8 Kp/(0.8*0.3*Ts) Kp/

文档评论(0)

1亿VIP精品文档

相关文档