APP下载

超声测距温湿度补偿算法的研究及STM32实现

2016-12-21张喜红王玉香

海南热带海洋学院学报 2016年2期
关键词:测距湿度超声波

张喜红,王玉香

(1.亳州职业技术学院,安徽 亳州 236800;2.山东大学 控制科学与工程学院,济南250061)



超声测距温湿度补偿算法的研究及STM32实现

张喜红1,2,王玉香1

(1.亳州职业技术学院,安徽 亳州 236800;2.山东大学 控制科学与工程学院,济南250061)

为了降低超声测距系统因温、湿度差异带来的误差,在Matlab2010平台下,运用BP神经网络对标定的温、湿度样本及对应的超声波速度进行融合训练仿真实验,并将设计的补偿算法移植到STM32测距系统,测试其补偿能力.经多次测距实验表明,与现有方法相比,能有效补偿温、湿度变化引起的误差,精度提高了1个数量级.

数据融合;神经网络;超声波

0 引 言

超声测距因具有非接触测量的优点,被广泛用于各个测距领域,如汽车倒车雷达,机器人智能避障,盲人导航,物位测量等.测距的基本原理是超声波反射测量,距离可表示为L=tv/2,其中v是超声波在空气介质中的传播速度,t是从发出超声到收到回波所用时间.上述情况是假定超声波速度v不受环境影响的理想情况,然而在现实中,超声波速度会因工作环境温、湿度的变化而发生不规则性的改变.如果使用恒定的速度值进行距离计算,必然会产生较大的测量误差.基于这一情况,众多研究人员对测距结果的补偿方法开展了大量的研究,到目前为止大多是基于拟合公式的方法对速度实现温度补偿,如文献[1-2]所述.然而,在一些特殊测量环境中,湿度对测量结果的影响较大,不可忽视.基于上述现状,本文在Matlab2010平台下,基于BP神经网络研究了温、湿度误差的补偿,并在STM32上实现了本文方法的移植与测试.

1 平台及方法理论

1.1 超声测距实验系统

图1 超声测距系统框图

为了开展实验,获取实验样本的温、湿度数据,以及后续算法有效性的移植测验,搭建了如图1所示的超声测距系统.其由STM32微处理器(型号为STM32F103CZET6)、LCD液晶显示模块、超声发射模块、超声接收模块,及温、湿度测量模块构成.超声发射、接收模块电路的具体实现原理及控制方法,参见文献[3].温、湿度测量模块选取型号为SHT11的集成传感器[4],其集温、湿度测量于一体,直接输出温、湿度的测量值,且与外界采用典型的IIC总线进行数据通信,在一定程度上简化了系统硬件电路设计.SHT11可测-40℃~120℃间的温度,分辨能力高达0.01℃;可测0%~100%RH间的湿度,分辨能力高达0.03%RH.能够很好的满足超声测距温、湿度补偿实验的测定要求.

1.2 BP神经网络

图2 单层BP神经网络示意图

BP神经网络[5],即反向传播网络.它仿照人脑神经元对外部刺激信号的响应过程,构造多层感知器,采用信号正向传播和误差反向调整的学习机理,经过数次迭代计算,成功地搭建出处理非线性信息的智能化网络模型.其被广泛用于数据融合、压缩等多个领域[6-7].单层BP神经网络如图2所示,其中xj(j=1,2,…,N)为j维输入信号,Wij为对应的连接权重;ui为各输入信号与相应连接权重乘积的累加组合;θi为调节阈值;vi为经阈值调整后的值;f(·)为神经元的激励函数.其数学表达如式(1)、(2)、(3)所示:

(1)

vj=uj+θj,

(2)

yi=f(vi).

(3)

2 BP神经网络温湿度补偿算法

2.1 样本标定

使用1.1 节所设计的超声波测距系统,在空间相对较小的房间中装有加湿器与空调设备对样本数据进行标定.环境温度的改变主要通过空调辅助实现,湿度的变化通过加湿器设备辅助实现.其中10摄氏度以下的样本点在超市冷冻冰柜仓内所得,最终所标定的数据样本如表1所示,其中v由文献[1]中的公式v=331.5 +0.6 07T所求得,代表只含温度补偿的速度.vs是特定温、湿度环境下对应的速度值,由1.1 节构建的测距系统在设定的距离L下,测出从超声波发射到有超声波返回所用的时间t,经vs=2L/t公式求解所得,最终测定结果为多次测量求均值所得.从表1分析可知,在相同的温度环境,不同的湿度状态下超声波的速度值存在相对较大的差值,所以通过v=331.5 +0.6 07T拟合公式进行简单的补偿,在测距结果中将仍存在较大的误差.

