您好,欢迎访问三七文档
专家PID控制2/151、专家PID控制原理1、专家PID控制原理专家PID控制的实质是:基于受控对象和控制规律的各种知识,无须知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。图1典型二阶系统单位阶跃响应误差曲线令e(k)表示离散化的当前采样时刻的误差值,e(k-1),e(k-2)分别表示前一个和前两个采样时刻的误差值,则有e(k)=e(k)-e(k-1)e(k-1)=e(k-1)-e(k-2)3/151、专家PID控制原理根据误差及其变化,对图1所示的二阶系统单位阶跃响应误差曲线进行如下定性分析:(1)当e(k)M1时,说明误差的绝对值已经很大。不论误差变化趋势如何,都应考虑控制器的输出按定值输出,以达到迅速调整误差,使误差绝对值以最大速度减小,同时避免超调。此时,它相当于实施开环控制。4/151、专家PID控制原理(2)当e(k)e(k)0或e(k)=0时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。如果e(k)M2,说明误差较大,可考虑由控制器实施较强的控制作用,使误差绝对值朝减小方向变化,迅速减小误差的绝对值,控制器输出为u(k)=u(k-1)+k1{kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)]}如果e(k)M2,说明尽管误差朝绝对值增大方向变化,但误差绝对值本身并不是很大,可考虑实施一般的控制作用,扭转误差的变化趋势,使其朝误差绝对值减小方向变化,控制器输出为u(k)=u(k-1)+kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)]5/151、专家PID控制原理(3)当e(k)e(k)0,e(k)e(k-1)0或e(k)=0时,,说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。(4)当e(k)e(k)0,e(k)e(k-1)0时,说明误差处于极值状态。如果此时误差的绝对值较大,即e(k)M2,可考虑实施较强的控制作用,即u(k)=u(k-1)+k1kpem(k)如果此时误差的绝对值较小,即e(k)M2,可考虑实施较弱的控制作用,即u(k)=u(k-1)+k2kpem(k)6/151、专家PID控制原理(5)当e(k)(精度)时,说明误差的绝对值很小,此时加入积分环节,减少稳态误差。以上各式中,em(k)为误差的第k个极值;u(k)为第k次控制器的输出;u(k-1)为第k-1次控制器的输出;k1为增益放大系数,k11;k2为抑制系数,0k21;M1,M2为设定的误差界限,M1M20;k为控制周期的序号(自然数);为任意小的正实数。在图1中,Ⅰ,Ⅲ,Ⅴ,Ⅶ,…区域,误差朝绝对值减小的方向变化,此时,可采取保持等待措施,相当于实施开环控制;Ⅱ,Ⅳ,Ⅵ,Ⅷ…区域,误差绝对值朝增大的方向变化,此时,可根据误差的大小分别实施较强或一般的控制作用,以抑制动态误差。7/152、仿真实例2、仿真实例求3阶传递函数的阶跃响应p32523500()87.3510470Gssss其中,对象采样时间为lms。采用z变换进行离散化,经过z变换后的离散化对象为y(k)=-den(2)y(k-1)-den(3)y(k-2)-den(4)y(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3)采用专家PID设计控制器。在仿真过程中,取0.001,程序中的5条规则与控制算法的5种情况相对应。专家PID控制仿真程序见附录程序exppid.m,仿真结果如图2和图3所示。8/152、仿真实例00.10.20.30.40.500.20.40.60.811.21.4time(s)r,y图2PID控制阶跃响应曲线00.10.20.30.40.5-0.200.20.40.60.811.2time(s)error图3误差响应曲线9/153、程序代码%程序代码%专家PID控制仿真程序:exppid.m%ExpertPIDControllerclearall;closeall;clc;ts=0.001;sys=tf(5.235e005,[1,87.35,1.047e004,0]);%Plantdsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');u_1=0;u_2=0;u_3=0;y_1=0;y_2=0;y_3=0;x=[0,0,0]';x2_l=0;error_1=0;kp=0.6;ki=0.03;kd=0.01;10/153、程序代码fork=1:1:500time(k)=k*ts;r(k)=1;u(k)=kp*x(1)+kd*x(2)+ki*x(3);%PIDController%Expertcontrolruleifabs(x(1))0.8%Rule1:Unclosedcontrolruleu(k)=0.45;elseifabs(x(1))0.40u(k)=0.40;elseifabs(x(1))0.20u(k)=0.12;elseifabs(x(1))0.01u(k)=0.10;end(1)当e(k)M1时,实施开环控制。11/153、程序代码ifx(1)*x(2)0|(x(2)==0)%Rule2ifabs(x(1))=0.05u(k)=u_1+2*kp*x(1);elseu(k)=u_1+0.4*kp*x(1);endendif(x(1)*x(2)0&x(2)*x2_10)|(x(1)==0)%Rule3u(k)=u(k);end(2)当e(k)e(k)0或e(k)=0时如果e(k)M2,控制器输出为u(k)=u(k-1)+k1{kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)]}如果e(k)M2,控制器输出为u(k)=u(k-1)+kp[e(k)-e(k-1)]+kie(k)+kd[e(k)-2e(k-1)+e(k-2)](3)当e(k)e(k)0,e(k)e(k-1)0或e(k)=0时保持控制器输出不变。12/153、程序代码ifx(1)*x(2)0&x(2)*x2_10%Rule4ifabs(x(1))=0.05u(k)=u_1+2*kp*error_1;elseu(k)=u_1+0.6*kp*error_1;endendifabs(x(1))=0.001%Rule5:InterationseparationPIcontrolu(k)=0.5*x(1)+0.010*x(3);end(4)当e(k)e(k)0,e(k)e(k-1)0时如果e(k)M2u(k)=u(k-1)+k1kpem(k)如果e(k)M2u(k)=u(k-1)+k2kpem(k)(5)当e(k)(精度)时,加入积分环节。13/153、程序代码%Restrictingtheoutputofcontrollerifu(k)=10u(k)=10;endifu(k)=-10u(k)=-10;end%Linearmodely(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)...+num(2)*u_1+num(3)*u_2+num(4)*u_3;error(k)=r(k)-y(k);14/153、程序代码%----------Returnofparameters----------u_3=u_2;u_2=u_1;u_1=u(k);y_3=y_2;y_2=y_1;y_1=y(k);x(1)=error(k);%CalculatingPx2_1=x(2);x(2)=(error(k)-error_1)/ts;%CalculatingDx(3)=x(3)+error(k)*ts;%CalculatingIerror_1=error(k);end15/153、程序代码figure(1);plot(time,r,'b',time,y,'r');xlabel('time(s)');ylabel('r,y');figure(2);plot(time,r-y,'r');xlabel('time(s)');ylabel('error');
本文标题:专家PID控制
链接地址:https://www.777doc.com/doc-5471273 .html