农机跨区作业系统设计论文

农机跨区作业系统设计论文

1信息决策支持系统总体结构设计

1.1系统总体结构设计

农机高效跨区作业信息决策系统采用模块化设计方法,主要包括用户管理、农机新闻、农机信息、维护功能、测试及调试功能等。

1.2系统主要功能模块结构设计

系统管理:由系统管理员添加农机信息、地区信息和系统用户信息,对用户进行权限设置并对其进行维护,新用户注册,管理员录入新用户的基本信息,并在以后的跨区作业中对用户信息进行基本维护。农机新闻查询:包括农机补贴、视频资料、政策法规、供应信息、机收价格及天气查询等。农机信息查询:包括作业证查询、作业寿命、机械保有量、作业需求、地图信息及最短路径等。

2数据库设计

2.1数据库技术

数据库是按照一定的数据模型在计算机系统中组织、存储和使用的互相联系的数据集合。数据库可以大大减少数据的冗余度、节省存储空间。数据库中数据和应用程序各自独立、互不依赖。

2.2数据库设计

在实体基础上,形成数据库表格,主要包括用户表、新闻表,分别涉及字段意义、字段名称、类型及主键值等。

3信息决策系统的实现

LabWindows/CVI是为熟悉C语言的测控工程师使用的软件开发平台,具有C语言本身不具有的许多功能模块,这些模块不仅可以实现对测控对象的测试测量,还可以用简洁的逻辑,快速地实现对数据文本的操作和使用。因此,本系统采用模块化设计方法,利用LabWindows/CVI平台设计友好的人机交互界面,调用SQL以及ODBC等技术,实现CVI对MYSQL数据库的访问。为给农机跨区作业提供最佳决策信息,获得最大收益,用MatLab编程设计农机跨区作业的智能优化算法的m文件,并为CVI设计的友好界面所调用。

3.1系统功能模块设计

系统管理模块包括用户、管理员及退出系统。其中,管理员还有管理员登录、添加用户、删除用户3方面功能。农机新闻模块主要包括农机补贴、视频资料、政策法规、供应信息、机收价格及天气查询。农机信息功能模块包括作业证查询、作业区域需求、产地类型查询、地图信息和智能决策等。其中,作业区域需求模块的作用是选定相关区域的参数;区域参数设置包括类型、面积、收割机保有量和收割期限等。为保证决策的正确性和可行性,这些数据资料要求准确可靠。如选择甲端为保定,乙端为石家庄和唐山,点击查询,显示相关的数据。产地信息查询用以给出各地农作物的实用信息,这不仅能为农机跨区作业的决策提供基础数据,还能用于各种数据信息的统计。根据作物种植类型的不同,本系统可分别选择小麦、玉米和水稻3种类型进行查询,该部分可根据需要扩充。

3.2农机调配决策策略

此模块是该项目的核心模块,智能决策模块实际上是要实现对农机在跨区作业给出最佳路径策略。其不但要使农机手在完成农作物的收割和耕种时获得最大的服务收益,又要减轻农民收割负担并降低成本。这就需要农机管理部门要在最短时间内为农机手提供最优决策。农机调配目标模型参考相关文献选用为总的利润=总收入-消耗成本-等待成本其中,总收入为多台农机在不同农田点的单位服务价格和农田面积的乘积之和。消耗成本包括空程赶路消耗和作业消耗。空程赶路消耗是指各农机分别在赶路过程中的消耗,作业消耗是各农机分别在作业过程中的消耗,二者均可用单位消耗与农机数量、农机调配时间的乘积之和表示。等待消耗主要有两种情况:假如农机先于作物作业需求时间到达,则需要等待时日才可作业,等待成本等于各农机的等待时间与单位等待费用乘积的累加和;但如果是农机到达指定作业点后,立即开始作业,则不会产生等待成本。为了实现上述任务,采用智能优化的混合粒子群算法给出农机手跨区作业的最佳路径选择。混合粒子群算法由MatLab编程,在LabWindows/CVI环境下调用MatLab功能函数。

3.3智能决策功能设计

3.3.1LabWindows/CVI和MATLAB混合编程

