当前位置:首页 期刊杂志

基于FPGA的科氏质量流量计数字驱动系统设计

时间:2024-07-28

刘 文 ,徐科军,2 ,乐 静 ,徐浩然 ,张 伦 ,黄 雅 ,刘陈慈

(1.合肥工业大学电气与自动化工程学院,安徽 合肥 230009;2.工业自动化安徽省工程技术研究中心,安徽 合肥 230009)

0 引言

科氏质量流量计可以直接测量质量流量,测量精度高、重复性好[1]。科氏质量流量计有模拟和数字两种驱动方式。测量气液两相流时,模拟驱动可能导致流量管停振。此时,必须采用数字驱动[2-5]。

数字驱动中,许多学者利用现场可编程门阵列(field programmable gate array,FPGA)和数字信号处理器(digital signal processor,DSP)执行驱动任务。这两种方法都存在着一些问题,例如成本较高[6]、没有具体细节和驱动效果[7-8]、两相流下无法避免流量管停振[9]和驱动效果欠佳[10-13]等。

为了更好地对流量管执行控制,本文利用FPGA设计数字驱动系统,由FPGA负责全部的驱动任务,并使用DSP计算质量流量。在单相流工况下进行水流量标定试验,以验证是否满足精度要求。在气液两相流下将本文设计的系统与基于DSP的数字驱动进行比较,以验证驱动效果是否提升。

1 系统方案

在科氏质量流量计中,变送器需要完成的任务有采集速度传感器信号、更新驱动信号、计算质量流量和控制外设等。为了同时利用FPGA并行执行的优势和DSP计算能力强的优势,变送器将围绕这两个核心研制。将耗费大量时间的信号采集任务交给FPGA,时序不会与其他任务冲突。驱动任务和质量流量计算任务最为重要,最好可以同步执行。为此,将驱动任务交由FPGA处理,将精度要求更高的质量流量计算任务交由DSP处理。由于外设控制一般与质量流量计算任务都相关,所以外设控制也交由DSP处理。本文以FPGA执行的任务为研究对象,阐述驱动系统的执行方案。

1.1 硬件系统组成

整个硬件系统以Altera公司的FPGA芯片EP4CE115F23I7N和TI公司的DSP芯片TMS320F28335为核心,包括放大滤波电路、模/数转换器(analog-to-digital converter,ADC)1、ADC2、电压基准源、电压跟随器、ADC3、直接数字式频率合成器(direct digital synthesizer,DDS)、乘法数/模转换器(multiplying digital-to-analog converter, MDAC)、功率放大电路、单向访问随机存取存储器(single access RAM,SARAM)、铁电存储器(ferro electric fandom access memory,FRAM)、人机接口、4~20 mA电流、串口通信和脉冲输出等。

硬件系统如图1所示。

图1 硬件系统框图

1.2 工作过程

驱动系统软件流程如图2所示。

图2 驱动系统软件流程图

系统工作时,可以并行执行数据通信、计算更新驱动信号幅值信息,以及计算驱动信号频率、相位信息等任务。

由图2可以看出,FPGA控制两个ADC采样信号,并将两路信号存至片内随机存储器(random access memory,RAM),与DSP通信。与此同时,FPGA取一路ADC采样值用于驱动控制。FPGA对所取信号进行无限冲击响应(infinite impulse response,IIR)数字滤波,继而检测信号的过零点。对于驱动信号的频率、相位参数,计算检测到正过零点和负过零点,并利用DDS输出初始驱动信号。对于幅值参数,只在检测到负过零点计算,并利用MDAC控制驱动信号的幅值。对于固有频率为102 Hz的科氏质量流量计来说,驱动信号频率、相位参数的更新频率为204 Hz,幅值参数更新的频率为102 Hz。系统通信、频率、相位参数计算和幅值参数计算可以并行执行。相较于顺序执行的处理器,用FPGA处理驱动任务可以加快驱动信号更新速度。

2 关键技术

FPGA控制外部ADC采集到速度传感器信号后,需要与DSP通信和计算驱动参数。其中,与DSP通信需及时、有效,方可保证质量流量计算的精度。计算驱动参数时,可只选用一路速度传感器信号。ADC采集的数据难免混入噪声。为此,计算驱动参数前需对数据预滤波。驱动信号为正弦波,需采用有效方法求取驱动信号的频率、相位和幅值信息。

