APP下载

基于温度预测算法的智能粮仓温度预警系统

2020-11-14刘昌华

计算机技术与发展 2020年9期
关键词:预警系统指令芯片

栾 奕,刘昌华

(武汉轻工大学 数学与计算机学院,湖北 武汉 430023)

0 引 言

粮食是人类赖以生存的基础,也是中国的重要战略物资,粮食在存储尤其是长期存储过程中,对于温度、湿度、微生物、虫害、光照都有着严格的要求。尽管如此,在大规模的粮食存储中仍然不可避免地要面对一些诸如发热、霉变现象,而造成这种现象发生的关键因素就是粮食存储[1]过程中的上述环境参数不合适。因此,及时有效甚至可预测的粮仓环境监控系统可以为管理者提供一个便捷的途径,实时了解粮仓中的环境参数并根据预警提前预防灾难性事件的发生,使用户防患于未然,对于粮食安全有着重大意义。

在环境温度的预测模型方面已经有不少学者进行过相关研究,2002年郑应文提出了一个较为精简的温室温度预测算法[2],通过室外温度和粮仓保温性能这两大参数,在误差允许范围内实现对下一时刻的温度预测控制;2014年周伟、汪小旵等人将室外温度、太阳辐射、湿度以及风速这些外部扰动因素纳入考量范围,于2014年提出约束模型预测控制算法[3]。2017年Muhammad Tayab提出了一种基于多元线性回归的预测模型[4],并通过对输入方式和参数的改变来优化多元线性回归。这些预测模型对于实际应用中的环境参数预测起到了很好的指导作用,但未能以硬件载体在实际中检验,也未能将硬件设备的采集、处理的反应时间纳入考量范围。除此之外,也有外国学者通过ANN(人工神经网络)结合FPGA实现了对于环境温度的预测[5],并且其系统的延时最终小于Matlab的模拟情况,预测误差控制在±1 ℃之内。徐宇、冀荣华于2019年提出了基于复数神经网络的智能温室温度预测研究[6],该模型在获取了环境数据的时间序列特征后,通过建立双隐层的复数神经网络的智能温室温度预测模型,实现温度预测以及精准调控,预测精度0.873,误差小于0.548。Anupam Boro、Ben Thomas等人[7]与2016年实现了一种基于人工神经网络(ANN)的专用处理器,用于预测特定位置的日最高温度。该模型使用印度古瓦哈蒂一年的数据进行培训,并在XilinxVirtex-6FPGA上实现。上述方案能够对环境做出自适应调整,从而较为准确地预测某一时刻的环境温度,但其缺点在于预测模型需要经过数据集的训练和验证,为了达到更高的准确度必然需要更大规模的数据集,以及更长的训练时间。尽管该系统在理论上可以实现开放性环境温度的预测,但在特定的、变化幅度小的环境中显得尤为麻烦。

针对蔡甸区三杰面粉厂所属的面粉储备立筒仓的特点——其建筑结构决定了粮仓内部较为稳定的环境属性以及相对仓外较为明显的迟滞性,文中通过软件定义硬件的方式[8]将FPGA高速并行、可定制可裁剪的优势与温度预测数学模型结合起来,提出一种应用于特定农业设施内部[9-11],支持高速低延时的多路设备接入,且易于扩展、可灵活部署的温度数据采集预警系统。该系统可以对实时温度进行监控,也可以对自定义的任意时刻进行预警[12],通过分析当前和过去时间内的温度数据及环境参数来预估下一时刻的粮仓(室内)内部温度[13],实现温度预警的功能,并将预测误差控制在±0.5 ℃以内,验证FPGA利用数学模型来大规模预测农业[14-15]领域重要参数的可靠性。

1 温度预警系统设计方案

