1. 引言
水成膜泡沫灭火剂(AFFF)是一类广泛用于扑灭油脂火灾的泡沫灭火剂 [1] 。在自动化的灭火系统中,其一般以原液的形式储存于不锈钢罐中,使用先将其与大量水混合,然后鼓入大量空气即可形成能够覆盖油脂表面并隔绝空气的灭火泡沫。水成膜原液就决定了最终灭火泡沫的性能。尚祖政等 [2] 曾检测国内3家石化企业配备的泡沫原液,发现有部分灭火剂原液在保质期内已经失效,而其他一些原液虽已过保质期但还能保有足够的灭火性能。显然经过长期存放的原液的有效性与其储存状态也有关,袁余斌等人通过实验证明,泡沫原液的储存寿命与储存温度的关系符合阿龙尼乌斯公式,即储存寿命随储存温度成指数下降 [3] 。根据上述公式,储存温度越低,对应的储存寿命越长,然而水成膜泡沫灭火剂本质是一种高浓度溶胶水溶液,其温度接近凝固点时,容易发生失稳分层或沉降;温度达到凝固点时,将发生相变以致完全失效,即使温度重新回升至凝固点以上也难以复原。实验表明,AFFF灭火剂在不锈钢储罐中随昼夜交替温度周期性变化,一天中最低温度总是出现在夜间或清晨,不利于人工干预,而对于负责在全寿命范围内监控水成膜泡沫灭火剂有效性的系统而言,为了干预过低温,则须自动装定加热时间、功率等参数,不但需要具备持续收集其温度的能力,也需要对接近凝固点的低温状况做出前瞻性估计。
水成膜泡沫灭火剂一般储存在避光的方形不锈钢罐体中,其内部温度跟随附近大气温度变化,而附近大气温度不但受到当地气象条件影响,也与附近的人员、机器的活动有关。为了通过罐体温度传感器数据结合当地天气预报预测可能出现的过低原液温度,就需要建立合适的数学模型,因为上述各种影响因素经常发生变化(例如,因为进入冬天,工作人员关上了附近的窗户等),所以对应的数学模型也必须具备“学习”能力,自动装定模型中各项参数的值。另外考虑到在这样一个旨在预测的系统中,输入系统的数据又庞大而繁杂,为了高效处理数据,可利用人工神经网络(ANN)将其中的有效信息抽离为特征值,并通过多层网络进行数据加工。反向传播神经网络(BP神经网络)是一种常见的预测机器学习模型,它使用梯度下降法调整网络的权重值,对于非线性而连续变化的量具有较好的拟合能力 [4] 。在本课题中,即实现并调优了一个BP网络以处理由2个传感器和本地天气预报产生的大量数据。本研究建立合适的学习模型并根据数日内实际测温数据优化其参数,在模拟实验中,预测最大偏差为0.99℃。
2. 实验方法
整个实验系统由4个部分组成,包括缩尺寸方形管廊模型、油池火源系统、液氮输送系统和数据采集系统,如图1所示。
由北京南瑞怡和环保科技有限公司提供水成膜泡沫灭火剂并灌装至容积为10 L的双层不锈钢罐体中作为模拟实验平台。在线监测系统由微控制器(MCU)、本地节点、本地核心节点和云端服务器组成。本地气象预报由上海市气象局网络站点提供。全系统概况如图1所示。
模拟实验收集数据分为两段,每段20个数据,其中第一段对应2022年1月8日至1月27日,第二段对应2022年2月18日至3月9日。用于预测实验的数据也分为两段,每段6个,分别对应1月22日至1月28日和3月4日至3月9日。其他数据点则用于训练模型。

