抗积分饱和的P ID 控制设计报告 一、设计任务 根据电机对滚珠丝杠的控制作用,写出其传递函数进行参数整定,并设计出对工作台位置极限进行较为精确抗积分饱和的P ID 控制。 二、设计步骤 1.根据控制对象的的传递方式图(如下图 1)写出其传递函数 图 1 根据选取的电机、传动部件以及执行部件可以确定其控制对象的传递函数为: 1520010470035.87105237002340sssssG (1) 2.写出抗积分饱和的P ID 控制的程序入口框图:控制器 零阶保持器 计算比列、微分、积分项 Ui-1>UmaxUi-10 ei<0 计算积分 比例、微分、积分相加给出控制量 是 否 是 是 是 否 否 否 退出 入口 3.根据流程图编写程序如下: clear all; ts=0.01; num1=[523700 10]; den1=[1 87.35 10470 200 15]; sys=tf(num1,den1); dsys=c2d(sys,ts,'z'); [num,den]=tfdata(dsys,'v'); u_1=0.0;u_2=0.0;u_3=0.0;u_4=0; y_1=0;y_2=0;y_3=0;y_4=0; x=[0,0,0]'; error_1=0; um=14; kp=1;ki=1.5;kd=0.1; rin=1120; for k=1:1:500 time(k)=k*ts; u(k)=kp*x(1)+kd*x(2)+ki*x(3); if u(k)>=um u(k)=um; end if u(k)<=-um u(k)=-um; end yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3-den(5)*y_4+num(2)*u_1+num(3)*u_2+num(4)*u_3+num(5)*u_4; error(k)=rin-yout(k); m=2; if (m==1) if u(k)>=um if error(k)>0 alpha=0; else alpha=1; end elseif u(k)<=-um if error(k)>0 alpha=1; else alpha=0; end else alpha=1; end elseif m==2 alpha=1; end u _4=u _3; u _3=u _2; u _2=u _1; u _1=u (k); y _4=y _3; y _3=y _2; y _2=y _1; y _1=y ou t(k); error_1=error(k); x (1)=error(k); x (2)=(error(k)-error_1)/ts; x (3)=x (3)+alpha*error(k)*ts; x i(k)=x (3); end figu re(1); su bplot(311); plot(time,rin,'b',time,y ou t,'r'); x label('time(s)'); y label('position tracking'); su bplot(312); plot(time,u ,'r'); x label('time(s)'); y label('controller ou tpu t'); su bplot(313); plot(time,x i,'r'); x label('time(s)'); y label('integration'); 4.simulink 仿真图 抗积分饱和子系统: 三、仿真结果 抗积分饱和的 P ID 控制 红色线代表抗积分饱和控制 有超调的绿线代表传统P ID 控制 四、结论分析 从上面的图形对照可以得出抗积分饱和的超调量较小,达到稳定时间较短,稳定性较好。