文中设计的系统由FPGA数据处理模块、温度采集模块、显示(报警)模块组成。FPGA芯片采用Altera EP4CE115F29C7芯片,FPGA对总线上的采集模块进行初始化并按照规定的时序读取并处理(识别符号位、温度转换)采集的数据[13]。传感器则选用数字温度传感器DS18B20负责温度数据的采集工作,通过单总线与FPGA芯片建立通信并接收FPGA的各项操作指令,将转换后的温度数据传输到FPGA。总线上可挂载若干传感器,通过ROM搜索算法识别各传感器ID,并对数据分别处理。由开发板上的数码管和LED作为显示和报警模块。图1是温度预警系统硬件框图,本节将介绍具体的温度预警系统电路设计并重点阐述FPGA对传感器的驱动以及数据分析预警这两个部分。

图1 温度预警系统硬件框图

该系统以Altera公司的Cyclone IV EP4C115F29 C7芯片为处理器,通过ROM指令和功能指令实现处理器与传感器之间通信,传输和接收信令,在外部控制逻辑的控制下完成特定的任务,最后将结果交给显示逻辑。除此之外,FPGA还会对采集到的数据进行分析,预测下一时刻的温度是否达到或超过报警值。

传感器采用外部供电模式,即对DS18B20电源引脚采取单独供电的模式,在温度转化期间不受单总线上的信号的影响,温度转换时可以在单总线上传输其他数据。外部供电的情况下不需要对控制器的端口进行上拉,在主机的I/O的驱动能力范围里,可挂载多个传感器,在通过跳过ROM搜索和温度转化指令的作用下,I/O口上的传感器将进行温度转化。这种供电方式工作稳定、抗干扰能力强。通过单总线与FPGA进行通信,执行包括复位、确认、温度转换在内的存储器操作指令并上传数据到FPGA,完成一个数据采集和读取的周期。

外部控制、显示逻辑均采用DE2-115开发板上的按键、开关和数码管作为外设,统一由FPGA控制。在Quartus Prime 17.0硬件设计平台上完成温度数据采集的核心——DS18B20芯片驱动模块的设计后,为其添加数据转换、数据显示、预警分析以及顶层模块后,完成温度预警系统的电路设计。

1.1 温度采集模块

DS18B20是达拉斯公司研发的新型数字温度传感器。DS18B20主要由64位写ROM及单总线端口、温度传感器模块、高速寄存器RAM、高温报警触发器TH和低温报警触发器TL组成。图2展示了DS18B20的内部结构。

图2 DS18B20的内部结构

温度传感器可以通过写精度位中6~7位,即精度位R0与R1的值来实现9~12位的数据输出,如表1所示。DS18B20的系统默认R0、R1都为“1”,即为12位的分辨率,一位输出数字量精度为0.062 5 ℃。

表1 DS18B20的分辨率设置

DS18B20在接受到FPGA对其发出的“温度转换”指令后,数据就会被写到暂存器的字节0~1中,存储的方式是带符号位的十六位二进制补码。DE2-115通过I/O口接收该数值,传输方式是先传输低位,再传输高位。测量得到的温度数据被连续存放在暂存器的0~1字节中,存放方式是先存低位数据、再存高位数据。这16位的温度数据中高4位是温度的符号位,全部为“0”代表大于零度,全部为“1”代表小于零度。其余12位存放的是具体数据,正温度用源码、负温度用补码。在12位数据情况下,单个数据的精度就是0.062 5,即温度等于测量的二进制数乘以精度,文中采用的是也正是12位分辨率。表2所示为十进制温度值与16位数据之间的转换关系。

表2 温度数据转换关系

1.2 DS18B20芯片驱动