表1 超声波速度标定样本值

2.2 数据融合

由表1的数据分析可知,环境温度、湿度与超声波速度间存在非线性相关性.鉴于神经网络在非线性映射关系拟合的优点,因此,将表1样本数据中温度与湿度值作为神经网络的输入,标定的超声波速度值作为神经网络的输出,构建神经网络,进行训练挖掘速度与温度、湿度之间的映射关系,将训练好的映射关系用于速度偏差补偿是可行的.在Matlab2010平台下的具体流程如下:

①构造输入输出样本数据矩阵;将表1中的数据按下式(4)格式进行存储为矩阵Ti、Ri、Vsi分别对应温度、湿度、超声波速度值,总计i=40个样本.抽取D中第1行与第2行数据为样本点作为神经网络训练输入样本(即抽取T=-30℃~30℃之间的样本为训练集),将对应的Vs值作为训练目标输出样本值.将T=40℃对应的样本点作为测试样本数据.

(4)

(5)

(6)

③创建网络并进行训练与测试;在Matlab2010平台下分别通过newff()、train()、sim()三个函依次实现创建网络、训练网络、测试网络.将训练误差参数设为0.001,不断调整网络结构及其它训练参数(如学习率、学习步长等),直到收到最好的测试效果.经过多次实验,最终确立神经网络模型如下图3所示为2-6-1结构,即输入层包含2个神经元,隐藏层包含6个神经元,输出层为一个节点;输入层→隐藏层→输出层间的传递函数分别为:logsig、purelin.网络训练函数使用:trainlm.最终输出的最值权值和阈值如下:

第一层的权值转秩矩阵为:

第一层的阈值的转秩矩阵为:

b′=[16.2 036 -1.8644 -10.0350 -0.6 967 -3.4 904 -2.9208];

第二层的阈值为:

b2=0.2 278.

2.3 算法的STM32实现

图3 构建的网络结构

由图3所示的网络结构可知网络输出的最终表达式如式(7)所示,也就是说对于某一归一化后的温、湿度样本输入对(x1,x2)而言,代入图3所示网络的输出值为y,即为当前环境下超声波速的归一化值.将代入式(8)所示的归一化的逆运算式,便可求解出当前环境下的超声波速度Vs.其中logsig(·)函数的数学式如式(9)所示.

(7)

(8)

(9)

根据上述分析可知,基于STM32平台下,用C语言编写如下关键代码,实现了超声波速度的随环境温、湿度变化的实时校准.

#include ;//包含数学公式头文件,以便调用相应的数学公式

#define Vs_max 442.5 ;//速度最大值

#define Vs_min 175.3 ;//速度最小值

long double B1_TH[6]={ 16.2 036,-1.8644,-10.0350,-0.6 967,-3.4 904,-2.9208 };//第一层的阈值

long double B2_TH= 0.2 278;//第二层的阈值

long double w_x1[6]={ -7.0707,-1.7725,6.8314,9.5 295,-10.8993,11.6 864};//温度权值

long double w_x2[6]={ -11.8215, 13.5 721,12.2 470, -9.5 793,7.8985, 6.6 588};//湿度权值

//求神经网络输入权值、阈值加权累加和

long double net_sum(long double x1; long double x2;)

{ u8 i; long double net_sum; for(i=0;i<6;i++) { net_sum=+(( w_x1[i]*x1+ B1_TH[i])+ ( w_x2[i]*x1+ B1_TH[i])); } return net_sum;

}

//logsig(·)函数的实现

long double logsig(long double x)

{

long double y;

y=1/(1+exp(x));//exp()为库中的求取幂函数

return y;

}

//求当前环境下的超声波速度Vs

Vs=((logsig(sum)+ B2_TH)-0.05)*( Vs_max- Vs_min)/0.9+ Vs_min.

3 实验结果与分析

