基于掌上电脑的饲料配方系统的设计与开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第24卷第6期农业工程学报V ol.24 No.6
2008年6月 Transactions of the CSAE Jun. 2008 179 基于掌上电脑的饲料配方系统的设计与开发
陈立平1,姚光强1,赵春江1※,李洪1,谢实勇2
(1.国家农业信息化工程技术研究中心,北京 100097; 2.北京市畜牧兽医总站,北京 100107)
摘 要:饲料配方软件为合理利用饲料资源、降低饲粮成本发挥了巨大作用。
在掌上电脑上设计和开发了通用型饲料配方系统,系统包含配方计算、配方浏览、数据管理、系统维护和系统升级等主要功能模块。
开发了嵌入式数据库访问中间件,提高了掌上电脑上数据操作的效率和系统的稳定性;采用两阶段法和直接计算逆矩阵的方式对配方求解的单纯形算法进行了优化,根据参算原料种类的数量,实际计算一次配方时间约为2~4 s;实现了基于存储卡和网络的两种升级方式,保证了系统原料和饲养标准数据的时效性。
在北京市4个郊区县31个养殖场户进行了应用,结果表明,系统稳定实用、操作简易,容易被中小养殖户接受,具有较大的推广价值。
关键词:饲料配方系统;掌上电脑;嵌入式数据库;Windows CE;线性规划
中图分类号:S816.31;TP368.33文献标识码:A 文章编号:1002-6819(2008)-6-0179-05
陈立平,姚光强,赵春江,等.基于掌上电脑的饲料配方系统的设计与开发[J].农业工程学报,2008,24(6):179-183.
Chen Liping, Yao Guangqiang, Zhao Chunjiang, et al. Design and development of feed-formula system based on pocket PC[J].
Transactions of the CSAE, 2008,24(6):179-183.(in Chinese with English abstract)
0 引 言
中国从20世纪80年代初期就开始了饲料配方软件系统的研制和使用,为合理利用饲料资源、降低饲粮成本发挥了巨大作用[1-3]。
这些饲料配方软件系统多基于台式计算机平台,由于台式计算机价格较为昂贵,而且配方系统的操作使用较为复杂,用户常常只是大型饲料生产和养殖企业,科学配方的技术和知识很难通过台式计算机平台的饲料配方软件系统普及到中小养殖专业户。
然而,目前我国养殖业中,中小养殖户占有很大比重,且在相当长的时期内仍将维持农户小规模家庭养殖、中等规模专业户及现代化养殖场并存的格局[4],为中小养殖户提供简单易用的饲料配方工具软件对保证我国畜产品品质和安全具有重要意义。
掌上电脑具有价格便宜、体积小、重量轻、易携带、操作维护简单等特点。
近年来,掌上电脑的发展十分迅速,其操作系统功能日益增强,提供了内嵌式开发环境。
目前,基于掌上电脑的农业应用系统的研究还较少,国内在专家系统的研究上做出了一些有益的探索[5-7],在数据采集上进行了一些应用[8-10],熊本海等[11]研究使用PDA 等设备采集奶牛个体体况信息,进行奶牛的精细日粮配方,但仅是将PDA作为数据采集和传输设备,且针对奶牛个体体况进行配方的技术更适合于在集约化、规模化的养殖场应用。
本文针对中小养殖户的对饲料配方技术的需求和实
收稿日期:2007-11-07 修订日期:2008-5-17
基金项目:北京市自然科学基金项目(4062014)
作者简介:陈立平(1973-),女,福建惠安人,副研究员,博士,主要从事农业信息处理与智能决策技术的研究。
北京国家农业信息化工程技术研究中心,100097
※通讯作者:赵春江(1964-),男,河北定兴人,研究员,博士,博士生导师,主要从事农业信息技术研究。
北京国家农业信息化工程技术研究中心,100097。
Email: zhaocj@ 际操作应用信息技术产品的能力,设计开发了基于掌上电脑的饲料配方系统。
讨论了系统的框架结构和功能模块划分,介绍了系统实现中的关键技术,并将该系统与其它基于台式计算机平台的饲料配方系统进行了对比。
1 系统设计
1.1 功能模块划分
基于掌上电脑的饲料配方系统面向中小养殖户,提供个性化饲料配方的设计与管理。
系统以线性规划为核心处理模型,采用嵌入式数据库存储营养需要和原料等数据,由配方计算、配方浏览、数据管理、系统维护、系统升级和系统帮助6个主要功能模块组成,各个模块的功能如图1所示。
图 1 饲料配方系统功能模块
Fig.1 Function modules of the feed-formula system
1.2 系统运行结构
系统运行结构见图2。
主程序运行在掌上电脑上,通过调用存储卡中数据库的营养需要和饲料原料数据参与配方计算,用户通过光笔点击及手写输入的方式操作并
180 农业工程学报 2008年
获得相应的显示反馈。
图2 饲料配方系统运行框架
Fig.2 Running chart of the structure of feed-formula system
2 系统软件开发
2.1 配方数据管理
系统运行在掌上电脑平台,与台式计算机相比,掌上电脑的处理和存储能力有限,必须采用高效的数据结构和算法以适应对性能的要求。
同时,作为通用型饲料配方系统,应该具有较好的灵活性和扩展能力,能够充分利用现有的数据资源,快速扩展为其它动物的饲料配方系统。
因此数据库设计是系统设计的一个关键环节,系统在数据库设计上采取了以下策略。
1)数据集中管理
设计将饲料配方所涉及的数据全部以嵌入式数据库方式进行集中管理,充分利用数据库对数据查询、修改的高效处理能力,克服掌上电脑处理资源有限所带来的响应慢的问题。
2)元数据的应用
为便于扩展迁移为其它动物的饲料配方系统,对营养需要数据、原料数据、饲养习惯数据等针对不同种类动物而有所不同的数据提供完整的元数据定义,方便数据的组织和管理,提高数据转换和系统移植的效率。
参照元数据的定义,收集、整理其它动物的营养需要等个性数据,或导入现有台式计算机平台配方系统的数据后就可以快速扩展出新的饲料配方系统。
3)双数据库设计
系统采用了用户库和系统库双数据库设计。
用户数据库完全由用户控制,可以自定义营养需要、自由添加自有原料,以及进行全面的删除或修改。
系统数据库不能由用户修改,只能由指定单位修改和发布,以保证数据完整和系统稳定。
这样的结构充分保证了系统数据的权威性和应用系统的灵活性,从物理上隔绝了用户修改系统数据的可能。
同时便于系统的维护,能够在完全不影响用户数据的情况下对营养需要和原料数据进行升级更新。
用户可以积累自有数据,这些数据充分独立,可以被自由交换和共享。
双数据库设计结构见图3。
由于采用了用户库和系统库双数据库设计,共用部分存在冗余的可能,为适应掌上电脑存储空间有限的特点,在设计数据表时要求主键值在两个库中跨库唯一,
系统数据只在系统库中出现,保证共用部分唯一,最大程度地减少了数据冗余。
图3 双数据库设计
Fig.3 Design of double database
4)配方独立
配方时所使用原料的价格、营养指标等往往处于变化和波动之中,具有较强的不确定性,因此为每个配方结果都设计了单独的原料表和属于自己的营养指标库,将配方配制时所使用原料的价格、营养指标数据独立存储在用户数据库中,与系统或用户的其它数据独立,极大的方便了配方的查询和维护操作。
用户可以对配方进行追溯,查看配方配制时间的数据情况,掌握原料的营养指标、价格的变化,同时用户只需要共享用户数据库就可以方便地与其它用户进行配方的交流。
2.2 嵌入式数据库中间件
饲料配方系统涉及大量的营养需要、饲料原料、使用习惯以及饲料、饲养知识等数据,设计使用嵌入式数据库对这些数据进行集中管理,因此系统运行时对数据库的读取、维护和存储是一项经常性和关键性工作,数据增加、删除和修改等数据库操作的效率在实际上也决定了系统的整体性能。
由于本系统是在掌上电脑上开发,相比台式计算机系统,掌上电脑的处理能力较为有限,因此必须提高数据库的操作效率,尽可能降低对系统资源的开销,进行必要的优化[12,13],才能使系统具有较快的响应能力。
分析SQL Server Mobile 数据库提供的访问方式发现,受.NET Compact Framework 支持的SQL Server Mobile 数据访问接口主要包括DataAdapter ,SqlCeDataReader 和SqlCeResultSet 3种[14]。
SqlCeDataReader 和SqlCeResultSet 是直接对数据表进行操作,没有数据缓
第6期陈立平等:基于掌上电脑的饲料配方系统的设计与开发181
存能力,即在内存中没有数据表的副本,DataAdapter结
合DataSet可以提供对访问数据的完整缓存[15]。
在执行效
率上三种接口也有所不同,开发人员需要根据这些特点
选择适合的接口,要求必须非常熟悉这些接口的区别和
应用场合,考虑系统数据访问的特点以优化的方式来针
对性使用这些接口。
为了提高开发效率、降低复杂性,将针对嵌入式数
据库的访问操作封装成为嵌入式数据库中间件,提供完
整的通用型、模块级数据操作支持。
中间件以类库形式
实现数据库全部操作能力,包括创建数据库、读取和修
改数据表、设置表间关系等,系统的其它部分在操作数
据库时不直接使用SQL Server Mobile的数据访问接口,
而是使用数据库中间件来执行操作。
数据库中间件不仅
降低了开发人员的负担,还提高了数据操作的效率和系
统的稳定性,同时中间件还可以不加任何修改应用到其
它系统,大大提高了重用水平。
中间件的设计原则是尽可能提高数据操作的效率,
简化使用方法。
针对SQL Server Mobile数据库访问接口
的不同特点,中间件选择了不同的访问方式来适应不同
应用场合的需要。
表1列出了中间件的部分功能及说明。
表1 嵌入式数据库中间件的功能及说明
Table 1 Functions of embedded database middleware
方法功能说明
ConnectDB (string DBName) 连接到
数据库
根据指定的数据库文件路径连接到目标
数据库
ExecuteSQL (string SQL) 执行SQL
语句
直接指定需要执行的SQL语句,提供灵
活的操作方式
GetTable_ReadOnly (string TableName) 只读方式
获取表
以速度最快的数据访问接口
SqlCeDataReader获取表,用于只浏览表
不发生修改的场合
GetTable_NoCache (string TableName) 无缓存方式
获取表
以SqlCeResultSet接口访问数据,用于
可能发生修改,但不需要缓存修改的场
合
GetTable_CacheMod (string TableName) 缓存方式
获取表
以SqlCeResultSet接口访问数据,配合
DataSet缓存结果数据,用于可能发生修
改,并且需要缓存修改以决定是否提交
的场合
ConstraintSetPK (string TableName, string ColumnName) 设置表
的主键
构造生成表主键的SQL语句,使用
SqlCeCommand的ExecuteNonQuery方
法执行
……
2.3 配方求解算法设计和优化
目前优化饲料配方使用的求解算法包括线性规划、目标规划和模糊线性规划[16]。
本系统运行在掌上电脑平台,其CPU运算速度较为有限,采用复杂的算法求解配方需要较多的计算时间,会大大降低系统的响应能力。
另一方面,系统主要服务于中小养殖户的日常饲粮配方设计,他们的实际配方水平较为有限。
而目标规划和模糊线性规划较为复杂,要求配方设计人员具备较高的动物营养学知识和配方经验,进行必要的分析和调整,不易被掌握。
因此综合考虑,系统选取了线性规划作为配方的核心处理模型。
2.3.1 线性规划法求解饲料配方的数学模型
线性规划所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好。
线性规划可以合理配置资源,适合于饲料配方问题的求解。
该法将饲料配方中的有关因素和限制条件转化为线性数学函数,求解一定约束条件下的目标值。
设x j(j=1,2,…,n)为参与配方配制的各种原料的用量,n为原料个数,m为约束条件数,a ij(i=1,2,…,m;j=1,2,…,n)为第j种原料的第i种营养成分的含量,b i(i=1,2,…,m)为配方应满足的各项营养需要,c j(j=1,2,…,n)为原料的价格系数,Z为目标值,则下列模型成立:
目标函数Z min=c1x1+c2x2+…+c n x n
满足约束条件:
a11x1+a12x2+…+a1n x n ≥(=,≤)b1
a21x1+a22x2+…+a2n x n ≥(=,≤)b2
……
a m1x1+a m2x2+…+a mn x n ≥(=,≤)
b m
x1+x2+…+x n=1
x1,x2,…,x n ≥0
这里目标函数是配方成本最低,求取的是满足约束条件下的最低成本配方。
2.3.2 算法的优化
线性规划的计算机求解使用的是单纯形算法,主要通过单纯形表格迭代求取得到结果。
其计算过程如图4。
图4 线性规划计算过程
Fig.4 Procedure of linear programming
经过实际测试发现,第1步和第4步操作占用较长的处理时间,是系统的瓶颈单位。
其中第4步的迭代过程中不必要地计算了较多与下一步迭代无关的数字,影响了计算效率,当求解规模达到一定程度时,这种低效性就更加明显。
本系统运行在掌上电脑之上,需要特别地对算法进行优化,以提高系统响应能力。
本系统使用两阶段法和直接计算逆矩阵的方式对这两步的求解进行了优化。
两阶段法是将整个单纯形求解过程分为两个阶段:在第一阶段加入人工变量,构造人工变量的目标函数,并要求实现最小化。
如果第一阶段求解得到目标为零,说明原问题存在基可行解,由此可以确定初始可行基,否则问题无解,直接停止计算。
进入第二阶段后,使用第一阶段计算得到的最终单纯形表,去除人工变量,换
182 农业工程学报 2008年
入原问题的目标函数系数,作为第二阶段的初始表,进行原问题的计算。
直接计算逆矩阵是在迭代运算过程中减少一切不必要的运算:迭代运算过程的目的是构造新的基可行解,以进入下一轮最优解判断。
通过分析发现上一步迭代的基B 与下一步迭代的基B 1之间只差一个变量,可以根据B 的逆矩阵1−B 结合此次迭代的换入变量的系数列向量来计算出基B 的逆矩阵1−B ,这种计算量比直接计算出
1
1−B 要小。
设进行第4步迭代时,m ×m 单位矩阵为
⎟⎟⎟⎟⎟
⎠
⎞⎜⎜⎜⎜⎜⎝
⎛=1...
0............0...100 (01)
m
I ,换入变量为k x ,换出变量为l
x 。
根据1−B 结合k x 、l x 直接求算11−B 的公式为:
1211
11...
/0
...
00...0...0...00...0/10...00..................0...0/0...00...0/0...1−−⎟⎟⎟⎟⎟⎟⎟
⎟⎠
⎞⎜⎜⎜⎜⎜⎜⎜⎜⎝
⎛−−−=B a a a a a a a B lk
mk lk lk
k lk k 式中 a xy ——矩阵中行为x ,列为y 的元素。
1−B 是单位矩阵,使用这种方法不需要一再计算基的逆阵,减少了不必要的计算,较好的提高了系统效率,达到了优化目的。
实际中,在掌上电脑上计算一次配方时间约为2~4 s ,响应速度较好。
2.4 系统升级
人们对食品安全的要求越来越高,对畜产品品质要求越来越严格,饲料标准也正处于逐步的修订之中。
由于市场行为、地区差异、季节变化、原料储运方式的变化,原料数据也经常发生变化。
因此系统升级、数据库更新是经常性操作。
本系统设计了存储卡升级和网络升级两种方式。
存储卡升级是将升级文件以存储卡方式分发到用户,用户在运行系统时会自动进行检测和升级;网络升级是通过有线或无线GPRS/CDMA 方式实现升级系统和数据库。
用户根据现有的条件,可以灵活地选择存储卡或网络升级方式。
升级后,用户使用的是最新的原料和饲料标准数据,充分保证了系统数据的现势性和可用性。
3 台式计算机平台和掌上电脑平台的饲料配方软件系统的比较
基于台式计算机平台开发的饲料配方软件系统包括单机版和网络版,下面对台式计算机平台和掌上电脑平台的饲料配方软件系统进行了比较,见表2。
系统的使用成本包括一次投入和每次投入的成本。
一次投入是在购置硬件设备上的投入,掌上电脑成本低廉,一次投入最低;每次投入是系统在日常使用时所需的投入,台式计算机平台的网络版系统需要网络支持,每次投入最高,掌上电脑平台的系统仅网络升级时需要网络费用,投入最低。
表2 台式计算机平台与掌上电脑平台饲料配方
软件系统的比较
Table 2 Comparison of feed formula systems based on
Desktop-PC and Pocket PC
台式计算机平台
饲料配方 软件系统 单机版
网络版
掌上电脑平台
操作学习难度 较难,除专门的系统使用培训外,还需要必要的电脑操作维护知识 较容易,仅需系统操作培训工作环境需要 需要一定的工作环境条件, 网络版的服务器需专人管理 不需要,可随时随地使用
一次投入较高 高 低 成本
每次投入
低 高 很低 CPU 处理能力 强 较强 一般 编程难易程度 一般 一般 较难 扩展升级能力 较强 强 较强 便携性 无 无 有 推广普及难易
一般
较易
容易
4 系统应用及效果
在通用型饲料配方系统的支持下,通过资料整理、
更新,并按照系统的元数据定义,导入了原料、营养需要以及原料使用习惯等数据,开发了奶牛饲料配方软件系统和肉羊饲料配方软件系统。
图5是奶牛饲料配方软件系统参算原料选择的界面,图6是肉羊饲料配方软件系统配方结果的界面。
图5 参算原料选择 图6 配方结果 Fig.5 Selection of raw materials Fig.6 Formula results
系统在北京大兴、延庆、密云和昌平4个郊区县的31个中小规模养殖场户进行了应用,结果表明,系统稳定实用、操作简单、成本低廉,容易被中小养殖户接受,大大降低了农民使用信息技术产品的投入,改变了农民依靠经验进行饲料配方的习惯,增强了其使用农业信息技术的信心,具有较大的推广价值。
5 结 论
1)基于掌上电脑设计了通用型饲料配方软件系统的框架结构和功能模块,在Pocket PC2003(Windows CE 4.2内核)系统上结合嵌入式开发平台和数据库实现了该系统。
针对掌上电脑处理能力有限的特点,设计了嵌入式
第6期陈立平等:基于掌上电脑的饲料配方系统的设计与开发183
数据库中间件,对配方求解算法进行了针对性优化,提高了系统运行效率和稳定性。
系统设计灵活,以嵌入式数据库集中管理配方数据,提供了完整的元数据定义,具有较好的扩展和升级能力。
参照系统的元数据定义,导入不同动物的原料、营养需要以及原料使用习惯等数据后,就可以快速、稳定地移植为其它种类动物的饲料配方系统。
2)基于掌上电脑平台的饲料配方系统具有操作学习简便、成本低廉、易推广普及等特点,非常适合于服务中小养殖户的计算机优化饲料配方需要。
同时系统轻便易携,养殖技术人员可以携带该系统为养殖户进行针对性的配方设计,饲料公司也可以进行现场配方设计并作为一项定制化服务,以提升其竞争力。
3)由于掌上电脑平台的屏幕及可利用的计算资源较少,进一步可以在人机界面、语言录入和配方模型求解算法上开展研究。
[参 考 文 献]
[1] 王铭阳,何钦铭.一个基于范例推理的专家系统
ICMIX[J].计算机学报,1997,20(2):105-110.
[2] 黄汉英,熊先安.模糊线性规划在优化饲料配方软件中的
应用[J].农业工程学报,2000,16(3):107-110.
[3] 熊本海,罗清尧,庞之洪.网络远程交互畜禽饲料配方系
统的研制[J].畜牧兽医学报,2003,34(5):447-451.[4] 张晓辉,Somwaru A,Tuan F.中国生猪生产结构、成本
和效益比较研究[J].中国畜牧杂志,2006,42(4):27-31.[5] 陈立平,王东辉,赵春江,等.掌上电脑农业专家系统开
发平台的研究与开发[J].农业工程学报,2002,18(3):142-145.
[6] 涂运华,王东辉,赵春江.基于Windows CE的HPC/PDA
农业专家系统开发平台的研究与开发[J].高技术通讯,2000,10(10):28-31.
[7] 胡建东,余泳昌,江敏,等.PDA作物施肥通专家系统
的技术研究[J].农业工程学报,2006,22(8):149-152.[8] 方慧,何勇.基于掌上电脑的农田信息快速采集与处
理系统的研究[J].农业工程学报,2004,20(6):124-127.[9] 孟志军,王秀,赵春江,等.基于嵌入式组件技术的精
准农业农田信息采集系统的设计与实现[J].农业工程学报,2005,21(4):91-96.
[10] 孟志军,赵春江,王秀,等.基于GPS的农田多源信息
采集系统的研究与开发[J].农业工程学报,2003,19(4):13-18.
[11] 熊本海,钱平,罗清尧,等.基于奶牛个体体况的精细
饲养方案的设计与实现[J].农业工程学报,2005,21(10):118-123.
[12] 李永隆.PDA程序设计[M].北京:清华大学出版社,2002:
21-26.
[13] Boling D. Programming Microsoft Windows CE .NET, Third
Edition[M]. New York, US:Microsoft Press,2003:5-14.[14] 颜友宁..NET Compact Framework移动开发指南[M].北
京:清华大学出版社,2006:203-211.
[15] Fergus D, Roof L. The Definitive Guide to the .NET Compact
Framework[M]. Berkeley, California, US: Apress,2003:227-229.
[16] 陈喜斌.饲料学[M].北京:科学出版社,2003:235-240.
Design and development of feed-formula system based on pocket PC Chen Liping1, Yao Guangqiang1, Zhao Chunjiang1※, Li Hong1, Xie Shiyong2
(1. National Engineering Research Center for Information Technology in Agriculture, Beijing 100097, China;
2. Beijing Municipal General Station for Animal Husbandry and Veterinary Service, Beijing 100107, China) Abstract: The applications of feed-formula systems play a great role in reducing the feed cost and increasing the utilization efficiency of raw materials. The development of general feed-formula system based on Pocket Personal Computer (PC) was described in this article. Main function modules include formula calculation, formula review, data management, system maintenance and system updating. The efficiency of data operation and system stability were improved by using the developed middlewares for embedded database. The formula generation algorithm was optimized using two-step algorithm and direct inverse matrix computation. According to the number of the kinds of target materials, the actual computation time was 2-4 seconds. The time-effectiveness of data was guaranteed through the system updating methods based on memory card and network. Through the applications of this system in 31 feed farms of 4 counties in Beijing, it indicated that the Pocket PC based feed-formula system had those advantages: stable and practical, easy to use, easy to be accepted by middle and small feeding farmers. It has wide application prospect and popularization value.
Key words:Feed-formula system; Pocket PC; embedded database; Windows CE; linear programming。