Figure 1. A demonstration of the experiment setup
图1. 实验装置示意
3. 结果与讨论
在一个位于上海市闵行区的总容积为10 L的模拟不锈钢槽罐内灌满水成膜泡沫灭火剂,并分别在罐体中央、罐体表面和罐体周围空气中设置温度传感器,与微控制器(MCU)、本地服务器和云端服务器相连形成在线监测系统,并由云端负责收集气象数据用于预测罐体最低温度。系统中数据的流动如图1所示,其中罐体内温(Ti)、罐体表面温度(To)和罐体周围空气温度(Ta)的数据收集周期为10分钟,而气象预报今日最低气温(F_min)和今日最高气温(F_max)、明日最低气温(F_next_min)和明日最低气温(F_next_max)均为每日12时收集一次。在模拟实验中,我们首先连续收集了2021年1月8日至1月27日共20天间的数据,如图1所示。从图中可知在此期间,气象预报曾两度突破0℃ (1月11日和1月13日)接近灭火剂最低储存温度−3℃,但代表罐内水成膜泡沫灭火剂原液温度的To和Ti均还保持在9℃以上,这就表明周围储存环境对最低温度也具有重要的影响。根据图1中Ta、To和Ti条曲线的波动规律,在每一天温度的周期变化中Ta波动范围最大,Ti波动范围最小,而To曲线夹在两者之间。考虑到不锈钢罐体具有很好的导热性能,可认为罐体本身达到的最低温度就是临近罐壁处的灭火剂原液所承受的最低温度。若我们将3条温度曲线以每日15时为界分割为时间长度24 h的时间片段,可见在任意片段中,To最小值总是低于Ti最小值,即任意一日内临近罐壁处的灭火剂原液达到的最低温度总是低于罐体中部,因此To最小值就可标志罐内灭火剂所达到的最低温度,本研究中我们将其定为模型学习目标。每日To温度水平随气象预报数据波动且具有一定的滞后性,因此除了需要向模型提供下一日的气象预报气温最高值和最低值外,还需提供当日的气象预报高低值。我们将日期分界点定为每日的15时,这是为了保证当预测模型判断下一日存在To过低的可能时,可以留给工作人员足够的处理时间。
如前所述,Ta、To和Ti传感器每日分别产生144个温度数据,需要通过第一层神经网络做“池化”和平均化处理得到其特征值以简化后续学习过程。在模拟实验中我们发现,Ti传感器受到灭火剂原液腐蚀作用的影响经常损坏,寿命远低于Ta和To传感器,而研究表明,在一般的AFFF灭火剂储存状况下,当Ti值明显偏离Ta和To时,可通过Ta和To序列的线性组合推测得到Ti的值。为了节约传感器费用,我们将Ti数据序列从模型中去掉而加入Ta和To序列在每日最后两个小时中的平均值Ta_avg和To_avg用于模拟Ti偏离Ta和To带来的影响。在第一层神经网络中,Ta和To数据序列分别通过“池化”操作取得当日数据的最小值Ta_min和To_min。此外,将每日中Ta和To序列的初值和终值分别记为Ta_start、Ta_end、To_start和To_end,也传递至第二层神经网络。第一层神经网络从Ta和To序列中抽取以上共8个特征值,加上4个天气预报数值传递至后两层神经网络。
上述12个数值还必须经过进一步处理才适合用于模型优化。以2022年1月8日获得的数据为例,F_min = 276.2 K,F_next_min = 275.2 K,它们的绝对值较大而使温度的变化不很明显。实验表明,将形如276.2 K这样的绝对温标数据直接输入模型进行机器学习优化的效率非常低下,模型往往需要上亿次迭代才能达到收敛。一种解决方法是将绝对温标数值相减得到数字小得多的温度差值,例如将F_next_min与F_min相减就得到明日气温相对今日的变化趋势(对于1月8日,这个温度差是−1 K),将这样的值输入模型就可大幅度提高优化效率。第二层神经网络的核心目标就是将绝对温度数值通过恰当的组合形成温度差值,使它们的变化幅度更为明显,利于模型的感知。本层神经网络首先根据4个温度预测模式给出4种数据组合方式,然后再加入由实验发现的其他3种对改善模型效果明显的数据差值组合,共将7个温度差值传递给下一层神经网络。
为了预测明日To序列的最低值,将它的实测值记为To_next_min,而模型预测值记为PTo_next_min。不妨首先建立一个极简模型,即预测明日To最低值与今日相同:
(1)
我们也将其称为“机械式”预测。为了评价其预测精度,选择经典的回归算法 [5] 构建损失函数:
(2)
其中N为参与计算的数据个数。利用2022年初收集得到的共40天数据(N = 40)计算得到上述极简模型的损失函数值L2 = 0.245,预测最大偏差值为−1.63℃,发生于2022年2月28日。我们设想To序列的最低值随气象预报的气温最低值改变,对应的优化权重记为W1:
(3)
根据(3)式,若气象局预报今日当地最低气温是283.2 K,而明日最低气温上升至287.2 K,那么我们预测明日To最低值也将上升,幅度由气温变化值+4.0 K和权重W1的乘积决定,即+4.0 * W1.基于同样的原理,可以写出其他3个预测式,分别有:
以气象预报气温最高值预测:
(4)
以To序列终温预测:
(5)
容易理解,在此式中To_start的意义是前一日的To_end。同样地,我们也可通过Ta序列终温进行预测:
(6)
在以上4个预测模式的基础上,我们还通过实验发现了其他一些能为模型提供明显改进,使损失函数L2显著降低的数据差值组合,分别是当日罐体附近空气的终温与最低温度的差值Ta_end − Ta_min、当日最后两小时罐体附近空气温度和罐体温度的差值Ta_avg − To_avg以及当日气象预报最高温度与第二日气象预报最低温度的差值F_max − F_next_min,以上3个温度差对应的权重分别记为W5、W6和W7。根据以上研究,第二层神经网络中共输出7个温度差值,另外引入常数权重输入下一层,在图1中以常数“1”神经元表示,对应的权重记为W0。第三层神经网络则以全连接的形式输出预测结果(图1)。在本模型中,作为参考基准的To_min总是直接传递至输出端,而优化模型即是指通过输入数据优化权重W0~W7。
编写python3程序实现上述学习模型,输入全部40个数据点并通过批梯度下降(Batch Gradient Descent)策略更新参数W0~W7以降低L2 [6] ,学习率定为0.001。经过100万次迭代后得到损失函数变化如图2所示。损失函数在约50万次学习后停止下降,极小值为0.049,相交“机械式”预测有明显的下降。模型预测值与实测值最大偏差为−0.78℃,同样发生于2月28日。
灭火剂罐储条件总是在不断地变化之中,如冷空气来袭、附近窗户的开/闭等,为了提高模型预测能力,同时节约系统算力,我们希望训练模型需要的数据集在包含足够信息的前提下尽可能的小,以便于我们及时抛弃旧数据而使模型更好地适应当前的储存环境。为了讨论最佳的数据集尺寸,我们分别考察了数据集大小为5、7、10和14天时,模型经过100万次训练对下一日罐体最低温的预测能力。例如,对于20号数据(对应2022年1月27日),将1月6日到19日的数据(共14天且不包括20号数据本身)输入模型并进行100万次训练,然后以完成训练的模型推理20号数据本身得到预测值,并与1月28日中的实测值比较以评价模型的预测(泛化)能力。
将不同数据集尺寸下预测值与实际测量值的差值按式(2)计算损失函数L2,结果如图3所示。其中,模型训练集尺寸为1代表跳过机器学习步骤,按式(1)进行“机械式”的预测;而模型训练集尺寸39代表传统意义上的泛化性能,即以不包含当日的其他全部数据作为训练集(N = 39)优化模型后推理当日数据。显然,N = 39时绝大部分情况下训练数据集不但包含对当日而言发生于过去的数据,也包含发生于未来的数据,从数学模型的角度是最为理想的训练集,得到的L值也最低。可以认为N = 39代表了本模型在传统泛化上能够达到的最高性能,但现实中当然不可能实现(因为我们无法获得未来的数据)。从图3中可知,随着训练集数据的增加,损失函数L明显低于“机械式”预测并逐步下降,当N = 39时达到最低值0.039。此外,当N = 5和N = 7时,模型均存在明显的过拟合(Over Fitting),模型在训练集上的平均偏差低于预测偏差一个数量级以上,N = 10时在部分数据点上也还存在过拟合。当N = 14时,模型在训练集上的平均偏差和预测偏差基本相当,表明过拟合现象基本消失,并且损失函数给出的L值也明显降低。