处理器访问DS18B20有规定的执行序列:(1)初始化(复位和等待存在脉冲);(2)ROM操作指令;(3)功能指令。每一次对传感器的操作都必须遵循上述顺序,否则将不会返回值。为了使传感器能够正常地将采集到的数据通过单总线传输给FPGA,需要执行两个指令周期,第一个周期依次为复位、跳过ROM指令、执行温度转换存储器操作指令并等待至少500 us的温度转换时间;之后立刻进入第二个周期,复位指令、跳过ROM指令、执行读RAM操作指令、最后读取数据。这样才能完成正确的温度采集传输功能,同时FPGA在通过单总线与传感器通信时务必严格遵守复位、读操作、写操作的时序。上述过程均由Verilog HDL硬件描述语言编写状态机来完成,并将此状态机封装在Task块中随时调用。

图3和图4中所有的初始化,读、写操作都需要遵循各自的操作时序。至此完成传感器驱动模块中最核心的部分,使传感器能够依据FPGA对其下达的各项指令执行相应的操作。在该模块的基础上为其添加输入输出端口、时序控制模块后就可以完整地实现底层驱动部分。

图3 第一个指令周期

图4 第二个指令周期

2 温度预测算法

Δx(i+1)=a1Δx(i)+a2Δx(i-1)

(1)

(2)

Δx(i+2)=a1Δx(i+1)+a2Δx(i)=

a1[a1Δx(i)+a2Δx(i-1)]+

a2Δx(i)

(3)

再算出i+2时刻仓外温度估计值:

(4)

最后将式(4)带入仓内温度预测方程来推算出仓内温度预测值:

(5)

可以看出该算法的思路是首先通过室外温度的补偿值来预测下一时刻的室外温度,再将预测室外温度值带入室内温度预测方程中,以得到室内温度的预测值。

考虑到ds18b20的采样精度为0.625 ℃,单次数据刷新的变化程度并不明显,而且此模式下温度转换的预留时间达到500 ms,这意味着单次数据的刷新周期较长,同时还考虑到预警的周期要预留足够的时间让用户对预警做出反应,启动相关的应急设备,这里将预警周期设为20 s,也便于观察到明显的温度变化。

3 设计验证

在Quartus Prime 17.0中完成整个工程的设计和编译,包括顶层模块、传感器驱动模块、温度数据转换模块和预警模块,验证时通过逻辑分析仪对关键信号进行分析。

表3 白天夜间实验结果

4 结束语

通过Altera Cyclone Ⅳ FPGA和温度传感器DS18B20作为主要硬件搭建了粮仓温度采集系统的硬件模型,使用EP4CE115F29C7为处理芯片,采用Verilog HDL硬件描述语言进行各模块的电路设计,在FPGA温度采集系统的基础上结合室内温度预测算法模型,针对特定的采集环境,最终实现了粮仓的温度采集预警系统。通过白天和夜间两组实验结果表明,该系统可以稳定运行,可实时地感知不同环境下的温度,成功验证FPGA利用数学模型来预测农业领域某些重要参数的可行性,同时在一定程度上降低了预测误差。该系统实时性强,可靠性高,同时发挥了Altera Cyclone系列芯片低功耗、高性能的优势。同时基于软件定义硬件的概念,可以随时对FPGA芯片内部逻辑进行调整,可根据应用场景不同而随时修改FPGA芯片内部逻辑电路,以应对其他硬件需求,灵活部署在不同环境的农业设施内部。下一步可以利用FPGA这一特性扩展或增强系统功能,例如:添加存储模块、丰富计算类型、对数据进行安全加密并上传物联网,甚至最终形成一个边缘计算模型,更好地服务于未来的大规模、高带宽、设备密集型的农业物联网。

猜你喜欢

预警系统指令芯片
基于AI技术的高速公路行人误闯预警系统
芯片会议
基于抽象汇编指令的恶意软件家族分类方法
学校肺结核流行趋势控制及预警系统监测分析
关于射频前端芯片研发与管理模式的思考
民用飞机机载跑道入侵预警系统仿真验证
《单一形状固定循环指令G90车外圆仿真》教案设计
俄太空预警系统探测到64枚导弹发射
新机研制中总装装配指令策划研究
装错芯片的机器人