LabWindows/CVI是美国国家仪器(NationalIn-struments,NI)公司为熟悉C语言的测控领域的工程师开发的交互式软件开发平台。而MatLab则利用其强大的实时计算功能为测控专家提供了丰富的智能算法,二者侧重点不同。前者虽然模块库丰富,但要实现测控领域的先进理论和方法,如模糊控制算法、自适应遗传算法、神经元网络等技术,还需额外高价购买该NI公司提供的工具箱;若自己利用CVI平台开发,不但周期长,费用也相对较高。而MatLab的强项在于强大的科学计算功能,能免费提供丰富的各类算法的功能函数及灵活的接口技术。因此,将CVI的模块化可视化编程与MatLab的科学计算功能有机结合,可以快速设计出功能强大的实用软件。目前,实现LabWindows/CVI软件与MatLab接口的方法主要有两种:一是通过标准C程序调用引擎函数实现与MatLab接口;二是采用CVI提供的ActiveX控件实现与MatLab接口。两种方式都有研究者使用,但二者都需要安装并运行MatLab软件环境,使用起来也较繁琐。本文先用MatLab编辑生成农机调度优化算法的m文件,再用C++编译成动态链接库(DLL文件),并将生成的h文件、lib文件、dll文件拷贝到用CVI软件设计的农机跨区作业信息决策工程目录下,供CVI程序调用,用户只需在目标机上安装MatLab运行库就可完成任务。另外,运行时还需在CVI的项目工程目录中添加MatLab库函数中的libmx.lib、matrix.h、mclmcr.h、mclmcr.lib等库文件即可,使用方法简单。

3.3.2混合粒子群算法及实验

粒子群算法(ParticleSwarmOptimization,PSO)已经在化工、电力、车辆等行业的优化调度中得到研究,是Kennedy等学者于1995年提出的一种基于群体智能的优化算法。标准粒子群算法的思想是先初始化一群随机粒子,然后通过迭代寻找问题最优解,在每次迭代中,粒子通过个体极值和群体极值更新自身的速度和位置。虽然算法操作简单,但收敛速度与种群规模和迭代次数等因素有关。随着迭代次数的不断增加,各粒子在集中的同时相似性越来越大,因而可能无法找到全局最优解。混合粒子群算法通过借鉴遗传算法中交叉和变异的思想,改变了传统粒子群算法中的通过跟踪个体和群体的极值来更新粒子位置的方法搜索最优解。本系统混合粒子群算法用MatLab编程为m文件。本系统中算法的交叉操作与遗传算法中随机选择两个解进行交叉不同,它是把每个粒子分别同个体极值和群体极值进行交叉。交叉结果中如果产生了与交叉区域相同的元素则被删除。为了保证每一代的优良个体不被破坏,采用优生选择策略,交叉后的新路径长度如果变短则接受交叉后的个体,从而产生更优秀的粒子新位置。变异操作与上述交叉操作不同,只是对个体自身进行变异。变异结果中如果产生了与交叉区域相同的元素则被删除。交变异后的新路径长度如果变短则接受变异后的个体,否则不变异直接复制到下一代中,提高群体中表现优良的个体变异率,从而产生更优秀的粒子新位置。上述算法的改进,克服了PSO容易陷入局部最优的缺陷,避免了算法过早收敛。而且由于以交叉和变异操作产生粒子位置更新,避免了惯性权重W、加速系数c1和c2等3个参数的组合选择,减少了因参数选择不当而产生的误差。混合粒子群算法不但保留了PSO简洁易执行的优点,而且提高了算法的搜索效率,保证算法的收敛性。

4结论

基于CVI平台开发设计了农机高效跨区作业信息决策系统,通过LabWindows/CVI调用SQL技术,实现CVI对MYSQL数据库的访问;利用MatLab强大的计算功能设计农机跨区调度的智能混合粒子群优化算法,并被CVI程序调用,为农机高效跨区作业提供信息决策功能。系统界面友好,利于功能扩展,有较好的使用价值和应用前景。该系统能够有效提高农机的利用率,增加农机手的效益,满足农民对农机作业的需求。其不但为农机管理提供了科学高效的决策支持,而且为农业的增产增收创造了条件。

作者:张瑞青 马跃进 王文娣 耿立微 梁扬 单位:河北农业大学机电工程学院