Figure 3. Influence of training model size on loss function L2 (the number at the top of the column is the time required for the cloud server to complete a learning process)
图3. 训练模型尺寸对损失函数L2的影响(柱线顶部的数字为云端服务器完成一次学习过程需要的时间)
不同数据集尺寸下在线监测系统中各运算单元以单线程完成一次训练(100万次迭代)所需的时间如表1所示,包括作为本地终端机的龙芯®2K1000单片机、本地核心节点龙芯®3A5000、云端服务器端华为鲲鹏®920,并与常见的家用CPU INTEL酷睿®10900X对比:

Table 1. Training time of the model on multiple CPUs
表1. 模型在多种CPU上的训练时间
大量对照训练数据表明在表1所列的各种运行环境下,学习模型程序在百万分之一误差范围内给出完全相同的结果,表明程序可在灭火剂在线监测系统中的各个节点可靠运行,具有较好的可移植性。综合考虑模型的灵活性、精度和训练计算花销,我们认为将训练集尺寸定为14天较为合适,除主要负责控制MCU单元的龙芯2K1000单片机外,在线监测系统中的其他节点均能在10 min内完成1次模型训练(100万次迭代)。在此训练集尺寸下,为了预测下一日最低罐体温度,需要向模型输入过去两周时间中温度传感器组和天气预报提供的各项数据。在预测模拟实验中,学习模型在12个预测点上的损失函数L2值为0.086,显著优于“机械式”预测的L2值0.505,而最大偏差为−0.99℃,也低于“机械式”预测的最大偏差−1.25℃。随着模拟实验中时间的推移,模型优化得到的8个权重系数也有规律地变化(图2)。特别是对照前6与后6个预测模型,由于对应的季节从冬转为春,优化后得到的各权重系数明显不同,这就表明本模型具备了一定的自动适应储存环境的能力,为水成膜泡沫灭火剂在线监测系统长期无人值守自主运行提供了坚实的基础。
4. 结论
研究表明,BP神经网络可用于预测不锈钢罐中水成膜灭火剂在未来一日内的最低温度。通过构建和调优该BP网络,并利用它处理由罐体周围的两只温度传感器和当地的一日内气象预报组成的数据流,本研究显著地提高了预测精度。在模拟实验中,模型的预测值偏差L2值从“机械式”预测的0.505下降至0.086。以python3代码实现的学习模型程序在水成膜泡沫灭火剂线监测系统中的本地核心节点和云端服务器上均能可靠运行,并在10分钟内完成100万次优化,具备了较好的实用性,为在线监测系统长期无人干预运行提供了基础。