APP下载

基于光全反射原理的乳化液浓度检测系统设计

2017-03-31陈义李鸿

软件导刊 2016年8期

陈义+李鸿

摘 要:为满足乳化液浓度检测精度的要求,针对当前乳化液浓度过高或过低对仪器设备造成损害等问题,提出一种利用光全反射原理测量乳化液浓度的检测系统。利用主控芯片MSP430F149检测CCD图像传感器明暗分界面处的像元值,用此像元值代替乳化液折射率,同时利用测温电路采集乳化液温度,在主控芯片中利用像元值、温度二者与浓度的关系,采用线性插值法得到所测乳化液浓度最逼近的值,并在液晶屏上显示出来,从而达到实时、精确、智能检测乳化液浓度的目的。

关键词关键词:乳化液浓度;浓度检测;光全反射;CCD

DOIDOI:10.11907/rjdk.161948

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2016)008-0130-04

0 引言

乳化液作为一种金属加工液,在工业领域有着广泛应用,其浓度对于以其为介质的设备正常运行和使用寿命有着重要影响。目前,国内外有多种检测乳化液浓度的方法,其中破乳法是一种比较早的乳化液浓度检测方法,主要是在油水上下分离后,依据油和水的比例进行浓度测定,然而此方法精度低、有时间差,不能反映实时的乳化液浓度;光透检测法是根据瑞利散射规律来测量液体浓度,当入射光强恒定时,只要测出透射光强即可唯一确定乳化液浓度[1];比重法是根据水和乳化油密度不同的原理来测量乳化液浓度,其中比较著名的是丹麦U型管浓度計测量法,但其造价昂贵,不适合工业环境应用;超声波检测法有超声波衰减法和超声波声速法,文献[2]利用超声波的衰减机理研究了超声波衰减量与高水基液体浓度的关系[2],在一定条件下,超声波穿过液体的衰减量与其浓度成比例关系,从而可以用衰减量来测量液体浓度,但是此方法在浓度大时线性差,应用范围受到限制。超声波声速法则是研究了超声波声速与液体浓度的关系[3],声波在溶液当中的传播速度与液体浓度、温度和压力之间有一定数学关系,利用此关系得到的拟合关系式可以计算出乳化液浓度,但是此方法受乳化液中气泡、杂质等因素影响较大;折光法是依据光的全反射原理对乳化液浓度进行测量,不同浓度的乳化液在不同温度下有着不同的折射率,乳化液浓度、温度和折射率有一定的函数关系,通过测量处于全反射临界光线处的临界角来计算被测量乳化液的折射率,从而得到乳化液浓度。此方法原理简单、重复稳定性高,但主要属于离线检测应用,同时精度受限于人为因素。本文提出利用光的全反射原理结合电子自动化技术来达到实时、精确检测乳化液浓度的目的,以提高乳化液检测效率和精度。

1 检测原理

光线从光密介质入射到光疏介质,当入射角等于或大于临界角时,光会发生全反射现象;而当入射角小于临界角时,入射光有一部分被反射,剩余部分则会被折射进入光疏介质中,如图1所示。

图1中,a、b、c为3条入射光线,从光密介质入射到光疏介质中,a1、b1、c1分别为对应的3条入射光线a、b、c的反射光线,a2为入射光线a的折射光线。α为全反射的临界角,所以入射光线b、c被全反射,而入射光线a发生折射,既有反射光线a1,又有折射光线a2。依据光学知识,光线发生折射时只有大约10%的光线被反射,大部分光被折射,显然a1的光强要远小于b1和c1。依据此原理可知,当光密介质不变,光疏介质发生改变时,光疏介质的折射率发生改变,光从光密介质入射到光疏介质中发生全反射的临界角α也会发生改变。文献[4]提出一种用棱镜内反射传感方法测量液体浓度,通过检测出射光的能量改变来确定溶液浓度。随着CCD图像传感技术的发展,在文献[4]的基础上,提出利用CCD图像传感器对出射光线进行采集并依据光线照射到CCD上产生明暗分界线处的像元值得到乳化液浓度的方法。图2是将三棱镜和CCD图像传感相结合的光线测量装置,其主要部分为全角度光发射系统、直角三棱镜和CCD图像传感器。全角度光发射系统发出相对于O点法线0°~90°的入射光线;三棱镜用于与乳化液接触,当入射光线照射到三棱镜的O点后,依据由乳化液折射率和三棱镜折射率(注:为满足全反射条件,所选三棱镜的折射率要大于乳化液的最大折射率)所决定的全反射临界角α,入射角大于等于临界角的入射光线会被全部反射,从三棱镜的右直角边射出,入射角小于临界角的入射光线会被折射进入乳化液中,只有部分光线被反射,从三棱镜右边的直角边射出;CCD图像传感器用于接收从三棱镜右直角边射出的光线。由于全反射光线和部分反射光线的亮度不一样,在CCD上会出现明暗不同的两个区,被测乳化液浓度的改变会改变明暗区的分界线在CCD上的位置。通过检测明暗两区分界线的位置,即可知被测乳化液的折射率,进而知道被测乳化液的浓度值。运用时可以利用像元值代替折射率,建立乳化液、温度和CCD像元值的函数模型来计算浓度值。如图2所示,其中1代表CCD的第一像元,5 000代表CCD的第5 000像元,即暗区处于低像元区,明区处于高像元区。

