基于BP网络的智能压力传感器系统研究与设计*

2011-10-20 10:54崔静雅吕惠民
传感技术学报 2011年10期
关键词:神经网络系数传感器

崔静雅,吕惠民,程 赛

(西安理工大学应用物理系,西安 710048)

压力的测控在现代工业自控环境中广泛应用,涉及水利水电、铁路交通、智能建筑、航空航天、军工等众多行业。随着通讯技术和计算机技术的发展,智能压力传感器技术的发展相对滞后,呈现出“头脑(计算机)发达,感觉(传感器)迟钝”的现象[1]。为了提高测量精度,如何抑制压力传感器对温度的交叉敏感性是亟待解决的核心问题[2]。

压力传感器的工作原理已经基本定型,通过发现新的特殊敏感材料[3]来提高性能已经很困难。目前,国内外常用的解决方法基本有两种:一种是硬件法,但硬件电路大都存在电路复杂、精度低、成本高等缺点[4];另一种是软件法,此类方法是将微处理器与传感器结合起来,利用丰富的软件功能、结合一定的算法对参量进行数据融合,主要有回归法、最小二阶乘法、神经网络、小波等,其中神经网络具有层次性、联想记忆和并行处理等优点,应用前景良好[5-6]。近几年,相关文献中多选用BP神经网络来提高压力测量的精度[5,7-8],但是忽略了温度测量的准确,且收敛速度慢。本智能传感器系统针对压力和温度相互交叉干扰的问题,利用BP神经网络的Levenberg-Marquardt算法提高了网络收敛速率以及温度和压力两个参量的测量精度,同时在μC/OS-Ⅱ操作平台上,将 BP网络融合算法嵌入到STM32F101C8微处理器中,实现显示、报警、与PC机通信等功能,使功能更加完善。

1 智能压力传感器的硬件设计

硬件电路的系统方框图如图1所示。

图1 硬件电路系统方框图

1.1 测量单元

传感器选用的是JCY-101型硅压阻式压力传感器,其内部电路是由四个压敏电阻组成的全桥差动电路,如图2所示。为了提高恒流特性,本设计采用反馈改进型的恒流源为其供电。测量过程使用“一桥二测”技术,其中,电桥B、D两端输出电压UP为压力参量的输出信号;A、C两端输出电压Ut为温度参量的输出信号[9]。

图2 JCY-101型硅压阻式压力传感器原理图

1.2 主控制器STM32F101C8及其外围电路

STM32F101其内部使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为36 Hz,内置高速存储器,具有丰富的增强型外设。其工作电压为2.0 V~3.6 V,为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。本设计中,将芯片的PA口的PA.4、PA.5、PA.6作为3路信号输入用到其中一路输入压力信号,一路输入温度信号,一路接地,此接地电路可配合相应的软件来降低温漂和系统误差;实时时钟采用12 MHz的时钟晶振和32.768 kHz的低速外部晶振源;PA.8(USART1_TX)和PA.9(USART1_RX)外接一片MAX488进行电平转换,进行与PC的串口通信,对采集到的有效的压力和温度信号实现远程和实时监测控制;4个按键开关分别接到STM32F101C8 的 PA.10、PA.11、PB.6、PB.7,作为预置压力、调节上、下限,开始工作的输入端;将采集到的实时数据、来自键盘的设定压力值送入液晶显示器CM12864显示。

2 智能压力传感器的软件设计

目前,商用的嵌入式操作系统开发成本昂贵且大部分不提供源代码,并不适合小型系统的开发。而μC/OS-Ⅱ相对于其它操作系统具有源码公开、移植性强、代码可裁减等特点,比较适合用于仪用仪表的内嵌微控制器。考虑这些特点,选用μC/OS-Ⅱ作为嵌入式实时操作系统,克服了过去单任务顺序机制,增强系统安全与稳定性[10]。

在此智能传感器系统中,微处理器启动时,A/D转换芯片等功能开始自检。如有故障,显示哪一原件出错,以便操作人员及时处理;如正常,则对系统初始化。一切就绪后,采集目标参量,进行数据处理及BP融合,并将输出结果显示出来。同时与PC机通信,将测试结果送入 PC机,以得到更详细的处理。

2.1 利用BP神经网络进行数据融合

JCY-101型压力传感器为两功能传感器,可以测量压力和温度两个目标参量,但相互存在交叉敏感度。因此本系统采用BP神经网络对输出信息进行数据融合处理,进而提高目标参量的测量精度。

(1)样本库的建立

在不同的温度T(20,30,40,50,60,70 ℃)压力P(0,1,2,3,4,5)×104Pa 下,对 CYJ-101 压力传感器的静态输入-输出特性进行标定,得到36组二维实验数据标定表。取20℃ ~70℃、0~5×104Pa范围内的30组数据作为训练样本,其余6组作为测试样本。由于神经网络输入输出数值应为归一化数值,分别用式(1)和式(2)对样本数据和目标数据进行归一化处理,建立神经网络输入输出标准样本库[11]。

