发明内容
本发明所要解决的技术问题是提供一种相对高度测量装置及方法,有利于抑制噪声、恢复、增强和提取有用信号,具有更高的精确性和稳定性。
本发明为解决上述技术问题采用以下技术方案:
一种相对高度测量装置,包括上位机、微处理器模块以及分别和微处理器模块相连的阵列式气压传感器模块、电源模块、液晶显示模块、串口通信模块;所述上位机通过所述串口通信模块与所述微处理器模块相连;所述电源模块为各个模块供电。
一种采用如上所述相对高度测量装置的测量方法,包括以下步骤:
步骤1,所述微处理器模块发送启动命令至所述阵列式气压传感器模块,所述阵列式气压传感器模块采集n个不同测试地点的气压和温度数据,并传输至所述微处理器模块,所述微处理器模块将接收到的气压和温度数据传送至所述上位机中;
步骤2,所述上位机通过接收到的气压和温度数据建立BP神经网络,根据遗传算法的原理对BP神经网络进行优化并完成其训练学习过程,将得到的相对高度计算公式传送至所述微处理器模块中,具体步骤如下:
201,将收集到的气压值P和温度值t作为输入量PK=(P,t)的参数;选取一个参考基点,记录各个测试地点的相对高度△H,将其作为输出量CK=(△H)的参数;同一测试地点的输入量PK和输出量CK具有映射对应关系,由此得到n个具有上述映射关系的测试数据组,将其作为测试样本存入数据库中;n为自然数,K是n组测试样本中的任意一组,K=1,2,…,n;
202,对测试样本进行归一化处理,采用最大最小法将所有数据都转化为[0,1]之间的数,归一化公式如下:
χk=(χk-χmin)/(χmax-χmin)
式中,χmin为数据序列中的最小数;χmax为数据序列中的最大数;
根据归一化公式将输入量PK和输出量CK都转换成归一化的输入量P’K和输出量C’K,最终得到归一化的测试样本以及数据库;
203,根据归一化后的测试样本中输入量和输出量的映射对应关系,建立三层拓扑结构的BP神经网络,具体如下:
设定BP神经网络的输入层神经元为2个,输出层神经元为1个,隐含层神经元为6个;其中输入层和隐含层的激活函数都选取tansig型函数,输出层激活函数选取pureline型函数;输入层与隐含层之间的连接权值为Wij,隐含层的阈值为θj,隐含层与输出层之间的连接权值为Wjq,输出层的阈值为θq;i为输入层节点数,i=1,2;j为隐含层节点数,j=1,2,…,6;q为输出层节点数,q=1;
tansig型函数定义为
式中,S
j是j个隐含层节点的输入,
a
i为气压值和温度值构成的矩阵;
pureline型函数是线性函数,其中,自变量为隐含层节点的输出,因变量是输出层节点的输出;
204,以步骤3中所述BP神经网络作为黑箱模型,建立以步骤1中所述测试样本中的输入量为BP神经网络的输入变量、以对应的相对高度值作为输出变量的BP神经网络预测模型;
205,对BP神经网络预测模型中的权值W和阈值θ进行随机初始化,使BP神经网络模型具有最基本的预测条件;W、θ分别为Wij和Wjq、θj和θq的总称;
206,从归一化的数据库中调取输入量P’K,作为具有最基本预测条件的BP神经网络预测模型的输入变量,从而得到与输入变量P’K映射对应的BP神经网络预测模型输出的相对高度的预测输出量Y’K的数据组;
207,由步骤202所述归一化的测试样本确定的阈值和权值的范围,根据遗传算法的原理优化BP神经网络预测模型的初始化阈值和权值,具体如下:
a.将随机初始化多组BP神经网络预测模型的阈值和权值作为遗传算法的初始种群,种群大小根据经验预先设定,并对该初始种群进行编码,设定最大优化代数为50代;
b.构造用于优化BP神经网络预测模型初始阈值和权值的遗传算法的初始化种群样本的个体适应度函数:
式中,N为网络输出的节点,N=1;Tj为BP神经网络第j个节点的期望输出;Yj为第j个节点的预测输出;k为系数,k=1;
根据个体适应度函数公式计算初始种群中每个个体的适应度F的数值;
c.依据轮盘赌法,即基于适应度比例的选择策略,从初始化种群多个个体中选择对应个体适应度F数值相对较大的多个优化个体,进行交叉、变异操作,产生的新个体作为子一代权值W1和阈值θ1种群的个体,具体如下:
交叉操作采用实数交叉法,第k个染色体ak和第l个染色体al在j'位交叉操作方法为:
akj'=akj'(1-b)+ai'j'b;
alj'=alj'(1-b)+akj'b;
式中,akj'为第k个染色体的j'位;aij'为第i个染色体的j'位;alj'为第l个染色体的j'位;b是[0,1]间的随机数;
变异操作是选取第i''个个体的第j''个基因ai''j''进行变异,具体为:
当r大于或等于0.5时,
ai''j''=ai''j''+(ai''j''-amax)*f(g);
当r小于0.5时,
ai''j''=ai''j''+(amin-ai''j'')*f(g);
其中,r为[0,1]间的随机数;amax和amin分别为基因ai''j''的上界和下界;f(g)=r2(1-g/Gmax);r2为一个随机值;g为当前迭代次数;Gmax是最大进化次数;
d.用子一代权值W1和阈值θ1的种群新个体替换初始种群的个体,重复步骤a至步骤c的遗传算法对子一代种群个体的优化过程,直至步骤b所述的个体适应度函数基本稳定不变或者达到设定的进化代数时,结束优化过程,并得到初始化完毕的最后一代种群的个体,即得到了初始化完毕的初始权值W2和阈值θ2;
208,对优化完毕初始权值和阈值的BP神经网络预测模型的进行训练学习,具体如下;
Ⅰ.从归一化的数据库中调取的测试样本,其中的输入量P’K和输出量C’K具有真实的映射对应关系;以相同的测试样本的输入量P’K带入BP神经网络预测模型中,并将初始化完毕的权值W2和阈值θ2作为BP神经网络的新初始阈值和权值;此时由BP神经网络得到的预测输出量Y’j,此预测输出量Y’j与相对高度期望输出量Tj之间存在误差;
Ⅱ.建立BP神经网络的误差反向传播模型,构造一个由相对期望输出量T
j与BP神经网络预测模型的预测输出量Y’
j构成的目标函数:
使这个目标函数最小化的过程就是BP神经网络误差反向传播的过程;
Ⅲ.用梯度下降法对BP神经网络误差反向传播的目标函数进行运算,使得BP神经网络预测模型的初始权值W2和阈值θ2进行进一步优化;按照梯度下降法,伴随迭代次数的增加,目标函数的误差将逐步减小,直至误差满足预先设定的精度要求,结束初始阈值和权值的优化过程;
Ⅳ.经过步骤Ⅲ的反复计算和缩小误差,当误差最终满足预先设定的精度要求时,得到一组最优的权值W和阈值θ,将此时的权值W和阈值θ作为BP神经网络预测模型最终的权值和阈值,BP神经网络预测模型的训练学习完成;
209,由完成训练学习的BP神经网络预测模型,得到预测输出量即相对高度,并将其计算公式以及模型最终权值W、阈值θ传输至所述微处理器模块中;相对高度公式如下:
△H=purelin{tansig(p*W1j+t*W2j+θj)*Wj1+θq}
式中,W1j和W2j分别为气压P和温度t对应的由隐含层到输入层的权值;W3j为输出层到隐含层的权值;θq为输出层阈值;
步骤3,所述微处理器模块命令所述阵列式传感器模块读取补偿参数,并将采集的气压和温度值以及补偿参数传回至所述微处理器模块中;所述微处理器模块通过补偿参数对气压和温度值进行补偿,将补偿后的气压和温度值去除最大最小值后取平均值,并对平均值进行归一化处理;
步骤4,应用所述微处理器模块接收到的相对高度计算公式,计算得出对应归一化的补偿气压和温度值得相对高度值;将计算得到的相对高度值进行反归一化处理,得到实际的相对高度;
步骤5,所述微处理器模块将补偿后反归一化的气压、温度以及相对高度分别发送至上位机进行存储、液晶显示模块进行显示。
作为本发明的一种优选方案,所述微处理器模块选用MSP430F149型号的微控制器。
作为本发明的一种优选方案,所述阵列式气压传感器模块选用BMP085型号气压传感器组成3*3的方阵。
作为本发明的一种优选方案,所述液晶显示模块选用LCD12864型号。
作为本发明的一种优选方案,所述串口通信模块选用RS232串口通信芯片。
作为本发明的一种优选方案,所述电源模块选用7133稳压芯片。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
(1)硬件上利用BMP085气压传感器组成3*3的方阵,采用阵列式多点平均测量方式,有效地消除了由于传感器个体本身的缺陷带来的测量误差和减少了由于传感器芯片蠕变而产生的随机误差或重复性误差,显著减少了年漂的影响;
(2)软件上采用基于遗传算法优化的BP神经网络算法对测量信号进行温漂和非线性补偿,抑制了噪声的影响,增强了有效信号,优化了测量数据;
(3)通过低功耗的MSP430F149微控制器进行控制处理,构成一套更精确的相对高度测量装置,有利于抑制噪声、恢复、增强和提取有用信号,比传统的基于单个气压传感器测量和利用标准气压高度公式计算相对高度的测量***具有更高的精确性和稳定性,也可以拓展到更广泛的测量领域;
(4)鉴于BMP085气压传感器的低成本,该装置的高精度性和稳定性使其具有更高的商业价值。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所示,一种相对高度测量装置,包括上位机、微处理器模块以及和微处理器模块分别相连的阵列式气压传感器模块、电源模块、液晶显示模块、串口通信模块;所述上位机通过所述串口通信模块与所述微处理器模块相连。
如图2所示,所述气压传感器模块选用BOSCH公司生产的具有温度补偿能力的集成数字气压传感器BMP085,该数字压力传感芯片的供电电压为1.8V~3.6V,它具有超低功耗、高精度(低功耗模式下分辨率为0.06hPa)和高可靠性,其经济性和适用性均符合本设计的要求,BMP085的输出与外加压强成正比,测量范围是300~1100hPa,完全校准数字输出,在完成采样后,通过I2C总线直接将数据传送给MSP430F149。
如图3所示,所述阵列式气压传感器模块选用BMP085气压传感器组成3*3的方阵。
为了消除供电不稳而引起的信号干扰,本发明选用7133芯片与***电路构成稳压源,可稳定输出5V以及3.3V对各模块进行供电,如图4所示。
如图5所示,一种采用如上所述相对高度测量装置的测量方法,包括以下步骤:
步骤1,打开装置电源以后,整个***进行初始化,包含时钟初始化、端口初始化、液晶显示初始化、串口初始化、BMP085传感器初始化以及关闭看门狗;MSP430F149通过端口模拟I2C口通信,I2C的SCL和SDA分别与微控制器的IO端口相连,IO端口的高低电平模拟I2C通信的时序,使I2C通信能有效工作;
步骤2,MSP430F149微控制器给BMP085传感器发出启动信号;传感器进行气压和温度的测量,并在通过内置的A/D转换器将未补偿的气压和温度值转换成数值信号后传输至MSP430F149微控制器;MSP430F149微控制器将接收到的气压和温度数据传送至上位机中;
步骤3,所述上位机通过接收到的气压和温度数据建立BP神经网络,根据遗传算法的原理对BP神经网络进行优化并完成其训练学习过程,将得到的相对高度计算公式传送至所述微处理器模块中,具体步骤如下:
301,将收集到的气压值P和温度值t作为输入量PK=(P,t)的参数;选取一个参考基点,记录各个测试地点的相对高度△H,将其作为输出量CK=(△H)的参数;同一测试地点的输入量PK和输出量CK具有映射对应关系,由此得到n个具有上述映射关系的测试数据组,将其作为测试样本存入数据库中;n为自然数,K是n组测试样本中的任意一组,K=1,2,…,n;
302,对测试样本进行归一化处理,采用最大最小法将所有数据都转化为[0,1]之间的数,归一化公式如下:
χk=(χk-χmin)/(χmax-χmin)
式中,χmin为数据序列中的最小数;χmax为数据序列中的最大数;
根据归一化公式将输入量PK和输出量CK都转换成归一化的输入量P’K和输出量C’K,最终得到归一化的测试样本以及数据库;
303,根据归一化后的测试样本中输入量和输出量的映射对应关系,建立三层拓扑结构的BP神经网络,如图6所示,具体如下:
设定BP神经网络的输入层神经元为2个,输出层神经元为1个,隐含层神经元为6个;其中输入层和隐含层的激活函数都选取tansig型函数,输出层激活函数选取pureline型函数;输入层与隐含层之间的连接权值为Wij,隐含层的阈值为θj,隐含层与输出层之间的连接权值为Wjq,输出层的阈值为θq;i为输入层节点数,i=1,2;j为隐含层节点数,j=1,2,…,6;q为输出层节点数,q=1;
tansig型函数定义为
式中,S
j是j个隐含层节点的输入,
a
i为气压值和温度值构成的矩阵;
pureline型函数是线性函数,其中,自变量为隐含层节点的输出,因变量是输出层节点的输出;
304,以步骤3中所述BP神经网络作为黑箱模型,建立以步骤1中所述测试样本中的输入量为BP神经网络的输入变量、以对应的相对高度值作为输出变量的BP神经网络预测模型;
305,对BP神经网络预测模型中的权值W和阈值θ进行随机初始化,使BP神经网络模型具有最基本的预测条件;W、θ分别为Wij和Wjq、θj和θq的总称;
306,从归一化的数据库中调取输入量P’K,作为具有最基本预测条件的BP神经网络预测模型的输入变量,从而得到与输入变量P’K映射对应的BP神经网络预测模型输出的相对高度的预测输出量Y’K的数据组;
307,由步骤2所述归一化的测试样本确定的阈值和权值的范围,根据遗传算法的原理优化BP神经网络预测模型的初始化阈值和权值,如图7所示,并完成BP神经网络预测模型的训练学习;具体如下:
a.将随机初始化多组BP神经网络预测模型的阈值和权值作为遗传算法的初始种群,种群大小根据经验预先设定,并对该初始种群进行编码,设定最大优化代数为50代;
b.构造用于优化BP神经网络预测模型初始阈值和权值的遗传算法的初始化种群样本的个体适应度函数:
式中,N为网络输出的节点,N=1;yj为BP神经网络第j个节点的期望输出;oj为第j个节点的预测输出;k为系数,k=1;
根据个体适应度函数公式计算初始种群中每个个体的适应度F的数值;
c.依据轮盘赌法,即基于适应度比例的选择策略,从初始化种群多个个体中选择对应个体适应度F数值相对较大的多个优化个体,进行交叉、变异操作,产生的新个体作为子一代权值W1和阈值θ1种群的个体,具体如下:
交叉操作采用实数交叉法,第k个染色体ak和第l个染色体al在j'位交叉操作方法为:
akj'=akj'(1-b)+ai'j'b;
alj'=alj'(1-b)+akj'b;
式中,akj'为第k个染色体的j'位;aij'为第i个染色体的j'位;alj'为第l个染色体的j'位;b是[0,1]间的随机数;
变异操作是选取第i''个个体的第j''个基因ai''j''进行变异,具体为:
当r大于或等于0.5时,
ai''j''=ai''j''+(ai''j''-amax)*f(g);
当r小于0.5时,
ai''j''=ai''j''+(amin-ai''j'')*f(g);
其中,r为[0,1]间的随机数;amax和amin分别为基因ai''j''的上界和下界;f(g)=r2(1-g/Gmax);r2为一个随机值;g为当前迭代次数;Gmax是最大进化次数;
d.用子一代权值W1和阈值θ1的种群新个体替换初始种群的个体,重复步骤a至步骤c的遗传算法对子一代种群个体的优化过程,直至步骤b所述的个体适应度函数基本稳定不变或者达到设定的进化代数时,结束优化过程,并得到初始化完毕的最后一代种群的个体,即得到了初始化完毕的初始权值W2和阈值θ2;
308,对优化完毕初始权值和阈值的BP神经网络预测模型的进行训练学习,具体如下;
Ⅰ.从归一化的数据库中调取的测试样本,其中的输入量P’K和输出量C’K具有真实的映射对应关系;以相同的测试样本的输入量P’K带入BP神经网络预测模型中,并将初始化完毕的权值W2和阈值θ2作为BP神经网络的新初始阈值和权值。此时由BP神经网络得到的预测输出量Y’j,此预测输出量Y’j与相对高度期望输出量Tj之间存在误差;
Ⅱ.建立BP神经网络的误差反向传播模型,构造一个由相对期望输出量T
j与BP神经网络预测模型的预测输出量Y’
j构成的目标函数:
使这个目标函数最小化的过程就是BP神经网络误差反向传播的过程;
Ⅲ.用梯度下降法对BP神经网络误差反向传播的目标函数进行运算,使得BP神经网络预测模型的初始权值W2和阈值θ2进行进一步优化;按照梯度下降法,伴随迭代次数的增加,目标函数的误差将逐步减小,直至误差满足预先设定的精度要求,结束初始阈值和权值的优化过程;
Ⅳ.经过步骤g的反复计算和缩小误差,当误差最终满足预先设定的精度要求时,得到一组最优的权值W和阈值θ,将此时的权值W和阈值θ作为BP神经网络预测模型最终的权值和阈值,BP神经网络预测模型的训练学习完成;
309,由完成训练学习的BP神经网络预测模型,得到预测输出量即相对高度,并将其计算公式以及模型最终权值W、阈值θ传输至所述微处理器模块中;相对高度公式如下:
△H=purelin{tansig(p*W1j+t*W2j+θj)*Wj1+θq}
式中,W1j和W2j分别为气压P和温度t对应的由隐含层到输入层的权值;W3j为输出层到隐含层的权值;θq为输出层阈值;
步骤4,MSP430F149微控制器命令BMP085传感器读取E2PROM的11个补偿参数,MSP430F149微控制器给BMP085将气压和温度值以及补偿参数传送至MSP430F149微控制器中;所述MSP430F149微控制器通过补偿参数对气压和温度值进行补偿,将补偿后的气压和温度值去除最大最小值后取平均值,并对平均值进行归一化处理;
步骤5,应用MSP430F149微控制器接收到的相对高度计算公式,计算得出对应归一化的补偿气压和温度值得相对高度值;将计算得到的相对高度值进行反归一化处理,得到实际的相对高度;
步骤6,MSP430F149微控制器将补偿后反归一化的气压、温度以及相对高度分别发送至上位机进行存储、液晶显示模块进行显示。
下面以结合实例对本发明进行进一步说明:
将南京信息工程大学电子与信息工程学院学科楼(下面简称为南信大二号学科楼)作为测量对象。南信大二号学科楼一共有五层,每一层平均大约为4.04m,总高度约为20.2323m。为了测量的方便,选择楼梯为测试的地点,将第一层的地面作为测试基点(即测试零点),选取了26处相对高度测试地点。在每处测试地点采取8次测量样本(包括温度与气压值),将每处测量样本的气压值的最大值与最小值去后除取平均值得到此处的气压值和温度(其中气压值精确到0.001hPa,温度精确到0.01℃),并记录下每个测试地点的相对高度△H(精确到0.0001m)。
分别将测试地点测得的气温和气压值作为测量样本的输入量PK,将相对高度值作为测量样本的输出量CK,按照步骤3得出相对应的权值和阈值为:
将所得的权值和阈值以及计算公式△H=purelin{tansig(p*W1j+t*W2j+θj)*Wj1+θq}存入MSP430F149微控制器中。
将本发明装置放置到南信大二号学科楼的其他18个地点进行测量,并将相对高度值以及气压和温度记下。
根据气压测高原理,在标准大气条件下,标准气压高度计算公式如下:
式中,R=287.05287m2/(s2·K),代表空气专用气体常数;g=9.80665m2/s2表示自由落体加速度;β表示气温的垂直变化率,高度在0~11km时,β=-0.0065K/m;T0、P0、H0分别参考平面的温度、气压值和高度,标准大气条件下(即压强为1013.25hPa,温度为15℃),平均海平面取如下值:P0=1013.25hPa,T0=288.15K,H0是平均海平面的高度,规定为0m。
将对应参数值代入标准气压高度计算公式中,可以得到:
这样可以将测量的气压值带入标准计算公式从而获得相对高度值。
最后将所测得的相对高度真实值、本发明的输出相对高度值和标准气压高度计算公式计算的相对高度绘制成折线图,如图8所示。本发明的输出相对高度值和标准气压高度计算公式计算的相对高度值与真实值得误差绘制成折线图,如图9所示。
由试验结果可知,本发明输出的相对高度值的误差明显减小,相对于标准气压高度计算公式的计算值具有更高的精度。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。