张 伦, 徐科军,2, 徐浩然, 乐 静, 刘 文, 刘陈慈, 黄 雅
(1. 合肥工业大学 电气与自动化工程学院, 安徽 合肥 230009;2. 工业自动化安徽省工程技术研究中心, 安徽 合肥 230009)
科氏质量流量计[1,2]可以直接测量流体的质量流量,测量精度高、应用广泛。数字信号处理技术是其核心技术,对测量精度和测量稳定性起决定性作用。目前,科氏质量流量计在测量单相流量[3,4]时,信号处理方法较为成熟,处理精度较高。但是,在实际应用中,经常遇到一些流量启停频繁的批料流[5,6]工况。批料流发生的整个过程是:流量由零迅速增大,在最大值保持一段时间,再迅速下降至零。例如,加气机加气、油料装车、化妆品灌装等均属于批料流工况,该种工况下要求算法具有较快的响应速度,同时保证稳态测量结果波动小。目前有多种信号处理方法,如过零检测算法[7,8]、滑动Goertzel算法[9,10]、正交解调算法[11]、希尔伯特变换[12]、DTFT算法[13]等,在不考虑后期处理,仅从算法本身的角度来看,正交解调算法由于不依赖于信号频率的预知,避免了批料流开启和关断过程中相位差突变频率重新收敛所产生的延时,具有较快的响应速度,且稳态波动较小,因而适用于批料流工况。Endress+Hauser公司[14]、Foxboro公司[15]率先将正交解调的方法应用于科氏质量流量计的信号处理中,但并未披露相关的技术细节,也并没有将其应用于批料流。正交解调算法最终的计算精度与算法中的低通滤波环节有直接关系,徐科军[11]等从正交解调原理出发,针对解调后信号频率分量的特点,设计了滤波效果较好的滤波器,但是,其计算量较大,并未在DSP(digital signal processing)上实时实现。
本文从如何在科氏质量流量计上实现正交解调算法并将其应用于批料流的角度出发,利用正弦信号周期性特点,实现解调信号单周期有限点数据循环调用;在保证精度和实时性的基础上改进滤波环节,减小了算法的计算量;为了去除奇异点,同时进一步减小稳态波动性,在相位差后期处理中加入两级平均;对影响算法精度的一些关键环节做了优化,降低算法的复杂度,同时提高了测量精度。在此基础上,设计科氏质量流量变送器的软件部分和硬件部分,并研制了基于DSP的数字式科氏质量流量变送器系统。为了验证改进后算法的测量精度和所研制变送器的稳定性和可靠性,进行了单相流和批料流标定实验。
随着流体密度的变化,科氏质量流量传感器输出的两路信号频率也会发生相应的变化,因此可以把传感器输出信号作为调频信号,采用正交解调算法对该信号进行处理。
科氏质量流量传感器输出信号为:
(1)
式中:A1和A2为2路传感器信号的幅值;ω+Δω为实际信号频率,ω为解调信号频率,Δω为实际信号频率与解调信号频率之间的差值;n为采样点数;T为采样周期;θ1和θ2分别为2路信号相位差;ε1(n)和ε2(n)分别为2路信号中的噪声。
用频率固定为ω的正弦信号sin(ωnT)、余弦信号cos(ωnT)对输入信号x1(n)和x2(n)进行解调。以x1(n)为例:
(2)
因此可以看出解调后的信号由低频分量、高频分量和噪声分量组成。假设经过低通滤波环节之后,高频分量与噪声分量可以被完全滤掉,此时,只剩下低频分量:
同理,第二路信号解调后的低频分量为:
2路信号的相位差为:
(3)
正交解调原理如图1所示。
图1 正交解调法测量原理Fig.1 Measurement principle of quadrature demodulation algorithm
2.2.1 解调信号的选取
由式(1)和式(2)可知,科氏质量流量传感器输出2路频率为ω+Δω且具有一定相位差的正弦信号x1(n)和x2(n),解调信号选取频率固定为ω的正弦信号sin(ωnT)和余弦信号cos(ωnT)。若直接用DSP编程环境CCS(代码编辑工作室)的库函数产生解调信号,则会产生较大的计算误差。CCS中自带的sin和cos库函数仅为float型精度,生成得的解调信号sin(ωnT)和cos(ωnT)有效位数为6~7位,且其直接参与最终相位差计算,对计算的精度影响较大。为了提高解调信号的有效位数以直接提高算法的最终精度,利用正弦信号具有周期性的特点,将解调信号sin(ωnT)和cos(ωnT)设置为周期循环,即满足:
(4)
式中N为周期循环点数,即可实现单周期有限点数循环调用。在此基础上,通过MATLAB生成N点高精度解调信号,并在CCS中以64位double型常量定义,这样在提高精度的同时,也减小了算法的运算量;同时,应尽量设置一个周期内解调信号均为非零值,否则会造成解调信号与采样信号相乘结果为零,导致数据丢失。
(5)
2.2.2 滤波器的选择
为此,选择2阶FIR陷波器和2阶IIR低通滤波器相级联来完成对解调后信号的滤波,FIR型陷波器可以实现高频噪声的定向滤波,IIR型低通滤波可以滤除低频分量附近的噪声分量,虽然IIR型滤波器为非线性相位滤波器,但是,由于解调后信号频率成分相同,通过滤波器后所造成的相位滞后相同,并不会对相位差计算结果产生影响。
批料流的整个过程由开启阶段、稳定阶段和关断阶段组成,且由于开启阶段和关断阶段具有对称关系,因此分析滤波器性能只需针对开启阶段和稳定阶段即可。为了将本文设计的滤波环节与文献[11]的2种滤波环节进行对比,在MATLAB中生成频率为135 Hz、幅值为4 V且混有倍频噪声和随机噪声的2路正弦信号,然后以2 000 Hz的采样频率对2路信号同时连续采样,每路信号采集10 000点。开始采样时,2路信号相位差为0°,当采样点数n=5 500时,信号相位差突变为1.6°,之后均保持1.6°不变,即模拟批料流开启阶段和稳定阶段,其滤波环节在信号相位差突变时产生的延时和稳态相位差计算结果如图2和图3所示。
图2 滤波环节延时对比图Fig.2 Comparison diagram of delay generated by filters
图3 稳态相位差计算结果图Fig.3 Calculation results of steady phase difference
由图2和图3可知,3种滤波环节在信号突变100点后均可跟踪上信号相位变化,且稳态最大波动均小于真实相位的0.15%。因此本文设计的FIR陷波器和IIR低通滤波器级联的滤波环节在保证与文献[11]设计滤波环节相同滤波效果的同时减小了算法的运算量。由滤波环节产生的延时为:
滤波环节可以除去信号中的大部分噪声,但在实际运算过程中,由于批料流工况下流量变化迅速、持续时间较短,导致计算得到的相位差稳态波动大,且存在奇异点,因此需要对相位差结果进行后期处理。
2.2.3 相位差后期处理
相位差后期处理主要由两级平均组成,其中第一级的作用主要是去除奇异点。由式(3)可知,通过对I1(n)、Q1(n)和I2(n)、Q2(n)分别反正切得到2路传感器信号的相位,对其做差得到信号相位差,实现中使用的反正切函数是CCS自带的库函数,精度较低,且由于调制信号频率与实际信号频率不等导致I1(n)、Q1(n)、I2(n)、Q2(n)均为正弦变化且存在过零点,当Q1(n)和Q2(n)接近为零点,此时CCS中运算I1(n)/Q1(n)和I2(n)/Q2(n)与真实值偏差较大,导致该点计算误差较大,不能反映当前传感器的真实相位差,应将其剔除。因此,开辟一个长度为M的数组sort[M],程序开始运行时将每一个采样点计算的相位差保存到数组sort[M]中,当累积的点数小于M时,不做任何处理,当累积点数为M点时,将M点相位差由大到小排序,剔除排序后的前25%个点和后25%个点,保留中间50%个点并取均值,该均值即可较为准确地反映M点的真实相位差;算法完成M点相位差运算所需的时间为:
式中:Fs为2 000 Hz;M为100,即每经过0.05 s得到一个剔除奇异点后的平均相位差。但实际批料流下的测量精度主要由两方面决定,其一是批料流开启和关断过程中的响应速度[16],其二为算法的稳态波动性,经过一级平均后的相位差稳态波动性仍较大,因此可以通过适当牺牲算法的响应速度来减小稳态波动性,以提高批料流下的测量精度,在一级平均之后加入二级滑动平均,在程序中开辟一个长度为K的数组ave[K],将经过一级平均后的相位差保存到该数组中,当保存的点数小于K时,只对已保存的相位差取均值;当保存的点数累积达到K时,开始滑动数组,即对该点与之前保存的K-1点相位差取均值;同时,用最新的相位差替代最早保存的相位差,完成数据更新。算法经过一级平均和二级平均产生的时间延迟为:
tK=K×tM
算法的整体响应时间为:
tr=tf+tK
针对2.2.2节构建的批料流开启阶段和稳定阶段的信号模型,图4和图5为添加两级平均后算法的响应速度和稳态波动性大小。
图4 不同K值下的算法响应速度Fig.4 Algorithm response speed of different K
图5 不同K值下的稳态波动性Fig.5 Steady state volatility of different K
可见,当K取值较小时,算法的整体响应时间tr较短,响应速度较快,但相位差稳态波动较大,随着K值得不断增大,其稳态波动逐渐减小,响应时间逐渐加长,通过图5可知,当K取值为3时计算的相位差最大波动不超过信号真实相位差的0.02%,继续提高K值并不会明显减小稳态波动,反而会使得响应时间不断加长,因此综合考虑选择K值为3作为批料流下的最佳值,此时算法的整体响应时间tr为0.2 s。
基于DSP芯片实现算法有以下2个难点,其一是DSP的资源限制,主要由时间限制和空间限制组成,时间限制是指在当前整套算法的时间复杂度(执行算法所需要的计算工作量)和DSP主频下,算法能否实时计算,空间限制指在当前算法的空间复杂度(执行算法所需要的内存空间)和DSP所具有的内存空间下执行过程中是否具有足够的内存;其二是如何保证算法实现过程中的精度。为此,采取了以下有效措施。
1) 采用DMA功能进行数据传输,该种方法的优点是可以在不使用中断的情况下将数据实时传输到DSP的内部RAM中,避免了数据丢失现象的发生,提高了CPU的效率,使得时间复杂度得以下降。
2) 采用快速排序算法来代替传统的冒泡排序算法,算法的时间复杂度由O(n×n)降低为O(n×log2n)。在实际实现过程中每采样100点排序一次,即将算法排序所需平均时间缩短为传统冒泡排序法的1/15。
3) DSP处理乘法的速度远快于除法,通过定义中间变量将程序中大量循环的除法转换成乘法,减小了运算量,从而使得整套算法的时间复杂度下降。
4) 采用循环队列的方法存储数据,即在队列尾部存放数据的同时,在队列头部读取数据,降低对DSP资源的占用,从而降低了算法的空间复杂度。
5) 采用64位的double型常量和变量替代32位的float型常量和变量,从而保证数据具有足够的有效位数,确保小相位差时的测量精度。如针对直接影响算法精度的滤波器系数、解调信号和参与相位差运算的数组均定义为64位的double型。
选用TI公司生产的TMS320F28335DSP芯片作为变送器的核心处理器,在此基础上研制了科氏质量流量计变送器系统。其主要由驱动模块、输入信号调理模块、数字信号处理模块、温度补偿模块、人机接口及通讯模块组成,硬件框图如图6所示。
图6 系统硬件结构框图Fig.6 Diagram of hardware for system
科氏质量流量计系统的软件部分主要由主监控程序、初始化模块、中断模块、错误处理模块、看门狗模块、LCD和SCI通讯模块、键盘模块、算法模块组成。其结构框图如图7所示,初始化模块包括系统初始化、外设初始化、算法初始化;主监控程序实时调用系统算法模块、看门狗模块、错误处理模块来完成流量信号的计算,同时通过LCD和SCI通信模块完成流量的输出。中断模块主要包括掉电保护中断、AD数据采集中断、DMA数据传输中断、Cputimers0中断,通过设置相应的中断服务程序,完成相应的功能。
图7 系统软件结构框图Fig.7 Diagram of software for system
系统的软件流程图如图8所示,系统开始工作时,首先完成系统初始化、外设初始化、算法初始化。再通过判断AD采样数据是否达到单次计算长度M点,若达到则可进行一次算法运算,若未达到,则继续等待,直到采样点数达到M为止,此时对采样得到的数据进行解调、滤波、计算从而精确的得到信号的相位差;对相位差进行两级平均,通过设置仪表系数,得到管道内的流量,读取温度信号对流量进行温度补偿,提高最终计算结果的准确性,通过键盘处理子程序刷新LCD将流量在液晶上输出,同时通过SCI将流量上传到上位机中。
图8 系统软件流程图Fig.8 Flow chart of system software
为了考核正交解调算法的实现效果,将研制的变送器与Micro motion公司生产的DN25口径传感器进行匹配,形成完整的科氏质量流量计,实验装置主要由水箱、水泵、空压机、PLC控制柜、称重装置等组成,如图9所示。
图9 标定装置原理图Fig.9 Calibration device schematic
在进行批料流标定实验前,首先进行单相流标定实验,以验证正交解调算法测量精度和所研究变送器的可靠性和稳定性。
采用动态质量法进行标定实验,将高精度的秤得到的称重值作为标准值,科氏质量流量变送器的计算值作为被检值,对比两者在一定时间内的差值,即可得到变送器的精度。
在进行单相水标定实验之前,首先将换向器调到1路,调节旁路阀和手动调节阀使流量达到标定所需流量。此时,水在水箱、水泵、科氏质量流量传感器间循环流动。标定开始时,换向器自动切换2路,水经由水箱、水泵、科氏质量流量传感器流向称重装置;同时,科氏质量流量变送器以脉冲的形式上传测量值。当达到标定时间,换向器切换至1路,将称重装置的称重值与脉冲上传测量对比,即可得到测量误差。
根据国标规定,流量从最大流量点逐渐减小到最小流量点,再回到最大流量点,对不同的流量点分别进行测量,每个流量点测量3次。完成所有流量点测量后,即可得到科氏质量流量计的测量精度和重复性。标定结果如表1所示。由标定结果可知,单相流测量误差小于0.1%,重复性小于0.05%。
表1 单相水动态标定实验数据Tab.1 Single phase water dynamic calibration experimental data
在单相流具有较高测量精度的前提下,在图9所示的装置进行了批料流实验,流量点分别选择120 kg/min和60 kg/min,批料时间设置为5 s、10 s、15 s和20 s。在每次批料流开启之前,水在水箱、科氏质量流量传感器、称重装置之间循环流动,关闭手动调节阀,此时水由支路流回水箱,主路内处于满管零流量,为了使系统充分稳定,等待15 s后开启手动调节阀,批料流开始,经过一段时间(5~20 s)后,关闭手动调节阀,批料流结束,对比变送器测量值和称重装置的称重值即可得到实际测量精度。批料流实验结果如表2和表3所示。
由表2和表3可看出,在120 kg/min和60 kg/min的20 s、15 s、10 s和5 s批料流实验中,其测量误差小于0.1%,重复性小于0.05%。
表3 60 kg/min下正交解调算法批料流实验结果Tab.3 Batch flow experimental results of quadrature demodulation algorithm at 60 kg/min
表2 120 kg/min下正交解调算法批料流实验结果Tab.2 Batch flow experimental results of quadrature demodulation algorithm at 120 kg/min
根据正交解调算法具有响应速度快的优点,选取该算法作为批料流下的信号处理方法,并从实现的角度出发,采用常量替代算法中的解调系数,节省内存开销,降低整套算法的空间复杂度,提高了测量精度;采用FIR陷波器和IIR低通滤波器级联对解调后的信号进行滤波处理, 在保证有较好滤波效果的同时,降低了算法的运算量,在正交解调算法后期相位差处理中加入平均化处理,剔除奇异点,并减小算法波动性;同时,对算法实现的一些关键部分进行了优化处理。研制了科氏质量流量变送器的硬件和软件,其中,硬件部分主要由驱动控制模块、信号调理模块、数字信号处理与控制模块等组成,软件部分主要由初始化模块、信号采集模块、算法模块、驱动模块等组成。将研制的变送器与Micro Motion公司生产的DN25传感器匹配,进行单相流标定和批料流实验,其中,单相流标定在12:1的量程范围内,测量误差小于0.1%,重复性误差小于0.05%;在120 kg/min和60 kg/min的5,10,15,20 s这4个不同批次的批料流实验中,测量误差小于0.1%,重复性误差小于0.05%,证明本文研究的正交解调算法在单相流和批料流工况下均具有较好的测量效果,所研制的变送器性能较好。