2.1 数据通信

为了尽可能地加快数据传输的速度,FPGA与DSP之间的通信采用并行方式,传输24位数据。另外,由两个信号线START和READY控制通信,时钟为CLK信号。由于运算速度的限制,DSP可以处理采样率为7.5 kHz的信号,而FPGA控制的ADC采样率为15 kHz。所以,需对传输给DSP的数据抽样,即每2个采样点抽取一个。

通信时,FPGA先将抽样后数据存至片内RAM中,待DSP需要时再传送出去。开始传输数据时,DSP会向FPGA发送START信号。若此时FPGA已将数据存至RAM中,则FPGA会向DSP发送READY信号。DSP检测到READY信号后向FPGA发送CLK信号,FPGA会在每一个CLK的上升沿,将预存的一个24位数据以并行方式发送给DSP。

2.2 数字滤波

由于各种干扰,ADC采到的信号难免混入噪声,需要对信号作预处理。速度传感器信号正常工作时有一个固有频率,所以应设置带通滤波器对信号滤波。而IIR滤波器可以用较少的运算量完成滤波算法。在此,采用三阶IIR带通数字滤波器。

(1)

式中:b1、b2、b3、a1、a2、a3为待定系数。

运算时需采用浮点小数。虽然FPGA具有并行执行的优势,但是数据处理能力较弱。需要计算小数时,FPGA一般用整数解决。但是,对精度的要求使得本系统必须作小数处理。小数可分为定点小数和浮点小数。浮点小数具有表示更加灵活的特点,其又可进一步分为单精度浮点小数和双精度浮点小数。浮点数计算要比整数计算消耗更多的资源。出于对计算精度和资源消耗的考虑,本系统在进行小数运算时一般采用单精度浮点数的方式。

在Verilog HDL语言中,需先将要计算的数转换成符合电气和电子工程师协会(IEEE)标准的二进制单精度浮点数格式后再作浮点数运算。计算单精度浮点数时可先调用Altera公司的综合开发工具Quartus Ⅱ中用于数据转换的IP函数,将待处理的数转换成符合IEEE标准的单精度浮点数表示格式,再调用计算用的IP函数执行相关运算。

顺序执行的处理器,如DSP等,由于对时序有要求,在正常工作时一般一次只能对一段数据执行滤波算法。而FPGA具有并行执行的特性,可以对采样点进行实时处理。只要有新的采样点传来,FPGA就可立即对其滤波,提高了数据处理的实时性,为驱动信号的快速更新奠定基础。

2.3 频率测量

驱动信号需追踪速度传感器信号的频率。速度传感器信号为正弦波。为了以最快的速度更新驱动信号、提升驱动控制效果,选择信号的正过零点和负过零点来更新驱动信号,每半周期更新一次。

计算频率时需去除信号偏置的影响。假设速度传感器信号经过调理电路后,偏置为负。有偏置的速度传感器信号如图3所示。

图3 有偏置的速度传感器信号

图3中:t1、t2、t3、t4分别为信号实际过零点。假设在t2时刻计算t1~t2之间正半周信号的频率,在t3时刻计算t2~t3之间负半周信号的频率。可以明显看出,这两个半周信号的频率不相同,这种方法得到的不是信号的真实频率。此外,由于制作工艺的原因,在没有偏置的情况下,有些科氏质量流量计速度传感器信号的正半周期和负半周期的时间不一样,若取半周期计算频率也不合适。

为了消除偏置,可取整周期信号计算频率。在t3时刻计算t1~t3之间一个周期信号的频率,在t4时刻计算t2~t4之间一个周期信号的频率。这两次计算的频率相同,都是真实信号频率。

采用三点反向Lagrange插值算法进行曲线拟合寻找过零点,从而计算频率。选取实际过零点之前的两个点和之后的一个点进行拟合。三点正向Lagrange插值算法的公式为:

(2)

式中:x为需要拟合求取的信号值;x(n-2)、x(n-1)和x(n)为采样信号的数值;t为x对应的时刻值。

若用式(2)执行插值算法,拟合的曲线是二阶的,需解二阶方程求出t值,FPGA不易实现。

在此运用逆向思维,将采样信号的数值与其对应的时刻值交换过来进行插值运算,即采样值由因变量变为自变量,时刻值由自变量变为因变量。相应的三点反向Lagrange插值公式为:

