基于STM32和FPGA的超声波气体流量计
2020-11-18葛健炎
葛健炎,丁 煜
(扬州大学机械工程学院,江苏扬州 225100)
0 引言
流量计在石油冶炼、气体输送、化工生产中发挥着越来越重要的作用[1]。按照流量计检测方式的不同,流量计大致可以分为以下4类:涡轮流量计、电磁流量计、热式流量计以及超声波流量计。其中超声波流量计因其独特的优势得到迅速的发展。随着西气东输工程的不断推进,迫切需要一种能准确、快速测量大管径天然气流量的仪表,因此出现了基于超声波传感器的气体流量计。与传统气体流量计相比,超声波气体流量计具有不与被测介质直接接触,不受介质温度、气压等参数的影响。而且在大管径气体流量测量方便,超声波气体流量计的优势显著,因其内部没有阻挡体,压力损害比较小。超声波气体流量计已成为西气东输项目中天然气管道流量检测的重要仪表之一[2-3]。
1 超声波时差法气体流量测量原理
超声波时差法气体流量测量原理是利用超声波在管道内顺流和逆流流动的时间差来计算待测气体的流量[4]。检测原理框图如图1所示,将超声波传感器T1、T2按图1的方式安装到管道上,2个超声波传感器与水平方向的夹角为θ,待测气体的流速设为v,管道的直径设为D,超声波在管道中传播的速度设为C。
图1 时差法检测原理图
当超声波传感器T1发送超声波,而超声波传感器T2接收超声波时设为超声波顺流方向传播,顺流传播时间设为t1;相反,当超声波传感器T2发送超声波,而超声波传感器T1接收超声波时设为超声波逆流方向传播,逆流传播时间设为t2。可得:
(1)
(2)
则顺流、逆流传播的时间差为
(3)
一般情况下C2>>v2cos2θ,因此根据式(3),可得待测气体的流速v为
(4)
由于管道的直径为D,因此可得待测气体的流量Q为
(5)
式中:S为管道的截面积;v为待测气体的流速。
2 系统总体设计
系统是将一对收发一体的超声波传感器安装在待测管道的两侧,通过CPLD+AD9754的方式产生高精度的正弦波激励信号,再经过功率放大后再去激励超声波传感器,通过继电器切换开关切换2个超声波传感器的收发信号,利用CPLD内的高精度计时器记录超声波顺流、逆流传播的时间差,最终通过式(5)计算得到待测气体的流量[5]。系统总体设计框图如图2所示。
图2 系统总体设计框图
3 硬件系统设计
超声波气体流量计硬件主要是由超声波收发一体传感器、超声波传感器驱动/接收电路、信号调理电路以及通讯电路组成[6-7]。超声波驱动电路用于激励超声波传感器发射超声波,而超声波接收电路用于接收超声波并将其转换为可被处理的微弱电信号,信号调理电路的作用是对微弱的电压信号进行放大和滤波,最终根据发射和接收到超声波的时间分别计算得到顺流和逆流传播的时间差,再利用相关算法计算得到待测气体的流量,通过串口通讯的方式将计算结果发送到上位机上实时显示。
3.1 超声波传感器
超声波传感器发射和接收超声波是基于正压电效应和逆压电效应原理[8]。正压电效应即利用正弦波激励信号去驱动超声波传感器,传感器将电信号转换为声信号;逆压电效应则与之相反,其是将接收到的超声波信号转换成电信号。系统选用用于气体流量检测的超声波传感器120KHF25。该型号超声波传感器的中心频率为125 kHz,发射灵敏度20 dB,阻抗约为300 Ω,激励电压的峰峰值约30 V。
3.2 正弦波激励信号
信号源的精度是系统测量准确的重要保证,因此系统采用FPGA+AD9754的方式产生高精度的激励信号源[9]。首先STM32通过I/O口控制FPGA,将激励信号的频率、相位以及幅值等信息送到FPGA中,利用VHDL语言对FPGA编程,每隔一个时钟周期输出一个14位的离散数字量,AD9754再将离散的数字量转换为连续的正弦波信号,最终通过二阶低通滤波器滤除信号中的高频分量以得到光滑的正弦波激励曲线,正弦波激励信号产生电路图如图3所示。
图3 正弦波激励信号电路图
3.3 功率放大电路
由于超声波在管道中传播时会发生严重的衰减,导致超声波接收传感器不能完整的接收到超声波信号[10],因此需要对系统输出的正弦波激励信号进行功率放大,将激励信号的峰峰值提高到30 V。系统选用推挽式功率放大电路,其中电容C31的作用是进一步滤除信号中的直流分量,二极管D4、D5是为了避免交越失真,变压器T1一方面是提高信号源的激励电压,另一方面的作用是与超声波传感器进行阻抗匹配,已达到最高发射功率。推挽式功率放大电路如图4所示。
图4 推挽式功率放大电路图
3.4 超声波接收电路
超声接收探头的功能是将接收到的超声波信号转换成与之对应的电压信号,该电压信号十分微弱,约为mV级。控制器本身无法处理微弱的电压信号,因此必须对此微弱电压信号进行放大[11]。系统选用二级放大电路对超声波传感器输出的微弱电压信号进行放大,第一级放大电路采用差分放大电路的形式,主要是由低温漂、高精度的精密运放AD8610和阻容器件构成。第二级放大电路在信号调理部分,图5为超声波信号接收电路图。
图5 超声波接收电路图
3.5 信号调理电路
信号调理电路是由第二级放大电路和二阶低通滤波电路组成。第二级放大电路是继续放大第一级放大电路输出的信号,将信号的幅值调整到合适的范围便于单片机内部的A/D转换器进行采样[12]。在对信号进行放大的同时噪声信号和干扰信号也随之被放大,有效信号往往被淹没在噪声信号中。因此需要通过二阶低通滤波电路来滤除信号中的高频干扰和噪声信号,信号调理电路图如图6所示。
图6 信号调理电路图
第二级放大电路由高精度运放TSZ121及其阻容器件构成,二阶低通滤波电路是由运放AD817构成,经过第二级放大和滤波之后再将信号发送到控制器内部的A/D转换器中进行采样。
4 软件设计
系统软件分为STM32最小系统控制软件和FPGA最小系统控制软件两部分。其中STM32控制系统采用C语言编写,编译环境为Keil 5;而FPGA采用VHDL语言编写,编译环境为Quartus。首先系统上电后执行初始化操作,当系统接收到启动信号后,FPGA内部编程输出数字量信号给AD9754,最终AD9754形成正弦波模拟信号去激励传感器,与此同时,FPGA内部定时器开始计时。当接收传感器接收到信号并被单片机内部的A/D转换器采样时,表示接收过程完成,此时定时器关闭,记录此段的时间。分别切换2个超声波传感器来求得顺流和逆流传播的时间t1、t2,最终计算得到时间差,再根据公式(5)计算得到气体流量。系统软件流程图如图7所示。
图7 系统软件流程图
5 实验数据分析
为了验证本文设计的超声波气体流量计的稳定性及测量准确性,搭建如图8所示的实验环境,实验管道直径为DN200,管道中的气体为空气,利用压缩机将空气输送到管道中,通过调节压缩机的转速来调节管道中气体的流量。在管道上分别安装本文设计的超声波气体流量计和购买的标准气体流量计,以购买的流量计测得数据作为依据,将它测得的数据与系统测得的数据做对比,来验证系统检测的准确性。
图8 实验装置实物图
为了验证系统的稳定性,先对系统作如下测试:开启超声波气体流量计,通过调节压缩机的转速来调节管道内气体的流量,在每一个状态下测量3组数据,每组间隔5 min,共测量8组数据。比较每组数据的波动,以此来验证系统的稳定性。实验数据如表1所示。
表1 实验数据
由表1实验数据可知,系统具有良好的重复性,在低流速段,即空气流速约1 m/s时,此时系统的重复性大于1%;当随着气体流速增加,系统表现出出色的稳定性,即重复性小于0.2%。
验证完系统的稳定性之后,开始进行准确性测试。同时开启超声波气体流量计和购买的气体流量计,2个流量计可同时显示当前气体的流速和流量,根据式(5)可知,当检测环境相同时,流量的大小只与流体流速有关,因此只对流速进行分析。通过调节压缩机来改变管道内气体的流速,在开机稳定后再开始测量,共检测8组数据。实验对比数据如表2所示。
由表2可知,在低流速时,系统的检测误差较大,相对误差小于8%;随着流速的提高,系统的测量精度也逐渐提高,在高流速时,即流速大于10 m/s时,系统检测的相对误差小于1%。
表2 实验对比数据
6 结论
本文设计的超声波气体流量计采用了双MCU,即STM32和FPGA。在激励信号方面选用FPGA+AD9754的方式产生高精度的激励信号源,从而保证系统的检测精度。利用FPGA内部搭建的定时器来计算顺流和逆流传播的时间,提高了系统对时间检测的精度,进一步的提高了系统的精度。实际测试结果表明,在低流速测量时,相对误差较大约8%;随着气体流速的增加,系统测量精度逐渐增加,在流速超过10 m/s时,相对误差小于1%。