农作物用水量预测及智能灌溉方法--毕业论文.docx_第1页
农作物用水量预测及智能灌溉方法--毕业论文.docx_第2页
农作物用水量预测及智能灌溉方法--毕业论文.docx_第3页
农作物用水量预测及智能灌溉方法--毕业论文.docx_第4页
农作物用水量预测及智能灌溉方法--毕业论文.docx_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

农作物用水量预测及智能灌溉方法摘要随着水资源供需矛盾的日益加剧,发展节水型农业势在必行。本文首先基于历史数据建立了作物全生育期内水分生产函数模型以及全生育期内各阶段的蒸发蒸腾量与最终产量之间的优化作物水分生产函数模型,并以水分生产函数为理论依据,建立了不考虑降雨量和考虑降雨量的地区水稻的非充分灌溉制度的优化模型,解决供水量在各生育期(从分蘖到乳熟阶段)合理分配的问题,在水分利用效率、产量、经济效益三方面寻求了有效均衡,从而实现经济效益最大化。针对问题一,结合表1中作物1的实测需水量与产量的对应数据以需水量x为横轴,产量y为纵轴拟合散点图图像,通过图像发现需水量x与产量y的图像变化规律近似符合二次函数图像,由此假设需水量x与产量y符合二次函数,从而以需水量为自变量、产量为因变量建立二次函数模型,并用题目中数据通过eviews8.0软件进行拟合和进一步验证,发现参数检验均显著且函数拟合优度R2=1,故说明模型建立良好。针对问题二,根据题设要求选取某类优化算法,寻求最优的作物水分生产函数模型,得到各阶段的蒸发蒸腾量与最终产量之间的关系。同时考虑了在建模、预测、控制、神经网络设计等方面都有成功应用的BP神经网络模型和遗传程序设计方法重新构建了作物水分生产函数,并通过将两模型与附录中给出的机理模型进行误差比较,得出基于遗传程序设计所得出的优化模型误差最小,精度最高。 针对问题三,在非充分灌溉条件下,通过建立动态规划模型,来实现灌水资源在各阶段的合理分配。以各个生育阶段为阶段变量i,以各个阶段的实际灌水量mi为决策变量,以各个阶段初可供灌溉的水量qi为状态变量,以qi+1=qi-mi为系统方程表示分配给第i+1个阶段到第n个阶段的供水量,以qi=q0作为初始条件,以0qiq0、inmiq0、0miqi为决策约束,基于谨慎性的考虑,分别利用Jensen模型和Blank模型以单位面积实际产量Ya与最高产量Ym的比值最大化为目标函数,给出了总供水量分别为充分灌溉总水量的40%,60%,80%的情况下,供水量在各生育期(从分蘖到乳熟阶段)合理分配的方案。同时,比较两个模型得出的结果发现,Blank模型在构成相对产量方面反应不如Jenson模型灵敏,Jenson模型更符合实际。一、 问题重述随着水资源供需矛盾的日益加剧,发展节水型农业势在必行。智能灌溉是一种应用先进的信息技术实施精确灌溉,以农作物实际需水量为依据,提高灌溉精确度,实施合理的灌溉方法,可以较好提高水的利用率。据有关部门统计分析,我国灌区平均水利用系数(评价农业水资源利用、指导节水灌溉和大中型灌区续建配套及节水改造健康发展的重要参考指标)仅为0.45,说明节水仍有较大空间。现对下面四个问题,分别给出作物全生育期内水分生产函数模型以及全生育期内各阶段的蒸发蒸腾量与最终产量之间的优化作物水分生产函数模型,从而有助于更好地实现对农作物的实际需水量的预测。同时以水分生产函数为理论依据,建立了不考虑降雨量和考虑降雨量的地区水稻的非充分灌溉制度的优化模型,解决供水量在各生育期(从分蘖到乳熟阶段)合理分配的问题,使得最大化作物产量的同时,灌溉总用水量最小,在水分利用效率、产量、经济效益三方面寻求了有效均衡,从而实现经济效益最大化。问题1:基于表1中作物1实测需水量与产量的对应数据,建立该作物全生育期的水分生产函数的模型,即总产量与需水量之间的解析关系,给出详细求解过程及拟合效果。问题2:基于表2中某地晚稻分蘖至乳熟各阶段受旱情况对产量影响的数据。利用附录中材料,选取某类优化算法,寻求最优的作物水分生产函数模型,得到各阶段的蒸发蒸腾量与最终产量之间的关系,并将所得结果与常见的机理模型作对比。问题3:基于已有材料对于非充分灌溉的描述,结合表2晚稻蒸发蒸腾量与产量数据,选择合适的作物水分生产函数(可以选择已得到的模型或者机理模型),建立该地区水稻的非充分灌溉制度的优化模型。在总供水量分别为充分灌溉总水量的40%,60%,80%的情况下,解决供水量在各生育期(从分蘖到乳熟阶段)合理分配的问题,应包含阶段变量、决策变量、状态变量、系统方程、目标函数、初始条件及约束条件等描述,最后给出求解方案。问题4:结合表3列出的某地近年的降水资料。若进一步考虑该地区的降水量,重新构建非充分灌溉制度的优化模型,从而建立在各生育期合理分配水量方法,使得最大化作物产量的同时,灌溉总用水量最小。二、 问题分析2.1问题1的分析对于问题一,要结合表1中作物1的实测需水量与产量的对应数据,建立该作物全生育期的水分生产函数的模型。因此首先考虑的是利用题目中已有数据以需水量x为横轴,产量y为纵轴拟合散点图图像,通过图像找出需水量与产量的一些相关规律。根据拟合出的图像,我们发现需水量x与产量y近似抛物线图像,从而对需水量为自变量、产量为因变量建立二次函数模型,并用题目中数据通过eviews8.0软件进行拟合和进一步验证,发现参数检验均显著且函数拟合优度R2=1,说明模型建立良好。2.2问题2的分析对于问题二,在第一题的基础上要求进一步考虑作物全生育期内各阶段的蒸发蒸腾量与最终产量之间的关系,通过选取某类优化算法,寻求最优的作物水分生产函数。考虑到各阶段蒸发蒸腾量和产量之间无法构建确定的相关关系函数,首先尝试采用BP神经网络模型,BP神经网络是一种基于误差反向传播算法算法的多层前向人工神经网络,可以实现输入和输出间的任意非线性映射,因此它在诸如函数逼近、模式识别、数据压缩等领域有着更加广泛的应用。首先利用题目中给出的样本中的一部分训练出神经网络模型,并用剩余样本进行校验,检验神经网络模型的适用性。但考虑到BP神经网络模型可能会存在拟合精度不高、收敛慢等缺点。我们考虑同时使用另一种方法来建立最优的作物生长模型,遗传程序设计是一种自动化编程设计,擅长于模型结构的自动搜索,具有实用性强、精度高等优点,它是依据自然选择的原理和生物进化论,通过进化由树结构表示的计算机程序,在建模、预测、控制、神经网络设计、人工生命等方面得到了成功应用。因此我们考虑利用遗传程序建立作物水分生产函数模型。最后通过将遗传程序建立的作物水分生产函数与BP神经网络模型、Jensen模型和Blank模型进行拟合精度比较,从而寻求最优的作物水分生产函数。2.3问题3的分析针对问题三,我们要建立该地区水稻的非充分灌溉制度优化模型,以解决在非充分灌溉的情况下,供水量在各生育期(从分蘖到乳熟阶段)合理分配的问题,因此这是一个典型的多阶段决策过程,可以采用动态规划模型求解。动态规划是解决多阶段决策过程最优化的一种方法。对于每个互相联系的阶段都需要分别作出决策,各个阶段所确定的决策互相影响,这些决策构成一个策略,多目标阶段决策最优化就是要在允许选择的那些策略中间,选择一个最优策略,使在预定的标准下达到最好的效果。本问题中,根据问题二中所给出的机理模型(Jenson模型和Blank模型)为作物的水分生产函数,可以建立以各个生育阶段为阶段变量i,以各个阶段的实际灌水量mi为决策变量,以各个阶段初可供灌溉的水量qi为状态变量,以qi+1=qi-mi为系统方程表示分配给第i+1个阶段到第n个阶段的供水量,以qi=q0作为初始条件,以0qiq0、inmiq0、0miqi为决策约束,以作物的相对产量最高作为目标函数的动态规划模型。在总供水量分别为充分灌溉总水量的40%,60%,80%的情况下,采取动态规划逆序算法进行求解即从最后一个阶段向前逆推计算,逐段找出最优分配路径。三、 模型假设与前提条件四、 主要符号说明及名词解释五、 模型建立与求解5.1 问题1的模型建立与求解5.1.1 模型的建立根据表1中作物1的实测需水量与产量的对应数据,将实测需水量作为横轴,产量作为纵轴,通过eviews8.0软件输出散点图图像。图5-1实测需水量和产量的散点图图像根据图5-1,可以发现散点图图像呈现如下特征:1、 当x350时,y随着x的增加而增加2、 当350x400时,y出现最大值3、 当400x时,y随着x的增加而减少通过以上分析总结可以得到初步判断,图像符合二次函数图像特征,因此假设需水量和产量符合二次函数,并由此建立模型如下:y=ax+bx2+cx为实测需水量;y为产量5.1.2模型的求解将表一有关输入量和输出量数据代入模型,通过eviews8.0软件对该一元二次模型进行回归,输出结果如下:Dependent Variable: YMethod: Least SquaresDate: 05/21/16 Time: 17:24Sample: 1 10Included observations: 10VariableCoefficientStd. Errort-StatisticProb.X5.1862570.00020425424.730.0000X2-0.0069803.10E-07-22482.970.0000C-478.47240.032041-14933.050.0000R-squared1.000000Mean dependent var430.7570Adjusted R-squared1.000000S.D. dependent var74.07824S.E. of regression0.006569Akaike info criterion-6.969485Sum squared resid0.000302Schwarz criterion-6.878710Log likelihood37.84743Hannan-Quinn criter.-7.069066F-statistic5.72E+08Durbin-Watson stat2.663122Prob(F-statistic)0.000000y=-478.4724+-0.006980x2+5.186457x (-14933.05) (-22482.97) (25424.73)5.1.3模型结果分析(1)函数中a、b、c参数的t检验在1%的显著性水平下均显著:pa0.01,pb0.01,pc0.01(2)拟合优度判定系数R2=1拟合优度判定系数体现了回归模型中自变量的变异在因变量的变异中所占的比例,本模型中y的变异中完全都是由变量x的变化引起的,所有观测点都落在拟合的直线或曲线上,说明该模型建立良好。5.2 问题2的模型建立与求解由于BP神经网络可以实现输入和输出间的任意非线性映射,首先使用BP神经神经网络进行拟合5.2.1 BP神经网络建模(1)训练、测试样本、输入输出因子确定以及参数调整首先确定训练样本和测试样本,同时,为了对神经网络模型的参数进行调优,还设计了用于参数调优的样本。因此将已知的12条样本分为三部分,其中前8条样本作为训练样本,第9条样本作为参数调优的样本,最后两条样本用来对模型进行测试,验证其适用性。为了确定输入因子,将作物生长四个阶段的蒸发蒸腾量封装为四维向量,作为输入,将产量作为输出。 本文使用feedforwardnet建立神经网络,其中的参数值隐层节点的个数,隐层节点的选择是一个比较复杂的问题,通常根据设计者的经验和多次试验来确定,本文对隐层节点的选择采用的方法是:使用其中一个样本进行参数调优。首先对前8条数据进行训练,得到一个BP模型存在net中,然后使用第8条数据通过多次试验对参数进行寻优,得到最优的隐层节点数为6,。最后使用得到的模型对最后两条数据进行 验证得到如下图所示的预测结果,左图为预测结果,有图为实际数据,可以看到,误差很小。 虽然可以看到误差不大,但是由于本问题中的已知样本只有12条 ,验证样本只有两条,并不能严谨的说明这个模型的精度,因此,我们后面讲采用另一种方法来建立一个优化的作物生产水分函数模型。5.2.2 基于遗传程序设计生成作物生产函数遗传程序设计是一种特殊的利用进化算法的机器学习技术,是在遗传算法的基础上加以延伸和扩展形成的一种新的演化算法,是一种自动化编程技术,它依据自然选择的原理和生物进化论,通过进化由树结构表示的计算机程序求解问题,具有适应性强、精度高的优点。采用基于遗传程序设计的方法实现函数自动建模只需要指定样本数据和精度要求即可获得回归表达式。本问题要根据给定的样本建立一个最优的作物水分生产函数模型,可以使用遗传程序设计来建立作物水分生产函数模型。(1) 遗传程序设计的具体步骤:步骤一:确定目标函数。设输入输出样本分别为: X=x11,x12x1m,x21,x22x2m, ,xn1,xn2xnm,Y=y1,y2,yn,设计的过程就是确定一个最佳的函数表达式G( c , x 1 , , xm ) ,使得如下的误差表达式极小化minf = n |G( c, xk1 , , xkm ) - yk| (1)式中 c为实常数。步骤二:编码。确定终端集和函数集。其中,终端集的元素定义为变量x和式(1)中的实常数c。由于本问题最终的目标是生成一个函数表达式,因此在本文中,函数集F的元素定义为算术操作+,*,/和初等函数sin,cos,arctan,arcctg,具体的编码方案如下表所示。表中的编码值为1则对应xi中的某一个。函数G( c , x 1 , , xm 问题的解。在遗传程序设计中,当运算符集全部采用双目运算时,使用典型的二叉树的结构进行编码。在数据结构中通过树的遍历,可以方便的将层次结构转换为线性序列。如下图所示的个体的遍历结果为 (x*y+z)/(x-z)步骤三:群体初始化设群体规模为N,即一共产生N颗树,产生初始群体的N课树的每一刻的过程如下:先从初始元素集合(运算符集合操作数集)中选择一个元素,如果是操作符,则结束;如果是运算符,则作为根节点,继续选择元素。重复上述过程,直至形成一个完整的二叉树或者知道满足终止条件。这样就生成了一个初始个体。步骤四 每一代群体的解码和适应度评价将上一代生成的表达式带入式(1)中,可以得到每个个体所对应的目标函数值fi,i=1,2,N,把fi按从小到大排序,排在最前面的几个个体作为优秀个体。定义排序后第i个父代个体的适应度函数值Fi=1fifi+0.001步骤五:对群体的进化操作。进化操作分为:选择、交叉、变异三个阶段。其中选择操作取比例选择的方式,则父代个体i的选择概率为:si=Fii=1NFi令p(0)=0,Pi=k=1isk,i=1,2,N。生成一个0,1区间的均匀随机数u, 若 u 在 p ( i - 1) , p ( i ) 中 ,则第 i 个个体被选中。为增强持续全局搜索的 能力 ,把最优秀的 5个父代个体直接复制为子代个体。交叉操作就是在两棵父代个体树上随机 产生两个交叉点 ,然后交换以这两个交叉点为根节点的子树。变异操作就是在选得的个体中随机产 生一个变异点 ,然后以变异点为根节点 ,将其以下的子树(包括变异点 )按照步骤 3的方式随机产生一棵子树 来代替。在进化操作中,在产生每一个子代的时候,以上的三个操作都按照一定的概率来执行。假设选择操作的概率是ps,交叉操作的概率是pc,那么变异操作执行的概率就是1-ps-pc,产 生一个 0, 1 区间上的均匀随机数 u ,若 u ps 则进行 选择操作 ,若 ps ( ps + pc ) 则进行变异操作。如此反复进行 N - 5次 , 完成 1次进化迭代。因为有5个直接赋值为子代了,所以只需要对剩下的N-5个个体进行进化操作。步骤六:记录最佳的个体 ,并把子代群体作为新的父代群体 ,转入步骤 4,如此反复演化 ,直至进化迭代次 数大于预设值 ,或目标函数值达到预设值 ,结束算法的运行。此时得到的最佳个体即为最终结果。(2)基于遗传程序设计生成作物水分生产函数1,对实验数据的标准化处理 题目中给出了作物各处理蒸发蒸腾量及产量的数据,为了便于后面对数据的处理,首先对数据进行标准化处理。根据表格中的数据可知,作物共有4个生长阶段,设各阶段的潜在腾发量 为 ( E Tm ) j , j = 1, 2, , 4 , mm; 作物的潜在产量为 Ym , kg /hm2。通过非充分灌溉试验得到作物 N 组实际腾发 量 ( E Ta )i j , i = 1, 2, , N , j = 1, 2, , 4 , mm 和实际产 量 ( Ya ) i , i = 1, 2, , N , kg /hm2。将 N 组实际腾发量和实际产量的数据按下述公式作标准化处理。x ij = ( ETa ) ij /( E Tm )j i = 1, 2, , N , j = 1, 2, , 4 (4)yi = ( Ya )i /Ym i = 1, 2, , N (5)式中 xij , yi 处理后的作为训练样 本的输入和输出 ,均为比值 ,无量纲。将非充分灌溉处理 (处理 1 11)下的各阶段实际 腾发量和实际产量按式 ( 4)、 ( 5)作标准化处理 ,分别得 到矩阵 X 和 Y。X=0.76430.72650.9041 0.86400.73860.75170.78980.68080.71810.81400.85730.78640.89200.86560.8758 0.69680.75300.72710.88910.68400.88030.82740.57660.77630.94870.91360.7468 1.00980.87090.76730.99600.81560.72710.74510.76340.8087 0.86700.80860.87850.9177 0.66880.82330.75940.6868 Y=0.80650.64110.85610.63820.77330.74660.88880.84620.71110.7111 利用标准化处理之后的样本,利用遗传程序设计进行模型的自动寻优,最终得到最优的函数表达式。将标准化之后得到的样本数据作为训练样本进行训练,得到了如下所示的作物生产函数: 对函数表达式的精度测量可以通过以下误差函数来衡量:Err=i=1NErri=i=1NfXiYm-yiYmyiYm=i=1NfXi-yiyi式中,Err为相对绝对误差和;Erri为第i组样本的相对绝对误差;Xi=(xi1,xi1,xit,)为第i组输入样本的向量表示;fXi为由遗传程序计算的第i组实际输出值;yi为第i组理想输出值;Ym为作物潜在产量,kg/hm2。误差越小,拟合的精度越高。将得到的模型和乘法模型以及加法模型都使用上式所示的误差函数来衡量模型的拟合程度,得到如下图所示的的误差情况:编号乘法模型加法模型BP网络遗传模型10.0524240.029960.0498420.02683320.080110.1232280.0628560.16679730.0775650.0674120.0105340.11209840.0624160.0945010.0027040.09768650.0423340.0262040.0629540.03076460.0278640.0328160.0213210.02702470.0439080.0268530.0710090.0383980.0309220.0256520.0717660.01433790.0182830.0206550.0046510.020168100.025480.028220.033480.006452110.0515440.0447680.0520980.055738总误差0.512850.5202710.4432160.596286从图中可以看出:遗传算法的误差不是很理想,虽然BP网络的误差最小,但这并不能说明这个算法最优,因为BP模型是使用前8条数据进行训练,所以误差最小。(这段里面关于BP网络的误差遗传模型的误差要改)5.3 问题3的模型建立与求解5.3.1 模型建立1、阶段变量:上述4个生育阶段为阶段变量i,i=1,2,n,n=42、决策变量:各个阶段的实际灌水量mi,i=1,2,n,n=43、状态变量:各个阶段初可供灌溉的水量qi,i=1,2,n,n=44、系统方程:qi+1=qi-mi,表示分配给第i+1个阶段到第n个阶段的供水量5、阶段指标函数:gi(mi)=(ETaiETmi)ii,表示供水量mi分配给第i个阶段获得的效益6、初始条件:qi=q07、约束条件:状态约束:0qiq0决策约束:0miqiinmiq08、目标函数:利用Jensen模型以单位面积实际产量Ya与最高产量Ym的比值最大化为目标,即:F1=maxYaYm=maxinETaiETminii利用Blank模型,以单位面积产量实际产量Ya与最高产量Ym的比值最大化为目标,即:F2=maxYaYm=maxinAiETaiETminii5.3.2 模型求解(一)模型求解方法本模型为具有一个状态变量和一个决策变量的动态规划问题,采用动态规划逆序算法求解逆推关系式为:fiqi=maxETaiETmiiifi+1qi+1,i=1,2,&,n-1 fnqn=maxmnETanETmnnn,i=n即由i=n 开始,由后向前依次逆推,逐阶段求出最优决策和过程的最优值 ,直到最后求出f1(q1)即得到问题的最优解。动态规划逆序算法程序框图如下:(二)模型已知数据 根据表2中所给的已知信息,由处理编号0的数据知,在充分灌溉的时候,由各个生育期(从分蘖到乳熟阶段)的充分灌溉水量加总得到充分灌溉时总水量为474(mm)(根据题设将蒸发蒸腾量理解为灌水量)。处理编号处理特征分蘖(mm)拔节孕穗(mm)抽穗开花(mm)乳熟(mm)充分灌溉总水量(mm)0充分灌溉148.1111.8124.789.4474因此问题转化为需考虑总供水量在以下三种情况下的合理分配方案: 总供水量q0=474*40%=189; 总供水量q0=474*60%=284; 总供水量q0=474*80%=379;根据表2,在充分灌溉的时候,由各个生育期(从分蘖到乳熟阶段)的充分灌溉水量和最终产量,可以得到 ETm1=148.1, ETm2=111.8, ETm3=124.1, ETm3=89.4,Ym=7138.5(三)模型求解结果A: F1为目标函数时: q0=0.4Q=474*40%=189MATLAB运行结果如下表:m1=31,m2=104,m3=32,m4=22;YaYm=41.05%, Ya=7138.5*41.05%=2930.35425第一阶段分配水量31mm,第二阶段分配水量104mm,第三阶段分配水量32mm,第四阶段分配水量22mm,产量为2930.35425 (kg/hm2)阶段qimiYa(这一列删掉)11893121581043543242222 q0=0.6Q=474*60%=284MATLAB运行结果如下表:m1=62,m2=111,m3=66,m4=45YaYm=64.95%, Ya=7138.5*64.95%=4636.45575第一阶段分配水量62mm,第二阶段分配水量111mm,第三阶段分配水量66mm,第四阶段分配水量45mm,产量为4636.45575 (kg/hm2)阶段qimiYa(删掉)128462222211131116644545q0=0.8Q=474*80%=379MATLAB运行结果如下表:m1=96,m2=111,m3=102,m4=70YaYm=83.77%,Ya=7138.5*83.77%=5979.92145第一阶段分配水量96mm,第二阶段分配水量111mm,第三阶段分配水量102mm,第四阶段分配水量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论