一种基于声波共振频率的液位测量方法与流程

文档序号:11102013阅读:799来源:国知局
一种基于声波共振频率的液位测量方法与制造工艺

本发明属于声反射液位测量领域,特别涉及一种基于声波共振频率的液位测量方法。



背景技术:

基于声波反射原理的液位测量方法在许多工业领域中已经得到了广泛地应用,其中的超声波测量方法是最常用的方法之一。但是,在实际的工业应用中,被测液体表面常常会出现泡沫、残渣和沉积物等异物。当超声波遇到这些障碍物时,易发生寄生反射现象,改变传播路径,从而严重影响测量效果,大大降低超声波的测量精度。

而低频声波波长较长,遇到障碍物时会发生衍射,即声波可以绕开障碍物继续传播,避免了寄生反射。Denis Donlagic在文献《The Use of One-Dimensional Acoustical Gas Resonator for Fluid Level Measurements》,IEEE Transactions on Instrumentation and Measurement中,提出了基于低频声波的共振原理,从初始共振频率f0换算出液位高度。但是,该方法的最大量程取决于f0,而该频率的最小值受扬声器原理、类型、声源体积和质量等因素的限制,一般仅为20Hz。若在标准声速v=331.45m/s下进行测量,最大量程也只有8.28m。并且,这也对麦克风的灵敏度提出了较高的要求,而一般麦克风可以感应到的最低音频为20Hz左右,这些因素都极大的限制了该方法在长距离测量中的应用。

发明专利《基于固定频段声波共振频率的液位测量方法》(证书号,第912636号)中,改进了Denis Donlagic的方法,通过求共振频率差的方法求基频,按此方法可以选用千赫量级声波段,大大提高了测量灵敏度。该方法采用了频域分析方法确定共振频率点。将采集信号进行傅里叶变换,通过对叠加声波的频谱滤波得到基频。但此方法需要较大计算量,实现上对硬件要求较高。



技术实现要素:

本发明的目的在于为克服已有技术的不足之处,提出一种基于声波共振频率的液位测量方法,采用新的声波共振频率时域分析方法,通过将发射与反射声波的叠加声波进行时域上快速处理,最终提取共振频率差,进而得到液位高度。叠加声波时域快速处理方法简单有效,具有高可靠性和良好的操作性,可广泛应用于声波液位测量仪。

本发明提出的一种基于声波共振频率的液位测量方法,其特征在于:该方法包括产生有效的扫频声波;采用时域快速共振点检测算法获取发射声波与液面反射声波的叠加声波在时域上的共振点;利用时域与频域对应关系,求得共振基频差,进而得到液面深度值。

本发明的特点及有益效果:

本发明方法在上述基于低频声波的共振原理基础上,采用时域分析方法确定共振频率,简单有效,具有高可靠性和良好的操作性,由于算法对硬件性能没有过高要求,大大降低了实际应用中的硬件成本,可广泛应用于声波液位测量仪。

附图说明

图1为本发明的方法实施例的实现装置示意图;

图2为本发明的方法实施例的流程框图;

图3为本发明方法实施例的中时域快速共振点检测算法流程框图;

图4为本发明方法实施例的中叠加声波波形l=3.1m;

图5为本发明方法实施例的中经过数据处理后得到的共振点。

具体实施方式

本发明提出的一种基于声波共振频率的液位测量方法结合附图及实施例说明如下:

本发明提出的一种基于声波共振的液位测量方法,其特征在于:产生有效的扫频声波;采用时域快速共振点检测算法获取发射声波与液面反射声波的叠加声波在时域上的共振

点;利用时域与频域对应关系,求得共振基频差,进而得到液面深度值,所述方法包括以下步骤:

1)生成扫频信号:确定扫频范围为F1到F2(F1<F2),扫频时长为T,F1≥1000Hz,F2≥2000Hz,T>1s,扫频频率的变化方式如公式(1)所示:

其中频段F1、F2满足lmin为待测液面高度的最小值,单位为米,声速v=331.45+0.61Temp,单位为米每秒,其中Temp为环境温度,单位为摄氏度;

扫频信号时域特性如公式(2)所示:

X(t)=cos(2πf(t)t) (2)

按照公式(2)可生成采样频率为Fs=44100Hz,总时长为T的音频序列X;

2)采集发射与反射声波叠加的合成声波:定义扫频信号发射和接收所在平面到待测液面距离为待测液位高度l;接收扫频信号音频采样频率也为Fs;播放音频的同时录音,得到发射声波与反射声波的叠加音频信号序列Y;

