一种烟雾传感器的光电式迷宫老化探测数据自动校正技术

2018-11-5

俗称“迷宫老化自动校正算法”。

烟雾探测器检测环境烟雾浓度的原理是什么?

  光电式迷宫烟感检测环境烟雾浓度的原理是通过一种“光电式传感器迷宫”反馈的数值来表现的。

图1 光电式烟雾探测迷宫结构

  光电式迷宫内部有两个发光二极管。一个是光发射管,另一个是光接收管。两个二极管呈一定夹角对向安置。

图2 二极管排列方式

  正常情况下,光发射管发射的光线是无法(理想情况下)被光接收管接收到的。当环境中有烟雾时,会渗入迷宫内部。烟雾颗粒使得光发射管发射的光线发生“散射、反射”等现象。使得有部分光线会被光接收管接收到,从而引起接收管反馈的数值发生变化。该变化关系即可作为评判环境烟雾浓度的依据。

通常烟感在出厂前都会对迷宫进行一次“标定”操作。标定操作即是在正常室内环境下读取出迷宫反馈的数值,将该值作为正常环境下的烟雾浓度量化值,称为“初值”。并根据该“初值”确定一个“增量值”,“初值”与“增量值”的和即为“报警阈值”。当迷宫反馈的数值超过这一数值时即认为当前环境烟雾浓度超标,使烟感设备发出报警信号。

为什么烟感需要做“传感器自动校正技术”?

迷宫外壳及二极管均会随着时间的推移而发生“材料老化”现象,使得迷宫反馈的数值相较于出厂时的状态发生偏差。为了避免因这一变化而影响到烟感设备探测精度,甚至是引起“误报”或是“不报”的现象,需要在软件上设计一种“自动校正”算法来对抗硬件老化。该算法的目的也相当简单明确,通过分析一堆数据以确定出新的“初值”与“增量值”并把它应用到系统中即可。该“自动校正”算法除了可以对抗迷宫老化以外还使得烟感设备具备一定的环境自适应性。

如何校正?

  一般来说校正过程可分为两部分:1、数据采集;2、数据分析。 数据采集宜采集在正常情况下迷宫反馈的数据为准,采集时间间隔自行确定。数据分析所依赖的数据宜多一点,但具体放多少数据也需要自行确定。

  关于数据采集有一点可能需要强调一下,首先采集样本数据时若正在报警,那这个数据肯定是不能要的。其次若采集样本时正在报警,那么下一次采集的时间间隔不宜太近,因为若正在报警说明当前环境中烟雾浓度过高,应该给足时间以期让当前环境中的烟雾散去。

  校正算法流程图如下图所示。

图3 自动校正算法流程图

  上图3所示的流程便是一个可能有效的校正算法。现对其中各步骤作一如下解释。

  首先还是要确定准备好了足够数量的数据,建议不少于100个数据。首先第1步,去除数据两端的极值没什么好说的,长时间的数据采集难免会有一些环境上的意外波动。例如对于安装在室内的烟感,若有人在室内抽烟,那么这就是一个属于人为原因产生的干扰,这种数据是不具备分析意义的是应该被舍弃掉的。

  第2步与第3步是一起的。首先看看采集到的数据的均值,这种方式最简单也具有一定的代表性。当均值与当前系统中的初值的误差大于2%时,可以直接确定需要进行报警阈值的更新了。若误差没有超过2%,则还应该进一步算一下这组数据的标准差。标准差代表的是一组数据中波动的大小,标准差越小,表示数据值越集中,在宏观上能表明迷宫特性越稳定。反之,可能说明迷宫性质发生了改变,此时就需要进行校正。

  第6步取出众数。相较于计算出来的“平均数”,“众数”更具有“真实意义”,它是确确实实传感器采集出来的数据。在求众数的过程中若样本数据过小,则有很小的几率出现没有众数的情况,如第7步所示。当出现没有众数的情况时可以自由处理,此处采取放弃校正的处理。虽然实际中不会出现这种情况。

  若在第7步中求得的众数超过1个,则取这n个众数的平均数作为新的初值。若第7步中仅得一个众数,则该众数就是校正后的新初值。

  至此,分析数据求新初值的工作就已完成。 后面是否要根据新的初值来确定“报警增量值”就看自己的需求了。

  本算法仅供娱乐,不对其结果的有效性负任何责任!

  

  

原文地址:https://www.cnblogs.com/chorm590/p/9895380.html

时间: 2024-11-13 11:32:01

