当前位置:文档之家› 超声测距温湿度补偿算法的研究及STM32实现_张喜红

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


0. 9( V in -V min ) V max -V min
+ 0. 05.
train ( ) 、 sim ( ) 三个函依次实 ③创建网络并进行训练与测试; 在 Matlab2010 平台下分别通过 newff ( ) 、 现创建网络、 训练网络、 测试网络. 将训练误差参数设为 0.001, 不断调整网络结构及其它训练参数 ( 如学习 率、 学习步长等) , 直到收到最好的测试效果. 经过多次实验, 最终确立神经网络模型如下图 3 所示为 2 - 6 - 1 结构, 即输入层包含 2 个神经元, 隐藏层包含 6 个神经元, 输出层为一个节点; 输入层 → 隐藏层 → 输出层 purelin. 网络训练函数使用: trainlm. 最终输出的最值权值和阈值如下 : 间的传递函数分别为: logsig、 第一层的权值转秩矩阵为: w' =
②样本的归一化处理; 为了缩短训练时间以及适应网络训练激励函数的需求 , 需将输入样本按式 ( 5 ) 0 1] X in 代表归一化前的输入值, X max 与 X min 为温、 进行归一化到[ 之间, 其中 X in 代表归一化后的值, 湿度的 V in 代表归一化前 各自最大与最小值. 将输出样本 V s 按式( 6) 进行归一化处理, 其中 V in 代表归一化后的值, V max 分别代表 V s 的最大值与最小值. V min , 的值, X in = V in = X in -X min X max -X min , ( 5) ( 6)
i=1 6
- 2. 9208] ;
图3
构建的网络结构
( 7) ( 8) ( 9)
Vs =
( y - 0. 05) ( V max -V min ) 0.9 logsig( x) = 1 . 1 +e -x
+V min ,
根据上述分析可知, 基于 STM32 平台下, 用 C 语言编写如下关键代码, 实现了超声波速度的随环境 · 20·
表1 温度 T/℃ -30 -20 -10 0 10 20 30 40 速度 V s / m·s -1 313.29 319.36 325.43 331.50 337.57 343.64 349.71 355.78 0% 410.5 415.8 421.1 426.5 431.8 437.2 442.5 448.3 超声波速度标定样本值 不同湿度下的实际速度 V s / m·s 20% 351.7 357.9 364.2 369.4 374.6 379.9 385.6 390.5 40% 292.9 300.3 307.3 312.3 317.4 322.6 328.7 333.9
-1
60% 234.1 242.1 250.4 255.2 260.2 265.3 271.8 277.6
80% 175.3 184.2 193.5 198.1 203.0 208.0 214.9 219.5
2.2 数据融合 由表 1 的数据分析可知, 环境温度、 湿度与超声波速度间存在非线性相关性. 鉴于神经网络在非线性 因此, 将表 1 样本数据中温度与湿度值作为神经网络的输入, 标定的超声波速度值 映射关系拟合的优点, 作为神经网络的输出, 构建神经网络, 进行训练挖掘速度与温度、 湿度之间的映射关系, 将训练好的映射关 · 19·
[6-7 ]
. 单层 BP 神经网络如
图2 单层 BP 神经网络示意图
2, …, N) 为 j 维输入信号, 其中 x j( j = 1, 图 2 所示, W ij 为对应的连接权重; u i 为各输入信号与相应连 ( 2) 、 ( 3) 所示: 如式( 1) 、 u j = ∑w ij x j ,
[3 ]
. 温、 湿度测量模块选取型号为 SHT11
[4 ]
图1
超声测距系统框图
的集成传感器
, 其集温、 湿度测量于一体, 直接输
出温、 湿度的测量值, 且与外界采用典型的 IIC 总线进行数据通信, 在一定程度上简化了系统硬件电路设 分辨能力高达 0.01℃ ; 可测 0% ~ 100%RH 间的湿度, 分辨能力高达 计.SHT11 可测 - 40℃ ~ 120℃ 间的温度, 0.03%RH. 能够很好的满足超声测距温、 湿度补偿实验的测定要求.
张喜红等: 超声测距温湿度补偿算法的研究及 STM 湿度变化的实时校准. #include <math.h>; / / 包含数学公式头文件, 以便调用相应的数学公式 #define Vs_max 442.5; / / 速度最大值 #define Vs_min 175.3 ; / / 速度最小值 - 1.8644, - 10.0350, - 0.6967, - 3.4904, - 2.9208 } ; / / 第一层的阈值 long double B1_TH [ 6]= { 16.2036, long double B2_TH = 0.2278; / / 第二层的阈值 - 1.7725, - 10.8993, long double w_x1 [ 6]= { - 7.0707, 6.8314, 9.5295, 11.6864} ; / / 温度权值 long double w_x2 [ 6]= { - 11.8215,13.5721, 12.2470,- 9.5793, 7.8985,6.6588} ; / / 湿度权值 / / 求神经网络输入权值、 阈值加权累加和 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.
[1-2 ]
所述. 然而,
在一些特殊测量环境中, 湿度对测量结果的影响较大, 不可忽视. 基于上述现状, 本文在 Matlab2010 平台 下, 基于 BP 神经网络研究了温、 湿度误差的补偿, 并在 STM32 上实现了本文方法的移植与测试 .
1 平台及方法理论
1.1 超声测距实验系统 为了开展实验, 获取实验样本的温、 湿度数据, 以及后续算法有效性的移植测验, 搭建了如图 1 所 示的超声测距系统. 其由 STM32 微处理器 ( 型号为 STM32F103CZET6) 、 LCD 液晶显示模块、 超声发射 模块、 超声接收模块, 及温、 湿度测量模块构成. 超声 发射、 接收模块电路的具体实现原理及控制方法, 参见文献
第 23 卷
第2期
琼州学院学报
系用于速度偏差补偿是可行的. 在 Matlab2010 平台下的具体流程如下: Ri 、 Vsi 分别对应 ①构造输入输出样本数据矩阵; 将表 1 中的数据按下式 ( 4 ) 格式进行存储为矩阵 T i 、 温度、 湿度、 超声波速度值, 总计 i = 40 个样本. 抽取 D 中第 1 行与第 2 行数据为样本点作为神经网络训练 输入样本( 即抽取 T = - 30℃ ~ 30℃ 之间的样本为训练集) , 将对应的 V s 值作为训练目标输出样本值. 将 T = 40℃ 对应的样本点作为测试样本数据 . T1 D = R1 V s1 … … … Ti Ri V si ( 4)
· 18·
吉林省教育学院学报投稿邮箱 jljyxyzz@
1.2 BP 神经网络 BP 神经网络[5], 即反向传播网络. 它仿照人 脑神经元对外部刺激信号的响应过程, 构造多层 感知器, 采用信号正向传播和误差反向调整的学 习机理, 经过数次迭代计算, 成功地搭建出处理非 线性信息的智能化网络模型. 其被广泛用于数据 融合、 压缩等多个领域
0引言
超声测距因具有非接触测量的优点 , 被广泛用于各个测距领域, 如汽车倒车雷达, 机器人智能避障, 盲 人导航, 物位测量等. 测距的基本原理是超声波反射测量 , 距离可表示为 L = tv /2, 其中 v 是超声波在空气介 t 是从发出超声到收到回波所用时间. 上述情况是假定超声波速度 v 不受环境影响的理 质中的传播速度, 想情况, 然而在现实中, 超声波速度会因工作环境温、 湿度的变化而发生不规则性的改变. 如果使用恒定的 必然会产生较大的测量误差. 基于这一情况, 众多研究人员对测距结果的补偿方法 速度值进行距离计算, 开展了大量的研究, 到目前为止大多是基于拟合公式的方法对速度实现温度补偿, 如文献
j=1 N
接权重乘积的累加组合; θ i 为调节阈值; v i 为经阈值调整后的值; f ( · ) 为神经元的激励函数. 其数学表达
( 1) ( 2) ( 3)
v j = u j +θ j , y i = f( v i ) .
2 BP 神经网络温湿度补偿算法
2.1 样本标定 使用 1.1 节所设计的超声波测距系统, 在空间相对较小的房间中装有加湿器与空调设备对样本数据 进行标定. 环境温度的改变主要通过空调辅助实现 , 湿度的变化通过加湿器设备辅助实现. 其中 10 摄氏度 以下的样本点在超市冷冻冰柜仓内所得 , 最终所标定的数据样本如表 1 所示, 其中 v 由文献
收稿日期: 2015-12-02 基金项目: 安徽省教育厅医电子仪器与维护省级特色专业质量工程项目 ( 20101459 ) ; 安徽省教育厅医用电子仪器省级 示范实习实训中心项目 ( 2011131) ; 安徽省教育厅重点教研项目 ( 2015jyxm535) 作者简介: 张喜红( 1983-) , 男, 山西朔州人, 亳州职业技术学院讲师, 硕士, 山东大学访问学者, 研究方向为生物医学工程.
相关主题