[0034] 下面结合附图对本发明进行进一步的说明。
[0035] 基于不确定信息融合的固定频段共振频率的液位测量方法的硬件结构如图1所示,包括控制器1、扬声器2、麦克风3、温度传感器4、导声管5和通气管6。其中的控制器选择STM32F746G-DISCO开发板板载的STM32F746G,音频解码芯片采用的是STM32F746G-DISCO开发板上搭载的WM8994,扬声器选用型号为F10电动式扬声器,麦克风选用TCM-340驻极体麦克,温度传感器选用DS18B20,导声管选用直径7.5cm的PVC管。控制器控制扬声器发出一个固定频段D=[a,b]Hz的声波信号,该声波信号在规定时间内均匀变化。声波信号沿导声管到液体的表面并发生反射形成回波信号,回波信号与扬声器发出的声波信号叠加形成合成波被麦克风采集,并通过音频解码芯片处理为数字信号传给控制器。
[0036] 基于不确定信息融合的固定频段共振频率的液位测量方法流程如图2所示,核心的部分为:在同一高度连续采集到的两组声波数据,利用快速频率检测方法获取共振频率点。设置每个共振频率的区间大小,以及设置每个区间的权重,利用融合方法对这两组共振频率区间进行融合。对得到的融合的共振点,求得相邻相邻共振点的间隔。将得到的相邻共振点的间隔以及根据温度传感器得到的温度数据,计算出液位的高度,进行结果的输出。
[0037] 下面根据该方法的流程,并结合实际测量环境以及液位测量实例,详细的介绍该方法的每一个步骤。
[0038] 1测试环境及参数的设置
[0039] 设置硬件结构图1中的各个参数:最大的测量高度w=10.6m,盲区的长度dz=0.6m,可测量的最大距离hmax=10m,导声管的直径d=0.07m,扫频时间是2s,扫频的频段D=[1000,2000]Hz。在t=2s的时间内,声波的频率从1000H均匀的变化到2000Hz。声波信号由安装在导声管一端的扬声器发出,声波通过导声管到达液位表面发生反射,被安装在和扬声器同一端的麦克风采集到。图3,图4分别是L=4m麦克风采集到的声波信号的时域波形和频域波形,其中频域波形截取的是的1000Hz到2000Hz内的频谱。
[0040] 2利用融合方法对得到的两组共振频率点进行融合
[0041] 该步骤的流程图如图6所示,具体的步骤如下:
[0042] (1)归一化。从图5的频谱可以看出,利用快速频率检测的方法,会遗漏一些共振频率点,造成测量到液位的高度的精度大大降低。为了去除由于这种原因造成的误差,使用融合的方法,将遗漏的共振点找出。在融合之前需要对数据进行归一化,例如在图5中两组共振P(f1,1,y1,1),P(f1,2,y1,2),...,P(f1,M,y1,M)和P(f2,1,y2,1),P(f2,2,y2,2),...,P(f2,N,y2,N),这两组声波的共振点的个数分别有M和N个,其中横坐标f表示频率,纵坐标y表示幅值。分别将这两组数据进行归一化,分别找出两组共振点中的最大值Max1和Max2,利用下面的公式对共振点进行归一化,y′1,i=y1,i/Max1 i=1,2,....,M,y′2,j=y2,j/Max2 j=1,2,....,N。
[0043] 这样得到的两组声波的共振点新的坐标为P′(f1,1,y′1,1),P′(f1,2,y′1,2),...,P′(f1,M,y′1,M)和P′(f2,1,y′2,1),P′(f2,2,y′2,2),...,P′(f2,N,y′2,N)。
[0044] (2)设置频率浮动区间的大小以及权重
[0045] 经过步骤(2)归一化处理后的共振点的坐标P′(f1,1,y′1,1),P′(f1,2,y′1,2),...,P′(f1,M,y′1,M)和P′(f2,1,y′2,1),P′(f2,2,y′2,2),...,P′(f2,N,y′2,N)。由于周围环境的影响以及模数转换过程的误差等不确定因素的影响,造成得到的共振频率的坐标也存在一定的不确定性。为了这种不确定性,为每个共振频率设置一定的浮动区间。例如,在图5中的归一化得到的新的共振点坐标P′(f1,1,y′1,1),P′(f1,2,y′1,2),...,P′(f1,M,y′1,M)和P′(f2,1,y′2,1),P(f2,2,y′2,2),...,P′(f2,N,y′2,N)。设置第一组的归一化的共振点的浮动区间Ai=[f1,i-0.34,f1,i+0.34],i=1,2,...M,区间的权重赋值为m(Ai)=y′1,i,i=1,2,...,M,区间Bi=[f1,i-3.4,f1,i+3.4],i=1,2,...,M,区间的权重赋值为m(Bi)=1-y′1,i,i=1,2,...,M。设置第二组归一化的共振点的浮动区间Cj=[f1,j-0.34,f1,j+0.34],j=1,2,...N,区间的权重赋值为m(Cj)=y′1,j,j=1,2,...,N,区间Dj=[f1,j-3.4,f1,j+3.4],j=1,2,...,N,区间的权重赋值为m(Dj)=1-y′1,j,j=1,2,...,N。
[0046] (3)利用公式 对两组共振点区间进行融合。其中,Xk∈{Ai,Bi|i=1,2,...,M},Yk∈{Cj,Dj|j=1,2,...,N},M,N分别代表两组共振点的个数。分别求区间Ai和区间Ci的交集,区间Ai和区间Dj的交集,区间Bi和区间Cj的交集,区间Bi和区间Dj的交集; 是两个区间交集的中点,k是融合后的第k个频率点,min(M,N)是指M和N中最小的作为融合后频率点的个数。
[0047] (4)求相邻频率点的差值。按照上面的方法得到融合后的频率点序列f(k),取相邻的两个频率点的之间的间隔为I(n),其中I(n)的具体操作如公式(6)所示。
[0048]
[0049] (5)求液位的高度。通过上面的方法得到融合后相邻频率点之间的间隔序列I(n),根据各个序列求得液位高度的公式如公式(7)所示:
[0050]
[0051] 其中,T为测试环境的温度,取L(n)的均值为 作为最终液位的高度。