关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

基于数字频谱与模拟带通滤波组的两线制蒸汽流量计

2021.2.18

  摘要:基于MSP430F1611单片机,采用数字频谱分析与模拟带通滤波器组相结合的方式,研制新型两线制数字蒸汽流量计,以扩展量程比,保证现场测量精度,并实现低功耗工作,解决目前此类流量计存在的关键性技术问题。采用低功耗运放和数字电位器组成程控放大器,以适应蒸汽传感器输出信号强度较大范围的变化;根据少点数FFT计算结果,选择带通滤波器组,既满足蒸汽传感器信号频率范围变化大的需要,又对蒸汽信号进行佳滤波;设计有效的电源管理模块和电流输出电路,为仪表两线制工作提供足够的电流。

  0引言

  蒸汽流量计具有测量介质广泛、无活动部件、压力损失低、输出信号频率与状态体积流量成正比等优点,获得较为广泛的应用。但是,蒸汽流量计的现场测量精度有待改进,量程比有待扩展。为此,国内外有关公司和学者将数字信号处理方法应用于蒸汽信号的处理,有效地保证现了场测量精度和扩展量程比。由于以上的算法都比较复杂,需要进行大量的运算,而仪表有实时性的要求,所以,必须采用DSP(数字信号处理器)才能完成任务。但是,DSP芯片的功耗大,一般工作电流都在100mA以上,不能满足两线制仪表4~20mA的要求。而这种两线制、低功耗的仪表是许多过程工业所需要的。基于DSP的信号处理系统无法满足这些要求。虽然,国内一些学者采用低功耗单片机开发低功耗、两线制蒸汽流量计,如:文献[4]用PIC单片机开发了两线制蒸汽流量计,文献[5]用MSP430单片机设计了低功耗蒸汽流量计,但是,他们仍然采用的是常规的信号处理模式,即放大、整形和计数,所以,无法有效地从噪声中提取蒸汽信号。若采用低功耗单片机去实现数字信号处理算法,也无法做到低功耗和两线制,因为用单片机实现数字信号处理算法,单片机必须总是全速运行,任何低功耗工作模式无法使用。例如,文献[6]采用小波变换消除信号中的噪声,用MSP430单片机去实现系统,但是,测试结果表明,无法做到低功耗和两线制,因为仪表本身的工作电流超过4mA。国外的一些公司为蒸汽流量计一些信号处理模块设计了的集成电路(ASIC),用硬件的方式来对蒸汽信号进行处理,以便实现低功耗和实时工作。

  采取用低功耗单片机MSP430F1611做少点数FFTr结合硬件模拟滤波器组的信号处理方式,来实现蒸汽信号的处理,再设计有效的电流管理和电流输出模块,既能从噪声中提取蒸汽信号,保证现场测量精度,扩展量程比,又能做到低功耗和两线制工作。

  1硬件设计

  1.1总体方案

  设计的目标是既采用数字信号处理方法,又要保证仪表是低功耗工作,所以,采用低功耗单片机进行少点数快速傅立叶变换(FFT),实现周期图谱分析,确定蒸汽信号的频率值;设计一组硬件带通滤波器,其通带覆盖蒸汽信号所在的频带,根据谱分析结果来选择具体的带通滤波器,进行佳滤波,大限度地消除各种谐波和现场噪声对测量的影响,提高测量精度。采用数字电位器和运算放大器组成程控放大器,通过峰值检测确定蒸汽信号的幅值,调整程控放大器的放大倍数,使信号的幅值达到佳范围,适应大流量和小流量的测量的需要,扩展量程比。选用低功耗的单片机芯片,并设计与之配套的输出电路和电源管理电路,保证仪表工作电流小于4mA,输出电流为4~20mA,实现两线制工作。

  1.2硬件框图

  该系统的硬件框图如图1所示,包括压电传感器、差分电荷放大器、电压放大器、程控放大器、低通滤波器、电压跟随器、带通滤波器组、带通选择开关电路、峰值检测电路、整形电路、单片机、人机接口电路、4~20mA输出与电源管理电路、恒流源、温度传感器、压力传感器、差分放大器、16位模数转换器。

  1.3工作过程

  压电传感器输出的电荷信号经过差分电荷放大器转变为电压信号,由于幅值非常小,所以,再经过一级固定的电压放大器和一级程控放大器。放大后的信号经过低通滤波器,滤除信号中的高频干扰,然后分为2路。第1路信号由电压跟随器(缓冲器)输出,被单片机自带的ADC采样和转换,变成数字量。单片机对信号进行少点数的FFT,做周期图谱分析,得到信号的频率值,来选择带通滤波器组的通道。第2路信号送至带通滤波器组,进行滤波;由单片机的频谱分析结果来决定输出某路滤波后的信号。经过带通滤波器组的输出信号分为2路。第1路送至峰值检测电路;峰值检测电路将信号的峰值送至单片机ADC的输入端;单片机对信号的峰值进行采样和转换,并根据峰值来调整程控放大器的放大倍数,使信号的幅值达到佳范围;第2路送至由比较器组成的整形电路进行整形,整形后的信号送至单片机的定时器输入端,采用捕获方式,利用多周期等精度方法进行计数。单片机根据计数结果,将流量信息显示在LCD上,并通过自身的DAC转换,送至4~20rnA输出与电源管理电路,经过V/I转换成4~20mA电流信号输出。下面简要介绍其中的部分硬件电路。

  1.4带通滤波器组

  虽然蒸汽流量传感器信号经过了低通滤波器,一些高频信号被消除。但是,由于蒸汽信号频率的变化范围较宽,从0.5Hz~3.7kHz。在这个频带范围内,可能包含蒸汽流量信号频率、机械振动频率、流场扰动噪声频率和其它噪声频率。若将此信号直接进行整形和计数,由于各种噪声的影响,很容易造成整形电路的误触发,使测量结果出现较大的误差。

  针对这个问题,设计一组模拟带通滤波器,包括1个低通滤波器和7个带通滤波器,这7个带通滤波器的电路结构相同、参数不同,从而通带互不相同,但是相互连接,覆盖蒸汽流量计的频带范围,并且相邻通带间有一定的重叠。由1个高通滤波器和1个低通滤波器来实现1个带通滤波器,这样比单运放带通滤波器的幅频特性好,即这样形成的通带部分的幅频特性比较平坦,截止区域衰减得更快。考虑到整个蒸汽信号的频率范围在0.5~3700Hz的范围,若用1组带通滤波器组去滤波,效果不佳,所以,针对不同情况设计了若干组滤波器组,这样既具有一定的通用性和互换性,又保证有较好的滤波效果。例如,针对15~200mm口径的液体流量测量设计1组带通滤波器组的参数,其工作频率覆盖1~500Hz;针对25—150mm口径的气体流量测量设计1组带通滤波器的参数,其工作频率覆盖19~2300Hz。具体选择哪个滤波器的输出信号进行整形和计数,由单片机对蒸汽信号进行频谱分析的结果来决定。即单片机对采集到的蒸汽传感器信号进行周期图谱分析,确定蒸汽信号的范围;据此,确定用哪个带通滤波器滤波后的信号进行整形和计数,这样可以大程度地消除各种噪声对蒸汽信号的影响,避免误触发,保证计数的精度。

  1.5电源管理与电流输出模块

  4~20mA输出和电源管理模块由4~20mA电流变送器XTR115、DC/DC、3个LDO和磁珠BEAD组成。24V直流电压先经过DC/DC由24V变为3.3V,经过LDO变成3V电压,作为数字部分的电源,3.3V再通过另1路LDO变换成3V电压,作为模拟电路部分的电源,模拟地和数字地之间通过磁珠连接,这样数字部分跟模拟部分电平匹配,而且单片机在3V电压下消耗电流更小。同时,由24V直流电压经过一级LDO变为7V,供温压补偿部分恒流源工作。系统消耗的电流由XTR115检测并调整输出电流。由于系统电源跟输入之间没有进行隔离,将表壳(大地)和系统地(模拟地、数字地)之问进行隔离来满足绝缘的要求(即浮地)。

  2软件研制

  2.1总体框图

  该系统软件总体框图如图2所示,由主监控程序模块、保护模块、中断模块、初始化模块、程控放大器调整模块、计算模块、电流输出模块、人机接口模块组成。其中,初始化模块包括LCD初始化、流体介质和仪表口径初始化、峰值检测模块初始化、4~20mA电流输出模块初始化、温度和压力补偿模块初始化、掉电保护模块初始化、流量计算模块初始化、带通滤波器选择初始化。

  2.2主监控程序流程图

  图2中的主监控程序模块是整个软件系统的总调度程序,调用各个模块中的子程序,实现本系统的所要求的功能。主监控程序的流程如图3所示。它是一个循环程序,系统一上电,主监控程序自动运行,进入不断查询标志和进行相应处理的循环中。

  基本过程为:系统上电后,立即进行初始化;初始化后,首先查询Fn、计算标志位是否置位,若置位,则调用FFT计算模块,对经过电荷放大、电压放大、低通滤波和电压跟随后的蒸汽传感器信号做FFT计算、频谱分析和校正,估计出大能量所在的频率,根据这个频率来选择带通滤波器,并设置峰值检测时间的间隔,处理完成后清除标志位;然后,查询发触发捕获信号的标志位是否置位。

  2.3脉冲计数

  采用多周期等精度测量方法进行脉冲计数。设置定时器A(TA)为蒸汽信号脉冲计数器,设置定时器B(TB)为填充脉冲计数器,让TA的PWM模块(TA1)定时发触发捕获信号(定时时问由测量频率的下限而定),TA和TB根据相邻2次触发捕获信号之间的时间间隔,分别捕获蒸汽信号脉冲的个数和填充脉冲个数,根据TA和TB捕获得到的脉冲数以及TB的工作时钟频率计算出蒸汽信号的频率,如图4所示。定时器A的工作时钟由外部提供,外部脉冲每增加1次,定时器A计数器计数值就会增加1次,即定时器A是用来对外部脉冲进行计数的。定时器B用来产生时间间隔,每次定时时间到就发触发捕获信号。根据这个捕获信号,定时器A的1个PWM单元(TA1)就产生上升沿,定时器A的捕获单元(TA2)和定时器B捕获单元(TB2)根据这个上升沿,将其各自的计数器值捕获进来,计算出相邻两次信号的TA的计数差值Ⅳ和TB的计数差值N,则:

  式中:F为定时器B的工作时钟频率;F为定时器A的工作时钟频率,即被测蒸汽流量信号的频率。

  2.4频率估算

  对信号进行采样,计算频率值,再选择带通滤波器组的通道,接着设置峰值采样时间间隔,即具体选定带通滤波器组中的一个带通滤波器,设置峰值采样过程充放电时间。该系统采用少点数FFTr估计蒸汽信号的频率。首先对采样得到的信号序列进行零均值处理,消除直流分量;然后,对序列进行FFT运算。为了克服单片机的运算速度不够快和内存资源有限的问题,我们采取了以下的技术措施,在单片机上实时实现了FFrI1运算,并保证了算法的精度:

  (1)采用汇编语言编制FFT程序,运算速度快;

  (2)数据统一使用Q13定点数表示,即用16位来表示1个数据,高位(左边的第1位)是符号位,剩下的15位表示数据的大小,其中,高2位(左边的第2位和第3位)用来表示数据中的整数部分,在计算中作为保护位,低13位(右边的13位)表示数据中的小数部分,采样来的数据先放在低12位,然后,左移1位,这样可以减少内存占用量;(3)采用定点数计算,即在乘法和加法计算过程中使用的数据其小数点都是固定的,以提高计算速度;(4)在FFT运算过程中,每经过一级碟形因子的计算,其结果大可能会扩大3倍,随着计算级数的增加,用Q13格式表示的数据肯定会发生溢出,所以,在计算过程中必须对数据进行移位(右移),以防止数据的溢出,但是,在实际计算中,并非每级计算的结果都会溢出,若此时对结果进行移位,就会降低F丌计算结果的精度,因为移位使数据变小,即减少了小数部分的有效位,为此,先判断这一级计算结果是否大于1,当大于1时,才移位,小于1就不移位。由FFT运算结果计算出信号的功率谱,按照能量占优原则,根据大功率谱峰值,估计出蒸汽流量信号的频率;后,利用重t2"校正法进行频谱校正,提高蒸汽流量信号频率测量的精度。根据蒸汽流量信号的频率,由单片机控制多路选择电路,选择对应于当前蒸汽流量信号频率的带通滤波器,将此带通滤波器与后面的整形电路相连。根据蒸汽信号频率设置峰值采样过程中的充放电时间间隔。

  2.5带通滤波器选择

  设计的1个低通滤波器和7个带通滤波器的通频带将整个要处理的蒸汽信号频率覆盖,同时,相邻滤波器的通带之间有重叠部分,以避免当蒸汽信号频率处于相邻通带边缘时,引起带通滤波器的频繁切换,即避免频繁地变换带通滤波器。当频率超出上次选择的带通滤波器的频率范围时,就查找覆盖此频率的滤波器,选出合适的滤波器。具体选择过程为:当频率没有超过当前滤波器通带的上下限时,就仍然选择当前的滤波器;当频率正好落在2个滤波器通带的交叉带中时,将依据这2个滤波器通带的交叉点来进行选择,即把这2个滤波器幅频特性的相交点作为1个分界线:当频率低于交叉点时,就选择低通带的滤波器,高于交叉点就选择高通带的滤波器。

  3测试与实验

  当系统研制完成后,我们在实验室进行了系统功耗和电流输出精度的测试、脉冲计数精度和抗谐波干扰的测试、少点数FFT功率谱计算精度的测试、温度和压力补偿测试,在重庆耐德工业股份有限公司进行水流量和气流量标定实验,以考核系统的性能。由于篇幅所限,下面仅介绍部分测试和实验结果。

  3.1电流输出和功耗测试

  将该系统与40mm口径的一次仪表相匹配,组成蒸汽流量计,进行实际流量标定,或者用信号发生器输入标准的频率值。将日本YOKOGAWA公司CAIO0型小型通用校验仪串接在该系统的电流输出线上,测试系统的输出电流。注意,此时系统加14V电压(这比通常的24V电压严格,是考虑到负载上的压降)。

  首先,设定理论输出电流值等于或者大于4.000mA,考核电流输出的精度,即小流量对应于4mA,大流量对应于20mA。测试结果表明,大相对误差小于0.19%。其次,设为0.000mA,即将该系统DA控制电流输出的模块断开,考核系统自身消耗电流值,测试结果为3.775mA,小于4mA。这两项指标均满足仪表的要求。

  3.2FFT计算精度测试

  因为要用FFT计算的结果来确定选择哪个带通滤波器,所以,要考核其计算精度。由于FFT运算的大误差发生在非整周期采样时,所以,选择这些大误差点来进行测试。由于泄漏误差,信号基频为:

  3.3实际流量测试

  将系统与重庆耐德工业股份有限公司40mm口径的蒸汽一次仪表相匹配,采用气体钟罩方式进行标定,读取系统的频率值,如表1所示。可见,量程比达到20.6:1。

  将系统与重庆耐德工业股份有限公司80mm口径的蒸汽一次仪表相匹配,采用标准表法进行气体流量标定,读取系统的频率值,如表2所示。其中的标准表是精度为0.2%精度的涡轮流量计。可见,量程比达到18.5:1。

  表140mm口径数字蒸汽流量计气体标定实验数据

  表280mm口径数字蒸汽流量计气体标定实验数据

  4结束语

  提出少点数功率谱分析与模拟带通滤波器组相结合的方式,并在硬件和软件方面采取了一些有效措施,用单片机研制成功两线制数字蒸汽流量计,既扩展量程比、保证现场测量精度,又实现低功耗工作,克服了目前基于DSP的数字蒸汽流量计无法低功耗工作,而基于MCU的低功耗蒸汽流量计又无法进行数字信号处理、性能不佳的问题。


推荐
关闭