基于STM32F103ZET6的火灾自动报警系统设计
2022-08-12徐根祺谢国坤张正勃
徐根祺,曹 宁,谢国坤 ,张正勃,李 璐
(1.西安交通工程学院 机械与电气工程学院;2.西安交通工程学院 土木工程学院,陕西 西安 710030;3.西安思源学院 电子信息工程学院,陕西 西安 710038)
0 引言
21世纪以来,随着科技的不断发展,人类对水电能源的需求日益增加,水电站开发建设在全球经济中的重要地位日益显现[1]。全球水电站工程建设的蓬勃发展也为我国水电站建设工程的风起云涌带来了契机。但考虑到水电站多建设于山区,因此其环境恶劣、厂房结构复杂、布置分散、施工困难、所需设备众多且受客观条件干扰较大,无论是预防或是应对突发火灾的能力均有欠缺。因此,对水利枢纽工程火灾自动报警系统的开发就显得非常重要,而火灾报警系统的准确性与实时性是目前水利工程火灾自动报警系统面临的核心问题[2-3]。
在国外,上世纪后半叶以来,随着自动化和通信技术的飞速发展,火灾自动报警技术的发展开始步入加速期[4]。迄今为止,较为常用的火灾自动报警技术分为智能和非智能两种。前者的发展最迅捷、应用也最广泛,已经成为当下智能火灾自动报警技术中的引领技术[5]。
在我国,直至上世纪末期,火灾自动报警系统才开始起步,时至今日也不过短短二三十年的时间。随着党和政府有关部门对防灾、减灾工作的高度重视 ,我国在相应领域的研究取得了很大地进展,CAN总线、RS485和RS232等技术在火灾自动报警系统中受到设计人员的广泛关注[6]。且现阶段的火灾自动报警器已形成了体积小、容量大、信号传输迅速、预报准确率高等多方面的优势[7]。
近些年来,火灾自动报警发展趋势较之以往有了天翻地覆的变化,实时性、强鲁棒性、低误报率、网络化和智能化成为现阶段火灾自动报警技术发展的方向。将智能算法用于火灾自动报警系统能够增加系统识别真假火灾的准确率,提高系统可靠性。该文结合人工智能理论和自动化技术,通过将模糊理论融入BP神经网络设计了一整套水利工程火灾自动报警系统,以提高系统预报的准确性。
1 火灾报警系统设计
1.1 整体方案设计
该文以陕西淳化、礼泉泾河下游的某水电站为例,建设该水利工程的目的主要是为了实现改善生态、防洪、供水和发电等功能。该水电站装机容量约11万千瓦,输出约1.5万千瓦,近年来平均发电量近2.5亿千瓦·时,年利用小时数2200多小时,发电引水流量近70 m3/s。
该系统的设计分为地上、地下两部分,核心控制技术采用集中报警方式。该工程包括地上地下2个消防控制室,分别经110 kV GIL管道连接成一体,地上控制室有人监控而地下控制室无人监控。地上部分共三层,从下至上依次为10 kV配电室、低压配电室、变压器室、办公室、控制室、二次室等,该楼紧邻110 kV GIS室,下面为 GIL管道夹层,以上为工程的地上部分。
地面中控楼中央控制室内设计有消防控制中心,地下部分有2个分控主机,控制中心负责与其通信。报警系统和监控系统之间采用RS485方式进行数据传输。火灾监控单元设于地面中控室,火警信号均通过火灾监视模块显示。该火灾自动报警系统由数据传输模块、检测模块、报警控制模块、电源模块等装置组成,图1为系统组成图。
图1 火灾自动报警系统组成
1.2 系统硬件设计
1.2.1 主控芯片
火灾自动报警系统在数据分析时需要进行庞大的计算。此处选用STM32F103ZET6芯片作为微处理器,该芯片是基于Cortex-M3内核的32位单片机,其供电电压为2~3.6 V,具有512 K的FLASH和64 K的SRAM,可以在线编程。该处理器外接频率72 Hz的高速时钟一个和频率为32.768 kHz的低速时钟一个。有包括JTAG、SWD和ISP等在内的多种下载方式可供选择,该文选用SWD方式下载代码,该方式下载速度快且调试方便[8-9]。此外,该芯片还包括16通道12位AD输入3个、定时器4个、通用IO口112个、SPI口3个、高级定时器2个、UART5个和2通道12位DA输出2个。共有外部中断线19个,可根据分配的不同抢占优先级和响应优先级先后执行中断服务程序[10]。由此可见,STM32F103ZET6微处理器可以作为本系统的主控芯片,能够满足本系统的需求。
1.2.2 数据采集模块
系统需要采集海量的数据信息,比如温度、一氧化碳气体浓度和烟雾浓度等,需要数据采集接口负责系统数据的采集和传输,该系统采用RS485作为数据采集接口通讯方式。RS485采用差分信号负逻辑,遵循MODBUS协议,支持的传感器多,实施较为便捷,符合本系统设计需求。图2为RS485接口电路图,UART2和MAX485芯片共同组成RS485接口。
图2 RS485接口电路图
1.2.3 最小系统
STM32F103ZET6微处理器最小系统电路图如图3所示,采用 DC3.3 V信号作为电源,芯片引脚与电源之间通过滤波电容来抑制电源干扰,采用8 MHz的外部高速时钟和32.768 kHz的外部低速时钟,复位电路中采用充放电电容和限流电阻。
图3 最小系统电路图
1.3 系统软件设计
该系统软件包括数据采集终端和数据接收终端两个子程序,均经过初始化、发射和接收三个过程。系统上电后,首先对各模块进行初始化处理,然后将数据包发射至发射模块,最后实现数据接收并对接收的数据进行处理。图4和图5分别为数据采集流程图和数据接收流程图。
图4 数据采集端流程
图5 数据接收端流程
2 自动报警系统模型
BP神经网络结构包括输入层、隐层和输出层[11]。其中,隐层神经元的数量根据实际需要确定,各层之间通过一对多的方式连接,同一层的神经元之间互不相连[12]。该文采用常用的三层结构,反向传播算法通过梯度对连接权值进行更新。考虑到这里要求输出函数必须连续且可微,故输出层使用Sigmoid 函数作为激活函数。BP神经网络结构见图6。
图6 BP神经网络结构
用xi代表输入层中某个神经元信号,yh代表隐层神经元的输出,z代表输出层神经元信号,Tj代表目标信号,wih代表输入层神经元到隐层神经元的权值,Δ代表实际输出与预期输出之间的误差,Ni,i=1,2,3分别代表输入、隐层和输出神经元个数,则隐层神经元输出可用式(1)、式(2)表示:
(1)
yh=f(neth)
(2)
输出层神经元输出用式(3)、式(4)表示:
(3)
zj=f(netj)
(4)
其中:θh,γi分别表示输入至隐层和隐层至输出的阈值。
误差函数用式(5)表示:
(5)
局部梯度用式(6)表示:
(6)
误差对连接权值的偏微分为:
(7)
修正量如下式所示:
Δwih=-ηδhyh
(8)
wih(t+1)=wih(t)+Δwih(t)
(9)
对于Sigmoid函数:y=f(x)=1/1+exp(-x),
成立:f(x)=exp(-x)/(1+exp(-x))2=y(1-y)
为加速网络收敛的速度,式(8)中权值修正量用式(10)表示:
Δwih(t)=-ηδhyh+αΔwih(t-1)
(10)
其中:η表示步长;α表示惯性系数。
3 工程算例
根据第二部分设计的火灾自动报警系统原理,选取温度、一氧化碳气体浓度和烟雾浓度作为BP神经网络输入,火灾发生概率为输出。为了更加准确的描述输入信号,这里结合模糊理论对输入信号进行处理,选取Gauss隶属度函数将各输入信号描述为低、正常、高3个语言变量。根据第三部分的理论,可确定输入神经元总数为17个,隐层神经元数n由下式确定:
(11)
其中:ni,no分别表示输入和输出神经元数,c∈R且c∈[1,10]。于是隐层神经元数在区间[6,20]内取值,当其取值为20时系统最优,故隐层神经元数设为20。
至此,BP神经网络结构已经确定。网络开始训练之前还需要设置阈值和初始权值,在区间(-1,1)内取值,这里取为0.5,将输出限定为[-1,1],选用tanh作为隐层激活函数,对数S型函数作为输出激活函数。选取100 组故障数据作为实验样本集,其中90组用于训练,10组用于测试,表1中列出了部分实验数据,训练误差曲线如图7所示。
表1 实验数据
图7 训练误差曲线
图7中的误差曲线显示,对原始数据直接使用BP神经网络进行训练,需要迭代17次才会收敛,对输入变量进行模糊处理后,只需迭代9次就能够收敛。本设计所用的模糊-BP神经网络收敛更快。
训练完成后,通过测试集数据对火灾发生概率进行预测,实验重复进行10次,图8为10次实验的平均预测拟合效果图。
图8 预测拟合效果图
从图8可以看出,BP神经网络的拟合曲线与实际值的偏差较大,经过模糊化处理后的输入用于预测的结果更接近于实际值,说明本设计使用的方法能够较准确地对火灾进行预测。另外,以标准差和均方根误差作为评价指标,对预测效果进行分析,结果见表2。
表2 BP神经网络和模糊-BP神经网络误差比较
从表2中两种方法预测误差的比较可以看出,无论是从标准差分析还是从均方根误差来看,模糊-BP神经网络比单一BP神经网络的误差更小,精度更高。
4 结论
该文根据实际工程情况,设计了一套自动火灾报警系统,设计内容包括硬件、软件和模型设计。其中模型设计部分将模糊理论融入BP神经网络,解决了单一BP神经网络学习效率欠缺且选择盲目性的问题。工程算例实验结果表明,对输入数据进行模糊处理后的预测值比使用单一BP神经网络的预测结果更接近真实值,且标准差和均方根误差更小,预测效果更好。将该系统用于水电站火灾报警是可行的,由于神经网络自身的特性,该系统还拥有对大规模数据进行处理的能力,而且可靠性较高。