3)信号带通滤波处理:采用切比雪夫带通滤波器处理步骤2)中的信号序列Y,滤波器的带通频率范围为[F1,F2],得到滤波过的音频信号序列Z;

4)通过共振频率快速检测算法,得到叠加音频序列中的共振点,其步骤如下:

4.1)取步骤3)得到的信号序列Z的绝对值得到信号序列S,其中S=|Z|;

4.2)将信号S做三次滑动平均滤波,滤波窗口宽度为N,其中每次滑动平均滤波的具体操作如公式(3)所示:

其中,Q为每次滤波前的信号序列,Q(k)为序列Q的第k个值;P为每次滤波后的信号序列,P(k)为序列P的第k个值,length(Q)为序列Q的长度;

按照公式(3)进行三次滑动平均滤波,得到的滤波后信号序列E;

4.3)对所述步骤4.2)中得到的序列E求极大值,得到极大值集合Maxmum{(li,pi)},i∈[1,M],其中(li,pi)表示第i个极大值点坐标,横坐标li表示第i个极大值点在序列E中的位置,纵坐标pi表示第i个极大值点的值,M为极大值点的总个数;

4.4)在步骤4.3)中得到的极大值点中,将极大值点集合Maxmum{(li,pi)},i∈[1,M]对其纵坐标(即极大值点的幅值)做两类的K均值聚类,分为两个子集合:Mj={(li,pi),Ci=j},j=1,2;

其中,Ci表示第i个极大值点的类别,即M1为对极大值集合Maxmum聚类后类别为1的极大值点的集合,M2为类别为2的极大值点的集合;

4.5)求步骤4.4)中集合M1,M2中的点纵坐标的平均值,分别得到arg1,arg2,根据arg1,arg2的值可以得到峰值点集合Peak,Peak满足公式(4):

其中j满足argj=max(arg1,arg2);

4.6)将步骤4.5)中得到的峰值点集合Peak按横坐标进行分类,分类原则为相邻点横坐标小于1000则为一类;按照此原则最终将峰值点集合Peak分为K类,Peak1,Peak2...,PeakK,K≥2;

4.7)对于步骤(4.6)中得到的K个集合Peak1,Peak2...,PeakK,取每个集合中纵坐标最大的点的横坐标为共振点,得到K个共振点R1,R2,...RK

5)对步骤4)中得到K个共振点R1,R2,...RK,取相邻两点的共振间隔Interval(i)=R(i+1)-R(i),i∈[1,N-1],并求共振间隔Interval的均值为I;

6)根据公式(5)计算得到待测液位高度l:

图1-5是本发明的实施例,下面结合附图对本发明进一步说明如下:

本发明的方法实现的液位检测实验装置硬件结构如图1所示,包括预先存储有本方法的处理程序的控制器1、扬声器2、麦克风3、温度计4、导声管5、通气管6、待测液面7、液体容器8,其中导声管5的一端竖直插入待测液面7下,另一端并列安装扬声器2和麦克风3,扬声器2和麦克3风面向待测液面7,且平行于待测液面,距液面一定高度l。扬声器3、麦克风3、温度计4与控制器1连接。实验阶段的控制器1使用的是带有音频输入输出接口的笔记本电脑,由于本方法具有简单快速等优点,实际使用中可以选用成本低廉的单片机,如意法半导体公司的STM32系列。

采用上述装置实现的方法实施例的流程如图2所示。本发明的重点在于叠加音频的快速共振点检测算法,下面结合实际测量环境,以测量液面高度为3.1m作为本发明的实施例,详细介绍本方法的各个实现步骤。

1)生成扫频信号:

本实施例条件为:待测液面高度的最大值、最小值分别为lmax=10.6m,lmin=0.6m,环境温度28摄氏度。首先根据实验条件确定扫频范围[F1,F2],频段F1、F2需满足

其中lmin=0.6m,实验测试环境温度为28摄氏度,故可得到声速

v=348.53m/s。频段F1、F2需满足F2-F1>581,取F1=1000Hz,F2=2000Hz,扫频时长T取5s。此时扫频频率变化范围为:

扫频信号时域幅值公式为:

X(t)=cos(2πf(t)t)=cos(2π(1000+300t)t),t∈[0,5] (2),

按照公式(2)可生成采样率Fs=44100Hz,可以得到音频序列X,序列X共有220500个点(由T×Fs计算可得)。

