[0004] 本发明的目的针对现有技术存在的不足,提出了一种基于迭代加权融合的声共振液位测量方法。
[0005] 本发明依次提取多组在同一液位高度下用固定频段内声波产生的合成波形的共振频率点,然后通过迭代加权融合的方法将多组共振频率进行融合,并将融合结果经过液位换算公式转换为液位高度信息,具体包括以下步骤:
[0006] 步骤(1).将导声管垂直于待测液体的液面插入到待测液体的底部,麦克风、扬声器和温度传感器并排放置在导声管的另一端,并保证扬声器和麦克风正对于待测液体的液面;
[0007] 步骤(2).通过控制器产生一段频率范围为D=[A,B]Hz的一组随时间均匀变化的正弦波扫频信号,扫频时间为ΔT,ΔT∈[1s,5s],该扫频信号由扬声器垂直于待测液面发出并在导声管中传播,扫频范围[A,B]Hz的取值应该满足A>>20Hz且B-A>3F0,其中F0为初始条件下的共振频率;当扬声器发出的声波经导声管传播至待测液体液面时,其声波会发生反射形成反射波,反射波与扬声器发出的扫频声波进行叠加又会形成合成波传播至麦克风处;麦克风采集到合成波形,然后通过ADC(模数转换器)将声波信号转化为数字信号;
[0008] 步骤(3).将采集到的数字信号经过控制器的FFT(快速傅立叶变换)使其由时域波形转化成频域波形;
[0009] 步骤(4).利用专利《基于固定频段声波共振频率的液位测量方法》(CN 101852638)中的快速频率检测方法提取频域中的共振频率点;
[0010] 步骤(5).在同一液位高度的情况下,重复步骤(2)-(4)依次采集N组合成波序列,由于通过步骤(4)提取共振点时,会发生部分共振点遗漏的情况,亦即第一组采集到的频率点数n1不等于第二组采集到的频率点数n2不等于……不等于第N组采集到的频率点数nN,因此需求取其相邻频率点之间的差值的平均值,利用该均值求取被遗漏的共振点(简称漏点),其步骤如下:
[0011] 步骤(5.1).对共振频率点求取其相邻两点之间的差值的平均值:通过步骤(4)采集到N组合成波的共振频率点序列,依次记第一组共振点序列为 第二组为 第三组记作 ……,第N组为
f表示频率值,f的下标的第一位数表示组别数,下标的第二位表示该频率点所在序列中位置,n1,n2,......,nN分别是各组序列中共振频率点的总个数,由于步骤(4)共振频率提取时会出现漏点,则有n1≠n2≠n3≠......≠nN,对P1求出其相邻两点频率间的差值的平均值其中
[0012]
[0013] 步骤(5.2).设置漏点信度区间,找出漏点位置并求出该漏点:在步骤(5.1)中可得到第一组的频率均值 求出其频率序列以 为基准时的信度分布序列,即设置漏点信度区间I1=[0.6,1.55),I2=[1.56,2.3),I3=
[2.3,3.0),I4=[3.0,4.0),I5=[4.0,4.9),I6=[4.9,5.59),I7=[5.59,6.5);当R1,i∈I1时,g(i)=0;当R1,i∈I2时,g(i)=1;当R1,i∈I3时,g(i)=2;当R1,i∈I4时,g(i)=3;当R1,i∈I5时,g(i)=4;当R1,i∈I6时,g(i)=5;当R1,i∈I7时,g(i)=6;其中g(i)为第i个频率序列区间漏点的个数,g(i)=0,1,2,.....,i=1,2,...n1-1;当找到频率序列漏点区间,找出漏点个数时,用该区间频率间的差值的等分来取漏点的频率数值,
t=g(1)+
g(2)+.....+g(i),i=1,2,....n1,t为频率序列中所有漏点的总个数,然后得到第一组补点后的频率序列P1'(f1,1,f1,2,...,f1,n1,f1,1',...,f1,t),并对P1'进行重新排序得到新的频率序列P1”={f1(k),k=1,2,.....,n1+t},k为重新排列后频率序列数,其中f1(n1+t)>.....>f1(2)>f1(1);
[0014] 步骤(6).对步骤(5)得到的第二组数据进行迭代加权融合:通过步骤(5.2)中得到的补点后的频率序列P1”,求出相邻两点频率间的差值的平均值,得到新的频率均值[0015]
[0016] 其中k=1,2,.....,n1+t,n1为第一组数据补点前采集到的频率序列的总个数,t为所有漏点的总个数;通过步骤(5.1)中得到第二组频率序列均值 用 得到新的频率均值,并以 为第二组补点的基准,重复步骤(5.2)得到第二组补完漏点的频率序列P2'(f2,1,f2,2,...,f2,n2,f2,1',...,f2,t),重新排序后得到P2”={f2(k),k=1,2,.....,n2+t},k为重新排列后频率序列数,其中f2(n2+t)>.....>f2(2)>f2(1);通过重复步骤(5)、(6)可以得到下一组的补点后的频率序列;
[0017] 步骤(7).通过步骤(5)、(6)迭代融合后得到第N组新的频率序列PN”={fN(k),k=1,2,…,nN+t},利用相邻共振点的频率等差关系,求取相邻两点间的间隔序列e(j),e(j)=fN(k+1)-fN(k)j=k,k=1,2,.....nN+t-1,并利用下面的液位换算公式来计算该序列所对应的液位高度值,可以得到共nN+t-1个液位高度L(j):
[0018]
[0019] 其中T为环境的温度,t为漏点的总个数,ΔL是补偿项。
[0020] 实际应用中,当液位高度较大时,声波在每次反射时经历了零度的相位偏移(压力波特性),因此存在一定的“相位偏移”,影响测量结果;亦即需要补偿这因素引起的误差,采用分段补偿函数,将液位高度分为三段,各段测量高度增加一定的补偿量ΔL
[0021]
[0022] 将取得的L(j)求和取平均,得到最终的液位高度L
[0023]
[0024] 该方法中的控制器,采用具有较强处理能力的ARM架构的控制器,例如ST公司的生产的STM32F7系类的开发板;上面所用的音频处理芯片只需要完成声波信号的产生输送和采集,例如STM32F746G-DISCO开发板上搭载的音频解码芯片WM8994。
[0025] 上述方法的关键技术在于:依次采集多组声波经过反射叠加后的合成波信号,通过快速频率检测方法依次提取各组合成波的共振频率点,通过迭代加权融合的方法将多组可能因为提取时存在漏点的声波的共振点频率进行融合,得到一组新的共振点频率序列,从而降低了因麦克风等硬件系统以及周围环境中一些不确定因素所带来影响测量结果的误差,进而提高了液位测量的精确度。
[0026] 利用本发明提到的方法可以有效降低在快速频率检测方法提取合成波的共振频率点时所存在的误差,以及周围环境中所存在的一些不确定因素所造成的误差,使得其测量精度可达到1%,优于市面上大多数超声波液位仪的测量精度,同时也降低了测量成本。