一种烟雾传感器的光电式迷宫老化探测数据自动校正技术的相关文章

牙膏5元,牙刷2元,肥皂3元,100元买这三种恰好花光,请问有多少种可能性

Console.WriteLine("牙膏5元,牙刷2元,肥皂3元,100元买这三种恰好花光"); int a1 = 0, b1 = 0, c1 = 0, sum = 0; for (int a = 0; a <= 20; a++) { a1 = 5 * a; for (int b = 0; b <= 50; b++) { b1 = 2 * b; for (int c = 0; c < 33; c++) { c1 = 3 * c; if (a1 + b1 + c1 =

JavaScript--------------------jQuery中.bind() .live() .delegate() .on()的区别 和 三种方式写光棒事件 动画

bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数. $("a").bind("click",function(){alert("ok");}); live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的 $("a").live("click",function(){alert("ok");}); de

英国推出一种反走光内裤, 撕开新的内裤市场缝隙!

英国推出一种反走光内裤, 撕开新的内裤市场缝隙! (  更多详情:http://toutiao.com/a4573052540/) 近日英国一个Minkanak公司创意设计的喵星人防走光内裤,灵感来自于网上的一张女生自拍,女生在走光的小内内上画了一只猫!结果,这个喵星人防走光内裤在国内各大媒体网站和图片社交媒体火的一塌糊涂. 百度相关搜索达百千万数量 社交新浪微博,微信也反应激烈! 引发了一个小的销售火爆! 英国一个Minkanak公司创意设计的喵星人防走光内裤(pussycat panties

光电式液位传感器的工作原理及功能特点、分类

工作原理:光电液位传感器品内部包含一个近红外发光二极管和一个光敏接收器.发光二极管所发出的光被导入传感器顶部的透镜.如果没有接触液体,则发光二极管发出的光直接从透镜反射回接收器(下图右).当液体浸没光电液位传感器的透镜时,则光折射到液体中,从而使接收器收不到或只能接收到少量光线(下图左).光电液位传感器通过感应这一工况变化,接收器可以驱动内部的电气开关,从而启动外部报警或控制电路. 功能:把光电式液位传感器安装于机器水箱的底部,当水位降落至低位时,光电式液位传感器会给出信号提示缺水状态,从而设备

功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数据库,支持EXCEL.CSV.ZIP.ACCESS文件方式导出,支持数据拆分导出及自定义SQL查询与导出. 开发背景:作者从事财务管理工作,主要是出具集团的内部财务报表,随着公司精细化管理的需求,管理报表的数据量急速增长, 依赖EXCEL加工处理数据已经变得极为困难,因此团队全面转向关系数据库进行数

DB2支持的三种表空间SMS、DMS、DMS的自动存储

DB2支持的三种表空间SMS.DMS.DMS的自动存储 DB2中,表空间是数据库与这个数据库中存储的表之间的逻辑层.表空间在数据库中创建,表在表空间中创建.容器是一个物理存储设备.它可以由目录名.设备名或文件名标识.容器被分配给表空间.表空间可以跨许多容器(类似于Oracle中datafile的概念),这意味着可以突破操作系统对于一个容器可以包含的数据量的限制.DB2 支持三种表空间: ·         系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文

基于PHP的一种Cache回调与自动触发技术

背景 在PHP中使用Memcache或者Redis时,我们一般都会对Memcache和Redis封装一下,单独完成写一个Cache类,作为Memcache活着Redis的代理,且一般为单例模式.在业务代码中,使用Cache类时,操作的基本的示例代码如下 // cache 的 key $key = 'this is key'; $expire = 60;// 超时时间 // cache 的实例 $cache = Wk_Cache::instance(); $data = $cache->fetch

标识符、八种基本数据类型、常量、变量、数据类型转换

一.标识符(用来标识变量名.函数名.数组名.类名的字符组合) 标识符的命名规则; 1.一般采用驼峰式的命名规则, 2.类名和接口名:首字母大写, 3.标识符首字母只能为字母._.$三种情况 4.除首字母外其他可为任意字符 5.标识符不能为关键字 二.八种基本数据类型和引用数据类型 基本数据类型 数值型:整型(byte,short,int,long);浮点型(float,double) 字符型(char) 布尔型(boolean): 引用数据类型 类(class) 接口(interface) 数组

miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题

最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. <div id="pageGrid" class="mini-datagrid" style="width: 100%; height: 100%; border:0;" url="${ctx}/tAXINFO/queryRepeat" autoload="tru