,,
(湖北大学 计算机与信息工程学院,武汉 430062)
随着经济和科学技术的提高,人们对生活水平的要求也越来越高,对于温度控制的需求当然会更严格,传统的空调用单片机控制继电器的通断来控制风扇电机的启停,从而达到控制温度的目的,这种控制方法简单但是效果却很差,温度在比较大的范围内波动,不能够达到让温度稳定的目的,那么借助模糊PID控制方法,设计出一种新的控制方法,把被控量温度加入到模糊控制中,通过模糊控制系统可以达到很好的温度控制效果。并且可以将这种控制系统用于其他对温控比较严格的产品中去。
PID是基于反馈理论的调节方式,它把设定的值r(t)与实际输出值y(t)作比较形成误差e(t),然后对误差信号e(t)进行比例、积分和微分运算[1],再把运算结果相加从而对被控对象进行调节控制的控制方式,它的主要结构图如图1所示。
图1 PID控制系统框图
但是随着对控制系统的要求的提高,而且一般被控制的本身也具有非线性多变的特点,单纯的PID控制并不能适应和调整多变性,也就不能满足现代很多高精度,高性能的控制要求,而模糊调节可以根据控制经验和规则来控制系统,这样控制更精确和实用。模糊控制它是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制算法,它模仿人的模糊推理和决策过程[3]。一般是把误差作为输入量,根据模糊规则对它进行模糊处理到一个集合,再根据反模糊规则把它变成具体量输出[4],模糊控制的基本原理如下图2所示。
图2 模糊控制器原理框图
模糊控制的核心是模糊控制器,它由模糊化接口、知识库和推理与解模糊接口[5]三部分组成。模糊化接口是将确定的一个量转化为模糊矢量,模糊矢量可以用一个集合来表示,一般用e={负大,负中,负小,零,正小,正中,正大},也表示为{NB,NM,NS,Z,PS,PM,PB};数据库一般分为数据库和规则库[6],总的来说就是存放模糊控制中的模糊法则,在后面的具体设计中会详细说到;推理与解模糊过程就是根据输入量,根据模糊规则来求解模糊关系方程,但得到的是一个模糊量,最后再解模糊便得到了一个具体量。
模糊PID控制既具有模糊控制的灵活性和适应性强的特点,也包含了PID控制精确度高的特点。适用于非线性、时变的控制系统。运用模糊控制原理,把系统的误差e和误差变化率ec作为模糊控制的输入量[7],根据模糊规则,寻求PID 3个参数与它们之间的关系然后对PID 3个参数进行修改。控制器结构如下图3所示。从框图3可以看出,模糊PID控制是在PID控制的基础上,加上模糊算法,把误差e和误差率ec经过模糊规则控制后作为PID调节的输入量,这样使得最后的控制结果与实际需要得到结果更相符合,从而达到更好更实用的控制目的。其设计的核心是设计人员总结实际工程的经验来设计模糊规则表,得到针对PID三个参数的模糊控制表。
图3 模糊PID控制器原理框图
现代空调的调温系统主要用的是单片机来控制继电器,从而达到空调自动调温的目的,首先它需要通过温度传感器来采集温度,然后与事先设置的温度值进行比教,当温度超过或低于设定值的时候,单片机就会控制继电器导通或关闭,从而控制电机的导通或关闭,这样就可以达到控制温度的效果。是一种低成本的温度检测、控制方案。通过上面的原理介绍可以看出这样的设计并不能真正的达到恒温的目的,它的温度总是在一个范围内波动,而且是在不断地变化不断地调节,这种控制方案只能在一定程度达到调节温度和节省资源的效果,但随着人们对生活水平要求的提高以及其他对温度要求较高的地方,这种控制方法显然不能达到要求。如果把改进的模糊PID控制用于空调上,将会极大地改善恒温的效果,也可以用于医院的孕妇室或婴儿室这种对温度要求很高的场所。传统的模糊PID控制一般是把输出的误差和误差率作为模糊PID的控制对象,根据模糊规则,再对PID参数进行调整整合,这样的模糊控制可能应用更广泛,但是并不适用于所有的控制场合中,要想控制的更为精确,达到想要控制的效果,就需要对其进行改进,在自动调温系统中,改进的模糊PID控制,是要改变模糊控制中的一个变量,把系统的误差变化率这个模糊控制数量改为外界的温度,把外界的温度加入到模糊控制的模糊规则中去,这样让外界的温度直接参与模糊PID电机的控制,就可以实时调节风扇电机的速度,从而精确地去调节空调温度。
由于是针对空调的自动调温系统,为了保证温度调节的实时性和精确性我选空调自动调温控制系统的两个模糊控制变量设计为外界温度T与设定温度t的差值E1(即E1=T-t),电机的实际转速V与设定的转速v的差值E2(即E2=V-v),这样控制系统既能监测到温度也能监测到它的转速,结合被调节的量来实时控制它。模糊控制的输出量为电磁调节阀的输入控制电压(或电流)。
由于模糊被控变量有两个,所以需要选择二维模糊控制器[8],整套控制系统的结构框图如下图4所示。
图4 空调自动调温控制系统结构图
如图4所示的空调自动调温控制系统结构图,选定三个模糊控制器命名为F1,F2和F3,模糊控制器的输入量为外界温度和设定温度的差值E1,即E1=T-t,另一个输入量为电机的实际转速与设定的转速的差值E2,即E2=V-v,输出量分别为PID控制器的比例系数Kp的调节量dKp、积分系数Ki调节量dKi和微分系数kd的调节量dKd。图5为模糊控制器的结构图。
图5 空调自动调温控制系统模糊控制器结构图
通过以上的模糊PID控制系统结构图,以及变量的选择,我们接下来需要对变量设置模糊论域,模糊论域的选择需要结合实际项目来看,论域越小,也就分得越精细,调节的效果也就越精确,但也不是越小越好,还需要考虑到选取变量的范围,根据以上的要求,我们设定模糊语言变量E1和E2的模糊论域为[-6,6],F1、F2和F3的输出模糊语言变量分别取名为dKp、dKi和dKd,模糊论域设为[-10,10],并将其量化为5个等级{-2,-1,0,1,2},设定温度范围在-1~1范围内,在MATLAB中设计输入输出语言变量并编辑高层属性[9],选择模糊逻辑的推理算法为面积平分法,设计结果如图6、图7和图8所示。
图6 模糊PID的Kp调节器 图7 模糊PID的Ki调节器
F1的模糊语言变量设计:将E1的语言值设为8个,即{负大(NB),负中(NM),负小(NS),负零(NZ),正零(PZ),正小(PS),正中(PM),正大(PB)};将E2的语言值设为7个,即{负大(NB),负中(NM),负小(NS),零(Z),正小(PS),正中(PM),正大(PB)};将输出量dKp的语言值设为7个,即{负大(NB),负中(NM),负小(NS),零(Z),正小(PS),正中(PM),正大(PB)},并设定其隶属度函数为梯形隶属度函数[10],设计图如图9、图10、图11所示。
图8 模糊PID的Kd调节器 图9 F1的输入变量的隶属度函数
图10 F1的输入变量的隶属度函数 图11 F1的输出变量的隶属度函数
F2的模糊语言变量设计:根据范围和精确度,将输入模糊语言变量E1、E2和输出模糊语言变量dKi旳语言值都设定为7个,即{负大(NB),负中(NM),负小(NS),零(Z),正小(PS),正中(PM),正大(PB)},则模糊控制器F2的输入输出模糊语言变量的隶属度函数设计图和F1大致一样,这里将不再插图。
F3的模糊语言变量设计:将变量E1的语言值设为7个,即{负大(NB),负中(NM),负小(NS),零(Z),正小(PS),正中(PM),正大(PB)},E2的语言值设为6个即{负大(NB),负中(NM),负小(NS),正小(PS),正中(PM),正大(PB)},输出旳语言值dKd旳语言值设置为7个,即{负大(NB),负中(NM),负小(NS),零(Z),正小(PS),正中(PM),正大(PB)},模糊控制器F3的输入输出的模糊语言变量的隶属度函数设计图和F1基本一样,这里也不再插图。
将输入量设定为E1和E2,E1是外界温度T与设定温度t的差值,即E1=T-t,E2是电机的实际转速V与设定的转速v的差值E2(即E2=V-v),模糊控制的输出量为电磁调节阀的输入控制电压(或电流)。模糊量输入之后我们就需要设置模糊规则,这也是模糊控制中至关重要的一步,模糊规则确定调节时的输入和输出的变量所在的范围,有了正确的模糊规则,才能由MATLAB来进行仿真分析和计算,才能得出正确的控制结果,仿真规则需要来自大量的数据以及经验,我们根据工程经验和数据分析,结合传统的模糊规则表,再进行一些结合实际的更改,设计以下的比例系数模糊调节规则表,如表1所示。
表1 自动调温控制系统比例模糊调节规则表[11]
上面的规则表是模糊输入量E1,E2与经过模糊控制器后输出的模糊参数的关系,以第一个规则为例,IFE1=NBandE2=PBthendKp=Z,这条规则的意思就是说,当外界的温度比设定的温度低而且很大差距的时候,并且电机的速度也比设定的速度要快很多,这个时候比例调节就可以为0,也就是不调节,刚好这个趋势可以使温度达到设定值,模糊推理输出为零(Z)。第二条IFE1=NBandE2=PMthendKp=Z,这条规则也就是说,温度相差很大,但是电机的转速相差不是很大,这就需要系数的正向微调,使速度大一些,所以这个时候的比例调节输出为正小(PS)。将规则加入到MATLAB的模糊控制规则编辑器F1中,可以看到模糊调节器F1的模糊规则观察器和模糊推理输入输出关系曲面如图12和图13所示。
图12 F1的模糊规则调节器 图13 F1模糊推理输入输出关系曲面
接着设计F2的积分模糊控制规则表,如表2所示。在积分的模糊调节中,如第一条规则IFE1=NBandE2=PBthendKi=Z,当温度偏差为负大(NB)即外界温度与设定温度相差甚远时,转速为正大(PB),就是说转速很快,而我们知道积分调节能消除静态误差,但会使响应速度变慢,转速快就是会在调节温度,那么此时就不需要再去积分消除误差,所以模糊推理输出为零(Z);再比如另一条规则IFE1=ZandE2=PBthendKi=NM,温度偏差为零(Z),而电机速度为正大(PB),此时被控量已经处于稳态,但是还将要以较大的速度去增加,此时就需要防止系统震荡而不稳定,所以需要减小积分的作用,模糊推理输出为NM。
表2 积分系数模糊调节规则表[11]
将规则加入到MATLAB的模糊控制规则编辑器F2中,可以得到模糊调节器F2的模糊规则观察器和模糊推理输入输出关系曲面图,这里将不再插图,可以参照图12和图13。
接着设计F3的微分模糊控制规则表,如表3所示。我们知道微分调节可以提高系统的相对稳定性,抑制超调,但会引入高频干扰。在表3中,第一条规则IFE1=NBandE2=PBthendKd=NB,如果温度的偏差为负大(NB),也就是外界的实际温度与设定温度相差很大,此时电机的速度为正大,也就是正在使系统稳定,那么此时竟可能的减弱微分环节对控制变量的抑制作用,因此控制器输出最小量(NB),再分析IFE1=NSandE2=PSthendKd=Z,若温度偏差为负小(NS),电机速率为正小,说明温度与稳态有一点儿偏差,但是正在以小幅度的调节中,慢慢接近稳态,因此保持当前的控制量不变。
表3 微分系数模糊调节规则表[11]
将规则加入到MATLAB的模糊控制规则编辑器F3中,可以看到模糊调节器F3的模糊规则观察器和模糊推理输入输出关系曲面图,这里也不再插图,可以参照图12和图13。
图14 空调自调温控制系统仿真模型
最后把设计的系统用MATLAB的Simulink仿真器进行仿真[12],建立模糊PID调节系统仿真模型FuzzyPID,如图14所示。我们需要对PID调节的三个参数进行试验整定,借助MATLAB工具,整定后的参数取Kp=8,Ki=0.5,Kd=0.5。在图中,模糊控制器和PID控制器的子系统如图15和图16所示,这两个子系统分别用于对温度和转速进行模糊调节和PID调节,在图16的模糊调节中,Kp0,Ki0,Kd0用来设定PID参数的初始值,用PID调节的整定结果作为模糊PID控制器的初始参数,Sp、Si和Sd三个子系统的作用是分别对PID的三个参数的调节量的求和,它的模型如图17所示。
图15 自调温控制系统子系统模糊控制模型
图16 自调温控制系统子系统PID模型
图17 PID控制系统子系统累计求和模型
最后我们设置参数仿真,检验这个系统的可行性,我们输入一个正弦信号波,经过控制后的信号和输入信号的差别可以看出控制系统的控制效果,结果如图所18示,从图上可以看出经过控制系统后的信号和原信号失真很小,达到了很好的控制效果,则此系统可以很好的用于系统的控制。
图18 空调自动调温系统调控后的结果对比
本文首先分析了传统的空调自动调温系统的控制原理,并指出它的弊病与不足,而不能用于现代对其要求比较高的地方,紧接着结合模糊PID控制的方法另辟蹊径,将一般的二维模糊PID的输入变量,系统误差变化率换成外界的环境温度,这样与被调节的变量接轨,把控制用于空调电机的控制,驱动空调电机达到更好的控温效果,最后用MATLAB的Simulink软件建立模型并进行仿真分析得到它的抗干扰能力更强,调节能力更优越,可以达到最初设计的目的,本方法具有很大的优越性。