传感技术学报
CHINESEJOURNALOFSENSORSANDACTUATORS
Vol.24No.10Oct.2011
TheResearchandDesignofIntelligentSensorSystemBasedonBPNetwork*
CUIJingya,LVHuimin*,CHENGSai
(DepartmentofAppliedphysics,Xi’anUniversityofTechnology,Xi’an710048,China)
Abstract:AnintelligenthighprecisionsensorwasdesignedbycombiningSTM32F101C8microprocessorwithμC/
OS-Ⅱoperatingsystem,meanwhile,thecorrespondinghardwarestructureandsoftwaredesignweregiven.ByusingBPneuralnetwork,twotargetparameters,pressureandtemperature,weremadedothedatacombinationtoreducethesensitivityofcross-interference.Theresultsshowthatthesensorcanmeetthereal-timedemandundermultitask,andgettheperformancemoreaccurate,stableandreliable.Keywords:pressuresensor;BPnetwork;μC/OS-Ⅱ;STM32F101C8EEACC:1295;7230
doi:10.3969/j.issn.1004-1699.2011.10.011
基于BP网络的智能压力传感器系统研究与设计
*
程崔静雅,吕惠民,
*
赛
(西安理工大学应用物理系,西安710048)
摘要:将STM32F101C8微处理器与μC/OS-Ⅱ操作系统相结合,设计出了一种高精度智能传感器系统,给出了相应的硬件
结构和软件设计。利用BP神经网络对压力和温度两个目标参量进行数据融合处理,减小了两者相互交叉干扰敏感度。实测结果显示该传感器能满足多任务下的实时性要求,并具有更加精确、稳定、可靠的性能。
关键词:压力传感器;BP神经网络;μC/OS-Ⅱ;STM32F101C8
文献标识码:A文章编号:1004-1699(2011)10-1426-05中图分类号:TP24
压力的测控在现代工业自控环境中广泛应用,
涉及水利水电、铁路交通、智能建筑、航空航天、军工等众多行业。随着通讯技术和计算机技术的发展,智能压力传感器技术的发展相对滞后,呈现出“头
[1]脑(计算机)发达,感觉(传感器)迟钝”的现象。为了提高测量精度,如何抑制压力传感器对温度的
[5,7-8]
,提高压力测量的精度但是忽略了温度测量的
准确,且收敛速度慢。本智能传感器系统针对压力
和温度相互交叉干扰的问题,利用BP神经网络的Levenberg-Marquardt算法提高了网络收敛速率以及温度和压力两个参量的测量精度,同时在μC/OS-Ⅱ操作平台上,将BP网络融合算法嵌入到STM32F101C8微处理器中,实现显示、报警、与PC机通信等功能,使功能更加完善。
交叉敏感性是亟待解决的核心问题
[2]
。
压力传感器的工作原理已经基本定型,通过发
[3]
现新的特殊敏感材料来提高性能已经很困难。目前,国内外常用的解决方法基本有两种:一种是硬件法,但硬件电路大都存在电路复杂、精度低、成本高等缺点
;另一种是软件法,此类方法是将微处理器与传感器结合起来,利用丰富的软件功能、结合
[4]
1智能压力传感器的硬件设计
硬件电路的系统方框图如图1所示。
一定的算法对参量进行数据融合,主要有回归法、最小二阶乘法、神经网络、小波等,其中神经网络具有层次性、联想记忆和并行处理等优点,应用前景良[5-6]
。近几年,好相关文献中多选用BP神经网络来
项目来源:陕西省教育厅基金项目(09JK636)
收稿日期:2011-06-01修改日期:2011-07-16
图1
硬件电路系统方框图
第10期1.1
测量单元
吕惠民等:基于BP网络的智能压力传感器系统研究与设计崔静雅,
1427
传感器选用的是JCY-101型硅压阻式压力传
感器,其内部电路是由四个压敏电阻组成的全桥差动电路,如图2所示。为了提高恒流特性,本设计采用反馈改进型的恒流源为其供电。测量过程使用“一桥二测”D两端输出电压UP技术,其中,电桥B、
C两端输出电压Ut为温为压力参量的输出信号;A、度参量的输出信号
[9]
A/D在此智能传感器系统中,微处理器启动时,
转换芯片等功能开始自检。如有故障,显示哪一原件出错,以便操作人员及时处理;如正常,则对系统初始化。一切就绪后,采集目标参量,进行数据处理及BP融合,并将输出结果显示出来。同时与PC机通信,将测试结果送入PC机,以得到更详细的处理。
2.1利用BP神经网络进行数据融合
JCY-101型压力传感器为两功能传感器,可以测量压力和温度两个目标参量,但相互存在交叉敏感度。因此本系统采用BP神经网络对输出信息进行数据融合处理,进而提高目标参量的测量精度。
(1)样本库的建立
30,40,50,60,70℃)压力在不同的温度T(20,P(0,1,2,3,4,5)×104Pa下,对CYJ-101压力传感器的静态输入-输出特性进行标定,得到36组二维实验
0~5×104Pa范围内的数据标定表。取20℃~70℃、
。
图2JCY-101型硅压阻式压力传感器原理图30组数据作为训练样本,其余6组作为测试样本。由于神经网络输入输出数值应为归一化数值,分别用式
(1)和式(2)对样本数据和目标数据进行归一化处
[11]
理,建立神经网络输入输出标准样本库。
Xi-Ximin
珔X=(i=1,2)i
Ximax-Ximin
1.2
主控制器STM32F101C8及其外围电路
STM32F101其内部使用高性能的ARMCortex-M3
32位的RISC内核,工作频率为36Hz,内置高速存储器,具有丰富的增强型外设。其工作电压为2.0V~3.6V,ADC使用一个独立的为了提高转换的精确度,电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。
PA.5、PA.6作为3本设计中,将芯片的PA口的PA.4、路信号输入用到其中一路输入压力信号,一路输入温
度信号,一路接地,此接地电路可配合相应的软件来降低温漂和系统误差;实时时钟采用12MHz的时钟晶振和32.768kHz的低速外部晶振源;PA.8(USART1_TX)和PA.9(USART1_RX)外接一片MAX488进行电平转换,进行与PC的串口通信,对采集到的有效的压力和温度信号实现远程和实时监测控制;4个按键开关分别
PA.11、PB.6、PB.7,接到STM32F101C8的PA.10、作为预置压力、调节上、下限,开始工作的输入端;将采集到
的实时数据、来自键盘的设定压力值送入液晶显示器CM12864显示。
(1)(2)
珔Yi=
0.9(Yi-Yimin)
+0.05
Yimax-Yimin
(i=1,2)
珔珔Yi为第i个传感器输入输出归一化值,Xi、式中:Xi、
Ximin、Ximax、Yimin、Yimax分Yi为传感器的输入输出值,
别对应第i个传感器输入输出的最大值和最小值。
(2)BP网络模型的建立
BP神经网络是一种按误差逆传播算法训练的多层前馈网络,针对通常BP网络在使用中存在的收敛速度慢,容易陷于局部极小值等缺点,采用Lev-enberg-Marquardt算法对样本数据进行融合[12]。设输出层的3层网络,输入计一种包括输入层、隐层、
层和输出层的2个节点分别对应于压力信号和温度信号的输入输出,隐层节点数为6,两层间的传递函数分别为双曲正切S型函数tansig和纯线性函数pureline。
Xt)与隐层之间的权值矩阵为输入层X(XP,
W1,Yt)之间的阀值矩阵为b1,隐层和输出层Y(Yp,
阀值矩阵为b2,则输入层与输出层权值矩阵为W2,
之间的关系表达式为:
Y=pureline(W2tansig(W1X+b1)+b2)
(3)BP网络训练
利用函数trainlm对BP网络训练
[13]
2智能压力传感器的软件设计
目前,商用的嵌入式操作系统开发成本昂贵且
大部分不提供源代码,并不适合小型系统的开发。而μC/OS-Ⅱ相对于其它操作系统具有源码公开、移植性强、代码可裁减等特点,比较适合用于仪用仪表的内嵌微控制器。考虑这些特点,选用μC/OS-Ⅱ作为嵌入式实时操作系统,克服了过去单任务顺序机制,增强系统安全与稳定性
[10]
(3)
。
,得到权值
1428
传感技术学报www.chinatransducers.com
第24卷
利用和阈值的最优值。当训练误差取0.00001时,
MATLAB神经网络工具箱构建BP网络,部分程序如下:
net=newff(minmax(p),[62],{‘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网络能很好的解决传感器信号交叉敏感问题。2.2
μC/OS-Ⅱ的移植
在STM32F101C8上移植μC/OS-Ⅱ系统,移植
OS_CPU_A.ASM和的主要工作集中在OS_CPU.H、
OS_CPU_C.C这3个文件中,主要设计堆栈初始化、
任务上下文切换、中断挂接和数据类型定义几个方面,这些均与STM32F101C8微处理器的ARM内核
[14]
硬件紧密相关。2.3
软件开发流程
W2)和阈值将训练好的BP神经网络权值(W1、
b2)以适当的数组方式存入STM32F101C8处理(b1、
器的Flash存储器中,根据BP网络的融合算法,编写出基于C语言的BP网络融合算法程序,程序在μC/OS-Ⅱ中以任务的方式运行,本系统由如图4中8个任务来实现,优先权(Prio)的设置由各任务的执行顺序以及对系统安全性影响的大小决定。每个任务函数都是一个无限循环程序,并处于
[15]
以下五种状态之一:休眠态、就绪态、运行态、挂起态和被中断态。在无限循环中调用实现某些功能的应用程序函数,然后按设计需求设置挂起方式和挂起时间。系统整体软件流程图如图4所示,系统初始化后便建立各个运行任务,启动多任务调度机
图3网络的误差曲线
制,在各个信号的协调下有序运行。
图4系统整体流程图
3
3.1
测试结果分析
系统输出值评估标准
压力和为了研究BP神经网络数据融合前后,
信号温度灵敏度系数、零点温漂系数和温度信号压
力灵敏度系数对系统进行评估。
(1)传感器压力信号的温度灵敏度系数
αs=
Δym·Y(FS)ΔT
(4)
温度两个目标参量的交叉干扰敏感度,分别用压力
第10期吕惠民等:基于BP网络的智能压力传感器系统研究与设计崔静雅,
1429
式中:ΔT为工作温度变化范围;Y(FS)为传感器压
力信号的满量程输出值;Δym为当温度变化ΔT时,输出值随温度漂移的最大值。当温度在21.5℃~70℃范围变化时,未经过BP网络融合的传感器输出Y(FS)=83.36mV,Δym=83.36-73.28=10.8
-3mV,计算出αs=2.49×10/℃。
融合处理后的传感器压力信与未融合前相比,
号温度灵敏系数、零点温漂系数和温度信号压力灵敏度系数降低明显,均在一个数量级以上。这说明采用BP神经网络信息融合技术消除传感器交叉敏感现象是十分有效的,达到了信息融合的要求。
(2)传感器压力信号的零点温漂系数
·Ufs)(5)α0=ΔU0m/(ΔT
式中:ΔT为工作温度变化范围;Ufs为传感器压力信号满量程输出值;ΔU0m为在工作温度变化ΔT时,传感器压力信号的零点漂移最大值。同理,温度在21.5℃~70℃范围变化时,未经过BP网络融合的传感器ΔU0m=(-7.72)-(-13.84)=输出Ufs=83.36mV,
-36.12mV,则α0=1.51×10/℃。
4结论
本智能传感器系统针对压力和温度相互交叉干
利用BP神经网络技术提高了温度和压扰的问题,
力两个参量的测量精度,并给出了相应的硬件结构
和软件设计。实测结果显示该传感器能满足多任务下的实时性要求,并具有更加精确、稳定、可靠的性能。
(1)采用Levenberg-Marquardt算法构建了BP
神经网络模型,经检验该网络收敛速度快、精度高、
(3)传感器温度信号的压力灵敏度系数
αP=
Δym
·Y(FS)ΔP
(6)
具有较强的适应能力和联想能力。BP网络融合后
的输出值无需查表,节省内存空间。(2)基于μC/OS-Ⅱ操作平台上,将BP网络融合算法嵌入到STM32F101C8微处理器中,并实现了显示、报警、与PC机通信等功能。通过对融合前后压力信号温度灵敏度系数、零点温漂系数和温度信号压力灵敏度系数相对比,该系统能完善地、精确地反映检测对象,提高信息融合的质量,满足现代自动化设备需求。参考文献:
.[1]赵大庆,吴敏生,等.模仿人体的智能传感器设想[J]范锦鹏,
2002,21(8):17-22.传感器技术,
[2]张耀锋,刑晓辉.基于人工神经网络的压力传感器的孙以材,
.电子学报,2008,36(2):358-361.温度补偿[J]
[3]FutaneNP,RoyChowdhuryS,RoyChaudhuriC,etal.Analog
ASICforImprovedTemperatureDriftCompensationofAHighSensitivePorousSiliconPressureSensor[J].AnalogIntegratedCircuitsandSignalProcessing,2011,67(3):383-393.
[4]刘新月,孙以材.压力传感器温度漂移补偿的控制电吕增良,
.传感技术学报,2007,20(3):567-569.路设计[J]
[5]高峰,胡彦奎.基于BP神经网络的传感器交叉敏感性董海鹰,
4
式中:ΔP为工作压力变化范围,取5×10Pa;Y(FS)为传感器温度信号满量程输出值;Δym为当压力变化
ΔP时,输出值随压力漂移的最大值。未经过BP网
Y(FS)=86.12mV,络融合处理时,Δym=86.12-
-24
80.45=5.67mV,则αP=1.32×10/10Pa。
3.2
系统输出结果及评估
经BP神经网络融合、逆归一化处理后,传感器输
出值无需查表,节省了大量内存,压力信号和温度信号
Y(FS)=5×104Pa,输出分别见表1、表2。根据式(4),
4
Δym=5.018-4.945=0.073×10Pa,则融合后传感器压-4
力信号的温度灵敏度系数αs=3.01×10/℃。根据式4
(5),Ufs=5×104Pa,ΔU0m=0.006-0.003=0.003×10Pa,
经过BP网络融合后的压力信号零点温漂系数α0=Y(FS)=70℃,1.24×10-5/℃。由式(6),Δym=70.427-69.322=1.105℃,经过BP网络融合后温度信号的压
-44
力灵敏度系数αP=1.32×10/10Pa。
表1
温度标定值/℃21.5447000.0030.0050.006压力信号测试结果1压力标定值/10Pa2344
54.9454.9525.0182005,24(2):22-26.抑制[J].传感器技术,
[6]DuZM,JinXQ,YangYY.FaultDiagnosisforTemperature,Flow
RateandPressureSensorsinVAVSystemsUsingWaveletNeuralNetwork[J].AppliedEnergy,2009,86(9):1624-1631.
[7]XiaoZ,YeSJ,ZhongB,etal.BPNeuralNetworkwithRoughSet
forShortTermLoadForecasting[J].ExpertSystemswithApplica-tions,2009,36(1):273-279.
1.0041.0111.0151.9731.9761.9842.9762.9902.9933.9783.9824.009表2
压力标定值/10Pa1354
温度信号测试结果28温度标定值/℃3444507021.5[8]邵军,刘君华,乔学光,等.利用BP神经网络提高光纤光栅压力
J].传感技术学报,2007,20(7):1531-1534.传感器的选择性[
.西安:西安电子科技大学出版[9]刘君华.智能传感器系统[M]
2010,221-224.社,
21.50827.93033.85443.83249.85070.42721.46827.85433.64143.77849.77169.75021.45127.78533.49343.64349.70269.3221430
传感技术学报www.chinatransducers.com
第24卷
[10]邱宝梅,王建文.嵌入式机载摄影稳定平台的设计[J].仪器仪
2009,30(9):1981-1984.表学报,
[11]何平,孙以材,等.压力传感器温度漂移补偿的RBF网潘国峰,
.仪器仪表学报,2008,29(3):572-576.络模型[J]
[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.
崔静雅(1986-)女,西安理工大学理学院应用物理系硕士研究生,研究方向为智能传感器系统设计,
cjyhjw@yahoo.cn;程赛(1987-)男,西安理工大学理学
院应用物理系硕士研究生,研究方向为智能传感器系统设计,chengsai151141@163.com。
吕惠民(1962-)男,西安理工大学理学院应用物理系教授,硕士研究生导师,研究方向主要为传感器系统设计和Ⅲ-Ⅴ半导体纳米材料性能研究,lvhuimin618@yahoo.com.cn;
因篇幅问题不能全部显示,请点此查看更多更全内容