1、模糊 PID 复合控制对水温的控制PID 控制就是比例积分微分控制,其控制规律如下: 01(t)(t)e(t)()tpDIdeuKT式中, 为比例增益, 与比例度 成倒数关系,即 ; 为积分时pKp1/pKIT间; 为微分时间; 为 PID 调节器的输出信号; 为给定值 与测量值DT(t)ue(t)()rt之差(即 ) 。y()teytr控制输出由三部分组成:比例环节根据偏差量成比例的调节系统控制量,以此产生控制作用,减少偏差。比例系数的作用是加快系统的响应速度,比例系数越大,系统的响应速度越快,系统的调节精度越高,但容易产生超调,甚至会导致系统的不稳定;比例系数过小,会降低系统的调节精度,系
2、统响应速度变慢,调节时间变长,系统动态、静态特性变坏。积分环节用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数 的大小, 越小,积分作用越强。但积分作用过强,会引起系ITI统的不稳定。微分环节根据偏差量的变化趋势调节系统控制量,在偏差信号发生较大变化以前,提前引入一个早期的校正信号,取到加快系统动作速度,减小调节时间的作用。但微分作用过强,会引起系统的振荡。模糊控制是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机控制方法。常规模糊控制器的原理如下:模糊 PID 复合控制将模糊技术与常规 PID 控制算法相结合,达到较高的控制精度。当温度偏差较大时采用模糊控制,响应速
3、度快,动态性能好;当温度偏差较小时采用 PID 控制,静态性能好,满足系统控制精度。因此它比单个的模糊控制器和单个的 PID 调节器都有更好的控制性能。其基本原理如下:PID 模糊控制重要的任务是找出 PID 的三个参数与误差 和误差变化率e之间的模糊关系,在运行中不断检测 和 ,根据确定的模糊控制规则来对ce ec三个参数进行在线调整,满足不同 e 和 时对三个参数的不同要求。以典型二阶系统单位节约响应的误差曲线为例进行分析如下。从误差曲线看出:(1) 当误差 较大时,说明误差的绝对值较大,不论误差的变化趋势e如何,都应该考虑控制器的 取较大值,以提高响应的快速性;pK而为防止因为 瞬时过大
4、, 应该取较小的值;为控制超调,ceDT也应该取值很小。IT(2) 当误差 在中等大小时,为保证系统的响应速度并控制超调,应e减小 , 值应增大, 应适中。pKIDT(3) 当误差 较小时,为保证系统具有良好的稳态特性,应加大 、e pK的取值,同时为避免产生振荡, 的取值应该和 联系起来。ITDce模糊 PID 控制器分两步整定 PID 参数。 初始 PID 参数的整定:先测定被控对象参数的粗略值,应用初值整定规则确定 PID 的初始值; 参数的在线整定:监测控制系统的响应过程,将其模糊化,综合用户期望、控制目标类型、对象参数等,运用模糊推理自动进行 PID 参数的在线整定。系统框图如下:在
5、用上述方法得到初值后,利用模糊规则实时在线整定 PID 控制器的 3 个修正参数 、 、 ,实现对水温的优化控制。选择输入语言变量为误pKID差 e 和偏差变化率 ,语言变量值取 NB,NM,NS,O,PS,PM,PB七个模糊值,ce选择输出变量为 、 、 。建立的 、 、 模糊控制规则如pIDKpIKD下表。总之,模糊控制器将采样得到的温度误差及误差变化通过量化因子转到模糊论域,变为离散量,根据离散量确定模糊语言值查询 、 、 模糊控制PKID规则表,分别得到三个控制量的模糊量,再将其转化为精确量,查出修正参数带入 PID 控制模型得到控制量 1(k)()(i)(k)e1)kpIDiuKee
6、K下面是模糊自调整 PID 控制算法的程序框图:李洪兴在对模糊控制器与 PID 调节器的关系进行了这样的论述:普通 PID调节器在四维空间中是一个通过原点的超平面,及具有线性调节规律;模糊控制器在该空间中则是一张通过原点的分片三次曲面,整张曲面逼近一个(阶数可以很高)非线性调节规律,故其整体效果要比 PID 调节器好很多。然而,在原点附近,模糊控制器近似为 PID 调节器。不难看出,这种模糊控制器在温度偏差较大时具有模糊控制器的全部优点,而在温度偏差较小时又具有 PID 调节器的所有优势。仿真程序及分析:被控对象为: 32580()71pGss采样时间为 1ms,采用模糊 PID 控制进行阶跃
7、响应,在第 300 个采样时间时控制输出加 1.0 的干扰,相应的响应结果如图 1 到图 5 所示。图 1 模糊 PID 控制阶跃响应图 2 模糊 PID 控制误差响应图 3 K 自适应调整P图 4 K 自适应调整I图 5 K 自适应调整D仿真程序:clear alla=newfis(fuzzypid);a=addvar(a,input,e,-3 3);a=addmf(a,input,1,NB,zmf,-3 -1);a=addmf(a,input,1,NM,trimf,-3 -2 0);a=addmf(a,input,1,NS,trimf,-3 -1 1);a=addmf(a,input,1,
8、Z,trimf,-2 0 2);a=addmf(a,input,1,PS,trimf,-1 1 3);a=addmf(a,input,1,PM,trimf,0 2 3);a=addmf(a,input,1,PB,smf,1 3);a=addvar(a,input,ec,-3 3);a=addmf(a,input,2,NB,zmf,-3 -1);a=addmf(a,input,2,NM,trimf,-3 -2 0);a=addmf(a,input,2,NS,trimf,-3 -1 1);a=addmf(a,input,2,Z,trimf,-2 0 2);a=addmf(a,input,2,PS,
9、trimf,-1 1 3);a=addmf(a,input,2,PM,trimf,0 2 3);a=addmf(a,input,2,PB,smf,1 3);a=addvar(a,output,kp,-0.3 0.3);a=addmf(a,output,1,NB,zmf,-0.3 -0.1);a=addmf(a,output,1,NM,trimf,-0.3 -0.2 0);a=addmf(a,output,1,NS,trimf,-0.3 -0.1 0.1);a=addmf(a,output,1,Z,trimf,-0.2 0 0.2);a=addmf(a,output,1,PS,trimf,-0.
10、1 0.1 0.3);a=addmf(a,output,1,PM,trimf,0 0.2 0.3);a=addmf(a,output,1,PB,smf,0.1 0.3);a=addvar(a,output,ki,-0.06 0.06);a=addmf(a,output,2,NB,zmf,-0.06 -0.02);a=addmf(a,output,2,NM,trimf,-0.06 -0.04 0);a=addmf(a,output,2,NS,trimf,-0.06 -0.02 0.02);a=addmf(a,output,2,Z,trimf,-0.04 0 0.04);a=addmf(a,out
11、put,2,PS,trimf,-0.02 0.02 0.06);a=addmf(a,output,2,PM,trimf,0 0.04 0.06);a=addmf(a,output,2,PB,smf,0.02 0.06);a=addvar(a,output,kd,-3 3);a=addmf(a,output,3,NB,zmf,-3 -1);a=addmf(a,output,3,NM,trimf,-3 -2 0);a=addmf(a,output,3,NS,trimf,-3 -1 1);a=addmf(a,output,3,Z,trimf,-2 0 2);a=addmf(a,output,3,PS
12、,trimf,-1 1 3);a=addmf(a,output,3,PM,trimf,0 2 3);a=addmf(a,output,3,PB,smf,1 3);rulelist=1 1 7 1 5 1 1;1 2 7 1 3 1 1;1 3 6 2 1 1 1;1 4 6 2 1 1 1;1 5 5 3 1 1 1;1 6 4 4 2 1 1;1 7 4 4 5 1 1;2 1 7 1 5 1 1;2 2 7 1 3 1 1;2 3 6 2 1 1 1;2 4 5 3 2 1 1;2 5 5 3 2 1 1;2 6 4 4 3 1 1;2 7 3 4 4 1 1;3 1 6 1 4 1 1;
13、3 2 6 2 3 1 1;3 3 6 3 2 1 1;3 4 5 3 2 1 1;3 5 4 4 3 1 1;3 6 3 5 3 1 1;3 7 3 5 4 1 1;4 1 6 2 4 1 1;4 2 6 2 3 1 1;4 3 5 3 3 1 1;4 4 4 4 3 1 1;4 5 3 5 3 1 1;4 6 2 6 3 1 1;4 7 2 6 4 1 1;5 1 5 2 4 1 1;5 2 5 3 4 1 1;5 3 4 4 4 1 1;5 4 3 5 4 1 1;5 5 3 5 4 1 1;5 6 2 6 4 1 1;5 7 2 7 4 1 1;6 1 5 4 7 1 1;6 2 4 4 5 1 1;6 3 3 5 5 1 1;6 4 2 5 5 1 1;6 5 2 6 5 1 1;6 6 2 7 5 1 1;6 7 1 7 7 1 1;7 1 4 4 7 1 1;7 2 4 4 6 1 1;7 3 2 5 6 1 1;