一种改进的可见-红外多光谱辐射测温反演算法

张志林, 孙伟民, 邢键, 崔双龙

张志林, 孙伟民, 邢键, 崔双龙. 一种改进的可见-红外多光谱辐射测温反演算法[J]. 红外技术, 2013, (8): 518-521.
引用本文: 张志林, 孙伟民, 邢键, 崔双龙. 一种改进的可见-红外多光谱辐射测温反演算法[J]. 红外技术, 2013, (8): 518-521.
ZHANG Zhi-lin, SUN Wei-min, XING Jian, CUI Shuang-long. An Improved Algorithm Research on VIS-IR Multi-spectral Thermometry[J]. Infrared Technology , 2013, (8): 518-521.
Citation: ZHANG Zhi-lin, SUN Wei-min, XING Jian, CUI Shuang-long. An Improved Algorithm Research on VIS-IR Multi-spectral Thermometry[J]. Infrared Technology , 2013, (8): 518-521.

一种改进的可见-红外多光谱辐射测温反演算法

基金项目: 中国博士后基金资助,编号20110491033,2012T50305;中央高校基本科研业务费专项资金资助。
详细信息
  • 中图分类号: O439%TH811.2

An Improved Algorithm Research on VIS-IR Multi-spectral Thermometry

  • 摘要: 在基于参考温度的二次测量法数学模型的基础上,提出了无需假设光谱发射率模型的可见-红外多光谱辐射测温迭代递推算法,并对4种发射率假设模型进行了仿真计算。结果表明:新算法的温度绝对误差小于20 K,发射率趋势也与假设模型的发射率趋势吻合较好。进一步完善了可见-红外多光谱辐射测温理论。
  • 带式输送机是一种现代化生产中的连续运输设备,具有运量大、运距远、运费低、效率高、能耗小、运行平稳、装卸方便、适合于散料运输等优点,与汽车、火车一起成为三大主力工业运输工具,已广泛应用于煤炭、矿山、港口、电力、冶金、化工等领域[1]。温度是带式输送机的一个重要指标,通过温度检测能够检测带式输送机的托辊、电机、滚筒等故障,GB/T 3467.9-2017《智慧矿山信息系统通用技术规范》[2]规定对带式输送机温度进行检测,带式输送机综合保护系统中的八大保护装置也包括温度保护。目前带式输送机的测温仪主要采用PT100传感器进行检测,其测温范围窄、分辨率低、准确性差;接触式检测,容易受到外力而损坏,可靠性差。

    本文提出了一种带式输送机本质安全型红外测温仪设计方案,采用MLX90614红外传感器[3]和STM32F103C8T6处理器设计了其硬件;在Keil 5.14开发平台上,采用C语言设计了其软件。

    红外测温仪由处理器电路、温度传感器电路、频率量转换电路、4~20 mA转换电路、数码管显示电路、报警电路、激光定位电路、按键及指示灯电路、数据存储电路、串口通信电路、程序下载接口电路和供电电路组成,其组成框图如图 1所示[4]

    图  1  红外测温仪组成框图
    Figure  1.  Infrared thermometer composition block diagram

    温度传感器电路完成温度采集功能;频率量转换电路将采集到的温度数据转换成频率量输出;4~20 mA转换电路将采集到的温度数据转换成4~20 mA电流信号输出;数码管显示电路将采集到的温度数据显示出来;报警电路完成报警功能;激光定位电路用来给使用者指示被测物体的准确位置;按键电路完成参数设置功能;数据存储电路完成发射率等数据存储功能;串口通信电路用作调试;程序下载电路将程序下载到处理器电路中;供电电路为整个电路供电;处理器电路完成数据接收、处理及各部分电路驱动功能。

    红外测温仪用来实现固定物体的温度检测。物体的红外辐射能量的大小及其按波长的分布与它的表面温度有着十分密切的关系。因此,通过对物体自身辐射的红外能量的测量,便能准确测量它的表面温度。MLX90614红外传感器电路用来采集固定物体红外能量,处理器电路驱动温度传感器电路,将采集到的温度数据转换成频率量和4~20 mA电流输出,并通过数码管显示电路显示出来。激光定位电路用来辅助使用者来确定温度传感器采集温度数据的准确位置。使用者可通过按键及指示灯电路设置高低温报警阈值及发射率等参数,设置完成后,参数保存在数据存储电路中。当监测到被测物体的温度超出报警阈值会通过报警电路进行报警。

    温度传感器选用美国迈来芯公司的MLX90614,采集温度范围为-70℃~380℃,精度为0.14℃,辐射角度为10,SMBUS总线输出[5]。电路图如图 2所示。

    图  2  温度传感器电路
    Figure  2.  Temperature sensor circuit

    核心处理器选用意法半导体公司的STM32F103C8T6,采用Cortex M3内核,主频高达72 MHz,功耗低,适合做本质安全电路设计。电路图如图 3所示。

    图  3  处理器电路
    Figure  3.  Processor circuit

    本质安全型电源是指符合GB3836.1-2010爆炸性环境第1部分:设备通用要求[6]和GB3836.4-2010爆炸性环境第4部分:由本质安全型“i”保护的设备[7]中的相关规定,可以在爆炸性气体环境中使用。为符合本质安全型电路要求,本设计采用美国凌力尔特公司的LT4356CS-1芯片,该芯片具有过流和过压保护功能,且过流和过压保护值可调节,采用双重化设计。该电源通过了国家煤矿防爆安全产品质量监督检验中心的检验,并取得了检验报告、防爆证和安全标志证书。该电源的部分电路如图 4所示。

    图  4  本质安全型电源电路
    Figure  4.  Intrinsically safe power circuit

    频率量转换是在核心处理器中完成的,外围驱动电路采用飞利浦公司的HEF4093BT,该芯片采用CMOS工艺,输出高低电平接近电源电压或地电位,对于外部接口电路来说,兼容性更好;每个输入引脚内部内置一个施密特触发器,输入信号的抗干扰能力更强。电路图如图 5所示。

    图  5  频率量转换电路
    Figure  5.  Frequency conversion circuit

    4~20 mA转换电路采用ADI公司的AD421,该芯片将接收到的数字信号转换成模拟信号[8],并完成模拟信号到4~20 mA电流环信号的转换。电路图如图 6所示。

    图  6  4~20 mA转换电路
    Figure  6.  4-20 mA conversion circuit

    数码管显示电路选用4位数码管显示3位数字和1位符号位,驱动芯片采用2片74HC595串联,该电路具有成本低廉,易于驱动的特点。

    报警电路将来自核心处理器的报警信号通过达林顿管放大输出驱动蜂鸣器。

    激光定位电路采用3 V激光二极管,主要作用在于指示被测位置,因此设计将激光二极管光线与温度传感器方向尽量靠近且平行。

    按键电路用于设置发射率、高低温报警阈值等参数,指示灯电路用于指示正在设置哪个参数。

    数据存储电路用于存储高低温报警阈值,发射率等信息,采用AT24C02,驱动简单,成本低廉。

    串口通信电路主要用于调试及后期维护,选用MAX3232,电路简单,成本低廉。

    程序下载电路设计为SWD接口,四线下载,节省电路板空间。

    系统供电电路选用MPS公司的MP2259,开关频率1.4 MHz,输出电流1 A,采用SOT23-5封装,体积小,并且由于工作频率较高,输出纹波小,外部电感和电容的体积也较小,节省了电路板空间。

    测温仪软件设计是在Keil 5.14开发平台上进行的,使用语言为C语言。系统软件整体设计思路是这样的:主程序采用自顶向下设计方法,首先完成各个模块初始化及中断初始化,然后循环执行温度传感器MLX90614读出程序和设置发射率及高低温报警阈值程序,而各个模块子程序是通过中断方式得到执行。图 7表示了主程序的设计流程:程序一开始进行中断初始化和各模块初始化,接着进入循环,在循环中依次执行读出高低温报警阈值和温度报警值,计算要显示的温度数据、要输出的频率量及电流值数据,最后调用按键扫描子程序。在程序执行的过程中,如果有按键按下,则进入按键中断服务程序进行处理。

    图  7  主程序流程图
    Figure  7.  Main program flow chart

    由于温度传感器MLX90614通信接口为SMBUS,所以首先设计SMBUS底层驱动程序,然后根据MLX90614数据手册时序图设计顶层程序,主要分为4个函数:MLX90614初始化函数,MLX90614读函数,MLX90614写函数,MLX90614数据转换函数。

    由于数码管驱动采用2片74HC595串联,所以驱动数码管也就是驱动74HC595。74HC595为数据移位寄存器,串行输入,并行输出。程序分为3个子程序:数码管驱动I/O初始化函数,595输入函数,595输出函数。

    按键扫描子程序采用有限状态机方法实现,分为没有任何按键按下状态、按键按下确认状态、按键短按下状态、按键长按下状态,其状态转换如图 8所示。

    图  8  状态转换图
    Figure  8.  State transition diagram

    数据存储子程序分为IIC底层驱动和芯片驱动。底层驱动包括IIC初始化、产生起始信号,产生停止信号、等待应答信号、产生应答信号、产生非应答信号、发送一个字节、接收一个字节等几个函数。芯片驱动包括:芯片初始化、芯片检测、读出一个字节、写入一个字节、读出N个字节、写入N个字节、从指定地址读出指定的字节数、写入到指定地址指定的字节数等几个函数。

    串口通讯子程序包括串口初始化、串口发送和串口接收3个子程序。

    由于读出的温度数据为数字量,所以设计公式将数字量转换成频率量,其公式如下:

    $$ f = 2*\left\{ {\left[ {\left( {{\rm{DATA*2}}} \right) - 27315} \right]/100} \right\} + 240 $$ (1)

    式中:f为频率,DATA为16位温度数值。

    想要将温度数据转换成4~20 mA的电流信号,首先应该将温度传感器采集到的数值转换成AD421输入范围内的数值,设计的公式如下所示,然后只需按照AD421的数据手册写出驱动程序即可,共有3个信号需要驱动:时钟、锁存、数据,程序比较简单,不再详述。

    $$ {\rm{dac\_input\_data}} = 3.27675*{\rm{DATA - 41474}} $$ (2)

    其中dac_input_data为AD421输入数值,DATA为温度传感器采集到的数值。

    考虑到各个模块实时响应的需求,主程序采用中断的方式,因而需要定时器来调度。本设计用到了3个定时器:定时器2、定时器3和定时器4。定时器2负责周期性调用显示子程序、定时器3负责周期性调用报警子程序,定时器4负责周期性调用按键子程序。优先级顺序为:定时器2>定时器3>定时器4。

    通过对测温仪的实验与调试,分别测试各模块的功能实现情况。利用示波器及Keil 5开发平台自带的逻辑分析仪进行分析,各模块均可实现相应的功能。

    首先发送SLA地址,然后判断接收到的应答信息,如果应答为非应答信号,则发送停止位,并转到程序起始处重新执行,否则继续向下执行。判断流程同上。接着发送SLA+1,判断流程同上。接下来按顺序读取数据低字节和高字节,并存入预先定义好的缓冲区寄存器。再接下来读取PEC码(PEC码为一种CRC-8校验码),并根据多项式X8+X2+X+1,计算出结果,与读取到的PEC码进行比较。如果相同,则表示读到的数据正确,否则错误,丢弃数据,并返回程序起始位置重新读取数据。示波器采集到的时序波形如图 9示。煤矿井下输送带宽度一般为0.8~2.4 m之间,测温仪与被测物体之间的安装示意图如图 10所示,可以看到,温度传感器安装在距离电机3 m处,就可以使测温仪的目标视场内全部为被测电机,从而保证了测温的准确性。需要注意的是,煤矿井下电机的材质一般为铸铁,发射率在0.6~0.95之间,需要设置正确的发射率,才能保证测温的准确度。测量到的煤矿井下带式输送机电机温度与实际电机温度对比如图 11所示。

    图  9  示波器采集的温度传感器数据采集模块时序信号
    Figure  9.  Time sequence signal of temperature sensor data acquisition module collected by oscilloscope
    图  10  测温仪与被测物体之间的安装示意图
    Figure  10.  Installation diagram between the thermometer and the object to be measured
    图  11  测温仪测量温度与电机表面实际温度对比
    Figure  11.  The temperature measured by the thermometer is compared with the actual temperature of the motor surface

    频率量转换模块将-20℃~380℃的温度值转换成200~1000 Hz的标准频率量信号输出,图 12展示了温度值、理论上频率量输出值、实测频率量输出值对应关系。

    图  12  频率量输出值与温度值对应关系
    Figure  12.  Correspondence between frequency output values and temperature values

    4~20 mA转换模块将-20℃~380℃的温度值转换成4~20 mA标准电流环信号输出,十六进制温度值与输出电流环信号对比在AD421数据手册中可以查到,如图 13(a)所示。实际测得的温度值与4~20 mA电流输出如图 13(b)所示。

    图  13  温度值与4~20 mA电流输出对比
    Figure  13.  Comparison of temperature value with 4-20 mA current output

    报警模块在温度低于低温报警阈值,或者温度高于高温报警阈值时报警[10],其报警信号为周期4 s的方波,示波器采集到的报警信号波形如图 14所示。

    图  14  示波器采集到的报警信号
    Figure  14.  Alarm signal collected by oscilloscope

    按键设置模块实现发射率的设置以及高低温报警阈值的设置。可以在任何时候按下MENU键,然后根据实际情况按下UP或DOWN键,依次设置低温报警阈值、高温报警阈值、发射率,每次设置完按OK键退出。程序可以实现长按UP/DOWN键快速调整数值功能。3个参数都设置完成后自动进行测温。实验结果如图 15所示。

    图  15  按键设置参数实验结果
    Figure  15.  Key to set parameters experimental results

    本文研制的本质安全型红外测温仪采用MLX90614红外传感器和STM32F103C8T6处理器设计了其硬件;在Keil 5.14开发平台上,采用C语言设计了其软件,能够将测量温度显示在高亮度数码管上,并以频率量和4~20 mA电流信号输出。该测温仪外壳与MLX90614之间放置一层隔热棉,以保证MLX90614感温准确,MLX90614辐射角度为10,覆盖物体面积更小,使测温准确度得到了保证,测温范围宽-20℃~380℃,分辨率高,测温准确,温度测量精度为±0.5℃;非接触测量,不易损坏,可靠性高。

计量
  • 文章访问数:  69
  • HTML全文浏览量:  15
  • PDF下载量:  13
  • 被引次数: 0
出版历程

目录

/

返回文章
返回
x 关闭 永久关闭