罗新兰,赵鑫勇,须晖,马健,李天来,王蕊*
(1.辽宁省设施园艺重点实验室,辽宁 沈阳110866;2.沈阳农业大学 农学院 辽宁 沈阳110866;3.沈阳农业大学 园艺学院,辽宁 沈阳110866)
温室园艺生产作为设施农业的典型代表,具有高投入和高产出,知识与技术高度集成的特点,与传统常规农业最大区别是温室园艺生产充分利用对环境条件的可控性,从精确管理目标控制出发,对作物生长发育生理生态过程进行量化。作物生长发育模拟模型作为温室作物模型中的重要模型,在估算作物生产潜力优化作物栽培方案,研究和预测气候对农业生产的影响以及农场经营管理和农业政策制订等方面得到了广泛的应用[1~3],同时也为实现数字农业提供了有力的方法和工具。作物模型是指作物生长发育系统与其环境因子之间交互关系的一种逻辑或定量的表达,是作物生长发育过程的计算机模拟与实现,它是近40年来迅速发展起来的一项新技术,是将系统科学和计算机技术引入到作物科学的结晶[4~6]。目前我国温室作物模型主要是基于Windows平台的模拟系统软件,就实际应用效果而言,普通农户利用农业智能系统软件价格昂贵,功能单一,对网络环境的依赖性强,同时由于不同作物的差异性,使其在开源性、免费性和人机交互等方面较差。
Android系统是一种基于Linux的自由开放源代码的操作系统,主要应用于移动设备,如智能手机和平板电脑。随着智能手机近年来的迅速发展,集通话、多媒体、网络等多功能的Android系统更是得到了广泛的应用,与此同时,开源、免费的Android操作系统为开发农业智能系统提供了显著的优势和广阔前景[7~11]。郭文川等[12]利用 Android手机系统进行植物叶片面积快速无损测量系统,杨林楠等[13]利用Android手机系统进行了甜玉米病害智能诊断系统。本文从温室番茄生产的实际情况出发,提出了一种基于Android系统的温室番茄生长发育动态模拟系统的设计方法,构建了一个通用性强、便于二次开发且人机交换技术丰富的数据库和开发环境。该系统具有信息获取便捷、实用、界面友好和操作简单等优点,可以在移动电话、平板电脑、计算机等多个设备上应用,有较强的实用性和发展前景。
随着智能手持设备应用的不断发展,不同应用程序之间存在的语言差异、平台差异、协议差异、数据差异日益突出,成为应用程序间互操作和集成的阻碍。Android是一个完全整合的移动软件系统平台,它最大的特点是她的开放性。它采用软件堆层(Software Stack)的架构,主要分为三部分:底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发;最上层是各种应用软件,包括通话程序、短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,其框架见图1。
图1 Android系统框架Fig.1 Android System framework
鉴于Android系统在目前手机系统中应用的普遍性及其优越的便捷性,本文提出了基于Java程序语言的移动端作物生长模拟系统架构。
本系统总体上设计为客户机的架构,数据库使用SQLite,这样更加简单方便,适合单机,可操作性更强,数据端可在PC端添加。客户机(即智能平台)负责前台界面显示和模拟,为完成系统各功能模块的开发,首先建立了Android SDK+Java JDK 6+Eclipse 4.2的开发环境,基于Android 4.1.2版本的开发。本系统测试环境为:服务器联想万全T260G3S5606,操作系统Windows Server 2008。客户端智能手机采用GOOGLE N7(Android 4.1.2 系 统,硬 件 配 置 为 Nvdia Tegra 3 1.3GHz CPU ,16GROM ,1GRAM ,7英寸IPS电容屏)。
本文所设计的基于Android手机的温室动态模拟系统的结构主要包括人机交互界面、信息数据采集智能终端,数据库和模型算法库等,其结构如图2所示。
图2 系统结构图Fig.2 Architecture of System
1)活动(Activity)
一个Activity表示用户可视化界面,是最基本的Andriod应用程序组件。用户可以在上面进行一些操作。一个应用程序可以有一个或多个活动组成。每个活动都是通过继承活动基类被实现为一个独立的类,活动类将会显示由视图控件组成的用户接口,并依次对响应的事件响应。
2)意图(Intent)
Andriod中Intent是意图的意思,就是指程序想做什么,应用程序向Andriod提出要求,Andriod可以根据具体的事件内容进行响应。它是对需要的声明有一系列描述所需动作和服务的信息构成。
3)服务(Service)
服务是Andriod应用程序中具有较长的生命周期但是没有用户界面的代码程序。他在后台运行,并且可以与其进行交互。与Activity的级别差不多,但是自己不能运行,需要进行调用。
4)内容提供者(Content providers)
内容提供者使程序中特定的数据可以被其他程序使用。这些数据可以存储在文件系统中,SQLite数据库中,或者任何其他可以储存数据的地方。
程序系统的设计中,为保证操作简单且能够方便直观地读取数据,良好人机界面的设计是必不可少的。一个复杂的Andriod界面往往需要不同的组件组合才能达到理想的效果。视图界面包括很多组件:视图组件(View)、视图容器组件(View-Group)、布局组件(Layout)、布局参数(Layout-Params)等。定义并展现你的视图层次的最常用的方法是使用XML布局文件[13,14]。一个简单的xml布局代码如下:
SQLite数据库是一种基于C语言设计开发的免费开源数据库,不依赖第三方软件且方便管理和维护,支持多种语言。根据温室番茄生长发育数据信息,可以在Andriod系统中采用SQLite数据库来完成各种数据处理。因此,在Linux操作系统中安装SQLite作为温室番茄生长动态模拟系统的数据库开发平台[15~17]。
模型主要通过植株各个器官(根、茎、叶片和果实等)的发育、数量、干物质的积累和分配等,对作物整个生长发育过程进行定量化描述,并进行模拟。其中,通过对作物植株各器官的生成、发育、消亡等规律与速率的研究,得到作物在各个发育阶段的器官数量,而作物器官的干物质积累量可通过对作物碳平衡分析、干物质分配分析得到。
温室内气温日变化的模拟结果可用于以小时为步长的番茄生长发育模拟模型[18~20],公式如下:
其中:To为温室内揭苫前的气温,即温室内的最低气温。AT为温室内气温日较差,与天气的阴晴有关,t为时刻(真太阳时),tmor为早上揭苫时间,Tair(t)温室内白天温度。
番茄茎节、叶片、果实形成模拟模型的描述公式分别如下:
其中:Ns(1),NL(1),NF(1)分别为第1年龄级的每平方米茎、叶、果节数;INIT为新结点的出现速率;DENS为定植密度;rL(T)—在CO2浓度为0.000 35%,温度为T度时的叶片最大发育速率(1/d);F(C)—CO2浓度的调节函数;TPL是主茎上每片叶担负的果穗;PLSTN—当天植株上的结点总数;FPN—与当天植株上的总结点数PLSTN有关的每个新结点承担的果数;RF—根据试验资料统计的座果率,在发育的不同阶段,其值不同。
番茄茎节、叶片、果实干物质模拟模型的描述公式分别如下:
其中:其中SLA(T,C,PAR)为某天的平均比叶面积,它随温度、CO2浓度、光量子密度而变化;FRPET是叶柄重量与叶片重量的比值;dALP(i)/dt为发育阶段的叶面积潜在扩展速率;FRSTM是茎节占叶片生长速率的比率;Nf(i)年龄组i的果实数量(N0.·-2);POF(i)—年龄组i的单果干物质积累最大速率/g·d-1;FN(T)—温度因子:F(C)—CO2浓度因子。
根据温室番茄生长动态模拟系统的算法设计和模拟方法,本文在模型公式上,采用JAVA语言设计实现了模拟算法库,其流程图如图3所示。
图3 算法流程图Fig.3 Algorithm flow
手机客户端模块的实现是利用人机交互界面,引用用户的决策规则,在温室番茄模拟系统所有源代码编码完成后,经编译后形成一个.APK格式的打包文件,这个文件即为该系统的安装文件。将.APK文件在手机中安装后,会在手机的应用程序列表中建立一个新的应用程序图标,点击该图标即可启温室番茄模拟系统[21]。启动后的主界面如图4,a。
图4 系统界面Fig.4 System interface
该Android系统的温室番茄动态模拟软件有3个主要功能管理模块,分别是温室内温度模拟模块、温室番茄形态发育拟模块、温室干物质需求模拟模块。其中,温室番茄形态发育拟模块和温室干物质需求模拟模块分别包括3部分,它们是叶片数、茎节数和果实数的模拟和叶干重、茎干重和果干重的模拟。
温度模拟模块主要模拟温室内的温度,可以做到模拟出温室内的日平均气温、最高气温、最低气温值。将模拟所需要的参数保存在数据库下,模拟结果分2种形式:一是保存在数据库下,二是以文本文档的形式保存在指定文件夹内,通过nfc、蓝牙、usb传送出去。
点击进入形态模拟模块后,可以进入子菜单(图4,c),子菜单分成3个部分:叶的模拟、茎的模拟、果的模拟。以叶的模拟为例,先在日期里输入定植日期和拉秧日期再点击形态模拟模块,可以查出长季节栽培时叶的信息,从开始到结束每一日叶的长势,而且可以转化成图表的形式(图4,e),更直观的描述叶的发育,便于直观理解深刻。
干物质模拟模块操作,可以进入子菜单如(图4,d),子菜单分成3个部分:叶干物质的模拟、茎干物质的模拟、果干物质的模拟。3个模拟值作出的图形是以日序为x轴,干重为y轴如(图4,f)所示。
系统以google的Nexus7作为系统的测试机型,在沈阳农业大学园艺学院日光温室基地辽沈Ⅱ型日光温室内进行测试。栽培管理方式按照辽宁省日光温室番茄长季节栽培管理标准进行,利用自动温湿记录仪对温室内外的温湿度进行数据采集。具体温度的模拟值与实测值日变化的对比情况详见图5。尽管温室内气温模拟值与实测值的最大温差为1~2℃,但整体温度模拟值与实测值的变化趋势比较吻合,决定系数达到0.9643,F值为205.70,达到0.01显著水平,可以满足生产者对于温室调控及栽培管理决策制定的要求。从图6中可以看出,叶片数、茎节数、果实数的平均相对误差为分别为4.6%,0.9%,8.0%。图7为各器官干物质积累模拟值与实测值对比结果。试验中的模拟值与实测值吻合较好,叶片、茎、果实的平均相对误差为分别为1.9%,9.7%,6.7%。
图5 晴天温室内温度的模拟值与实测值日变化Fig.5 Diurnal trends of simulated and observed temperature on clear day in greenhouse
图6 番茄器官数的模拟值与观测值Fig.6 simulated and observed numbers of organ at tomato plant
图7 干物质积累模拟和实测对比Fig.7 The comparison of simulation values and the observed values that the dry material accumulates
以上测试数据表明:该模拟系统设计合理、操作简便,具有不受空间限制、移动性好、应用中系统稳定、模拟响应时间短等优点。可以满足温室管理及栽培管理人员的预测需求,适合推广应用。
本文采用Android操作系统作为开发平台,设计了一种基于温室环境数据为参数模拟温室内部环境因素和番茄生长状态的系统。采用Android SDK+Java JDK 6+Eclipse 4.2和SQLite数据库构建应用系统的开发环境,并在此基础上利用模拟算法库和Android操作系统便捷的人机交换技术,通过软件系统设计与关键技术开发,实现通过系统数据库实现信息的采集,内部算法模拟。实验结果显示:整个系统结构设计合理,采用的技术先进,达到预期设计目标,可满足温室番茄生长模拟的需求。预计系统经过进一步优化设计和完善,将在农业中有广泛的应用前景。
本研究结合全新的免费开源Android手机操作系统,设计并实施该模拟系统,具有如下特点:
(1)通过系统预置温室温度模拟模块、番茄形态发育拟模块、番茄干物质积累模拟模块,开发了基于Android手机系统的温室小气候及番茄形态发育及干物质积累模拟系统。通过自动获取在线信息,可以实现快速预测温室小环境及番茄生长发育状况。该系统具有程序小巧,占用内存小,cpu使用率低的优势。
(2)本文构建了基于Android手机系统的开发环境,具有开源、免费、无限制添加新的功能部件,支持面向对象的JAVA,以小型的SQLite为数据库,对于更新数据,完善系统规则库有着重要作用。
(3)系统中应用温室番茄动态模拟模型,实现了温度模拟模块、形态模拟模块和干物质模拟模块在手机操作系统中的运行,是一种有效使用温室作物生长模型为设施生产管理提供技术支持的方法。
[1]李军.作物生长模拟模型的开发应用进展[J].西北农业大学学报,1997,25(4):102-107.
[2]杨宁,廖桂平.作物生长模拟研究进展[J].作物研究,2002(5):255-257.
[3]杨靖民,杨靖一,姜旭,等.作物模型研究进展[J].吉林农业大学学报,2012,34(5):553-561.
[4]曹宏鑫,任德昌,王旭清,等.作物生长发育过程的计算机模拟决策研究概述[J].山东农业科学,2001(3):51-54.
[5]夏志军,李萍萍.基于数据库的温室作物生长决策支持系统的设计与实现[J].计算机测量与控制,2003,11(7):536-538.
[6]夏志军,李萍萍.温室黄瓜环境管理智能决策支持系统初探[J].江苏大学学报(自然科学版),2004,25(1):6-8.
[7]李钟尉,马文强,陈丹丹,等.编著Java从入门到精通[M].清华大学出版社,2008:10-12.
[8]高鹏.基于安卓的移动气象信息系统的设计与实现[D].辽宁:大连理工大学,2013.
[9]谢梦.基于Android系统的葡萄生产过程溯源系统研究[D].浙江:浙江大学,2013.
[10]尚明华,秦磊磊,王风云,等.基于 Android智能手机的小麦生产风险信息采集系统[J].农业工程学报,2011,27(5):178-182.
[11]李慧,刘星桥,李景,等.基于物联网 Android平台的水产养殖远程监控系统[J].农业工程学报,2013,29(13):175-181.
[12]郭文川,周超超,韩文霆.基于 Android手机的植物叶片面积快速无损测量系统[J].农业机械学报,2014,45(1):275-280.
[13]杨林楠,郜鲁涛,林尔升,等.基于 Android系统手机的甜玉米病虫害智能诊断系统[J].农业工程学报,2012,28(18):163-168.
[13]张一鸣.XML搜索引擎技术在媒体资源管理系统中的应用[D].长春:东北师范大学,2007.
[14]詹成国,朱伟,徐敏.基于 Android的测控装置人机界面的设计与开发[J].电力自动化设备,2012,32(1):119-122.
[15]J Bloch.Effective Java(2nd Edition)[M].New York:Prentice Hall,2008:100-130.
[16]刘昌平,范明钰,王光卫,等.Android手机的轻量级访问控制[J].计算机应用研究,2010,27(7):2611-2613.
[17]马获蕾,汤海凤.Android系统中SQLite数据库的研究[J].电脑知识与技术,2013,9(28):6243-6245.
[18]William A.Avoiding bias in calculations of relative growth rate[J].Annals of Botany,2002,90:37-42.
[19]Gray C,Jones J W,Tchamitchian M.Crop modeling in horticulture:state of the art[J].Scientia Hort,1998,74(1/2):3-20.
[20]范柯伦 H,沃尔夫J主编.杨守春,译.农业生产模型:气候、土壤和作物[M].北京:中国农业科技出版社,1990:20-25.
[21]余志龙.Android SDK开发范例大全[M].北京:人民邮电出版社,2010:153-154.