2)采集发射与反射声波叠加的合成声波:本实施例开始时,控制扬声器播放扫频信号,同时通过麦克风录音,麦克录音的音频采样频率也为44100Hz;音频信号播放完毕,同时录音结束,此时可以得到麦克风收集到的发射声波与反射声波的叠加音频信号序列Y,共有220500个点。在液面高度为3.1m的实测中,叠加信号波形如图4所示。

3)信号带通滤波处理

将叠加声波序列Y通过切比雪夫带通滤波器进行滤波,滤波频率范围为[1000Hz,2500Hz]。

本实施例选择滤波器传递函数为:

滤波后的音频信号序列Z(共有220500个点);

4)通过共振频率快速检测算法,得到叠加音频序列中的共振点,具体流程如图3所示,包括以下步骤:

4.1)取信号序列Z的绝对值得到信号序列S(共有220500个点),其中S=|Z|;

4.2)将信号S做三次滑动平均滤波,本实施例选取滤波窗口宽度为N=500,其中每次滑动平均滤波操作如公式(3)所示:

其中,Q为滤波前的信号序列,Q(k)为序列Q的第k个值;P为一次滤波后的信号序列,P(k)为序列P的第k个值,length(Q)为序列Q的长度;

按公式(3)对序列S进行三次滑动窗口平均滤波,最终得到新的序列E(共有219000个点)。

4.3)对所述步骤4.2)中得到的序列E求极大值,得到序列E的极大值集合Maxmum{(li,pi)},i∈[1,M],其中(li,pi)表示第i个极大值点坐标,横坐标li表示第i个极大值点在序列E中的位置,纵坐标pi表示第i个极大值点的值,M为极大值点的总个数,此极大值点集合包含了共振点集合,但由于实际测量误差,可能还存在一些误判的极值点。在本实施例的液面高度为3.1m的实测中,从图4可看出共振点有27个,而实验得到的极值点有50个,后续步骤可以有效的从极值点集合中过滤出真正的共振点。

4.4)在步骤4.3)中得到的极大值点中,将极大值点集合Maxmum{(li,pi)},i∈[1,M]对其纵坐标(即极大值点的幅值)做K均值聚类,分为两个子集合Mj={(li,pi),Ci=j},j=1,2;其中,Ci表示第i个极大值点的类别,即M1为对极大值集合Maxmum聚类后类别1那些极大值点的集合,M2为类别2的极大值点的集合;在液面高度为3.1m的实测实验中,得到M1有19个点,M2有31个点。

4.5)求步骤4.4)中集合M1,M2纵坐标的平均值,分别得到arg1,arg2;根据arg1,arg2的值得到峰值点集合Peak,Peak满足公式(4):

其中i满足argi=max(arg1,arg2);在液面高度为3.1m的实测中,arg1=0.0539,arg2=0.3232,故Peak=M2。此步骤将极大值点幅值聚类,目的是去除所有幅值较小的点。

4.6)将步骤4.5)中得到的峰值集合Peak按横坐标进行分类,分类原则:相邻点横坐标小于1000则为一类。按照此原则可以将峰值点集合Peak分为N类,Peak1,Peak2...,PeakN。此步骤将所有可能峰值点按照横坐标聚类,将位置接近的峰值点看做一类。在液面高度为3.1m的实测中,最终可以将31个可能峰值点分为27类。

4.7)对于步骤(4.6)中得到的N个集合Peak1,Peak2...,PeakN,取每个集合中纵坐标最大的点的横坐标为最终峰值点,即可得到N个最终峰值点R1,R2,...RN,即为共振点。在液面高度为3.1m的实测实验中得到了27个共振点,如图5所示,圆圈标记的极大值点即为算法得到的共振点。

5)平均共振间隔I

由步骤(4)得到N个共振点R1,R2,...RN,进一步可以得到N-1个共振间隔Interval,其中Interval(i)=R(i+1)-R(i),i∈[1,N-1],最终求得共振间隔Interval的均值为I;在本实施例液面高度为3.1m的实验中,I=8275.3;

6)根据公式(5)计算得到待测液面高度

由于扫频信号频率变化均匀,时域上共振点可以对应于频域共振点,故共振频率间隔(即基频)可以通过时域共振间隔均值I推算出来,在液面高度为3.1m的实验中,

测量结果和实际结果非常接近。可以回到步骤2)继续循环测量。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1