(2)BP网络模型的建立

BP神经网络是一种按误差逆传播算法训练的多层前馈网络,针对通常BP网络在使用中存在的收敛速度慢,容易陷于局部极小值等缺点,采用Levenberg-Marquardt算法对样本数据进行融合[12]。设计一种包括输入层、隐层、输出层的3层网络,输入层和输出层的2个节点分别对应于压力信号和温度信号的输入输出,隐层节点数为6,两层间的传递函数分别为双曲正切S型函数tansig和纯线性函数pureline。

输入层X(XP,Xt)与隐层之间的权值矩阵为W1,阀值矩阵为b1,隐层和输出层Y(Yp,Yt)之间的权值矩阵为W2,阀值矩阵为b2,则输入层与输出层之间的关系表达式为:

(3)BP网络训练

利用函数trainlm对BP网络训练[13],得到权值和阈值的最优值。当训练误差取0.000 01时,利用MATLAB神经网络工具箱构建BP网络,部分程序如下:

net=newff(minmax(p),[6 2],{‘tansig’,‘purelin’},‘trainlm’);%创建BP神经网络和定义训练函数以及参数,隐层神经元数量为6,输出层数量为2

net.trainParam.goal=0.00001;%目标精度设置

net.trainParam.epochs=2000;%最大迭代次数

[net,tr]=train(net,p,t);% 训练神经网络

y=sim(net,p);% 拟合检验

网络的误差曲线如图3所示,由此图可见,该网络算法收敛速度快,只经过了115次迭代便得到目标误差要求。根据欧式范数理论,对原训练样本进行拟合检验,样本逼近误差为0.0203,网络性能完全可以满足控制要求。此外,为了检验构建的神经网络具有广泛性,用测试样本对网络进行评估,通过与目标值相比较,得到网络误差为0.0379,这表明神经网络具有广泛的适应能力和学习能力,构建的BP网络能很好的解决传感器信号交叉敏感问题。

图3 网络的误差曲线

2.2 μC/OS-Ⅱ的移植

在STM32F101C8上移植μC/OS-Ⅱ系统,移植的主要工作集中在OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C这3个文件中,主要设计堆栈初始化、任务上下文切换、中断挂接和数据类型定义几个方面,这些均与STM32F101C8微处理器的ARM内核硬件紧密相关[14]。

2.3 软件开发流程

将训练好的BP神经网络权值(W1、W2)和阈值(b1、b2)以适当的数组方式存入STM32F101C8处理器的Flash存储器中,根据BP网络的融合算法,编写出基于C语言的BP网络融合算法程序,程序在μC/OS-Ⅱ中以任务的方式运行,本系统由如图4中8个任务来实现,优先权(Prio)的设置由各任务的执行顺序以及对系统安全性影响的大小决定。

每个任务函数都是一个无限循环程序,并处于以下五种状态[15]之一:休眠态、就绪态、运行态、挂起态和被中断态。在无限循环中调用实现某些功能的应用程序函数,然后按设计需求设置挂起方式和挂起时间。系统整体软件流程图如图4所示,系统初始化后便建立各个运行任务,启动多任务调度机制,在各个信号的协调下有序运行。

图4 系统整体流程图

3 测试结果分析

3.1 系统输出值评估标准

为了研究BP神经网络数据融合前后,压力和温度两个目标参量的交叉干扰敏感度,分别用压力信号温度灵敏度系数、零点温漂系数和温度信号压力灵敏度系数对系统进行评估。

(1)传感器压力信号的温度灵敏度系数

式中:ΔT为工作温度变化范围;Y(FS)为传感器压力信号的满量程输出值;Δym为当温度变化ΔT时,输出值随温度漂移的最大值。当温度在21.5℃ ~70℃范围变化时,未经过BP网络融合的传感器输出Y(FS)=83.36 mV,Δym=83.36-73.28=10.8 mV,计算出 αs=2.49×10-3/℃。

(2)传感器压力信号的零点温漂系数

式中:ΔT为工作温度变化范围;Ufs为传感器压力信号满量程输出值;ΔU0m为在工作温度变化ΔT时,传感器压力信号的零点漂移最大值。同理,温度在21.5℃~70℃范围变化时,未经过BP网络融合的传感器输出Ufs=83.36 mV,ΔU0m=(-7.72)-(-13.84)=6.12 mV,则 α0=1.51×10-3/℃。

(3)传感器温度信号的压力灵敏度系数

式中:ΔP为工作压力变化范围,取5×104Pa;Y(FS)为传感器温度信号满量程输出值;Δym为当压力变化ΔP时,输出值随压力漂移的最大值。未经过BP网络融合处理时,Y(FS)=86.12 mV,Δym=86.12-80.45=5.67 mV,则 αP=1.32×10-2/104Pa。

