液位控制系统水位的控制北京科技大学自1105班李骏霄指导老师:付冬梅教授摘要:这篇文章是把PID调节器运用于实际系统中,实现对其调节。该系统中水位位置的控制是通过出水管和进水管流量的差值的大小来反应水位的高低,根据它们的不同变化运用PID调节器对闸门进行调节。关键字:PID调节器,Matlab仿真曲线,反馈系统ThewaterlevelcontroloftheliquidlevelcontrolsystemAbstract:ThisarticleistoputPIDadjustorintopracticeinordertoadjustit.ThewaterlevelcontrolofthesystemistousethedifferencesofoutputandinputofthewaterpipetoreflecttheheightofthewaterleveltoadjustitwithPIDadjustoraccordingtotheirchange.Keywords:PIDadjustor,Matlabemulationdiagram,feedbacksystem1.引言:工业生产中,为了提高经济效率,常需要实行最优控制。同理,在水位控制系统中,由于阀门压强的不断变化引起水位的不断变化,影响生产的顺利进行。所以为了改善这种情况,引入PID调节器,利用进出流量的差值的反馈来测水流速度的大小,近而调节阀门,控制水位这样达到最优配置,提高效率。2.理论部分:PID是指PID调节器,被插入到反馈控制系统的控制偏差信号后,它是将具有放大功能的比例P(proportional),积分I(integral),微分D(derivative)的各种功能并行结合的,此时的传递函数为:C(s)=Kp(1+1/TiS+TdS)Kp比例增益,Ti积分时间,Td微分时间。比例作用是输出比例于控制偏差的操作量。只靠比例作用的控制中,有时会有稳定偏差,一般情况下下一个积分作用也被引用。积分作用是输出积分偏差后的信号。只要有偏差,则操作量增加,最终可以将偏差可以变为0。但是,积分作用有90度的相位延迟,也许会破坏稳定性。相互有影响的液位系统的模型如图1所示在下面的讨论中,假设变量对于稳态值得变化很小。采用图1中规定的符号,可以的到系统的下列方程:(h1-h2)/R1=q1-------------------------(1)C1dh1/dt=q-q1--------------------------(2)h2/R2=q2---------------------------(3)C2dh2/dt=q1-q2---------------------------(4)如果把q当作输入量,把q2当作输出量,则系统的传递函数为:Q2(S)/Q(s)=1/[R1C1C2S*S+(R1C1+R2C2+R2C1)s+1]该系统的方框图如下:综合各方面,选取Gp(s)=1/(10s+1)(100s+1),然后利用PID调节器对其进行调节。1.比例(P)控制利用PID调节器增加比例环节Kp,绘制Kp变化的根轨迹,并观察在不同的Kp值时,输出响应及扰动响应的变化。Matlab源程序如下:%源程序:二阶对象+一阶传感器的纯比例设计deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1)gph=gp*h;rlocus(gph)仿真图如下:图3Kp调节器下系统的跟轨迹图使系统稳定的Kp取值范围:Kp0由图可知:当Kp增加时,根轨迹始终位于S平面左半部分,即无论Kp0为何值时,系统稳定。所以我们将研究控制器增益取一系列值时的几个阶跃响应。为了在对控制器增益进行扫描时绘制所需的阶跃响应图。使用for循环使Kp取指定的值。对每一增益值将Gp(s)的分子乘以feedback命令参数列表中的Kp,建立起闭环模型然后计算并绘制系统对时间的阶跃响应图。绘制完第一张图后,置hold选项有效,这样以后各图均叠加在同一坐标系上,图上最后一条曲线绘制完毕后,关闭hold选项。源程序如下:deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1)t=[0:0.02:200]'forkp=1:2:20;T=feedback(kp*gp,h,-1);ys=step(T,t);plot(t,ys);ifishold~=1,holdon,endendholdoff仿真图如下:由图可知,对于较小的Kp,上升时间较长,超调量较小,稳态误差较大。对较大的Kp,上升时间较短,超调量较大,,稳态误差较小。通过调整for命令中的Kp值,将其限定在一个更小的区间内,图4不同Kp值下系统参考输入的单位阶跃响应或者人工输入特定的Kp值,并执行for循环中所包含的命令,我们可求得Kp=20时,其超调量为20%使用增益Kp在同一幅图上分别绘制系统对参考输入和扰动输入的单位阶跃响应,并确定稳态响应值。%源程序:闭环参考输入阶跃响应和扰动输入阶跃响应deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1);kp=20;T_ref=feedback(kp*gp,h,-1);t=[0:0.02:200]y_ref=step(T_ref,t);T_dist=feedback(gp,-kp*h,+1);y_dist=step(T_dist,t);plot(t,y_ref,t,y_dist,'--');y_ref_ss=y_ref(length(t))y_dist_ss=y_dist(length(t))仿真图如下:图5Kp=20时系统的参考输入和扰动输入阶跃响应y_ref_ss=0.9524%参考输入的终值y_dist_ss=0.0476%扰动输入的终值2.比例加积分(PI)控制在上面我们讨论了比例控制可对参考阶跃输入和扰动阶跃输入产生阻尼良好的响应。增加控制器增益可以减小稳态误差,但也会增加超调,减少阻尼。显然,如果需要大幅度减少稳态误差或得到零稳态误差,又要具有可接受的超调量和阻尼,我们需要更为复杂的控制器。我们将通过在控制器中引入一个积分项来实现上述目标。我们使用的比例加积分控制器的传递函数形式为:Gc(s)=Kp(1+Ki/S)=Kp(S+Ki)/S(a)对积分增益值Ki=0,0.00001,0.0005,0.005,0.05和0.5,以2为增量对比例增益从1到20进行扫描,,绘制参考输入的单位阶跃响应图,令G(s)=Gc(s)*Gp(s)%源程序:选定几个Ki值,对Kp进行增益扫描。deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1);gph=gp*h;t=[0:0.02:200];ki=input('enterintegralgainki==');forkp=1:2:20;kc=tf(kp*[1ki],[10]);T=feedback(kc*gp,h,-1);ys=step(T,t);plot(t,ys)ifishold~=1,holdon,endendholdoff仿真图如下:(a)Ki=0.00001(b)Ki=0.0005(c)Ki=0.005(d)Ki=0.05(d)Ki=0.5图6使用Pi控制器的比例增益扫描结果Kp=0的响应曲线与使用比例控制器得到的响应曲线是相同的,因为Gc(s)此时已简化为Kp。对其他的Kp值阶跃响应如上图(a)~(e)所示。对于高积分增量,其稳态误差应是趋于y=1.0的,但过渡过程衰减地很慢,对于低积分增量,过渡过程衰减地很快,但其稳态误差较大。综合这两方面,取Ki=0.0005的响应满足5%调节时间ts30s的约束条件。.并且当Ki取值过大时,系统将不稳定。如图(e)(b)绘制Ki=0.005,Kp变化时的根轨迹,然后使用rlocfind命令校核轨迹上的数点所对应的Kp%源程序:PI控制的根轨迹图deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1);ki=0.05;kc=tf(kp*[1ki],[10]);rlocus(kc*gp*h);[kk,polesCL]=rlocfind(kc*gp*h)selected_point=-0.0725-0.0311ikk=0.3133polesCL=-0.0711-0.0195+0.0617i-0.0195-0.0617i图7PI控制的根轨迹图观察图形可知,PI控制的结果是是开环系统增加一个极点S=0和一个在S=-0.0005的零点,这个变化使PI控制器根轨迹的复数部分向右移,且对应的两条渐进线也向右移。同时渐进线的条数也发生了变化,不在有沿负实轴趋于无穷的渐进线。(c)在以上讨论的基础上,我们可估算出在9到11之间的Kp值将产生约10%的超调,因此,我们可以选Kp=11.使用增益Kp在同一幅图上分别绘制系统对参考输入和扰动输入的单位阶跃响应,并确定稳态响应值。%源程序:闭环参考输入阶跃响应和扰动输入阶跃响应deng=conv([101],[1001]);gp=tf(1,deng)h=tf(1,1);kp=11;ki=0.005;hp=tf(kp*[1ki],[10])T_ref=feedback(hp*gp,h,-1);t=[0:0.02:200]y_ref=step(T_ref,t);T_dist=feedback(gp,-hp*h,+1);y_dist=step(T_dist,t);plot(t,y_ref,t,y_dist,'--');y_ref_ss=y_ref(length(t))y_dist_ss=y_dist(length(t))仿真图如下:.比较PI控制器和P控制器的单位阶跃响应图知,PI控制器有能力消除阶跃参考输入和扰动输入的稳态误差,但他使响应的调节时间过长。实际上,PI控制器中的积分项使系统类型从0型到1型,而1型系统对阶跃输入的稳态误差是为零的。图8闭环参考输入阶跃响应和扰动输入阶跃响应(3)比例-积分—微分(PID)控制使用PID控制器的传递函数为Gc(s)=Kp(KpS*S+S+Ki)/S,可以看出Gc(s)仍然有一个极点S=0,且另附加了两零点,为使传递函数的零点为实数,则1-4KdKi0即可满足实零点条件,他等价于KdKi0.25在以上设计中,已取Ki=0.005,因此可将Ki固定为该值并按下列步骤来调整Kp和Kd(a)Ki=0.005时,令微分增益Kd=0,0.1,1,2,4,10.以2为增量对比例增益Kp从1到20进行扫描,绘制参考输入的单位阶跃响应。在所得结果的基础上,选择满足实际性能要求的Kd值,记作Kdmz,%源程序,选定几个Kd值,对Kp进行增益扫描deng=conv([101],[1001]);gp=tf(1,deng);h=tf(1,1)t=[0:0.02:200]';kd=input('enterintegralgainkd==');forkp=1:2:25;ki=0.005gc=tf(kp*[kd1ki],[10]);T=feedback(gp*gc,h,-1);ys=step(T,t);plot(t,ys);ifishold~=1,holdon,end;endholdoff;仿真图如下图所示:(a)kd=0(b)kd=0.1(c)kd=1(d)kd=2(e)kp=4(f)kp=10图8使用PID控制器的比例增益扫描结果从上图可以看出,当Kd逐渐增加时,系统阶跃响应的超调量逐渐减小,但是上升时间逐渐增大,根据实际要求,我们取Kdmz=4(b)绘制Ki=0.005,Kd=4时,Kp变化的根轨迹,求出使系统稳定的Kp的范围。%绘制关于Kp的根轨迹ki=0.005;kd=4;deng=conv([101],[1001]);gp=tf(1,deng);gc=tf(kp*[kd1ki],[10]);rlocus(gc*gp)仿真波形图如图19所示:从图中看出,当Kp取大于零的任何值时,系统都