基于Elman神经网络的温室环境因子预测方法*
2021-09-13张建超单慧勇景向阳李晨阳张程皓刘慧芹
张建超,单慧勇,景向阳,李晨阳,张程皓,刘慧芹
(1.天津农学院工程技术学院,天津市,300384;2.天津农学院园艺园林学院,天津市,300384)
0 引言
温室环境调控技术是农业生产过程中的关键技术,温室环境因子预测模型技术是温室环境调控技术的核心和基础[1-4]。有效的温室内预测模型有助于提高调控系统的能效和温室内热舒适性。然而,由于温室内环境调节过程的滞后响应特性,很难建立准确的模型[5-6]。研究表明,温室内环境的动态响应不仅滞后于外界因素的变化,而且滞后于风量、送风温度等系统调节变量的变化,导致调节不及时、稳定性差、运行效率低等一系列问题。
针对时滞系统的控制和建模问题,许多学者致力于这方面的研究,并在工业控制领域提出了许多有效的方法[7],如Smith预测补偿法[8-9]和广义预测控制法[10]。在温室调控领域,描述温室内环境滞后响应特性的典型方法是直观地建立含时滞环节的传递函数模型,然而,这种单输入单输出(SISO)的传递函数模型只是对系统内部结构的部分描述。为了弥补这些不足,研究人员引入状态空间方程来实现对被控对象的全面描述,但这些方法需要精确的物理数学模型来描述温室内环境调节过程的滞后响应特性[11-14],由于其所需参数多、模拟精度低,很难满足实际生产应用的需要。
本文采用Elman神经网络,结合传感器监测的大量时序序列历史数据,对温室环境因子数据进行建模,利用模型参数作为样本训练神经网络,并与以函数逼近理论为基础而构造的RBF前向网络和基于BP神经元的多层前向神经网络进行比较,以更好地实现温室内环境因子的变化预测。
1 Elman神经网络预测模型
1.1 模型结构
Elman神经网络主要结构是前馈连接(如图1),包括输入层(Input layer)、隐含层(Hidden layer)和输出层(Output layer)。其中,输入层单元的作用是信号传输,输出层单元的作用则是线性加权,隐含层添加无神经元的承接层,用于记忆隐含层单元上一时间段的输出值,相当于一个一步的延时算子,具有检测和产生时变模式的功能。
图1 Elman神经网络结构图Fig.1 Elman neural network structure diagram
Elman神经网络主要应用于具有非线性时间序列特征的领域,其特点是隐含层输出通过承接层的延迟与存储,自联到隐含层的输入,这种自联方式对历史状态数据具有敏感性,内部反馈网络的参与增强了其处理动态信息和建模的能力[15-16]。温室环境因子历史样本隐含了温室复杂系统的大量信息,所以可以采用历史样本数据对温室环境因子进行建模,达到预测的目的。此外,Elman神经网络能够以任意精度逼近任意非线性映射,可以不考虑外部噪声对系统影响的具体形式,如果给出系统的输入输出数据对,就可以对系统进行建模。建立温室环境因子预测模型时,采用过去时刻环境因子(温度、湿度、二氧化碳)的样本数据作为预测未来时刻环境因子值的输入项。
其网络数学表达式为
y(k)=g(w3x(k)+b2)
(1)
x(k)=f(w1xC(k)+w2(u(k-1))+b1)
(2)
xC(k)=x(k-1)
(3)
式中:k——时刻;
y——m维输出节点向量;
x——n维中间层节点单元向量;
u——r维输入向量;
xC——n维反馈状态向量;
w3——中间层到输出层连接权值;
w2——输入层到中间层连接权值;
w1——承接层到中间层连接权值;
g(·)——输出层神经元的传递函数,是中间层输出的线性组合,采用purelin函数;
f(·)——中间层神经元的传递函数,常采用tansig函数;
b1——输入层阈值;
b2——隐含层阈值。
对于输入数据,不同时刻产生的输出也可能不相同,因为隐含层不但接受来自输入层的数据,还要接受连接层中存储的数据。输入层数据反映了信号的空域信息,而连接层延迟则反映了信号的时域信息[17]。
1.2 原理及方法
Elman神经网络采用的是优化梯度下降算法,即自适应学习速率动量梯度下降反向传播算法,既能提高网络的训练速率,又能有效抑制网络陷入局部极小点。学习的目的是用网络的实际输出值与输出样本值的差值来修改权值和阈值,使得网络输出层的误差平方和最小[18]。
设第k步系统的实际输出向量为yd(k),在时间段(0,T)内,定义误差函数
(4)
以w3,w2为例,将E对w3,w2分别求偏导,可得权值修正公式
Δw31j(k+1)=(1-mc)η(yd(k)-y(k))·
g′(g)xj(k)+mcΔw31j(k)
j=1,2,…,m
(5)
Δw2jv(k+1)=(1-mc)η(yd(k)-y(k))·
j=1,2,…,m;v=1,2,…,n
(6)
式中:η——学习速率;
mc——动量因子,默认值为0.9。
这样在进行更新时不仅考虑了当前梯度方向,还考虑了前一时刻的梯度方向,降低了网络性能对参数调整的敏感性,有效抑制了局部极小。
1.3 预测流程
Elman神经网络的预测流程图如图2所示。
图2 Elman神经网络的预测流程图Fig.2 Prediction flow chart of Elman neural network
Elman神经网络首先对各个权值进行初始化处理,然后对数据进行归一化处理,之后进行神经元的计算。其中与其他神经网络(BP神经网络,RBF神经网络等)的主要区别在于Elman神经网络多一个承接层,在隐含层神经元输出后,反馈值经承接层计算后重新返回隐含层。
2 试验结果与分析
2.1 数据采集与处理
本文Elman预测模型中用到的训练及验证数据来源于天津农学院西校区温室数据。该温室位于天津市西青区,地处暖温带半湿润大陆季风型气候,年平均气温12.3 ℃。7月最热,月平均气温可达26 ℃;1月最冷,月平均气温为-4 ℃。年平均降水量为550~680 mm,夏季降水量约占全年降水量的80%。温室环境因子变量包括温度、湿度和二氧化碳浓度,其中各环境因子每隔3 min采集一次。
从采取的历史样本数据中取2020年3月1日0时0分到3月5日23时57分共2 400组数据作为模型训练集样本,其中温度将3月10日0时0分到23时57分共480组数据划分为测试样本,湿度将3月6日0时0分到23时57分共480组数据划分为测试样本,二氧化碳浓度将3月7日0时0分到23时57分共480组数据划分为测试样本。
预测时一次预测是得到一个时间点的数据。以训练样本为例,抽取x1~xN组成第一个样本,其中(x1,x2,…,xN-1)为自变量,xN为目标函数值;抽取x2~xN+1组成第二个样本,其中(x2,x3,…,xN)为自变量,xN+1为函数值,以此类推。最终形成训练矩阵
(7)
考虑历史数据划分及模型评价,本设计模型中N选为7。训练样本是由前6个数据为输入,第7个数据为输出。例如,抽取x1~x6组成第一个样本,x7为y1;抽取x2~x7组成第二个样本,x8为y2,以此类推,最终形成训练样本。
为提高神经网络训练的效率和网络的泛化性能,在训练前对所有样本数据进行归一化处理,公式如式(8)、式(9)。预测试验在计算机上完成,仿真软件为Matlab 2019a。
归一化
(8)
反归一化
xi=(xmax-xmin)yi+xmin
(9)
式中:xmax——训练样本输入量的最大值;
xmin——训练样本输入量的最小值;
xi、yi——输入样本归一化前后的值。
2.2 结果分析
本文选取了温度,湿度和二氧化碳浓度三个环境因子建立了Elman预测模型。其中预测模型的训练参数为:隐含层神经元个数为15,隐含层神经元的激活函数为traingdx,最大迭代次数为2 000次,误差容限为0.000 1。
性能评价参数为相对误差RE,均方误差MSE以及决定系数R2。其中,MSE越小越好,R2越大越好。
(10)
(11)
(12)
式中:n——测试集样本个数;
aq——第q个样本的真实值,q=1,2,…,n;
bq——第q个样本的预测值,q=1,2,…,n。
表1为不同时间间隔的温室环境因子预测结果。由表1可知,预测时间越长,模型预测的精度越低,预测效果越差。相关试验测试表明,在开启通风或加热等设备20~40 min后室内热湿环境可以得到明显改善[19]。本文模型的预测时间间隔选取为30 min。
表1 Elman不同时间间隔预测结果比较Tab.1 Comparison of prediction results of different time intervals of Elman
如图3~图5所示为Elman算法经Matlab仿真后的温度、湿度、二氧化碳浓度的预测结果。
(a)室内温度预测值与实测值对比
(a)室内湿度预测值与实测值对比
(a)室内二氧化碳浓度预测值与实测值对比
从图3~图5可以看出,时间序列号为记录各环境因子参数值的序列编号,记为{ti}(i=1,2,3,…,480),ti表示第i个记录的参数值。其中,温度预测值与实测值的最大相对误差为0.216 5,均方误差为0.003 9,决定系数R2为0.991 5;湿度预测值与实测值的最大相对误差为0.123 7,均方误差为0.005 9,决定系数R2为0.967 8;二氧化碳浓度预测值与实测值的最大相对误差为0.213 3,均方误差为0.028 3,决定系数R2为0.973 9。
因此,温度,湿度和二氧化碳预测值与实测值的误差都较小,能够较准确地反映温室内环境变化情况,且在温度的模拟上,效果更为优越。本文所建立的预测模型,可以作为温室内优化调控策略的参考,在一定程度上弥补环境控制效果滞后问题。
2.3 模型评价
为了更好的对Elman预测模型的性能进行评价,采用以函数逼近理论为基础而构造的RBF前向网络和基于BP神经元的多层前向神经网络算法对温室内环境因子进行建模。RBF和BP模型的训练集和测试集与Elman模型的相同,归一化、时间间隔以及输入输出项也采取了与Elman模型一致的处理方式。
RBF神经网络模型采用Matlab函数newrbe(),基于设计向量快速、无误差地设计一个径向基网络,其中径向基函数的扩展速度为30 000;BP神经网络模型的相关参数设置为:最大迭代次数为1 000,学习率为0.01,训练目标为0.001,隐含层神经元个数为9。
表2为三种算法的性能比较。由表2可知,Elman模型整体上表现出较高的精度和拟合能力。图6~图8分别对比了各方法的预测结果,图中分别选取了200~220时间序列号所对应的温度、湿度和二氧化碳浓度参数值。
表2 Elman、RBF和BP算法性能比较Tab.2 Performance comparison of Elman,BP and RBF algorithms
图6 三种算法温度预测结果对比Fig.6 Comparison of temperature prediction results of three algorithms
图7 三种算法湿度预测结果对比Fig.7 Comparison of humidity prediction results of three algorithms
图8 三种算法二氧化碳浓度预测结果对比Fig.8 Comparison of CO2 concentration prediction results of three algorithms
从图6~图8可以看出Elman模型的预测曲线较其他两种模型更接近于实测值。因此,该模型更适合温室环境因子的预测。
3 结论
1)针对现有的温室环境存在无法预测环境变化趋势与控制效果滞后的问题,本文提出基于Elman神经网络的预测模型,利用Elman神经网络建模,借助Matlab平台,然后对其进行训练、检验,进而预测温室内环境因子变化。试验结果表明,Elman神经网络模型能充分地分析环境因子的变化规律,并获取其变化过程中的大体趋势,具有实际应用价值。
2)对RBF、BP神经网络和Elman神经网络进行了分析比较,研究了其网络结构、原理算法及模型设计等,并分别建立了基于三种神经网络的温室环境因子预测模型,采用历史数据进行验证。结果表明:Elman、RBF和BP温度预测的均方误差分别为0.003 9、0.004 2和0.003 9,决定系数分别为0.991 5、0.991 3和0.991 4;湿度预测的均方误差分别为0.005 9、0.014 1和0.016 0,决定系数分别为0.967 8、0.966 3和0.970 6;二氧化碳浓度预测的均方误差分别为0.028 3、0.188 7和0.119 3,决定系数分别为0.973 9、0.918 6和0.952 8。Elman模型整体上表现出较高的精度和拟合能力,并且预测结果的拟合曲线更接近于实测值。
3)温室环境变化趋势受诸多因素的影响,具有很强的不稳定性,导致个别时间点的预测值存在较大的相对误差。在之后的研究中,考虑消除或抑制诸多影响因素对预测的影响,模型也可以推广到其他数据领域。