发明内容
本发明的目的在于针对现有技术的不足,提供一种基于固定频段声波共振频率的液位测量方法。
本发明方法采用快速频率检测方法获取固定频段内由声波反射产生的一组共振频率;利用相邻共振频率的等差关系及基于共振频率的液位换算公式得到多个液位测量值,将它们取平均后作为最终的液位值,具体包括以下步骤:
步骤(1).将导声管竖直插入待测液面以下,扬声器和麦克风并排安装在导声管一端内,导声管的另一端没入液面以下,扬声器和麦克风所在水平面到液面的距离为待测液面高度L。
步骤(2).在时间段Δt内,通过DSP控制器的语音芯片输出频段D=[a,b]Hz内的一组线性扫频正弦信号,并将该信号传给与语音芯片连接的扬声器。该扬声器发出的声波经导声管垂直于液面传播,传至液面后发生反射,形成的回波由麦克风采集,并输入所述的语音芯片。
在待测液面高度L范围内,[a,b]的选择需要保证a》20Hz且b-a>3f0,亦即频段D内至少出现3个共振频率,以此确定a、b的取值,f0为初始共振频率。例如,当L最小取值为0.6m时,可选取D=[1000,2500]Hz,这样可以保证该频段的回波中出现的共振频率个数M=5,L越长在该频段内出现的共振频率越多。
步骤(3).该语音芯片把所采集得的声音信号转化为时域波形送给DSP控制器。
步骤(4).该DSP控制器采用快速傅里叶变换(FFT)将步骤(3)中的时域波形信号变换到时-频域中的频谱。
步骤(5).采用快速频率检测方法获取步骤(4)频谱中的M个共振频率点。
其步骤如下:
步骤(5.1)进行一次平滑处理:在该频谱图中,各个共振频率点的幅值都是局部极大值。由于频谱曲线并不满足单增(减)的理想趋势,无法直接通过逐点比较幅值的方法找到各个共振频率点。所以,设置宽度为ΔHz的窗口,该宽度Δ小于两个相邻共振频率差的2倍,以免平滑掉待选的共振频率点。从aHz至bHz滑动窗口,依次找到每个非重叠窗口中频率幅值最大的点,记为P(f1,y1),P(f2,y2),...,,共有N1个,其中横坐标f表示频率,纵坐标y表示幅值。
步骤(5.2)进行二次平滑处理:在经步骤(5.1)获取的频谱图中,有些共振频率附近的频谱曲线还不满足单增(减)的趋势,无法提取幅值极大点及其对应的共振频率。所以,对于点列{P(fl,yi),i=1,2,...,Nl},从i=1到i=N1-2,依次判断相邻3点P(fi,yi),P(fl+1,yi+1),P(fi+2,yi+2)之间,若存在yi>yi+1且yi+2>yi+1,则令fi+1=0,yi+1=0,只保留点P(fl,yi)和P(fi+2,yi+2),最终得到单调变化的频率点列{P(fj,yj),j=1,2,...,N2},且N2<N1。
步骤(5.3)提取峰值:采用逐点比较的方法,从步骤(5.2)得的点列{P(fj,yj),j=1,2,...,N2}中,提取共振频率点列{f(k),k=1,2,...,M},其中M为在频段D内获得的共振频率个数。
步骤(6).利用相邻共振频率的等差关系及基于共振频率的液位换算公式得到多个液位测量值,将它们取平均后作为最终的液位值。其步骤依次如下:
步骤(6.1)给出基于固定频段D内共振频率的液位换算公式为
L′=n(k)c/2f(k)k=1,2...,M (1)
其中c≈331.45+0.61T为声速,它和液位测量环境的温度T有关。共振频率f(k)是初始共振频率f0的n(k)倍,n(k)为整数,记为n(k)=f(k)/f0。
步骤(6.2)求取步骤(6.1)式(1)中的n(k)。根据步骤(5.3)所得点列{f(k),k=1,2,...,M},通过f(k)和f(k+1)之间的等差关系可以得到
n(k)=f(k)/(f(k+1)-f(k))k=1,2,...,M-1(2)
实际测量中,受实际观测环境中诸多不确定性因素的影响,用式(2)计算出的n(k)会含有小数位,若将其带入步骤(6.1)中式(1)计算,这种“非整数误差”会进一步传递,引起更大的计算误差。因为f(k+1)-f(k)=f
0,令n(k)的估算值
为
分母为相邻共振频率之差的均值,该值更接近真实的f
0,从而减少了不确定性的影响,并可以保证
k=1,2...,M-1,其中||·||表示取整数位。
步骤(6.3)根据步骤(5.3)所得共振频率点列{f(k),k=1,2,...,M}和步骤(6.2)中所得
得到共M-1个液位计算值L
k
k=1,2...,M-1(4)
其中,ΔL(f(k))是补偿项。这是因为,实际中当Lk较大时,对于波长较长的声波来说,在液面反射时会出现一定的相位偏移,Lk越长需要补偿的越多。
步骤(6.4)将步骤(6.3)所得Lk取平均,得到液面高度L。
该方法中所述DSP控制器采用可以进行傅立叶变换运算能力的DSP芯片即可,例如北京瑞泰创新科技有限责任公司生产的ICETEK-VC5509-A开发板上的主处理芯片TMS320VC5509-A;所述语音芯片只要能够完成声波的发送和采集即可,例如ICETEK-VC5509-A开发板上自带的TLV320AIC23语音芯片。
上述方法的关键技术在于:将现有技术中对初始共振频率的检测变为对较高频段内出现的一组共振频率的检测,从而降低了对麦克风及扬声器的性能要求,并且增大了液位测量的量程。利用相邻共振频率的等差关系及基于共振频率的液位换算公式得到多个测量,将它们取平均后作为最终液位值,从而有效地降低现有技术只用初始共振频率f0计算液位值时存在的测量不确定性,增加了液位测量精度。此外,整个系统硬件成本低廉,易于实现且响应速度快,可广泛应用于液罐的液位测量。
利用本发明方法可以将已有方法的量程从8m提高到10m以上,并且其测量精度可以达到1‰,优于市面上大多数超声波液位仪给出的3‰~5‰的测量精度以及J.Donlagic所提方法中给出的3‰的测量精度;并且发射声波频段的频率远远高于20Hz,对麦克风及扬声器的性能要求低;同时,系统的动态响应时间远远大于现有的声共振测量系统的响应时间,硬件成本低廉且便于实现,可广泛应用于液罐的液位测量。
具体实施步骤:
下面结合附图对本发明进一步说明。
基于固定频段声波共振频率的液位测量方法的硬件结构如图1所示,包括DSP控制器1、扬声器2、麦克风3、温度计4、导声管5及通气管6。其中DSP控制器选用的是北京瑞泰创新科技有限责任公司生产的ICETEK-VC5509-A开发板,所述语音芯片是ICETEK-VC5509-A上的TLV320AIC 23。通过DSP控制器的语音芯片输出频段D=[a,b]Hz内的一组线性扫频正弦信号。扬声器发出该声波信号,经导声管传至液面并发生反射,形成的回波由麦克风采集,并输入所述的语音芯片,再转换成该DSP控制器可以处理的时域音频数字信号。
基于固定频段声波共振频率的液位测量方法流程如图2所示,核心部分为:从回波频谱中检测出各个共振频率23,计算各共振频率与初始共振频率的比值24,由所测环境温度计算出声速25,然后将23、24和25产生的结果带入液位换算公式,根据各个共振频率换算出多个液位高度值26,将这些测量值取平均后得最终液位高度27,并显示28,整个过程在Δt秒循环汁算一次液位。
下面根据该方法流程,并结合实际测量环境及液位测量实例,详细介绍各个步骤。
1、测试环境及参数设置实例
设置硬件结构图1中的各个参数为:总长度w=10.6m,最大液位高度hmax=10m,死区长度dz=0.6m,导声管(PVC管)直径d=0.07m,扫频频段D=[1000Hz,2500Hz],在该频段内可以保证L≥0.6m时出现至少5个共振频率用于计算液位。在Δt=5s的时间内,从1000Hz到2500Hz进行线性扫频(采样频率44100Hz),由于声音信号在空气中传播的时间延迟,从录音开始到采集到有效信号有一定的时间差,因此在对时域波形图进行FFT变换之后,截取频段[1000Hz,2500Hz]内的频谱构成有效频谱图。图3-3a,图3-3b和图4-4a,图4-4c中分别给出L=0.6m和L=10.6m时,回波的时域波形图和频谱图。图4中的“FFT”标线表示获取的频率点,共生成8916个频率点。频率分辨率为0.1682Hz,这时按本发明方法计算液位的分辨率为1.7mm(对应最大量程,且量程越短,分辨率越高)。
2、从声波频谱中检测出共振频率
该步骤的软件流程图如图5所示,具体过程如下:
(1)一次平滑。从图4-4b(图4-4a的局部放大图)的频谱可以看出,由各个频率幅值点构成的曲线并不一定满足单调性。为了找出共振频率对应的幅值极大点,需对频谱做平滑处理。设置宽度为Δ=4Hz的窗口,从1000Hz到2500Hz滑动窗口,依次找到每个非重叠窗口中的最大幅值点,共有375个。如图4中“平滑一”标线所示。
(2)二次平滑。当0.6m<L<1.5m时,即使进行了一次平滑,在有些共振频率的附近,频谱曲线还会出现多个峰值。这是因为L较小时,合成波幅值上升到极大点需要经历较宽的频段,由于观测噪声和麦克风灵敏度不高等因素影响,在共振频率周围的频谱曲线变化复杂,不满足单调增(减)的趋势。例如,图4-4b中点P1(f1,y1)、P2(f2,y2)、P3(f3,y3)为一次平滑后的频率点,但它们不满足y1≤y2≤y3,而是有y1>y2,且y3>y2,所以令f2=0,y2=0,只保留P1和P3,保证二次平滑后的频谱曲线单调。
(3)提取峰值。在二次平滑之后,就可以采用逐点比较的方法,从单增(减)的频谱图中检测出共振频率。“一次平滑”步骤中,平滑窗口的大小是由最大量程和逐点比较方法决定的。例如,图4-4c对应最大量程L=10.6m时的频谱图,在D频段内会产生91个共振频率,相邻共振频率的间隔为16.48Hz。为了正确检测出每个共振频率,相邻共振频率之间必需存在至少一个二次平滑后的频率点。从图4-4d(图4-4c的局部放大图)的频谱可以看出,当窗口长度Δ=4Hz时,相邻两个共振频率之间至少有2个频率点,从而保证算法的顺利实施。并且,常温下可计算出L=10.6m时相邻共振频率之间的频率差约为15.5Hz~16.8Hz,4Hz的窗口宽度足以满足要求。
3、计算各共振频率与初始共振频率的比值n(k)
提取峰值之后,将L=10.6m时获取的共振频率记为{f(k),k=1,2,...,M},M=373。可以计算出第k个共振频率和初始共振频率f
0之间的比值
4、根据各个共振频率换算出液位高度
由{f(k),k=1,2,...,M}和
及声速c,可以得到M-1个液位计算值
k=1,2...,M-1
原则上,可以通过相位偏移的原理从理论上计算出ΔL(f(k)),但是补偿项的大小还受到实际扬声器的结构、导声管形状和体积等因素的影响,难以精确计算。所以,最终ΔL(f(k))的取值需要根据具体的试验环境确定。在本专利的实施例中,通过对测试数据的分析发现,当L>1.5m时,相位偏移现象逐步显现,确定当1.5m≤L≤7m时,ΔL(f(k))=0.007m;7m<L≤10.6m时,ΔL(f(k))=0.013m。将由每个共振频率换算出的液位高度Lk取平均后,获得最终计算出的液位高度L
在此实施例中,分别进行了导声管中无异物和存在异物情况下的测试。
1)液面及导声管内无异物时的实施例测试数据
在液面及导声管内无异物的正常情况下,表1中列举出22组测试结果,遍及0.6m~10.6m之间L的不同取值。从数据结果可以看出,当L较大时,由于计算出的液位高度来自多次测量的均值,一定程度上减小了观测噪产带来的不确定性,所以误差并没有随着L的增加而大幅增加。但是,当L较小时,参与计算的共振频率个数较少,加之观测噪声、麦克风灵敏度下降等因素影响,使得相对误差反而较大。也可以通过增加死区dz长度的方法来减少测距较短时的误差。但是经过对多次测试数据的统计分析,所提方法的平均相对误差只有1‰,小于市面上大部分超声波液位仪3‰~5‰(量程10m)的误差标准,也小于Denis Donlagic所提测量方法3‰(量程7m)的误差标准。
表1导声管无异物时的测试数据
2)导声管管壁存在异物时的实验
这里通过一系列测试来评估管内异物对测量的影响。将阻塞物(塑料泡沫块)粘在导声管中的不同位置。设定L=1.3m,阻塞物横截面积(S)分别占整个导声管横截面积(S0)的40%和20%,表2中给出的实验结果说明了阻塞物引起的观测不确定性。由于低频声波遇到障碍物时发生了衍射,从而阻塞物对合成波的频谱特性没有造成大的影响,当阻塞物位于导声管中部时测量误差最大。通过对L其他长度下不同阻塞物不同附着位置的测量实验发现,在阻塞物面积S≤20%S0时,引起的最大相对误差都不超过6‰,满足一般液罐液位测量的实际需求。
表2导声管存在异物时的测试数据