[0004] 本发明的目的针对现有技术存在的不足,提出了一种基于声共振频率非线性滤波的液位测量方法。
[0005] 本发明采用固定频段内产生合成波形的液位测量方法来提取共振频率点,将采集多组在不同液位高度下的共振点序列,计算其共振点间差值序列与均值的比值和其各差值所对应的液位高度与其均值的比值作为训练样本,输出共振点序列中某些位置存在的缺点或多点的个数,构建反应输入和输出之间的非线性关系的置信规则推理滤波器,从而判断该共振频率序列的缺失和多点问题,并采用相关的算法进行相应的补偿,将补偿后的结果再经过液位换算公式转换为液位高度信息,具体包括以下步骤:
[0006] 步骤(1).将导声管垂直于液面插入到待测液体的底部,麦克风、扬声器和温度传感器平行安置在导声管的顶部,使扬声器发射端和麦克风接收端正垂直于待测液体表面。
[0007] 步骤(2).通过微控制器输出一段频率范围为D=[c,d]Hz的一组随时间均匀变化的正弦波扫频信号,该扫频信号通过扬声器垂直于待测液面发出,保证了声波信号在导声管中垂直于液面传播,其中扫频范围[c,d]Hz应该满足c>>20Hz;扬声器发出的声波经导声管垂直传播至液面时,声波因遇到不同的介质后会发生反射形成反射波,而声波在传播过程中会发生叠加形成合成波传至麦克风处;麦克风接收采集到合成波形,通过ADC(模数转换器)将合成波信号转化为数字信号。
[0008] 步骤(3).将转化后的数字信号经过控制器中FFT(快速傅立叶变换)使其由时域波形转化成频域波形,然后通过平滑滤波算法对频域波形进行处理得到共振频率点序列P(f1,f2,...,fn)。
[0009] 步骤(4)构造基于置信规则推理的非线性滤波器,补偿P(f1,f2,...,fn)中缺失共振点或删除多余共振点,具体步骤如下:
[0010] 步骤(4-1)选择基于置信规则库推理的非线性滤波器的输入和输出
[0011] 通过对声波信号经过相关算法处理后的分析,发现共振频率点间的各个差值大小与其所对应的液位高度测量值存在着一定的关系;其各个差值的变化可判断出在提取共振频率序列时是否存在共振点的缺失和多提取的问题;对于步骤(3)得到的一组共振频率点序列P(f1,f2,...fn),计算其相邻两点间的差值序列e(i),e(i)=fi+1-fi,i=1,..,n-1;通过其差值序列可以得到各个差值与其均值的比值序列为G=(G1,G2...,Gn),其中求得各个差值所对应的液位高度值
以及各个高度值与其均值的比值序列为g=(g1,g2,...,gn),其中
[0012] 经过对Gi和gi的分析可得,当共振点序列中存在缺点或者多点的情况时,Gi和gi的数值会发生相对应的变化,因此将第i个共振点位置得到的Gi和gi分别作为非线性滤波器的输入量x1和x2,则非线性滤波器的输出记为O,表示在第i个共振点处应该删除和补充的共振频率的个数,O∈{-1,0,1,2,3,4,5,6},这里“O=-1”代表第i个共振点处多出一个虚假共振点fi,需要将其删除,当“O=0”表示fi正确,不需要任何操作,当“O=1~6”表示第i个共振点处分别缺少1~6个共振点,需要进一步给予补偿。
[0013] 步骤(4-2)建立非线性滤波器中的置信规则,描述输入量x1、x2与输出量O之间的非线性映射关系,其中的第k条规则记为Rk,表示形式如下:
[0014] Rk:If x1is AND x2 is
[0015]
[0016] Rk的规则权重为θk,满足0≤θk≤1;输入变量x1和x2对应的属性权重分别为δ1,δ2,且0≤δ1,δ2≤1;其中, 和 分别为规则系统的输入变量x1和x2的参考值,且有Qj为 的取值空间,其中的元素满足表示对应第j
个输入变量参考值的取值个数。
[0017] 分别在Q1,Q2中抽取一个元素作为x1、x2的参考值,由此组合成规则,共计产生L=n1×n2条规则,L≥1,k=1,2,3,…,L为规则的编号;Rk的后项属性分别为D1,D2,…,DN,并有LO≤D1
[0018] 根据所建的规则,输入X=[x1,x2]对第k条规则的激活权重wk可由式(2)给出[0019]
[0020] 其中相对属性权重为
[0021]
[0022] 式中: 是第k条规则中第i个输入xi与参考值 的匹配度;当输入xi是数值量时,则其匹配度的求解方法如下:当 或 时,其匹配度 取值均为1,对于其他参考值的匹配度均为0;当 时,xi对于 和 的匹配度 取值分别由
式(4)和式(5)给出
[0023]
[0024]
[0025] 此时对于其他参考值的匹配度均为0;在得到wk后,可利用其对第k条规则的后项属性规则结构进行折扣,然后利用证据推理的方法将所有的而后项属性结构进行融合,得到其所对应的输出
[0026] O(X)={(Dj,βj);j=1,2,...,N} (6)
[0027] 式中βj为后项Dj的置信度
[0028]
[0029] 这里
[0030] 通过计算其输入量对于参考值的匹配度,以及计算出各规则的激活权重,将激活规则的后项置信结构利用证据推理算法进行融合,得到输出O(X),即第i个共振点所存在的缺点或者多余点的个数。
[0031] 步骤(5)根据步骤(4)中推理出的O(X)的值,实施删除多余共振点或补偿缺失的共振点的操作,具体过程如下:
[0032] 当输出O(X)∈[-2,-0.5)时,表示第fi频率点间多提取一个共振频率点,需要对fi进行删除,记fi=0,删除点的个数记为z1=1;
[0033] 当输出O(X)∈[-0.5,0.5)时,表示第fi和fi+1个共振点正确,不需要执行任何操作;
[0034] 当输出O(X)∈[0.5,1.0)时,表示第fi和fi+1个共振点间需要补充一个共振点,记为fi1,
[0035] 当输出O(X)∈[1.0,2.5)时,表示第fi和fi+1个共振点间需要补充两个共振点,记为fi1、fi2,
[0036] 当输出O(X)∈[2.5,3.5)时,表示第fi和fi+1个共振点间需要补充三个共振点,记为fi1、fi2,fi3,
[0037] 以此类推,当O(X)∈[5.5,6.5)时,表示第fi和fi+1个共振点间需要补充六个共振点,fi1、fi2、fi3、fi4、fi5、fi6,其中补偿点的个数记为z=1,2,3,4,5,
6。
[0038] 步骤(6)将经步骤(5)中删除或补充之后的所有共振点进行重新排列,生成完备的共振点序列记为P'=(f1,f2,...,fi,fi1,fi2,...,fiz,fi+1,...,fn),根据P’计算液位高度L如下:
[0039] 将得到的完备的共振点序列P'=(f1,f2,...,fi,fi1,fi2,...,fiz,fi+1,...,fn),其中z表示推理得到需要补偿的点的个数,计算其相邻共振点间的差值序列e(v)=fv+1-fv,v=1,2,...,n+z-z1-1,;利用下面的液位换算公式来计算该序列所对应的液位高度值,可以得到共n+z-z1-1个液位高度L(v)
[0040]
[0041] 其中T为环境的温度;将取得的L(v)求和取平均,得到最终的液位高度L
[0042]
[0043] 该方法中的微控制器,采用具有较强处理能力的ARM架构的控制器,例如ST公司的生产的STM32F746开发板;上面所用的音频处理芯片完成声波信号的产生输出和音频信号的采集,例如STM32F746G-DISCO开发板上搭载的音频解码芯片WM8994。
[0044] 上述方法的关键技术在于:依次采集多组由控制器产生的声波经过反射叠加后的合成波信号,通过多级平滑滤波方法提取各组合成波的共振频率点,将共振频率点序列进行相应的变化得到共振频率点与液位高度间的非线性关系,从而构建置信规则库推理的非线性滤波系统来判断一组共振点序列中是否存在缺失与多点等问题,并用相应的补偿算法进行处理,得到一组新的完备的共振点频率序列,从而降低了因麦克风等硬件系统以及周围环境中一些不确定因素所带来的影响,进而提高了液位高度测量的精确度。
[0045] 利用本发明提到的方法可以有效解决在快速频率检测方法中提取合成波的共振频率点所遇到的问题,以及因周围环境中的一些不确定因素所造成的测量误差,使其测量精度可达到1%,优于市面上大多数超声波液位仪的测量精度,同时也降低了测量成本。