(3)

由式(3)可知,实际处理时只需要直接令x=0,再代入相应的采样点的数值,即可求出过零时刻t。

拟合出过零点后再与相应整周期内的采样点数结合,即可计算出信号频率。

2.4 相位跟踪

驱动信号还需追踪到速度传感器信号的相位。每计算出一次频率值,就可得到一个相位补偿值。相位信息半周期更新一次。

追踪相位的原因在于驱动信号与速度传感器信号同相时,驱动效率最高。速度传感器信号的相传关系如图4所示。

图4 速度传感器信号与驱动信号的相位关系图

驱动信号1为不进行相位补偿的方式,检测到过零点后,由于相位的滞后,在t4时刻才能更新驱动信号,并且相位从零开始。可以看出,速度传感器信号与驱动信号显然不同相,驱动效果欠佳。驱动信号2进行了相位补偿,在t4时刻更新驱动信号时,其初始相位不从0开始。可以看出,速度传感器信号与驱动信号处在同相状态,驱动效果较佳。

用FPGA驱动时,由速度传感器的信号计算出驱动信号的频率、相位进而输出到电磁激振器,需经过以下步骤。①进入ADC前的硬件延时以及ADC模数转换造成的延时。②3阶IIR数字滤波器造成的非线性相位滞后。③检测过零点时,检测出的离散信号的过零点与实际过零点之间的时间差。④DDS的数模转换延时及其输出后级硬件造成的延时。⑤系统程序运行造成的时钟延时。

其余部分造成的相位差与信号频率呈线性关系,根据比例关系计算即可。

2.5 幅值控制

FPGA采用非线性幅值控制算法对流量管振动幅值灵活控制,并且在检测到负过零点时,单周期更新一次驱动信号的幅值信息。

采用比例积分(proportional integrat,PI)控制器控制幅值。它是一种常用的控制器,特点是既能及时控制,又能消除余差。其输出表达式为:

u(k)=KPe(k)+KITsame(k)+uI(k-1)

(4)

式中:Tsam为采样周期;KP为比例系数;KI为积分系数。

设速度传感器信号期望幅值为A0,实际幅值为Ak,引入自然对数,求取PI控制器的输入误差,即e(k)=lnA-lnAk,以满足对动态特性和稳态特性的要求。

3 试验验证

为了验证本文研制的驱动系统在不同流型下都有良好的驱动效果,首先在单相流工况下对基于FPGA驱动系统的变送器进行水流量标定试验,继而在气液两相流工况下进行FPGA驱动与基于DSP的数字驱动,并对比驱动效果。

3.1 试验装置

科氏质量流量计试验装置包括可编程逻辑控制器(programmable logic controuer,PLC)控制柜、水箱、水泵、气液混合器、科氏质量流量计、电动换向器、称重装置、空压机、浮子流量计、罗茨流量计、管道和阀门等,如图5所示。

图5 试验装置

试验装置可以进行单相流和两相流试验,通过PLC控制相应器件动作,协调完成整个试验流程。在进行单相流试验时,水泵汲取水箱中的水,依次流经气液混合器、气动阀1、科氏质量流量计、手动调节阀和球阀2。若需称重,电动换向器切换到2路,水流进称重装置;称重完成后,由气动阀2流向水箱。若无需称重,电动换向器切换到1路,水直接流进水箱。当进行气液两相流试验时,单向阀开启,空压机压缩气体,经由浮子流量计或罗茨流量计控制进气量后,在气液混合器处与水路通道中的水混合形成气液两相流,继而从气液混合器开始,按照单相流试验下水的流向流动。

3.2 单相流标定

将研制的基于FPGA数字驱动系统的变送器与艾默生公司生产的DN25 Ω形一次仪表相匹配,并安装于试验装置上;采用称重法进行单相流水流量标定试验,以检测本变送器的质量流量测量精度。其中,标定装置的不确定度为0.05%。根据国家质量流量计标定流程,先从最大流量点开始标定,每个流量点标定3次;待标定完最小流量点后,再返回最大流量点,以测试变送器是否存在漂移。

标定数据如表1所示。

从表1可以看出:在20∶1的量程比范围内,本变送器的相对误差小于0.1%,重复性优于0.05%。