在keil4.0环境下,先后将常用的温度拟合公式补偿测距程序与本文算法设计的测距程序编译后,烧录到1.1 小节所设计的STM32测距仪中,在不同温、湿度环境下进行测试对比.如表2所示,给出了测距标定值为5 m,温度T=25℃(偏差小于±1℃),湿度RH分别为0%~80%的测距对比结果(湿度偏差小于±1%).从结果来看,温度拟合公式补偿方法在相同温度下,当湿度增加时误差显著增大,而BP网络融合补偿方法误差幅度变化不是很明显.温度拟合公式补偿方法,最小误差为:0.098 m;最大误差可达:0.2 91 m;误差数量级达10-2.BP网络融合补偿的最小误差为:0.001;最大误差为:0.005;误差数量级达10-3.BP网络融合补偿方法将误差范围缩小一个数量级.在快速改变测试障碍物距离时,温度拟合公式补偿方法能实时更新显示当前距离,BP网络融合补偿方法无法实时更新显示当前距离,存在滞后的情况.原因是温度拟合公式补偿方法运算较为简单,STM32硬件平台能胜任运算需求.BP网络融合补偿方法的运算相对复杂且代码未做优化,运算复杂之处主要体现在运算过程中存在大量的权值浮点乘运算.为了满足动态测量的实时要求,在程序优化的过程中,按BP网络融合补偿方法,事先将各个关键温湿度点对应的超声波速度求得,存储于系统的flash中,在测量时采用查表法获得,并参与运算.实验结果表明优化后的程序误差与未优化前相当,并可满足障碍物快速移动的测试情况.

表2 温度T=25℃时不同湿度下的结果对比

4 结论

从对比实验结果分析可知,本文方法比简易拟合公式补偿方法在测量方面具有较高的精度,减小了系统的测量误差.但是从STM32单片机在测距中的结果显示更新快慢来看,直接采用BP网络融合补偿方法在静态测量时可行,但当障碍物快速移动动态测量时,因BP网络融合补偿方法存在大量的权值浮点乘运算,STM32处理器无法胜任适时求出当前距离的要求.为了满足动态测量的实时要求,按BP网络融合补偿方法,事先将各个关键温湿度点对应的超声波速度求得,存储于系统的flash中,在测量时采用查表法获得并参与运算,对程序进行优化.实验结果表明优化后的程序误差与未优化前相当,并可满足障碍物快速移动的测试情况.

[1]兰羽.具有温度补偿功能的超声波测距系统设计[J].电子测量技术, 2013,36(2):85-87.

[2]张攀峰,王玉萍,张健,等.带有温度补偿的超声波测距仪的设计[J].计算机测量与控制,2012,20(6):1717-1719,1732.[3]苑洁.基于STM32单片机的高精度超声波测距系统的设计[D].北京:华北电力大学, 2012.

[4]王玉香,张喜红.亳州市储药冷库温湿度测控系统研究[J].机电信息, 2011(18):184-190.

[5]袁曾任.Matlab 神经网络30例[M].北京:电子工业出版社, 2014.

[6]陈希,付兴武,张兴元,等.BP神经网络在测距误差补偿中的应用[J].工矿自动化,2008(3):57-58.

[7]李晓静.基于改进蜂群算法的神经网络及其应用[J].琼州学院学报, 2015,22(5):29-34.

(编校:何军民)

Temperature and Humidity Compensation Algorithm of Ultrasonic Distance Measurement Based on STM32

ZHANG Xi-hong1,2WANG Yu-xiang1

(1.Bozhou Vocational and Technical College, Bozhou Anhui, 236800,China;2.School of Control Science and Engineering, Shandong University, Jinan 250061, China)

In order to reduce the ultrasonic ranging system error due to temperature and/or humidity difference in Matlab2010 platform, and to calibrate the temperature and humidity samples and hence the corresponding ultrasonic velocity with Fusion training simulation experiment through BP neural network, the design of the compensation algorithm is transplanted into STM32 ranging system to test its compensation ability. The current experiment showed that compared with existing methods, STM32 ranging system effectively compensates the error due to temperature and/or humidity difference, resulting in the improvement of precision to one order of magnitude.

data fusion; neural network; ultrasound

2015-12-02

安徽省教育厅医电子仪器与维护省级特色专业质量工程项目(20101459);安徽省教育厅医用电子仪器省级示范实习实训中心项目(2011131);安徽省教育厅重点教研项目(2015jyxm535)

张喜红(1983-),男,山西朔州人,亳州职业技术学院讲师,硕士,山东大学访问学者,研究方向为生物医学工程.

TP274.5 3

A

1008-6722(2016) 02-0018-05

10.1 3307/j.issn.1 008-6722.2 016.02.04

猜你喜欢

测距湿度超声波
路基上CRTSⅡ型板式无砟轨道湿度场分析
类星体的精准测距
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
浅谈超声波测距
蝙蝠的超声波
超声波流量计的研究
跟踪导练(二)(2)
基于PSOC超声测距系统设计
相对差分单项测距△DOR