由于温度变化会导致乳化液的折射率变化,因此乳化液浓度是其折射率的函数,同时也是温度的函数[5]。本文用像元值代替折射率,所以浓度c、温度T和像元值N的函数关系可表示为:

c=f(N,T)(1)

因此,通过测得CCD明暗分界线处的像元值和乳化液温度,即可得到乳化液的浓度值。

2 系统硬件设计

2.1 系统整体结构

整个系统是以MSP430F149单片机为核心,主要包括主控模块、测量模块(由全角度光发射系统、三棱镜、线阵CCD、A/D转换与测温电路构成)、报警模块、液晶显示模块和电源。图3是整个检测系统的框架。

2.2 各模块原理及硬件实现

(1)主控模块:采用MSP430F149单片机,此芯片是一种16位精简指令集的单片机,具有超低功耗特性,工作电压范围为1.8~3.6V,一般电压为3.3V,指令周期为125ns,具有两个16位的定时器、60KB+256KB的闪速存储器和2KB的RAM,可串行在线编程,从而实现本设计的主控功能。

(2)测量模块:线阵CCD采用东芝公司的TCD1501D,它是一种高灵敏度、低暗电流,具有5 000个有效像元和76个虚设像元内置采样保持的线阵CCD图像传感器,工作时需要5V驱动脉冲和12V电源供电,驱动时钟的最大频率为12MHz,光谱响应范围为400nm~1 000nm,响应峰值波长为550nm(绿光)。当扫描一张A3图纸时可达到16线/mm的精度,饱和输出信号电压典型值为3V,利用其可将光信号转化成模拟电信号。由于主控芯片I/O口输出电平为3.3V左右,而TCD1501D的驱动脉冲为5V,所以可在主控芯片和TCD1501D之间加入电平转换芯片SN74LVC4245来达到驱动目的;A/D转换芯片采用AD9826,即一款专门针对CCD图像信号的16位AD转换器,此芯片单通道16位模数转换时的最大采样速率可达12.5MSPS,工作电压为5V,且自带内部基准电压,支持低功耗模式,需主控芯片发出脉冲进行驱动。为缓冲CCD电信号,将OS输出信号经过LM7171后,再把信号接入AD;测温部分采用的温度传感器为DS18B20,此传感器可全数字转换输出,采用单总线数据通信,测温范围为-55~+125℃,最高分辨率可达12位,精度可达±0.5℃,工作电压范围为+3.0~+5.5V,利用其检测乳化液温度。此模块具体电路如图4所示。

(3)显示和报警模块:液晶显示部分采用BJ12864M型号液晶屏,其分辨率为128×64,内置字库,可采用串并行两种工作方式,工作电压为+3.0~+5.5V,利用其显示乳化液的浓度和温度等值;报警模块采用HYT-1212B蜂鸣器,其工作电压为12V,通电时可产生2 600Hz左右的蜂鸣振荡声响。当检测的乳化液浓度超出规定值范围时,系统会驱动蜂鸣器,使其发出声音进行提示。

(4)电源:系统各个模块中器件的供电电压不同,例如:MSP430F149供电电压是3.3V直流,TCD1501D的供电电压是12V,AD9826是5V直流供电。综合可知,有3.3V、5V和12V三种电压,所以系统采用伊莱科S-25-12开关电源供电,用LM2940提供5V电压作为二级供电输出,再使用LM1117-3.3V降压至3.3V作为三级电压输出。

3 系统软件设计

考虑检测系统所要实现的功能,主要根据以下4点进行软件设计:①系统中主控模块和其它各个模块的初始化;②TCD1501D和AD9826的驱动时序;③AD转换、温度采集、液晶显示和报警;④数值处理。