表1 标定数据

3.3 气液两相流工况下驱动效果对比

气液两相流工况下,流量管的固有频率剧烈变化,需要驱动信号快速跟踪速度传感器信号以维持流量管振动。在FPGA驱动系统中,半周期更新驱动信号的频率、相位信息,单周期更新驱动信号的幅值信息。为验证在气液两相流工况下,驱动信号的快速更新是否能更好地维持流量管振动,将FPGA驱动系统的驱动效果与基于DSP的驱动系统的驱动效果进行对比。采用DSP执行驱动任务时,约14个周期更新一次驱动信号[10-13]。将基于FPGA驱动的变送器和基于DSP驱动的变送器,分别与艾默生DN25 Ω形一次仪表相匹配,在水流量为60 kg/min、含气量变化的情况下,进行驱动效果对比试验。两种驱动方法中,驱动电压最高可输出幅值都为24 V。计算含气量时,控制进气量的浮子流量计和罗茨流量计测量精度较低。为此,引入密度降的概念,通过变送器测得的速度传感器信号频率值间接反映含气量[14-17]。

密度降为:

(5)

式中:D0为单相流体的实际密度;D1为混合流体的密度,其计算方法如式(6)所示。

(6)

式中:a1~a4为待标定密度系数;f为速度传感器信号频率;ΔT为流体温度变化值。

采集到速度传感器信号后,以每段信号中所有峰值的平均值,以及峰值方差来表征驱动效果。若其中一种驱动方法得到平均值越高,则其输入能量转化率越高。为此,以峰值平均值表征驱动效率。另外,流量管的振动幅值越稳定,越有利于质量流量测量。为此,以峰值方差来表征波动性。方差越大,说明波动性越大。不同流体状态下的驱动效果对比如表2所示。

表2 驱动效果对比

由表2可以看出,不同密度降下,使用FPGA驱动得到的信号平均值一直高于DSP驱动,方差一直小于DSP驱动。由此说明,相较于DSP驱动,采用FPGA驱动的效率更高,速度传感器信号的波动性更小。

在30%密度降下,绘制使用不同驱动方法得到的速度传感器信号峰值曲线对比图,如图6所示。

图6 峰值曲线对比图(密度降30%)

由图6可以看出,该密度降下,用DSP驱动得到的速度传感器信号峰值波动程度很大,使用FPGA驱动得到的速度传感器信号峰值波动程度较小。

对两种驱动方法的驱动信号和速度传感器信号的频率、相位匹配情况进行分析。FPGA驱动方法中,每半周期更新一次驱动信号的频率、相位信息。频率、相位匹配程度一直处于较佳状态,使得速度传感器信号的峰值波动程度更小。在30%密度降下,用FPGA驱动的匹配效果如图7所示。由图7可以看出,两种信号的频率、相位匹配效果较佳。

图7 FPGA驱动的匹配效果

在DSP数字驱动方法中,驱动周期更新较长(约14个周期),驱动信号与速度传感器信号的频率、相位匹配结果较差,驱动效果欠佳。在30%密度降下,用DSP驱动匹配效果如图8所示。由图8可以看出,两种信号的频率、相位匹配效果欠佳。

图8 DSP驱动的频率、相位匹配效果

4 结束语

本文从快速更新驱动信号的角度出发,设计了基于FPGA的数字驱动系统。用IIR数字滤波器对单路速度传感器信号进行预处理,采用三点反向Lagrange插值算法计算频率和跟踪相位,通过非线性幅值控制算法控制幅值。利用FPGA的并行特性对驱动信号进行处理,实现了对频率、相位控制和对幅值控制的并行执行,从而每半周期计算出一次驱动信号频率、相位参数,并用DDS更新;每单周期计算出一次驱动信号的幅值参数,并用MDAC更新。驱动信号更新的频率是以速度传感器信号的频率为依据的,即速度传感器信号的频率越大,驱动信号更新得越快。

将基于FPGA驱动系统的变送器与艾默生DN25型一次仪表相匹配,在单相流下进行标定试验。试验结果表明,变送器具有较高的测量精度。在气液两相流工况下,将FPGA驱动与DSP驱动的驱动效果进行对比。对比结果表明,由于驱动信号更新速度的提升,FPGA驱动系统可以更好地维持流量管的振动。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!