APP下载

基于过零检测的相位差计算方法的改进

2022-02-07徐长利李波钟其水钟骁曾学兵

机电信息 2022年2期

徐长利 李波 钟其水 钟骁 曾学兵

摘要:针对科里奥利质量流量计相位差计算中实时性较差和精度不高的问题,在过零检测的基础上对相位差计算方法进行改进。首先采用改进的自适应格型陷波器(Adaptive Lattice Notch Filter,ALNF)对信号进行频率跟踪,通过快速傅里叶变换(Fast Fourier Transform,FFT)进行频率预估缩短ALNF收敛时间,引入反馈因子提高ALNF收敛精度;然后针对离散信号无法求解零点的问题,采用傅里叶级数拟合的方式求解信号的零点;最后采用卡尔曼滤波器对误差进行校正,从而提高相位差的计算精度。

关键词:自适应格型滤波器;傅里叶级数拟合;过零检测;卡尔曼滤波器;相位差

中图分类号:TH814    文献标志码:A    文章编号:1671-0797(2022)02-0035-04

DOI:10.19514/j.cnki.cn32-1628/tm.2022.02.010

0    引言

在许多工业领域当中,流体的流量都有着十分重要的应用,其中科里奥利质量流量计(简称“科氏力流量计”)的应用尤为广泛。该流量计主要是由一次仪表和二次仪表组成。

(1)一次仪表主要由测量管(U型管、直管等)、激振器和传感器等组成。在进行流量测量时,流体会流过测量管,在科里奥利力的作用下,测量管会发生扭曲,通过传感器采集会得到两路具有相位差的正弦信号,计算两路信号之间的相位差便可进一步转化为流体的流量。

(2)二次仪表主要是数字信号处理部分,用来计算流量计的相位差。

迄今为止,有许多学者对科氏力流量计相位差计算方法进行了深入而广泛的研究,主要有复系数滤波算法[1-2]、计及负频率的影响的DTFT算法(Sliding Discrete Time Fourier Transform,SDTFT)[3]、希尔伯特变换(Hilbert

Transform,HT)方法[4-5]以及基于相关法计算方法[6]等。其中,复系数滤波算法是采用复带通滤波器(Complex Bandpass Filtering,CBF)、复陷波滤波器(Complex Notch Filtering,CNF)以及它们的组合来求解相位差,其计算量较大,收敛时间较长。SDTFT虽然克服了希尔伯特变换方法易受噪声影响的缺点以及相关法需要整周期采样的缺点,但其为了防止数值溢出,采用滑动窗口的方式减少了每次计算的采样点数,导致精度有所缺失。

为解决上述问题,本文采用平稳单相流信号模型作为科氏力流量计的信号模型。针对流量计信号处理中的实时性和精度问题,提出以过零检测为基础,利用改进的自适应格型陷波器进行频率跟踪,在计算出结果之后,采用卡尔曼滤波器进行误差校正,最终实现相位差计算精度的提高。

1    相位差计算改进方法与步骤

科氏力流量计在理想状态下的两路输出信号均为频率和幅值不变的正弦信号,它们之间的相位差反映流体的流量。

科氏力流量计在稳定工作处状态下,其信号主要受环境噪声干扰,体现在信号的幅度发生变化,因此采用平稳单相流信号进行仿真[3],信号模型如下:

y(n)=Asin(ωn+φ)+Be(n)     (1)

式中:e(n)为均值为0、方差为1的高斯白噪声;B主要用来控制噪声的幅度,进而控制信噪比;A为幅值,视为常量;ω为科氏力流量计的振动频率;φ为信号的原始相位。

相位差的计算流程如图1所示,首先利用FIR低通濾波器进行初步降噪。经过降噪之后采用基于FFT和反馈因子改进的自适应格型陷波器进行频率跟踪以及进一步的降噪,跟踪的频率用于过零检测中进行时间差向相位差的转化。

然后采用傅里叶级数拟合进行零点的求解,将两路信号零点之间的时间差ΔT转换为相位差,相位差ΔP计算如下[7]:

ΔP=360°×ΔT×f     (2)

式中:f为跟踪后的频率。

最后采用卡尔曼滤波器进行相位差误差的校正。

1.1    基于FFT频率预估和反馈因子改进的自适应格型陷波器

ALNF是一种可以根据信号的特点进行递归收敛并估计信号频率的滤波器。其主要采用格型IIR陷波器实现,主要由全极点和全零点两个格型滤波器级联而成,其传递函数为:

H(z)=            (3)

式中:k0为权系数,用于计算信号频率;ρ为偏置参数,决定陷波带宽。

此种形式是将零点固定在单位圆上,k0采用Burg算法进行自适应调整[3]。

ALNF虽然能够跟踪频率,但是由于其算法存在迭代递归过程,在计算时收敛过程较长,并且当频率发生改变时会浪费较长的时间进行频率的自适应跟踪。因此,需要采用FFT进行信号频率的预估,然后再进行自适应跟踪滤波,这样可以缩短收敛过程;同时引入反馈因子Fb,反馈因子采用输入信号与输出信号的互相关,选择合适的阈值之后,如果互相关函数最大值小于该阈值,那么表示跟踪效果差,这时需要立刻调整陷波的带宽ρ,对频率进行跟踪。

其改进方式如图2所示。

设输入信号为s(n)=x(n)+e(n),其中x(n)为原始信号,e(n)为高斯白噪声;(n+m)为跟踪降噪之后的信号,其中m为信号延时。则反馈因子Fb为:

Fb=max[R(m)]=maxs(n)(n+m)        (4)

当输出信号(n+m)与输入信号s(n)相关性很低时,需要通过调整ρ来调节陷波器带宽,进而重新跟踪频率。

计算出信号之间的相关性之后,利用相关函数的最大值作为反馈因子Fb,并设定阈值Th=8,小于阈值Th则认为信号之间相关性低,相关性低的情况则需要减小ρ来加快信号的收敛。

ALNF改进前后对比如图3所示。

由图3对比分析可知,经过FFT频率预估和反馈因子改进之后,信号的收敛区间减小,达到了改进的目的,可以用来提高相位差计算的实时性。

1.2    基于傅里叶级数拟合的过零检测

过零检测的基本原理是通过提取周期性的零点来得到左右信号之间的时间差,进而获取相位差,其具有无收敛过程、运算量小和响应速度快的优点,但是在零点的求解过程中极易受到噪声的干扰。

在经过两次降噪之后,信号的信噪比有了较好的提升,因此可以采用过零检测的方式实现信号相位差的计算。

傅里叶级数拟合是以三角函数表示的无穷级数,比较适合用来拟合周期性函数。

在信号满足狄利克雷条件的情况下,函数f(t)可以表示为:

f(t)=a0+[akcos(kωt)+bksin(kωt)] (5)

式中:a0、ak、bk为傅里叶系数。

在实际应用中,无法采用无限个谐波叠加,因此需要选取合适的谐波数量进行拟合:

Y(t)=a0+[akcos(kωt)+bksin(kωt)] (6)

写成矩阵形式为AX=Y,其中:

X=[a0,a1,b1,a2,b2,…,am,bm]T

Y=[Y(t1),Y(t2),…,Y(tn)]T

A= 1   cos(ωt1) …  cos(mωt1)  sin(mωt1)                                         1   cos(ωtn)  …   cos(mωtn)   sin(mωtn)

采用最小二乘法求解为:

X=(ATA)-1ATY   (7)

据此可以求出傅里叶级数拟合方程的系数,进而求出信号零点。

1.3    基于卡尔曼滤波器的误差校正

在平稳单相流信号条件下,相位差保持在一个恒定的值,经过计算求解之后的相位差通常是在真实值附近上下波动,因此可以采用卡尔曼滤波器对所求解的误差值进行预测估计,使其在真实值附近减小波动。卡尔曼滤波主要公式如下[8]:

状态先验估计:

