莫海城,欧秋菊
(1.广西安全职业技术学院,广西 南宁 530022;2.广西开放大学,广西 南宁 530022)
近年来,加强对粮食的存储,从而保障粮食安全,是当前思考的重点。一旦粮食存储不好,如害虫聚集、下层粮食受潮等,都会造成粮食霉变。霉变的本质是微生物的大量繁殖,从而在粮食上产生了一系列的化学变化。对此,为解决该问题,孙文静[1]提出将单片机与LabVIEW虚拟仪器相结合,实现了仓储环境温湿度监测的系统。该系统能够提升仓储环境的检测和信息处理能力,但存在自适应性和智能化水平不高的问题;王诗愉等[2]提出在模拟退火的基础上,引入扩展孤立森林的异常检测算法,从而提高了环境检测的智能性,但存在批处理能力差问题;王永乐等[3]提出对食品环境进行监测,但此方法存在制备成本高和实时性低的缺陷,无法满足对食品环境的有效监测。
以上研究为粮食存储霉变监测提供了参考,但考虑到因存储霉变会释放不同气体,同时不同的温湿度等参数也会导致霉变。因此,本研究以粮食存储过程中的霉变作为研究对象,提出一种基于单片机和智能算法的监测和预测报警方法,从而构建一种更为智能化的粮食存储监测手段。
在粮食存储霉变过程中,微生物进行分解,从而释放出大量的二氧化碳、一氧化碳、甲醛等物质。同时,导致粮食霉变的因素很多,如潮湿、温度等。因此,构建的系统架构如图1所示。
图1 系统整体结构设计
由图1所示,该系统主要由AT89C51单片机、MQ-137传感器、电源装置和报警装置四个部分组成[4]。该系统的工作原理为采用传感器对粮食存储环境进行采集;然后将采集信息传输至单片机中进行信息处理和分析;最后将处理信息传输至报警装置中进行报警提醒,由此实现粮食存储的实时监测。
2.1.1传感器设计
系统硬件部分中,气体传感器主要选用应用成本低、可在低温环境下使用的MQ-137气体传感器[5]。该传感器的电路连接如图2所示。
图2 传感器电路连接
传感器电路中,加热电压和工作电压均采用直流电源Vcc5 V。加热电压和工作电压的作用分别为给传感器提供适宜的工作温度和测试负载上的电压变化。传感器的电阻计算公式可表示为:
Rs=(Vcc/VRL-1)×RL
(1)
式中,Rs和RL分别表示灵敏体表面电阻和负载电阻;Vcc和VRL分别表示回路电压和负载电阻的电压[6]。
传感器的功耗计算公式为:
(2)
负载电阻上的电压VRL与单片机的P1.0相连接,点偏激监测指标即为VRL电压的变化。当传感器感应到粮食存储环境中的气体时,其电导率随气体浓度增加而不断提升;通过AD转换电路将电导率的变化进行转换,从而得到与甲醛等各种气体浓度所对应的输出信号。P1.0为内部高速10位AD转换器的C0入口,采用5 V直流电源供电。则10位AD转换器的最小变化值可表示为Vref/(210-1)=4.888 mV[7]。
2.1.2报警装置设计
报警装置中主要采用5 V蜂鸣器和红色LED灯进行报警提醒,其电路连接设计如图3所示。
图3 报警装置电路设计
报警装置设计中,主要采用5 V直流电源为蜂鸣器和指示灯供电。电阻R3为限流电阻,作用是防止电阻流过LED灯过载从而烧毁LED灯。饱和区和截止区由三极管进行控制,通过对三极管的开关进行调节以实现蜂鸣器控制。采用P1.1控制蜂鸣器和指示灯。低电平和高电平分别代表打开和关闭[8]。当系统监测到负载电阻上的电压VRL变大且超出正常值,P1.1口即可输出低电平,启动蜂鸣器报警和报警指示灯闪烁。
2.1.3单片机设计
系统设计中,单片机选用AT89C51型号的单片机,其内部集成了10位的高速AD转换器。单片机采用外部12M晶振和上电复位方式。30ALE端口与绿色工作指示灯进行连接,当报警器系统为正常工作状态,即可显示为绿灯常亮[9]。同时,在单片机的外部配置了一个控制按键。按下控制按键即可关闭蜂鸣器鸣响和报警指示灯闪烁。长按控制键即可将此时的甲醛浓度数据作为基准点。
2.2.1软件主程序设计
基于单片机的粮食霉变监测系统的软件设计主要包括软件程序设计和粮食霉变预测算法设计。其中,软件程序设计如图4所示。
图4 系统软件程序设计
由图4可知,系统软件程序设计主要分为五个步骤。具体表现为:
(1)系统开始后即可对系统进行初始化处理。
(2)判断TO定时是否达到50 ms,若是则可调用按键判断子程序;反之则输出一个500 ms的矩形脉冲信号,并判断Bell 500 ms是否等于1。
(3)当TO定时达到1 s时,即可调用AD转换子程序和报警器子程序[10]。
(4)单片机每秒启动一次AD转换。转换出的数据再转换为16进制数,并将其与基准点数据进行对比。
(5)当转换进制数高于基准点即可进行报警。
2.2.2基于耦合模拟退火-最小二乘粮食霉变预测算法
基于以上采集到的气体浓度、温湿度等粮食存储数据,如何充分利用这些数据,为未来的粮食霉变可能提供参考,是提高该系统智能化水平的一个重要方法。对此,参考部分研究者的成果,提出采用LS-SVM对粮食霉变进行预测,但此模型在进行超参数设置时对实际经验非常依赖,导致计算步骤过多,极易陷入局部最优问题。基于此,提出采用可实现全局最优的耦合模拟退火算法(CSA)进行LS-SVM模型优化[11-15]。通过此算法实现最小二乘向量机(LS-SVM)模型中各模拟退火过程的相互耦合和信息共享,从而得到全局最优解,可提升算法优化效率和参数拟合精度。CSA LS-SVM预测的整体流程如图5所示。
图5 CSA LS-SVM的粮食霉变预测流程
由图5可知,CSA LS-SVM的粮食霉变预测以温湿度、不同气体浓度作为输入,然后通过CSA LS-SVM的识别,最终得出粮食可能出现霉变的分类结果。
为验证提出的粮食霉变预测方法是否有效,在Matlab仿真平台中进行仿真实验。其中,传感器设置在400 m×400 m的正方形粮食存储区域内,信息采集输出带宽Q设置为200 kbps。初始采样周期和终止采样频率分别设置为12 s和24 kHz。
3.2.1模型预测效果验证
为验证CSA LS-SVM预测模型对粮食霉变预测效果,以上述系统采集到的310组粮食霉变样本作为基础数据,其中250组训练样本用于CSA LS-SVM模型和SA LS-SVM模型的训练,然用60组测试样本对两模型进行测试,测试结果如图6所示。
图6 不同预测模型与测试真实值的对比
由图6可知,相较于传统的SA LS-SVM模型的预测效果,提出的CSA LS-SVM预测模型的预测值明显更接近于测试值,说明本模型的预测值与测试值间的误差更小,预测精度更高。
为进一步验证CSA算法对LS-SVM模型的优化效果,基于SA算法重新进行5次数值实验,由此得到LS-SVM模型的超参数和对应60个测试样本的拟合误差结果如表1所示。
表1 两种模型的拟合误差统计结果
由表1统计结果可知,在单个SA模型进行五次LS-SVM模型优化后得到的γ和mse的波动较大。γ的最大值和最小值分别为60.325 8、2.744 1。其他数值呈稳定状态,且本模型的max和mse值保持在五次单个SA模型的对应值以下。由此分析可知,本模型的预测误差更小,预测效果更佳。
3.2.2模型拟合精度验证
为验证本模型的预测拟合精度,在100次迭代环境下,采用250个训练样本对本模型与SA LS-SVM模型进行粮食霉变预测,由此得到两模型的拟合精度与迭代次数的关系如图7所示。
图7 两种模型拟合精度与迭代次数关系
由图7曲线结果可知,在迭代区间[1,7]内,本模型对样本的拟合误差呈快速下降趋势,说明本模型的拟合误差不受迭代次数增加的影响,始终维持在较低值。在迭代区间[0,20]内,本模型对训练样本可取得较小的拟合误差,且快速收敛。由此得出,本模型可在较短时间内实现粮食霉变的快速预测,且具有更高的拟合精度。
3.3.1系统开发环境
为验证设计的粮食霉变监测系统是否可行,采用开发工具QT和QT集成环境QTCreator进行系统软件开发。其中,QT为跨平台C++图形用户界面库,具备优良的跨平台特性和封装特性,模块化程度高,可重用性好。可有效支持PC平台、移动平台和嵌入式平台。
3.3.2系统性能验证
为进一步验证模型在系统的应用性能,将CSA LS-SVM模型、IPSO-BP模型和GA-PSO-BP应用到粮食霉变检测系统中,得到在相同的250组数据下对粮食霉变监测的时间开销,如表2所示。
表2 三种模型在本系统中的时间开销对比
由表2可知,本模型的时间开销仅为8.39 s,另外两种模型的时间开销分别为33.62 s和47.51 s,均高于本模型。综合分析可知,本模型可更好地满足粮食霉变监测的需求。
综上所述,本研究构建的基于CSA LS-SVM的粮食霉变预测系统及模型可行,可实现粮食霉变的有效性监测,从而避免了大米存储中的安全问题。而该粮食霉变监测系统的特点在于,通过基于MQ-137传感器和温湿度传感器采集到的粮食霉变样本,可实现粮食霉变的有效性监测。但本研究也存在一定的局限,即粮食霉变的影响因素众多,还需要对影响霉变的因素进行综合评判。因此,下一步将拓展传感器采集内容,以更好地实现监测,为部分粮食存储环境的优化提供参考。