一种粒子群模糊PID控制算法在温室中的应用
2020-09-02周艳平
周艳平,庄 岩
(青岛科技大学 信息科学技术学院,山东 青岛 266061)
0 引言
温室监控系统的应用能提高农作物产量,减少劳动成本,为我国社会的发展带来经济、社会、生态等方面的利润和效益[1]。相对于西方发达国家,我国的温室监控技术的研究和应用还不够先进。近年来,伴随着对温室监控方面的研究和应用的不断深入,我国温室监控领域的技术水平得到了很大的提升[2],但还存在待提高的空间。
我国温室大棚监控设备在发展中主要存在以下问题:1)管理方式固定化,过度依赖以往经验进行管理,农业生产过程不够智能;2)控制因素局限化,温室环境控制的研究多只考虑个别环境因素,未考虑温室多种变量优化控制问题[3];3)控制方式较单一,目前监控设备普遍使用传统PID控制算法和模糊PID控制算法对室内参数进行调控[4]。然而单纯PID控制不能适应环境的动态变化,模糊PID又过度依赖专家经验。针对于以上问题,本文提出在模糊PID控制的过程中运用粒子群算法动态优化,实现模糊PID的自适应控制过程,使控制器具有优越的动态响应,提高设备的整体运行性能。
1 粒子群模糊PID控制算法
1.1 模糊PID控制
模糊PID控制算法原理为:通过实际生活经验,总结出输入量与PID控制的3个参数的规律,按照模糊规则方式写入控制器的规则库。在PID算法对环境控制过程中,首先将误差值经量化因子计算,得到误差值的一个模糊量;再将其与规则库中的模糊规则匹配进行推理计算并且将计算结果经过比例因子Kp、Ki、Kd计算后传递给 PID控制器[5]。根据输入量的变化改变控制参数,以满足PID控制的动态性[6]。
1.2 模糊控制算法的优化
模糊控制的设定过程存在过于依赖专家经验的问题,其中的参数值设定完成后,无法随着输入误差的变化而动态改变。然而在温室多变量、大惯性、强耦合的环境特点下,固定的参数变量会影响控制器的控制效果。
模糊控制器的待优化点主要为模糊化、反模糊化过程的优化和模糊规则的优化,而影响模糊化、反模糊化的主要因素为量化比例因子。输入值经过量化因子计算后传递给模糊控制器,输出值经过比例因子计算后传递给 PID控制器[7]。量化、比例因子值的设定可以改变控制器的输出特性,针对于不同误差值,对量化、比例因子进行动态改变才能提高控制准确度。
1.3 粒子群优化模糊PID算法设计思想
本文采用粒子群算法对控制参数进行寻优,根据温室控制特点,优化控制过程中的模糊化、反模糊化过程。算法设计思想为:在输入量的模糊化和输出量的反模糊化的过程中,采用粒子群算法,通过在设定的搜寻范围内搜寻量化因子和比例因子的最佳适应值,解决设定参数过度依赖经验规律的问题。其结构如图1所示。
图1 模糊PID控制优化结构图
1.4 算法设计
1.4.1 标准粒子群算法
粒子群优化算法是Kennedy和Eberhart在1995年提出,由鸟类的捕食行为带来启发所提出的智能优化算法[8]。算法主要思想为每个粒子相当于一只鸟,在d维空间中搜寻最优解,粒子飞行过程即为该个体搜索过程。粒子具有两个属性:速度和位置。速度代表了粒子在d维空间中向最优解移动的速度快慢,位置代表了粒子在寻优过程中向什么方向移动。每个粒子在搜寻途中遇到的最佳值作为个体最优解,整体种群对比所有个体最优解,选取最佳值作为群体最优解[9]。在d维空间中,第i个粒子的属性如下:
速度vi=(vi1,vi2,vi3,…,vid)
位置xi=(xi1,xi2,xi3,…,xid)
粒子的最优解
pbesti=(pbesti1,pbesti2,…,pbestid)整个种群的全局最优值
gbest=(gbesti1,gbesti2,…,gbestid)
第i个粒子在t时间点的速度和位置属性计算公式为:
vi(t+1)=ωvi(t)+c1(pbesti(t)-xi(t))+
c2(gbest(t)-xi(t))
(1)
xi(t+1)=xi(t)+vi(t+1)
(2)
式(1)由粒子对上一时间点速度值的继承部分,对自我的认知部分,对社会的认知部分3个部分组成[10]。ω称为惯性权重,决定了当前时刻移动的快慢受前一时刻速度值的影响[11]。c1和c2称为学习因子,c1值设置较大时,粒子受个体最优解影响大,对自身认知强,但是容易陷入局部最优解;c2值设置较大时,粒子对社会认知强,会向全局快速移动,但是会过早收敛到全局极值,容易陷入早熟。
1.4.2 惯性权重优化
基本粒子群算法中,对惯性权重值的大小采用线性递减的策略,然而在迭代后期,此策略容易造成粒子在局部区域对最优解的搜索能力减弱。因此,本文采用了非线性变化的策略,惯性因子的值为
(3)
ωi为第i次迭代时的惯性因子值。ωstart是惯性因子的初始值,一般设定较大提高初期的全局搜索能力;ωend为惯性因子最终值,一般设定较小保证后期的局部搜索能力。imax是迭代次数上限。
1.4.3 学习因子优化
学习因子c1和c2分别代表了粒子对个体自我和整体种群社会的认知情况[12]。在整体优化过程初期,整个种群应该尽可能地在整体搜索空间进行分布,粒子应散落在整个解空间,因此在迭代初期更多关注自身的经验的作用;而在搜索过程的后期,粒子应该集中在种群中最优的区域进行搜寻活动,即粒子在后期应以群体的经验为重。根据以上分析,在迭代初期,为防止粒子早熟,过快收敛到全局最优解,应该提高粒子的自我认知,设定c1的值比较大而c2值比较小;随迭代次数增加,应该逐渐提高粒子的社会认知并且减小粒子的自我认知,防止陷入局部最优解,逐渐减小c1,加大c2,即异步改变c1和c2的值。本文选择学习因子的优化公式为:
(4)
(5)
式中,c1max,c1min,c2max,c2min分别为学习因子c1,c2的上限和下限;i为当前迭代次数;imax为迭代次数上限。
1.4.4 具体寻优过程
针对于温室环境控制过程中模糊PID控制所存在的弊端,本文对控制过程中的模糊化、去模糊化进行动态优化,优化模糊控制的参数主要为Ke,Kec,Kp,Ki,Kd这5个参数,具体的寻优过程为:
1)初始化种群,设定粒子群参数。首先设定寻优种群的基本参数,包括迭代次数上限,搜索种群总数,因为是5个参数,本文设定搜索维度是5。依据上文对算法的改进,设定学习因子的上限和下限,惯性因子初始值、最终值。在搜索范围内初始化粒子,设定pbesti和gbest的最初值。
证明 设{xn}是关于度量ρ0的Cauchy-列,要证明{xn}是关于度量ρ0收敛,由引理2.1和引理2.2知,只需证明{xn}关于度量d收敛到0或1时,{xn}关于度量ρ0收敛。
2)进行适应度计算。在算法优化过程中采用适应度函数评判粒子在解决目标函数时的优劣性,其评判规则由目标函数转化而来,本文的适应度函数的评判标准采用能够综合性评价系统的动、静态性能的ITAE积分准则[13]。将每个粒子的位置作为模糊PID控制器参数,代入到仿真模型中计算其适应值,求解每个粒子对于控制系统的ITAE积分性能指标[14]。对比适应值后更新pbesti和gbest。
3)更新粒子的速度和位置。依据式(3)计算粒子的ω值;再根据当前迭代次数和式(4)和式(5),分别计算粒子的c1和c2值;最后将计算得到的惯性权重值、学习因子值,代入式(1)、(2)更新每一个粒子的速度和位置。
4)判断终止。根据是否满足终止条件(迭代次数上限和最佳适应值)来终止程序并且输出最佳值,如果没有满足终止条件,则转到步骤2)继续进行寻优。
2 实验仿真与分析
2.1 温室模糊PID控制器
针对温室温度进行仿真实验,将设定最佳室温和实际室温的差值e和此差值的变化率ec作为输入变量,将PID控制的kp、ki、kd作为输出结果变量。输入变量e、ec和输出变量kp、ki、kd的基本论域均为为{-3 -2 -1 0 1 2 3}。同时,采用七段式模糊语言值,模糊子集为{NB(负大)NM(负中)NS(负小)ZO(零)PS(正小)PM(正中)PB(正大)},在隶属度函数的选择上,选取了对称三角形隶属度函数[15]。根据温室温度环境,模糊控制规则制定如下:
1)当输入偏差较大时,不仅需要系统快速响应,还需要调控设备防止超调,同时避免出现过饱和现象导致控制结果超出限定范围的情况发生,应该设定kp取值比较大,ki取值为零,kd取值较小。
2)当输入偏差在模糊论域的负中范围内时,控制器控制量较小,应避免系统出现超调或超调量过大的现象,同时防止系统的响应速度较低,kp、ki取较小值,kd取适中值。
3)当输入偏差较小或者趋近于0时,控制器控制量很小,因此应重点关注系统的稳态性能和抗干扰能力,kp、ki应取值较大,同时为防止控制结果震荡,kd应取值适中。
根据以上规律,模糊控制规则如表1、2、3所示。
表1 kp控制规则表
2.2 温室温度仿真模型
仿真由基于温室温度数学传递函数所建立的Simulink模型、改进粒子群程序以及对于两者的连接程序三部分组成。粒子群优化程序传递粒子给仿真模型,通过仿真模型计算出粒子的适应值再回传到优化程序中,从而寻找量化比例因子的最优解。
根据参考文献[16],我们得知大棚环境是非线性的大滞后复杂控制对象。其温度环境可以近似为有扰动情况下的一阶惯性系纯滞后环节[16],其传递函数为:
(6)
因此,根据温度传递函数建立的粒子群算法优化模糊 PID控制的Simulink仿真图如图2所示。
在图2中,分为3个部分:1)Out1中的输出为根据ITAE积分准则计算的目标温度传递函数;2)Fuzzy Logic模块为的模糊控制部分,其中包含了根据温室特点设计的模糊规则;3)通过模糊控制器得出的结果解模糊后用来对PID控制部分进行修正,修正后的PID控制器对目标函数进行控制操作。
图2 粒子群优化模糊PID Simulink模型图
2.2.2 传递函数
在整体的仿真过程中,传递函数被改进的粒子群算法主程序调用,从而控制整体模型的运作,同时作为桥梁来传递数值。具体的作用是通过控制温室仿真模型的运作,同时将运行过程中经ITAE积分准则评价的目标函数值传递给主程序。
2.2.3 主程序设计
改进粒子群主程序的设计依照粒子群优化过程进行编写,具体分为4个部分:1)为数据的初始化。初始化种群,即对优化过程所需要的参数进行设定,包括种群数、迭代次数上限、学习因子的上下限、惯性因子的初始最终值;2)计算适应值。将每一个粒子通过传递函数代入到仿真图中的e、ec、kp、ki、kd中,通过仿真得到每一个粒子的适应值,并根据适应值更新pbesti和gbest;3)更新参数。通过公式更新粒子的惯性因子和学习因子,并且将其和最优极值代入到公式计算更新粒子的速度和位置;4)循环判断。判断是否达到最终停止条件,来对结果进行输出或者继续进行优化迭代操作。
2.3 仿真结果与比较
在Matlab中对经典PID、模糊PID和粒子群优化模糊 PID控制算法依据温室室温进行控制实验[17],设置植物最佳生长室温为30 ℃,初始室温为0 ℃,结果曲线如图3所示。图3对比结果表明,传统的PID进行温室控制,存在最大偏差现象明显,最大偏差量超过10%;模糊PID优化了控制效果,但依然存在最大偏差;采用粒子群算法优化后,基本消除控制过程中存在的最大偏差量的现象,综合对比其他两种方法,具有最佳控制效果。
图3 PID算法、模糊PID算法、粒子群优化模糊PID算法仿真对比图
3 结束语
本文对国内温室监控系统的发展进行了研究,针对于目前存在的问题和不足,提出了基于粒子群优化的模糊PID控制算法对大棚环境进行控制。通过仿真实验对比,基于粒子群优化的模糊PID控制算法在温度环境的控制方面取得了良好的效果,该方法可以在相关领域推广应用。