k | k-1=Φk,k-1k-1 | k-1   (8)

方差先验估计:

Pk | k-1=Φk,k-1Pk-1 | k-1Φk,k-1  T    +?祝k,k-1Qk,k-1?祝k,k-1  T           (9)

增益矩阵:

Kk=Pk | k-1HkT(HkPk | k-1HkT+Rk)-1    (10)

状态估计校正(最优估计):

k | k=k | k-1+Kk(zk-Hkk | k-1)  (11)

方差估计校正:

Pk | k=(I-KkHk)Pk | k-1   (12)

卡尔曼滤波器主要包括两个过程:预测和校正。状态先验估计和方差先验估计为时间更新方程,用于预测部分;增益矩阵、状态估计校正和方差估计校正为状态更新方程,用于校正部分。通过这两组方程便可以进行误差校正。

2    仿真分析

由于科氏力流量计的相位差通常在4°~10°,因此在此次仿真中选择了5 000个采样点用来模拟信号,且fs=16 000 Hz,A=2.5,f0=188.64 Hz,Phase difference=

4.01°,SNR=38.96 dB。

在进行计算时考虑DSP处理器一次处理的采样点数不能太多,因此5 000个采样点每次会处理1 000个,将1 000个采样点内的零点求出之后进行时间差的计算,然后将该范围内的零点求平均:

Δt=Δti    (13)

式中:Δt为获得的时间差输出。

最后通过卡尔曼滤波器进行校正,校正后的结果及误差如图4所示。

经过卡尔曼滤波器校正之后的均方误差如表1所示。

从仿真结果中可以看出,由于过零检测无收敛过程,因此可以很好地满足实时性的要求,同时经过卡爾曼滤波之后,所求的相位差的均方误差要远小于滤波之前的均方误差,提高了相位差计算结果的精度。

3    结语

本文基于平稳单相流信号模型,提出了改进的科氏力流量计相位差的计算方法。首先采用FFT预估信号频率,减少了自适应格型滤波器的收敛时间,同时引入了反馈因子解决了因频率变化导致的自适格型滤波器无法收敛的问题;然后采用傅里叶级数拟合的方式进行零点的求解;最后采用卡尔曼滤波器进行误差的校正。从仿真结果可以看出,卡尔曼滤波器很好地修正了相位差计算的误差,使精度得到了提高。

[参考文献]

[1] LI M,HENRY M.Complex signal processing for Coriolis mass flow metering in two-phase flow[J] . Flow Measurement and Instrumentation ,2018 ,

64:104-115.

[2] LI M,HENRY M.Complex bandpass filtering for Coriolis mass flow meter signal processing[C]//

IECON 2016-42nd Annual Conference of the IEEE Industrial Electronics Society,2016.

[3] 李叶,徐科军,朱志海,等.面向时变的科里奥利质量流量计信号的处理方法研究与实现[J].仪器仪表学报,2010,31(1):8-14.

[4] 黄丹平,汪俊其,于少东,等.基于小波变换和改进Hilbert变换对科氏质量流量计信号处理[J].中国测试,2016,42(6):37-41.

[5] 杨辉跃,涂亚庆,张海涛,等.一种基于SVD和Hilbert变换的科氏流量计相位差测量方法[J].仪器仪表学报,2012,33(9):2101-2107.

[6] 涂亚庆,沈廷鳌,李明,等.基于多次互相关的非整周期信号相位差测量算法[J].仪器仪表学报,2014,35(7):1578-1585.

[7] HOU Q L,XU K J,FANG M,et al.Development of Coriolis mass flow meter with digital drive and signal processing technology[J].ISA Trans-

actions,2013,52(5):692-700.

[8] 彭丁聪.卡尔曼滤波的基本原理及应用[J].软件导刊,2009,8(11):32-34.

收稿日期:2021-11-09

作者简介:徐长利(1999—),男,山东临沂人,硕士研究生,研究方向:智能制造。

通信作者:李波(1975—),男,四川人,博士,教授,研究方向:智能制造。