孙艺哲,谢 煜,李士军,袁 萍,宫 鹤
(吉林农业大学 信息技术学院,长春 130118)
每年各地秋收后会产生大量秸秆,就地焚烧造成空气污染和资源浪费,秸秆打捆机[1]的出现实现了对秸秆的回收利用[2]。对作业田地打包数量的统计可解决对每公顷地秸秆产量估测、秸秆包的去向分配及来年作业农机分配等问题。
近年来,国内学者对打捆机作业监控进行了研究。康康[3]等利用多传感器和GIS实现对农机作业面积统计和农机状态的监测。贾全忠[4]利用STM32、嵌入式CDMA通信技术及全球定位系统实现对农机实时信息的收集和监测调度。上述研究都集中于车辆作业面积和农机车辆状态的监测,未针对打捆机的精确计数进行监测;而计数工作目前大部分地区依旧以手工记录为主,会出现漏记与数据管理不当的问题。国内也有学者对此问题提出了解决方案,如李建军[5]等利用传感器技术与PLC控制系统实现对网络型圆草捆打捆机进行控制与监测,利用接近开关监测缠网完成和舱门变化来确定1次打包作业完成;但打捆机在作业过程中因震动明显舱门会出现缝隙,接近开关检测到变化后会直接判定1包作业完成,产生误判。针对此问题,基于物联网技术设计了一套秸秆打捆机计数监测系统,采用角度传感器监测舱门吐包时的角度变化,结合缠网信息判定1包作业完成。同时,利用卡尔曼滤波算法对角度数据进行滤波处理,防止抖动问题对打包数量造成误差。作业完成后,上传数据至服务器端,在服务器应用Web和Android技术实现远程监测和查看,实现对打捆机作业精准计数与远程管理,使打捆机作业向信息化与智能化发展[6-7]。
基于物联网的秸秆打捆机监测系统拓扑图如图1所示。
图1 系统拓扑图
系统主要由硬件终端和远程服务器两部分组成,实现对打捆机作业数据的精确监测与作业数据的实时上传。硬件终端负责判断打捆机1包作业是否完成;远程服务器负责对上传的数据进行分析、处理和存储,建立与管理业务需求相适应的数据库,用户可以使用电脑或者移动终端对作业数据进行远程查看。
作业过程中,大田路况复杂,作业车辆自身存在抖动,会导致角度传感器在采集数据时出现毛刺信息,造成打包误判。因此,加入卡尔曼滤波算法对采集数值进行滤波,减少毛刺信息[8-12],来规避误判操作的发生。
设定舱门闭合状态的角度值为K-1时刻的系统最优值,则K时刻的预测角度值为
X(K|K-1)=AX(K-1|K-1)+BU(K)
(1)
其中,X(K-1|K-1)为K-1时刻估计的最优值;A、B为系统参数,在本系统中设置初始值为1,此处假定为舱门闭合角度值,且当前时刻的角度值与上一状态维持不变。无论从什么初值出发,经过一定的迭代后,X会趋于系统回归值。本系统不涉及任何控制量,故U(K)为0。
记K时刻的协方差为P,由上一状态最优值的协方差计算可得
P(K|K-1)=AP(K-1|K-1)AT+Q
(2)
其中,AT为A的转置矩阵;Q为系统过程协方差;初始状态的协方差可取任意的非零值(因0误差会使得卡尔曼认为该预测值为最优状态而无法收敛)。
由角度传感器可获得K时刻的测量值Z(K),并根据统计学原理计算该测量值的协方差R。
在已知K时刻的预测值X(K|K-1)和测量值Z(K)的基础上,可估算出现在状态的最优估计值X(K|K),即
X(K|K)=X(K|K-1)+Kg(K)(Z(K)-HX(K|K-1))
(3)
其中,H为测量系统的参数;Kg(K)为卡尔曼增益。
(4)
其中,HT为H的转置矩阵。
此外,公式(5)需更新K时刻状态下X(K|K)的协方差,则
P(K|K)=(I-Kg(K)H)P(K|K-1)
(5)
其中,I为1的矩阵,单模型单测量,I=1,以使卡尔曼滤波器不断的运行下去直到系统过程结束。如此不停地迭代,就可以得到卡尔曼滤波后还原的最真实的原始数据。
硬件终端主要由主控芯片、全网通模块和安装在打捆机上的传感器组成。因设备供电由拖拉机电瓶提供,所以针对不同传感器工作电压设计了电平转换电路,实现12V电平转5V电平、3.3V电平,从而给主控芯片和传感器供电。硬件结构图如图2所示。
图2 硬件结构图
主控芯片实现对采集数据处理和打包判断。传感器选用高精度传感器对农机作业过程中各项数据进行采集,全网通模块实现数据的上传。图3为硬件终端实物图。
图3 节点硬件实物图Fig.3 Photo of acquisition node
嵌入式微处理器选用宏晶科技生产的STC15W4K61S4单片机,内置4k字节大容量SRAM,4组独立的高速异步串行通信端口,1组高速同步串行通信端口SPI,可在强干扰场合下正常工作。其指令完全兼容传统8051,但速度快8~12倍,适合在大田嘈杂的环境下工作[13]。
针对打捆机工作原理,选用了与农机作业关联较大的缠网数、角度值进行实时监测。相关传感器的性能指标如表1所示。
表1 相关传感器性能指标
霍尔传感器安装在打捆机的行进齿轮和缠网齿轮上,用于监测打捆机作业状态;角度传感器安装在打捆机的后舱门内部,检测1次的作业是否完成[14-15]。图4为传感器安装位置示意图。
图4 传感器安装位置示意图
整套系统软件分为两部分:①硬件终端以Keil5为开发环境,采用单片机C语言开发;②远程服务器程序主要用来进行数据接收、解析、分析及存储等功能,同时构建人机交互界面,实现远程监测的目的。
2.2.1 硬件终端程序
采集节点程序包括初始化配置、传感器采集及数据收发3部分。初始化配置包括定时器、串口、I2C总线等外设接口和相应数据缓冲区的配置。采集节点连接多个传感器,传感器的通信接口和响应时间各不相同,优化传感器协调管理,可以防止出现丢帧现象,提高工作效率。根据打捆机工作原理,整体采集端采集程序借鉴状态机编程思想[16-17]。开机工作后,主控芯片读取监测行进齿轮的传感器信息,确定车辆开始作业;随后读取10次滤波后的角度数据计算平均值,作为闭合舱门的默认角度值及监控缠网圈数的传感器值;当检测值达到阈值后,任务切换为读取角度传感器数据,在对数据滤波处理完成后,用测试值减去设立的闭合角度值;当差值达到设立的阈值后,监测到打捆机作业1包完成,主控芯片发送作业信息给服务器。程序流程图如图5所示。
打捆机作业过程存在环境恶劣、网络信号不稳定及作业车辆多传输数据量大的问题,难以保证作业数据的实时上传。为此,选用UDP协议。该协议是相对较简单的网络传输层协议,相对传输速度较快、系统开销少,符合数据上传的可靠性要求[18-19]。
图 5 硬件终端程序流程
2.2.2 远程服务器软件设计
远程服务器软件采用B/S框架开发[20],主要包括用户交互界面、Web服务器及数据库系统几部分设计。Web服务器主要的功能是负责网络接入和信息服务功能,通过调用EC20全网通模块上传的数据,对其进行解析和处理,实现前后端交互。
数据库采用了MySQL开发,完成打捆机作业数据的存储和管理。MySQL是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低,同时具有轻量、快速的特点,完全满足系统使用需求[21]。图6为用户使用界面,设计简洁,方便用户查看使用,能够对作业车辆信息进行查看。
图6 客户端界面图
为验证加入卡尔曼滤波算法后是否提高了对作业完成动作判断的准确率,于2018年10月在农安新农乡镇前韩家进行了实地测试。图7为现场作业图片。
图7 现场作业图
测试方法为5台正在作业的打捆机每台分别安装3套设备:一套采用接近开关作为判断1包作业完成条件;一套对采集到的角度值未进行任何处理;一套在采集端对采集到的角度值进行了卡尔曼滤波处理。车辆在农田进行正常打包作业,图8为采集到无滤波和加入卡尔曼滤波算法后角度值变化的效果比较。
截取作业数据发现在打捆机工作过程中,由于路面颠簸和车辆自身产生的震动,在图8中可以观察到未加滤波算法的原始数据有明显的抖动,会对1次打包造成误判;而经过滤波处理后的数据可以观察到几乎无抖动数据,此时对1次打包完成的判断不受到任何噪声影响,判断相对准确。
打捆机作业完成后,在服务器端查询5台打捆机作业包数记录情况与现场实际作业数量进行比对。图9为3种情况下的打包数量与实际作业数量对比图。结果表明:现场记录实际打包数为286包,采用接近开关测测得打包数量为322包,与实际作业量存在较大误差,平均误差率为5.3%;采用未进行滤波处理的角度值进行判定,系统判定的打包数量为293包,与实际作业量存在误差,平均误差率为2.5%;加入滤波算法后,系统判断打包数量总共为286包,与实际作业量一致,误差率为0%。使用角度传感器后误差率明显降低,加入滤波算法后实现了对打包数的精确监测。
图8 滤波效果对比结果
图9 作业量对比情况图
针对监测打捆机作业数据不准确的问题,设计实现了基于多传感器的秸秆打捆机计数监测系统,并从硬件的传感器选型、相关算法研究、硬件设计及软件实现方案等角度阐述了系统的设计思路。使用卡尔曼滤波算法还原角度传感器采集到的数据真实度,确保判断1包作业完成的准确性。实地测试表明:系统可连续、稳定地工作。