基于模糊聚类算法的早期火灾预警巡检机器人*
2020-11-27蔡钟山
蔡钟山
(福建省特种设备检验研究院,福州 350008)
0 引言
火灾是自然和非自然灾害事件中极具危险和杀伤性的灾害之一,其造成的直接经济损失约为地震等自然灾害的五倍,造成的直接经济损失在世界上仅次于干旱和突发性洪涝[1]。石化园区产生的火灾危险性更为突出,危险更大,更有必要进行火灾的提前预警。
本文主要针对石化园区的应用环境,以早期火灾的表征气体CO 和CO2为研究对象,采集相关数据并提取其中特征量,设计出一种基于模糊聚类算法的早期火灾预警系统,并应用于石化巡检机器人中[2]。
1 硬件设计
石化巡检机器人主要由机器人本体、通信模块、视觉模块、电源模块、云台监控模块和传感器模块等组成,如图1所示。本文重点在于巡检机器人中火灾预警系统设计,其在微控制器设计上选用飞利浦的一款具有ARM7TDMI2S 内核[3]的32 位多功能、低功耗的嵌入式处理器LPC2114,其还带有4路10 位A/D 模数转换器,实现最高为60 MHz 的CPU 主频[4],可以满足火灾监控报警的实时性要求。
通过对绝大多数火灾中可燃物的分析,发现CO和CO2气体存在于多数火灾的产物中,将CO和CO2气体浓度作为被测对象,选用CO和CO2传感器作为传感器模块的组成部分。选用CITY 公司型号为7E/F 的CO 传感器,其气体测量范围一般为1~1 000 ppm,输出为标准4~20 mA电流信号,经精密电阻转换为电压信号[2]。选用TELAIRE 公司型号为6004 的CO2传感器,其集成气体测量的范围一般为0~2 000 ppm,模拟输出0~4 VDC[2]。
将CO 和CO2传感器输出的模拟信号通过AD 转换之后输入到LPC2114 控制器中,经过聚类分析算法判断是否发生火灾,若有,则驱动报警模块报警,通过机械臂使用灭火器扑灭火源;若没有,则继续采集CO和CO2气体的信号,重复以上过程。
图1 石化巡检机器人
2 系统软件设计
软件操作系统采用μCOS-Ⅱ操作系统,根据硬件的各个模块进行模块化设计,进行多任务处理,程序的模块化封装对系统的稳定性和实时性更有保障。系统软件设计流程如图2所示。
2.1 μCOS-Ⅱ操作系统的移植
μCOS-Ⅱ是一种抢先式的多任务实时操作系统,具有内核代码小、可移植性强的特点[4]。μCOS-Ⅱ操作系统移植的关键在于3 个函数的移植,这3 个函数分别为OS.CPU.H、OS.CPU.C、CPU.A.S,是与处理器及编译器相关的函数[5]。另外还需要对任务的堆栈进行合理的设置,需注意当多任务之间切换时,优先级高的任务的寄存器数值需要出栈,任务低的入栈。
2.2 模块化软件设计
模块化软件设计是基于移植成功的μCOS-Ⅱ操作系统,火灾预警部分的软件模块主要包含信号采集模块、信号处理模块、聚类分析算法模块和声光报警模块。
信号采集模块通过LPC2114 的 ADC 转 换 实现,选择其中两个通道对CO和CO2气体浓度进行数据采集,将模拟电压量转换为数字量;信号处理模块对采集到的信号进行归一化处理,对归一化后的数据经数学运算得到CO和CO2气体浓度比值和对应比值上升速率[2],作为早期火灾特征量;将特征量输入聚类分析算法模块中,进行迭代计算,辨别出真假火灾。若识别为真火灾,则通过IO口控制LED和蜂鸣器进行报警;若为假火灾,则不报警。
图2 系统软件设计流程图
3 模糊聚类算法
本文采用模糊c 均值聚类算法(简称FCMA 或FCM),其主要是以模糊控制理论算法为基础,通过优化模糊控制目标函数,计算样本对类中心的隶属度大小,实现模糊目标的分类[6]。隶属度函数是表示一个样本隶属于某一集合程度的函数,取值范围为0~1。首先,定义具有d 维特征的一个样本X,μij为其中第i个样本xi对j类的隶属程度,cj为类的中心,m为类的簇数,模糊c均值聚类就是不断迭代隶属度和类中心,直到达到最优值为止[7]。目标函数、隶属度和类中心的公式为:
式中:m为加权指数;k为迭代步数;ε 为误差阈值。
具体算法流程如图3所示。
图3 模糊聚类算法流程图
4 实验结果
以泉州市泉港区某石化园区发生的火灾为例,通过信号采集模块采集火灾发生前后的CO和CO2浓度,经信号处理模块得到CO和CO2气体浓度比值α0(i)和比值上升速率α1(i),作为模糊c均值聚类算法的样本集合,用集合X={x1,x2,…,xn}表示,n为样本数。火灾早期预警只需将火灾辨别为真火灾或假火灾即可,因此类别数c=2,每一个类别均为X上的一个模糊集,记为A1(真火灾)、A2(假火灾)。对论域X 中的任一待识别对象xi(xi∈X),把对象xi划分到与其最相似的一个类别中去,即隶属度越大的那个类别,图4所示为已知真/假火灾数据训练样本。
在模糊c均值聚类算法中,加权指数m对于聚类的效果有重要的影响,Bezdek首先给出一个合适的经验分析范围1.1≤m≤5;可知m=2时最有意义[8]。由图3可知,首先要初始化一些参数,将模糊划分矩阵为:
图4 原始火灾样本数据
设置误差目标值ε=0.01,类数c=2,加权指数m=2,通过迭代修正聚类中心[2],目标函数值Jm在迭代过程中不断发生变化,直至收敛为止。
如图5所示,迭代至第6代时目标函数已收敛,收敛速度很快。待识别数据样本对模式A1和A2的隶属度,如图6所示,设定隶属度阈值α=0.55(工程试验验证得来经验值),40组待测样本都可以被辨别为真火灾和假火灾,从散点图可得出真假火灾的隶属度之和为1。最终得出以下结论:
图5 目标函数值与迭代次数
图6 待测样本对真/假火灾模式的隶属度
(1)设定合理的阈值,通过模糊聚类算法可以对火灾数据样本进行归类;
(2)通过40组火灾数据样本进行测试,最后得出的分类结果跟客观情况一致,成功率100%;
(3)对阈值α的选择还需要斟酌,因为其值的大小直接决定了归类的结果,存在隶属度值与阈值α接近的情况,将不可区分。
5 结束语
本文介绍了一种基于模糊聚类算法的早期火灾预警系统,并应用于石化巡检机器人。采用模糊c均值聚类算法,经过不断地迭代,计算出待识实验数据对各类的隶属度,通过与阈值进行对比,得到分类结果。经过对多组实验数据的模糊聚类分析和模式识别,分类的结果和客观实际基本一致。同时模糊聚类算法还存在一些不足之处,如陷入局部最优,另外权值m和阈值的选择仍是需要后续进一步考究。