3.2 系统输出结果及评估

经BP神经网络融合、逆归一化处理后,传感器输出值无需查表,节省了大量内存,压力信号和温度信号输出分别见表1、表2。根据式(4),Y(FS)=5×104Pa,Δym=5.018-4.945=0.073×104Pa,则融合后传感器压力信号的温度灵敏度系数αs=3.01×10-4/℃。根据式(5),Ufs=5×104Pa,ΔU0m=0.006-0.003=0.003×104Pa,经过BP网络融合后的压力信号零点温漂系数α0=1.24×10-5/℃。由式(6),Y(FS)=70 ℃,Δym=70.427-69.322=1.105℃,经过BP网络融合后温度信号的压力灵敏度系数 αP=1.32×10-4/104Pa。

表1 压力信号测试结果

表2 温度信号测试结果

与未融合前相比,融合处理后的传感器压力信号温度灵敏系数、零点温漂系数和温度信号压力灵敏度系数降低明显,均在一个数量级以上。这说明采用BP神经网络信息融合技术消除传感器交叉敏感现象是十分有效的,达到了信息融合的要求。

4 结论

本智能传感器系统针对压力和温度相互交叉干扰的问题,利用BP神经网络技术提高了温度和压力两个参量的测量精度,并给出了相应的硬件结构和软件设计。实测结果显示该传感器能满足多任务下的实时性要求,并具有更加精确、稳定、可靠的性能。

(1)采用Levenberg-Marquardt算法构建了BP神经网络模型,经检验该网络收敛速度快、精度高、具有较强的适应能力和联想能力。BP网络融合后的输出值无需查表,节省内存空间。

(2)基于μC/OS-Ⅱ操作平台上,将BP网络融合算法嵌入到STM32F101C8微处理器中,并实现了显示、报警、与PC机通信等功能。通过对融合前后压力信号温度灵敏度系数、零点温漂系数和温度信号压力灵敏度系数相对比,该系统能完善地、精确地反映检测对象,提高信息融合的质量,满足现代自动化设备需求。

[1]赵大庆,范锦鹏,吴敏生,等.模仿人体的智能传感器设想[J].传感器技术,2002,21(8):17-22.

[2]张耀锋,孙以材,刑晓辉.基于人工神经网络的压力传感器的温度补偿[J].电子学报,2008,36(2):358-361.

[3]Futane N P,Roy Chowdhury S,RoyChaudhuri C,et al.Analog ASIC for Improved Temperature Drift Compensation of A High Sensitive Porous Silicon Pressure Sensor[J].Analog Integrated Circuits and Signal Processing,2011,67(3):383-393.

[4]刘新月,吕增良,孙以材.压力传感器温度漂移补偿的控制电路设计[J].传感技术学报,2007,20(3):567-569.

[5]高峰,董海鹰,胡彦奎.基于BP神经网络的传感器交叉敏感性抑制[J].传感器技术,2005,24(2):22-26.

[6]Du Z M,Jin X Q,Yang Y Y.Fault Diagnosis for Temperature,Flow Rate and Pressure Sensors in VAV Systems Using Wavelet Neural Network[J].Applied Energy,2009,86(9):1624-1631.

[7]Xiao Z,Ye S J,Zhong B,et al.BP Neural Network with Rough Set for Short Term Load Forecasting[J].Expert Systems with Applications,2009,36(1):273-279.

[8]邵军,刘君华,乔学光,等.利用BP神经网络提高光纤光栅压力传感器的选择性[J].传感技术学报,2007,20(7):1531-1534.

[9]刘君华.智能传感器系统[M].西安:西安电子科技大学出版社,2010,221-224.

[10]邱宝梅,王建文.嵌入式机载摄影稳定平台的设计[J].仪器仪表学报,2009,30(9):1981-1984.

[11]何平,潘国峰,孙以材,等.压力传感器温度漂移补偿的RBF网络模型[J].仪器仪表学报,2008,29(3):572-576.

[12]杨英,唐平,王越超,等.基于LMBP改进算法的神经网络结构优化[J].计算机工程,2008,34(1):215-217.

[13]严洁,赵研,张俊利.基于BP神经网络的称重传感器静态非线性误差补偿研究[J].传感技术学报,2008,6(21):1025-1028.

[14]王骏,叶瑞源.μC/OS-Ⅱ的优化及在智能变送器中的应用[J].自动化仪表,2010,31(2):5-7.

[15]吴永明,罗海据.μC/OS-Ⅱ系统中任务调度与监控机制改进[J].计算机工程,2009,35(12):266-268.

猜你喜欢
神经网络系数传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
神经网络抑制无线通信干扰探究
“传感器新闻”会带来什么
跟踪导练(三)2
这些待定系数你能确定吗?
打雪仗
过年啦
两张图弄懂照明中的“系数”
基于神经网络的拉矫机控制模型建立