首先对系统各个模块进行初始化,启动测量程序后开启定时器中断;然后依据测量要求,主控MSP430F149对TCD1501D和AD9826进行实时驱动,同时读取AD9826数字输出引脚D0~D7的转换结果;之后驱动DS18B20并从其DQ引脚读取温度转换值,依据所测的AD信号值和温度值,结合线性插值法得到乳化液浓度值;判定多次测量后误差值是否达到要求,没有达到则继续进行测量;测量误差值达到要求后,驱动液晶屏显示所测浓度和温度值;之后检测浓度值是否超限,若超限则驱动蜂鸣器进行报警提醒,并停止测量,如果浓度值没有超限,则继续进行下一次测量。图5为系统整体程序流程。

4 实验部分

4.1 实验原理验证

为验证设计的系统对乳化液浓度检测原理的正确性,利用搭建的系统分别对浓度为1%、2%和3%的乳化液进行检测。将乳化液温度加热到50℃以上后使之自然冷却,通过单片机算法分别推算得到冷却过程中不同温度下线阵CCD上明暗分界线的位置。结合图2可知,被测乳化液折射率越大,明暗分界线在CCD上所处的像元位置则越高。实验时,将3组不同浓度的乳化液分别从50℃开始降温,按不等温度间隔进行测量,得出每一浓度所对应不同温度下CCD明暗分界面的像元值,如图6所示。

从图6可以分析出,在同一浓度下,温度发生变化会导致CCD的像元值发生变化,其基本呈线性关系,从而可以推知温度的变化对乳化液折射率的影响基本呈线性关系。

4.2 数值处理

本文设计的检测系统可以依据光学原理、相关公式和光源、三棱镜、线阵CCD的位置关系得出线性CCD上明暗区的分界线位置与乳化液折射率的精确对应关系,在建立折射率—浓度—温度模型的过程中可以跳过折射率,直接由全反射角处的光线在CCD上的位置来代替折射率。本设计采用插值法得出乳化液浓度。根据实际应用情况设置测量浓度范围0%~6%,分别对浓度为0%、1%、2%、3%、4%、5%、6%的7种乳化液进行实验测量,利用酒精灯将乳化液的温度加热50℃后自然冷却到20℃,每隔1℃利用从单片机得到的值推算全反射角处的光线在CCD上的位置N。7種乳化液可以得到7组数据N0(T)、N1(T)、N2(T)、N3(T)、N4(T)、N5(T)、N6(T),T为乳化液温度,每组数据记录了同一浓度下的乳化液在不同温度下的像元值。检测乳化液浓度时,假设测得的温度为Tx,CCD上交界线为Nx时,根据单片机内存储的CCD像元值数组,即可算出与实际测得的Nx最接近的数据N,若Ni(T)

使用以上方法进行重复计算,直到计算得出满足误差要求的浓度值。

4.3 系统测试

为对系统进行准确性测试,分别在20℃、30℃、40℃的温度条件下,用设计的系统测量预先配好的浓度为0%、0.5%、1.0%、1.5%、2.0%、2.5%、3.0%、3.5%、4.0%、4.5%、5.0%、5.5%、6.0%的乳化液浓度值,结果如表1所示。从表1可以分析出,系统测量浓度值的绝对误差不超过±0.3%,因而系统能比较精确地实现乳化液浓度检测。

5 结语

本文设计的以高性能MSP430F149芯片作为主控芯片的乳化液检测系统,可保证数据采集的准确性和高效率。所采用的测量方法原理简单,但可完全满足检测要求。经实验验证,系统准确可靠,具有很高的实用价值。

参考文献:

[1]顾德英,孙孝琴.采用红外透光技术的乳化液自动监测系统[J].电测与仪表,1998,35(2):43-44.

[2]王正良,楼风笑,赵四海.高水基传动介质质量在线检测与控制理论的研究[J].机床与液压,1995(3):138-141.

[3]朱士明.提高声时测量精度的过零检测数字平均法[J].声学技术,1990(3):36-39.

[4]张梅,张季熊.用棱镜内反射传感方法测量液体浓度[J].华南理工大学学报:自然科学版,2002,30(12):77-79.

[5]GARCA-VALENZUELA A, PE L A-GOMAR M, GARCA SEGUNDO C, et al. Dynamic reflectometry near the critical angle for high resolution sensing of the index of refraction[J]. Sensors and Actuators B,1998(52):236-242.

[6]王铁流,李宗方,陈东升. 基于STM32的 USB 数据采集模块的设计与实现[J].测控技术,2009,28(8):37-40.

[7]尚学军,何明一,王军良. 基于线阵 CCD 的光斑定位算法研究[J].激光与红外,2008,38(7):730-731.

[8]吕利强,李文英. 矿用乳化液浓度自动检测方法的研究[J].流体传动与控制,2009(4):55-58.

(责任编辑:黄 健)