CN111486911B - 一种基于stm32的低功耗气体超声波流量计系统 - Google Patents
一种基于stm32的低功耗气体超声波流量计系统 Download PDFInfo
- Publication number
- CN111486911B CN111486911B CN202010481077.0A CN202010481077A CN111486911B CN 111486911 B CN111486911 B CN 111486911B CN 202010481077 A CN202010481077 A CN 202010481077A CN 111486911 B CN111486911 B CN 111486911B
- Authority
- CN
- China
- Prior art keywords
- circuit
- flow
- transducer
- module
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01F—MEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
- G01F1/00—Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
- G01F1/66—Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow by measuring frequency, phase shift or propagation time of electromagnetic or other waves, e.g. using ultrasonic flowmeters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01F—MEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
- G01F1/00—Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
- G01F1/66—Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow by measuring frequency, phase shift or propagation time of electromagnetic or other waves, e.g. using ultrasonic flowmeters
- G01F1/662—Constructional details
Landscapes
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Fluid Mechanics (AREA)
- General Physics & Mathematics (AREA)
- Measuring Volume Flow (AREA)
Abstract
本发明公开了一种基于STM32的低功耗气体超声波流量计系统,包括缩径后的流量管、超声换能器、MOSFET驱动电路、MOSFET升压电路、激励选通电路、回波选通电路、一级放大电路、带通滤波电路和二级放大电路、数字信号处理模块电路、通讯模块电路以及电源模块电路。本发明系统采用耐高压换能器设计,适合贸易交接中各种压力的管道。通过单声道的换能器布局设计、STM32芯片低功耗模式的选择和使用以及外围电路设计和内部算法的优化充分降低了整个系统的功耗,使得本发明系统能够使用电池供电。此外,提出一种动态阈值与过零检测相结合的信号处理方法很好地解决了回波信号品质差的问题。
Description
技术领域
本发明涉及流量测量领域,为一种气体超声流量计,特别是一种基于STM32的低功耗、单声道设计的气体超声波流量计,针对STM32系列芯片中的STM32L476芯片(以下简称STM32或者STM32芯片)内部的PWM模块输出的激励产生的超声回波信号,采用动态阈值与过零检测方法来确定回波信号特征点的气体超声流量计。
背景技术
在一些小型气体贸易交接计量场合中,如城市燃气、地暖用气、小商户用气、煤改气用气等场合,国内多采用膜式燃气表进行交接计量。虽然膜式燃气表价格较低,但其仅能达到2级或3级测量精度,且量程比较窄;同时,测量精度会随着使用时间的增长而降低。为此,国外研制低功耗、单声道气体超声波流量计,以替代膜式燃气表,并在国内销售。而此类国产仪表不能达到相应的技术指标。
小型气体贸易交接计量场合管道压力互不相同,一些为低压管道、一些为中高压管道。国内厂家生产的仪表多针对在低压或中压管道中气体的测量。
单声道的超声换能器布局使得流量计只能通过提取一个声道的线速度来拟合管道横截面的面速度,测量精度难以保证。
耐高压换能器采用了钛合金外壳,使得换能器与气体介质之间的声阻抗极其不匹配,严重影响了回波信号的品质,使得该类回波信号难以处理。
发明内容
为了解决上述问题,本发明提供一种基于STM32的低功耗、单声道气体超声流量计系统。本发明系统采用耐高压换能器设计,使得本发明系统适合贸易交接中各种压力的管道。本发明系统通过单声道的换能器布局设计、STM32芯片低功耗模式的选择和使用以及外围电路设计和内部算法的优化充分降低了整个系统的功耗,使得本发明系统能够使用电池供电。此外,本发明提出一种动态阈值与过零检测的信号处理方法很好的解决了回波信号品质差的问题。本发明具有测量精度高、稳定性好等优点。
一种基于STM32的低功耗气体超声波流量计由一次仪表和二次仪表(又称变送器)组成。
所述一次仪表由两个超声换能器、一个流量管和相应的安装部件组成。所述二次仪表由激励电路模块、回波调理模块、数字信号处理模块、通讯模块和电源管理模块组成。
所述流量管为进行了缩径设计的流量管(如图1)。所述的两个换能器分别固定在输送气体的流量管道上;每个换能器既为发射换能器,又为接收换能器;两个换能器构成的声道与流量管道轴线的夹角为45°。
所述激励电路模块负责将激励信号进行处理后输送到发射换能器,激励发射换能器产生超声波信号。该模块主要由MOSFET驱动电路、MOSFET升压电路和激励选通电路组成。
所述回波调理模块负责将接收换能器接收到的回波信号进行放大和滤波处理,再将其输入至数字信号处理模块的ADC中,转换为数字信号。该模块主要由回波选通电路、一级放大电路、带通滤波电路和二级放大电路组成。
所述数字信号处理模块负责计算气体流量、更新液晶显示、传输流量信息给通讯模块。该模块就是STM32的最小系统,由STM32芯片,外部时钟和复位电路、程序烧录接口电路组成。
通讯模块负责与上位机进行通讯以及液晶显示,由脉冲上传电路、串口通讯电路和液晶显示电路组成。其中,脉冲上传电路在标定过程中使用,传输实时流量;串口通讯电路在确定动态阈值线时将回波信号上传;液晶显示电路实时显示当前气体的瞬时流量和累计流量。
所述电源管理模块负责将3.7V的电池电压转换成±20V、±2.7V、+3V的直流电压,其中,±20V和+3V为激励电路模块供电,±2.7V为回波调理模块供电、数字信号处理模块和通讯模块供电。
一种基于STM32的低功耗气体超声波流量计的控制方法由主监控程序和各个程序模块实现;所述主监控程序为总调度程序,所述各个程序模块为初始化模块、中断模块、激励产生模块、USART模块、激励和回波选通模块、ADC数据采集模块、算法模块;主监控程序通过调动各个程序模块实行所述低功耗气体超声波流量计的各项功能。
主监控程序的具体工作步骤如下:
(1)电路系统初始化
电路系统上电后,STM32芯片完成各个部分的初始化,包括系统时钟初始化、ADC初始化、GPIO初始化、USART初始化、激励产生模块初始化、仪表参数初始化,并且建立2个队列,每个队列由50个数据空位组成,用于存放2个换能器接收到的超声波的传播时间(以下简称传播时间);每当有一个新的传播时间数据进入时,每个队列首位的数据会被丢弃,新的传播时间数据加在队列尾部。在后面的测量过程中,将根据这2个队列的数据,实时计算出低功耗气体超声波流量计的顺流和逆流的平均传播时间。
(2)进入流量检测循环
主监控程序完成系统初始化后,便开始循环计算流量。低功耗气体超声波流量计共有2个换能器,分别为换能器A、换能器B,分别安装在管道的对侧。同时,将STM32芯片的4个GPIO引脚配置为普通I/O(输入/输出)口,分别定义为OC1、OC2和IC1、IC2。其中,OC1、OC2分别为换能器A、换能器B的发射激励选通引脚,IC1、IC2分别为换能器A、换能器B的接收回波选通引脚。开始时,系统选通OC1引脚和IC2引脚,换能器A发射激励信号,换能器B接收回波信号(A发B收);接着,换能器B发射激励信号,换能器A接收回波信号(B发A收)。然后,上述过程不断循环,完成激励信号的发射和回波信号的接收。
(3)激励信号的发送与回波信号的采集
STM32芯片控制内部的PWM模块产生两路带死区的单极性PWM方波,并传输至MOSFET驱动电路、MOSFET升压电路进行电压放大并转换成双极性方波作为激励信号,再经过由STM32芯片控制的激励选通电路输出至直射式单声道结构的换能器A、或者换能器B;超声波经过一段渡越时间(传播时间)后,到达对应的接收换能器;由换能器B、或者换能器A接收,形成回波信号;相应换能器接收的回波信号先经过由STM32芯片控制的回波选通电路,再经过一级放大电路、带通滤波电路和二级放大电路进行放大和滤波,当程序中设置的延迟时间到达后,被STM32内部的12位ADC以5MHz的采样频率连续采集2048点,并存储到相应的寄存器中。
(4)调用算法处理数据,计算超声波传播时间
首先,在2048点数据中截取包括有用信号在内的1024点,具体实现方法为:首先寻找2048点数据中数值最大的点,以该点为基准,向前取511点数据,向后取512点数据,加上最大值点就是需要截取的1024点;若最大值点之前的数据点数少于511点,则截取2048点数据中的前1024点;若最大值点之后的数据点数小于512点,则截取2048点数据中的后1024点。截取完成后,对数据进行零相位滤波处理,然后,使用动态阈值与过零检测的数字信号处理方法来处理滤波后的数据,从而得到回波信号的特征点,进而计算出超声波的传播时间。
(5)计算瞬时流量
进行一次步骤(2)~(4)的循环,就可以得到一次超声波从一个换能器到另外一个换能器之间的传播时间。
在步骤(2)中切换不同的发射换能器和接收换能器,这样就可以依次测量出该声道顺流和逆流情况下超声波信号的传播时间;这样循环2次,就完成了单声道顺流和逆流传播时间的测量,并将这2个传播时间分别放入步骤(1)中所建立的2个队列中。
执行10次这样的测量,计算出单声道顺流和逆流的平均传播时间,并根据这个平均传播时间计算出瞬时流量。
瞬时流量的计算公式为:
式中,S2为缩径后流量管截面积;a为流量修正系数,其值与声道数、雷诺数、声道分布情况有关;D为流量管直径;L为声道长度;θ为流量管轴线与声道夹角;ts、tn、Δt分别为顺流传播时间、逆流传播时间以及两者的时间差。
(6)进入低功耗模式并计算累积流量
主程序计算得到瞬时流量后,并不直接更新液晶中的流量显示和脉冲上传频率,而是进入低功耗模式。在低功耗模式下,由于系统时钟控制的普通定时器和高级定时器是无法工作的。因此,选用实时时钟RTC对中断时间进行控制,其周期为1秒。系统进入中断服务程序后,首先读取此时主监控程序计算的瞬时流量值,并更新累积流量。同时,将瞬时流量值与脉冲当量相乘得到需要上传的脉冲个数,完成脉冲频率的更新。此外,采用累积上传脉冲和最佳分频系数判定的方法有效地解决了低功耗定时器时钟频率低而造成脉冲上传误差大的问题。定时器时间标志位用来控制液晶更新,即当定时器时间标志位为1时,更新一次液晶显示,并将定时器时间标志位置0,从而实现液晶1秒刷新1次。
本发明的有益技术效果是:一种基于STM32芯片的流量计系统,既实现双极性方波激励信号的生成和回波信号的采集,又实时实现了动态阈值与过零检测相结合的数字信号处理方法;在功耗方面,采用单声道的换能器布局、STM32系统低功耗模式的切换以及相应低功耗的电路设计和算法的优化,极大地降低了系统的功耗,使得整个系统可通过锂电池供电运行。此外,在换能器方面,选择了耐高压型换能器作为该低功耗气体超声波流量计的换能器,使得本发明无论在测量精度、测量范围、功耗、适应不同压力工况方面都充分符合工业现场应用的需求。
附图说明
图1是本发明系统流量管缩径设计示意图。
图2是本发明系统硬件框图。
图3是本发明系统MOSFET驱动电路与MOSFET升压电路原理图。
图4是本发明系统MOSFET芯片TC6320内部原理示意图。
图5是本发明系统激励选通电路原理图。
图6是本发明系统一级放大电路、带通滤波电路和二级放大电路原理图。
图7是本发明系统回波选通电路原理图。
图8是本发明系统数字信号处理模块电路原理图。
图9是本发明系统通讯模块电路原理图。
图10是本发明系统电源管理模块电路原理图。
图11是本发明系统软件总体框图。
图12是本发明系统主监控程序流程图。
图13是本发明系统脉冲上传算法流程图。
图14是本发明系统两路带死区的PWM方波以及双极性方波示意图。
图15是本发明系统两路PWM方波的对称模式和死区时间示意图。
图16是本发明系统各流量下幅值归一化后回波信号上升段峰值点分布图。
图17是本发明系统动态阈值的确定方法示意图。
图18是本发明系统动态阈值与过零检测确定回波信号特征点的方法示意图。
图19是本发明系统在两种工作模式下的电流比较示意图。
具体实施方式
下面结合附图对本发明系统做进一步详细描述:
图1为本发明系统流量管缩径设计示意图。本发明系统的一次仪表的流量管采用缩径设计,目的是为了减少流量管的直管段长度以及增强流场的稳定性。在相同流量下,缩径后流量管流速与缩径前流量管流速比计算如下:
缩径前,流量管截面积S1为:
缩径后,流量管截面积S2由4部分组成,分别为①和③两个扇形,②和④两个三角形。由于两个扇形相互对称,两个三角形相互对称,即:
缩径后流量管截面积S2为:
S2=S①+S②+S③+S④=0.00098m2×2+0.00088m2×2=0.00372m2 (5)
相同流量下的流速与流量管截面积成反比,即在相同流量下,缩径后流量管流速与缩径前流量管流速比为S1/S2=2.36。
图2为本发明系统硬件框图。本发明的硬件系统由一次仪表和二次仪表(又称变送器)组成。
所述一次仪表由两个超声换能器、流量管和安装部件组成。所述二次仪表由激励电路模块、回波调理模块、数字信号处理模块、通讯模块和电源管理模块组成。
所述流量管进行缩径设计的流量管(如图1)。所述两个换能器分别固定在输送气体的流量管道上;每个换能器既为发射换能器,又为接收换能器;两个换能器构成的声道与流量管道轴线的夹角为45°。
所述激励电路模块负责将激励信号进行处理后输送到发射换能器,激励发射换能器产生超声波信号。该模块主要由MOSFET驱动电路、MOSFET升压电路和激励选通电路组成。
所述回波调理模块负责将接收换能器接收到的回波信号进行放大和滤波处理,再将其输入至数字信号处理模块的ADC中,转换为数字信号。该模块主要由回波选通电路、一级放大电路、带通滤波电路和二级放大电路组成。
所述数字信号处理模块负责计算气体流量、更新液晶显示、传输流量信息给通讯模块。该模块就是STM32L476的最小系统,由STM32芯片、外部时钟和复位电路、程序烧录接口电路组成。
通讯模块负责与上位机进行通讯以及液晶显示,由脉冲上传电路、串口通讯电路和液晶显示电路组成。其中,脉冲上传电路在标定过程中使用,传输实时流量;串口通讯电路在确定动态阈值线时将回波信号上传;液晶显示电路实时显示当前气体的瞬时流量和累计流量。
所述电源管理模块负责将3.7V的电池电压转换成±20V、±2.7V、+3V的直流电压,其中,±20V和+3V为激励电路模块供电,±2.7V为回波电路模块、数字信号处理模块和通讯模块供电。
本发明的电路系统的工作过程为:系统上电后,STM32芯片完成各个模块的初始化,并控制内部的PWM模块产生两路带死区的单极性PWM方波,传输至MOSFET驱动电路、MOSFET升压电路进行电压放大并转换成双极性方波作为激励信号,该激励信号经由STM32芯片控制的激励选通电路,输出至发射换能器端。发射换能器基于压电晶体的电致伸缩效应,发出超声波。管道内的超声波经过一段渡越时间之后,到达相应的接收换能器端。由于压电晶体的压电效应,接收换能器输出回波信号。回波信号经由STM32芯片控制的回波选通电路之后,输入至回波调理模块电路,经过一级放大、带通滤波和二级放大电路之后,由STM32芯片内部高速ADC以5MHz采样频率完成数据采集和转换,并存储到相应的寄存器中。数据转换完成后,STM32芯片采用数字滤波进一步消除回波信号中混杂的噪声,采用动态阈值与过零检测的方法,计算超声波的传播时间。换能器A、换能器B依次作为发射换能器,重复上述过程,综合单个声道顺、逆流的超声波传播时间,即可计算出实际气体流量。
图3为本发明系统MOSFET驱动电路与MOSFET升压电路原理图,其中,MOSFET驱动电路的作用是降低MOSFET芯片的开关损耗,其电路由MOSFET驱动芯片UCC27423和电阻R97、R98、R99、电容C54、C56组成,C54、C56为退耦电容,Exc1、Exc2为STM32芯片的PWM模块输出的脉冲信号。
MOSFET升压电路的作用是将两个单极性信号组合成双极性信号,其电路有MOSFET芯片TC6320、二极管D16、D17、电容C55、C57、C58、C59、C60、C61组成。C55、C59、C60、C61为退耦电容,C57、C58为隔直电容。Exc3、Exc4为MOSFET驱动电路的输出信号,当Exc3和Exc4为低电平时,激励信号Drive为+20V。由于Exc3和Exc4为带死区的PWM波,当Exc3由低电平变为高电平时,Exc4仍为低电平,Drive由+20V下降至GND。当Exc3为高电平持续一段时间后,Exc4由低电平变为高电平,Drive为-20V。当Exc4由高电平变为低电平时,Exc3为高电平,Drive由-20V上升至GND。这样就由两个单极性信号Exc3和Exc4组合成了双极性激励信号Drive。
图4为本发明系统MOSFET芯片TC6320内部原理示意图,Q1为NMOS,Q2为PMOS。
图5为本发明系统激励选通电路,由2个固态继电器SW1、SW2、电阻R80、R81、R84、R85、R88、R89、R92、R93、二极管D8、D9、D12、D13组成。W0连接换能器A,W1连接换能器B,OC0、OC1为STM32芯片输出的控制信号,TP3、TP4为探针,ECHO0、ECHO1为接收到的回波信号。当W0通道发送激励信号,W1通道接收回波信号时,控制信号OC0为高电平,OC1为低电平,固态继电器SW1导通,SW2关断,激励信号从W0通道发出。当W1通道发送激励信号,W0通道接收回波信号时,控制信号OC1为高电平,OC0为低电平,固态继电器SW2导通,SW1关断,激励信号从W1通道发出。由于一个换能器既能做发送换能器,又能做接收换能器,为了防止激励信号对回波调理模块的干扰,加入了一对反向并联的二极管,将回波信号端口的电压钳制在±0.7V之间。
图6为本发明系统一级放大电路、带通滤波电路和二级放大电路原理图,其中,一级放大电路由运算放大器U14、电阻R62、R68、R69、R75、R76、R78、电容C46、C49、C51、C52组成,Sig为换能器接收的回波信号。电容C49、C52为隔直电容,用于去除回波信号中的直流噪声,并且与R76一起构成高通滤波器,C46、C51为退耦电容。该一级放大电路的放大倍数为:
带通滤波电路由运算放大器U13、电阻R64、R67、R71、R73、R77、电容C45、C47、C50、C53组成。C45、C50为退耦电容,带通滤波器的中心频率为:
带宽为:
二级放大电路由运算放大器U12、电阻R61、R65、R72、R79、电容C44、C48组成。C44、C48为退耦电容,经过带通滤波后的回波信号约为-150mVpp~150mVpp,是一个双极性信号,而STM32芯片内部ADC的输入范围为0~2.7V。因此,需要对滤波后的信号进行二级放大和加偏置,使其占据ADC量程的80%左右。二级放大电路的输入输出关系式为:
图7为本发明系统回波选通电路原理图,主要由ADG1612芯片、电阻R50、R53、R57、R59、电容C40、C41组成。电容C40、C41是退耦电容。当需要W0通道发送激励信号,W1通道接收回波信号时,控制信号IC1为高电平,IC0为低电平,ADG1612芯片的D4通道导通,D1通道关断,回波信号Sig通过D4通道到达回波调理模块。当需要W1通道发送激励信号,W0通道接收回波信号时,控制信号IC0为高电平,IC1为低电平,ADG1612芯片的D1通道导通,D4通道关断,回波信号Sig通过D1通道到达回波调理模块。
图8为本发明系统数字信号处理模块电路原理示意图,主要由型号为STM32L476芯片、液晶显示电路、外部RTC晶振、复位电路、程序烧录接口电路组成。STM32L476采用内部晶振作为系统时钟,外部仅需要一个RTC晶振即可使芯片工作。RTC晶振用于RTC定时器,它能够在系统处于低功耗模式时继续运行,可以在计时一段时间后唤醒STM32芯片,常用于低功耗系统中。控制信号IC0、IC1控制发送通道的切换;OC0、OC1控制接收通道的切换;IEE5控制回波调理模块中的运放在系统处于低功耗模式时处于关断模式,降低系统功耗;ExcEN控制MOSFET驱动芯片在系统处于低功耗模式时处于关断模式,降低系统功耗。PA5和PA6输出单极性PWM方波信号,用于合成双极性方波激励信号。回波调理模块的输出EOUT通过PC0引脚输入到片上ADC中,转化为数字信号用于流量计算。PB6输出脉冲信号,将流量信息上传至上位机中。R12为上拉电阻,保证REST引脚在系统正常工作时处于高电平状态,不会复位STM32芯片。S1为复位按键,按下后REST引脚拉低,STM32芯片就会复位重启。C7~C11为陶瓷电容,容量小,放在STM32每个电源引脚附近,起到退耦作用,滤除电源引脚上的高频噪声。C12为钽电容,容量大,放在STM32芯片附近,起到储能作用,当STM32受干扰导致瞬时电流较大时,可以在钽电容处获取电流,减轻电源芯片的输出压力。P4为程序烧录接口,采用SWD烧录方式。与常用的JTAG烧录方式相比,SWD仅需要两根线:SWDIO和SWCLK就能完成烧录,所需要的GPIO口更少。其中,SWDIO为串行数据线,用于数据的读出和写入,SWCLK为串行时钟线,提供时钟信号。
图9为本发明系统通讯模块电路原理图,主要由光耦隔离芯片U4、三极管Q2、二极管D1、MOS管Q1、电阻R22、R23、R24、R28、R30、R32、R33、R3、R5、R7、R9、R10、R11电容C14、C15、C16、C21组成。串口通讯接口P2采用USART与上位机通讯,P5为脉冲输出接口。LCD_DI、LCD_CLK和LCD_CS为SPI通讯接口,将流量信息显示在液晶屏中。
图10为本发明系统电源管理模块电路原理图,主要由+3.7V转±20V电路、+3.7V转+2.7V电路、+3.7V转-2.7V电路、+3.7V转+3V电路组成。其中,+3.7V转±20V电路主要由DC/DC(直流转直流)芯片LT1615、稳压二极管D3、D4、D5、D6、电阻R35、R37、R39、R41、电容C22、C23、C26、C27、C28、C29、电感L1组成,其输出电压由外围电阻R39、R41决定。+3.7V转+2.7V电路主要由LDO(线性稳压器)芯片TPS78227、电阻R36、电容C24、C25组成,采用该芯片输出固定电压+2.7V。+3.7V转+3V电路主要由LDO TPS78230、电阻R40、电容C30、C31组成,采用该芯片输出固定电压+3V。+3.7V转-2.7V电路主要由DC/DC芯片LT1617、稳压二极管D7、电阻R42、R43、R44、R45、R46、R47、电容C32、C33、C34、C35、C36、C37、C38、电感L2、L3组成,其输出电压由外围电阻R45、R46决定。
图11是本发明系统软件总体框图,本发明系统的核心处理器是STM32L476。要由该芯片完成发送超声波激励信号,处理接收到的回波信号并计算流量,以及流量显示、脉冲输出、上位机通讯等任务。为了便于程序开发、更新、后期维护等,采用模块化的编程方法,即在程序中将实现不同功能的程序分别放在不同的模块中。主要模块分别为初始化模块、中断模块、激励产生模块、USART模块、激励和回波选通模块、ADC数据采集模块、算法模块。主监控程序是整个系统的总调度程序,通过调动各个程序模块实行系统的各项功能。
图12为本发明系统主监控程序流程图,电路系统上电后主监控程序自动运行。主监控程序的具体工作步骤如下:
(1)电路系统初始化
电路系统上电后,STM32芯片完成各个部分的初始化,包括系统时钟初始化、ADC初始化、GPIO初始化、USART初始化、激励产生模块初始化、液晶初始化、仪表参数初始化,并且建立2个队列,每个队列由50个数据空位组成,用于存放2个换能器接收到的超声波的传播时间(以下简称传播时间);每当有一个新的传播时间数据进入时,每个队列首位的数据会被丢弃,新的传播时间数据加在队列尾部。在后面的测量过程中,将根据这2个队列的数据,实时计算出低功耗气体超声波流量计的顺流和逆流的平均传播时间。
(2)进入流量检测循环
主监控程序完成系统初始化后,便开始循环计算流量。低功耗气体超声波流量计共有2个换能器,分别为换能器A、换能器B,分别安装在管道的对侧。同时,将STM32芯片的4个GPIO引脚配置为普通输出I/O口,分别定义为OC1、OC2和IC1、IC2。其中OC1、OC2分别为换能器A、换能器B的发射激励选通引脚,IC1、IC2分别为换能器A、换能器B的接收回波选通引脚。开始时,系统选通OC1引脚和IC2引脚,换能器A发射激励信号,换能器B接收回波信号(A发B收),接着换能器B发射激励信号,换能器A接收回波信号(B发A收)。然后,上述过程不断循环,完成激励信号的发射和回波信号的接收。
(3)激励信号的发送与回波信号的采集
STM32芯片控制内部的PWM模块产生两路带死区的单极性PWM方波,并传输至MOSFET驱动电路、MOSFET升压电路进行电压放大并转换成双极性方波作为激励信号,再经过由STM32芯片控制的激励选通电路输出至直射式单声道结构的换能器A、或者换能器B;超声波经过一段渡越时间后,到达对应的接收换能器;由换能器B、或者换能器A接收,形成回波信号;相应换能器接收的回波信号先经过由STM32芯片控制的回波选通电路,再经过一级放大电路、带通滤波电路和二级放大电路进行放大和滤波,当程序中设置的延迟时间到达后,被STM32内部的12位ADC以5MHz的采样频率,连续采集2048点,并存储到相应的寄存器中。
(4)调用算法处理数据,计算超声波传播时间
首先,在2048点数据中截取包括有用信号在内的1024点,具体实现方法为:首先寻找2048点数据中数值最大的点,以该点为基准,向前取511点数据,向后取512点数据,加上最大值点就是需要截取的1024点;若最大值点之前的数据点数少于511点,则截取2048点数据的前1024点;若最大值点之后的数据点数小于512点,则截取2048点数据的后1024点。截取完成后,对数据进行零相位滤波处理,然后,使用动态阈值与过零检测的方法来处理滤波后的数据,从而得到回波信号的特征点,进而计算出超声波的传播时间。
(5)计算瞬时流量
进行一次步骤(2)~(4)的循环,就可以得到一次超声波从一个换能器到另外一个换能器之间的传播时间。
在步骤(2)中切换不同的发射换能器和接收换能器,这样就可以依次测量出该声道顺流和逆流情况下超声波信号的传播时间;这样循环2次,就完成了单声道顺流和逆流传播时间的测量,并将这2个传播时间分别放入步骤(1)中所建立的2个队列中。
执行10次这样的测量,计算出单声道顺流和逆流的平均传播时间,并根据这个平均传播时间计算出瞬时流量。
瞬时流量的计算公式为:
式中,S2为缩径后流量管截面积;a为流量修正系数,其值与声道数、雷诺数、声道分布情况有关;D为流量管直径;L为声道长度;θ为流量管轴线与声道夹角;ts、tn、Δt分别为顺流传播时间、逆流传播时间以及两者的时间差。
(6)进入低功耗模式并计算累积流量
主程序计算得到瞬时流量后,并未直接更新液晶中的流量显示和脉冲上传频率,而是进入低功耗模式。在低功耗模式下,由于系统时钟控制的普通定时器和高级定时器是无法工作的。因此,选用实时时钟RTC对中断时间进行控制,其周期为1秒。系统进入中断服务程序后,首先读取此时主监控程序计算的瞬时流量值,并更新累积流量。同时,将瞬时流量值与脉冲当量相乘得到需要上传的脉冲个数,完成脉冲频率的更新。此外,采用累计上传脉冲和最佳分频系数判定的方法有效地解决了低功耗定时器时钟频率低而使得脉冲上传误差大的问题。定时器时间标志用来完成液晶更新,即液晶标志位在中断服务程序中置1,在主监控程序中完成一次液晶刷新后清0,从而实现液晶1秒刷新1次。
图13为本发明系统脉冲上传算法流程图。在实际应用和一些标定场合中,气体超声波流量计计算的流量是以脉冲的形式上传的,上位机接收到流量计发出的脉冲,并累积脉冲个数,根据对应的脉冲当量,将脉冲个数转换成累积流量。本发明系统的脉冲上传方式有两种选择,一种是将通用定时器配置为PWM模式上传脉冲;另一种是将低功耗定时器配置成PWM模式上传脉冲。通用定时器的时钟为系统时钟,最高频率可达80MHz,而低功耗定时器的时钟为实时时钟RTC,仅为32.768KHz。定时器时钟频率越高,通过分频得到的PWM波频率越接近需要上传的脉冲频率。例如,在某一时刻,主监控程序计算得到的流量换算成脉冲个数为1750个,即需要将脉冲上传频率设为1750Hz,通用定时器将分频系数设为45714得到的PWM波频率最接近1750Hz,此时,实际上传的PWM波频率为1750.011Hz。而低功耗定时器将分频系数设为19得到的PWM波频率最接近1750Hz,此时,实际上传的PWM波频率为1724.63Hz。因此,通用定时器实际上传的脉冲频率更接近需要上传的脉冲频率,即通用定时器上传PWM波的精度远优于低功耗定时器。本发明是低功耗气体超声波流量计,程序会通过进入低功耗模式来降低功耗。而通用定时器在低功耗模式下会停止工作。所以,只能将低功耗定时器配置成PWM模式上传脉冲。
当采用低功耗定时器的PWM模式上传脉冲时,由于时钟频率较低,导致单位时间内累积的流量无法及时上传。例如,主监控程序会在1秒内进一次中断,进而将这1秒内计算的累积流量转换成脉冲上传。如果在这1秒内需要上传的脉冲个数Nr=1750,即理想脉冲频率fr=1750Hz,由于PWM的频率是由实时时钟分频得到的,且分频系数为整数,假定分频系数为:
k=[FRTC/Nr] (11)
式中,FRTC为实时时钟RTC的频率,其值为32.768KHz,k为分频系数,[]为取整函数,由于PWM模块所能配置的分频系数为整数,而是小数。因此,我们对进行取整,得到的数值即为分频系数k。将需要上传的脉冲个数Nr=1750带入公式(11)计算,得到k为18,当k为18时,其实际上传脉冲频率为fk=1820.44Hz,误差率为:
可见,由上传脉冲产生的误差就超过了1%,无法满足一级精度要求。因此,需要对脉冲上传方法进行改进。
在实际应用中,超声波流量计一般长时间运行,即使在标定过程中,每个流量点的单次标定时间也不小于60秒。为此,本发明采用累积脉冲上传方法来解决脉冲上传误差较大的问题。该方法的核心思想是将上一秒内未上传的脉冲累积到下一秒上传,具体实施方法是:定义上一秒未上传的脉冲个数为NL,在系统初始化时该值为0,当前一秒需要上传脉冲个数为Nr,该值是通过将这一秒内的流量值与脉冲当量相乘得到的。因此,本次需要上传的总脉冲数Nt=NL+Nr,即不仅将当前一秒需要上传的脉冲个数Nr进行上传,还需将上一秒未上传的脉冲NL补充上。
为了说明该方法的实际效果,以标定时间60秒为例进行分析。脉冲误差主要产生在标定开始的第1秒和结束时的第60秒(第1秒带入了之前未上传的脉冲个数NL,第60秒产生的NL无法累积到下一秒进行计算),这里以可能产生的最大误差为例,即第1秒带入了之前未上传的脉冲个数NL为负值,第60秒产生的NL也为负值。
由于第1秒和第60秒可能产生的最大脉冲误差相等,以第60秒为例来分析最大脉冲误差,若同样第60内需要上传的总脉冲个数Nt=1750,而本次实际上传脉冲数 本次未上传脉冲NL=Nt-Nk=-70.44,由于第60秒后标定结束,本次未上传脉冲NL无法累积到下一秒运算,即NL=-70.44为第60秒的脉冲误差。同理,若第1秒带入的上一秒未上传的脉冲个数NL也为-70.44。此时,产生的最大脉冲误差为:
通过累积脉冲上传的方法使得最大脉冲上传误差不超过0.2%,且随着标定时间的增加,最大脉冲上传误差会逐渐减小。使用上述脉冲上传方法可大幅减小脉冲上传误差,很好地解决了用于配置PWM模式的定时器时钟频率低而造成脉冲上传误差较大的问题。一级精度的要求主要是针对信号处理算法求得的特征点稳定性,脉冲上传的误差要尽可能减至最小。
为了进一步减小累积脉冲上传方法中第一秒和最后一秒的误差,本发明提出最优分频系数判定的方法。该方法的核心思想是:实时时钟RTC通过该分频系数分频得到的PWM波频率最接近Nt。由公式(11)求得分频系数k后,Nt满足:
FRTC/(k+1)≤Nt≤FRTC/k (14)
为了得到最优分频系数,我们对分频系数为k和k+1所产生的脉冲上传误差进行了比较,即判断与的大小,若前者小,则说明分频系数为k产生的脉冲上传误差最小,k为最优分频系数,本次实际上传脉冲数为反之,k+1为最优分频系数,本次实际上传脉冲数为在此基础上,得出本次未上传的脉冲数NL=Nt-Nk,结合下一秒计算得到的需要上传脉冲个数Nr,进行再次运算。
为了验证最优分频系数判定的方法能降低定时器时钟频率低而造成的脉冲上传时的误差,同样是采用累积上传脉冲的方法,以标定时间60秒为例进行分析。由于第1秒和第60秒可能产生的最大脉冲误差相等,以第60秒为例来分析最大脉冲误差,若第60内需要上传的总脉冲个数仍为Nt=1750,按照公式(11)计算得到分频系数为18,此时并未将18直接作为分频系数,而是由公式(14)可得:FRTC/(18+1)≤1750≤FRTC/18,通过比较与的大小后,选择19作为最优的分频系数,当分频系数为19时的实际脉冲上传频率为本次未上传脉冲NL=Nt-Nk=25.37,由于第60秒后标定结束,本次未上传脉冲NL无法累积到下1秒运算,即NL=25.37为第60秒的脉冲误差。同理,若第1秒累积的上1秒未上传的脉冲个数NL也为25.37。此时,产生的最大脉冲误差仅为相较于公式(13)求得的误差值,进一步减小了脉冲上传误差。
进一步推广到一般规律:当这一秒需要上传的总脉冲数Nt存在 的关系时,使用和不使用最优分频系数判定的方法求得的分频系数都是k,此时的k即为最优分频系数。当这一秒需要上传的总脉冲数Nt存在 的关系时,不使用最优分频系数判定的方法求得的分频系数为k,使用最优分频系数判定的方法求得的分频系数为k+1,通过分频系数k+1求得的脉冲上传误差将小于分频系数k求得的脉冲上传误差。
针对定时器时钟频率低而导致无法将定时器频率准确分频到需要上传的脉冲频率,从而产生较大的脉冲上传误差的问题,本发明提出的累积脉冲上传和最优分频系数判定相结合的方法最大程度地解决了该问题,将脉冲上传的误差降至最低,在脉冲上传方面确保了本发明的测量精度。
图14为本发明系统两路带死区的PWM方波以及双极性方波示意图,气体超声波流量计的激励信号主要有两种:正弦波和方波,正弦波实现较为复杂,一般的方法是将正弦波形数据存储在芯片的内部ROM中,再通过DAC芯片转化为模拟信号;或者是通过相应的正弦波发生电路产生正弦波信号。毫无疑问,这两种方法都会用到更多的器件,会增加系统的功耗。STM32的PWM模块可以精确地发送固定频率、固定占空比的单极性PWM方波。因此,本发明选择方波作为激励信号。为了进一步降低功耗,在相同电压峰峰值的情况下,双极性方波所产生的功耗仅为单极性方波功耗的一半,例如:若采用单极性方波,则需要将单极性方波升压为40V,即方波最高电压为40V,最低电压为0V。产生5个方波的功耗为:
W1=U1 2/R×T1 (15)
式中,W1为升压后5个单极性方波的功耗,U1为激励信号升压后的最高电压,其值为40V,R为换能器阻抗,其值为360Ω。T1为5个单极性方波高电平持续时间,激励信号周期为5us(激励信号频率为200kHz),5个方波的时间为25us,则T1=12.5us。将参数代入得W1=5.56×10-5J。
而采用双极性方波,只需将双极性方波的正极性部分升压为20V,负极性部分升压为-20V。由于正极性部分的功耗与负极性部分的功耗相等,因此,只需计算出正极性部分功耗,再将结果乘以2,即为双极性方波的功耗,正极性部分功耗为:
W正=U2 2/R×T2 (16)
式中,U2为正极性部分的最高电压,其值为20V,R为换能器阻抗,其值为360Ω。T2=12.5us为正极性部分高电平持续的时间。正极性部分功耗为W正=U2 2/R×T2=1.39×10-5J,双极性方波总功耗为:
W2=W正×2=2.78×10-5J (17)
此外,考虑到本发明系统是低功耗系统,仅用+3.7V的锂电池给系统供电,无法将激励信号升至过高的电压。因此,选用图14(c)所示的双极性方波作为激励信号。但是,STM32的PWM模块无法直接输出双极性方波信号,其仅能输出多路单极性PWM方波信号。因此,本发明在硬件电路上设计了MOSFET驱动电路和MOSFET升压电路,将STM32芯片输出的单极性方波信号转化为双极性方波信号,并进行电压的放大。然而,STM32的PWM模块无法直接输出能使得MOSFET升压电路生成双极性方波激励信号所需的单极性方波,而是需要具体对输出的单极性方波的个数、死区时间、初始电平、终止电平、对称方式等进行设置,才能实现图14(c)所示的双极性方波。具体实施方法是:
(1)将STM32芯片的高级定时器8配置成PWM主从模式,该模式下定时器可同步发出两路带死区的单极性PWM方波。配置PWM方波个数为5,频率为200KHz,占空比为50.6%,首先输出两路完全相同的单极性PWM方波。
(2)由于两路PWM方波初始时刻前的电平和终止时刻后的电平(虚线外)都为高电平,当直接作为MOSFET芯片的两路输入时,会使得MOSFET芯片中Q1关断,Q2导通,输出-20V电压信号,即MOSFET芯片在未输出双极性方波信号时已经是导通状态。这样就无法形成图14(c)所示的双极性方波信号。通过配置高级定时器8的比较使能寄存器的相应位,强制拉低主路PWM方波终止时刻后的电平,如图14(b)波形最后的尖峰,当主路发完5个PWM方波后,其输出电压会回到初始电平(高电平),此时,通过将高级定时器8的比较使能寄存器的相应位置1,强制其输出低电平。
(3)仅仅将主路PWM波终止时刻后的电平强制拉低,会使得在下一次的主路PWM方波初始时刻前的电平也为低电平,这样就能使得PWM模块在发送5个PWM方波外的时刻,MOSFET芯片都处于关断状态。但是,也会使得主路输出的5个PWM方波与从路输出的PWM方波成互补关系,同样无法实现图14(c)所示的双极性方波信号。因此,通过设置高级定时器8的比较使能寄存器,强制拉高主路PWM方波的起始电平,就得到了与从路相同极性的5个PWM方波,如图14(a)、(b)。
(4)由于后续MOSFET升压电路中有MOSFET芯片,通过步骤(1)-(3)设置的两路单极性PWM方波的占空比相同,均为50.6%,在某一时刻,MOSFET芯片中的PMOS和NMOS会同时导通,导致瞬时电流过大,烧毁电路。在PWM主从模式下,无法单独调节一路PWM方波的占空比。因此,只能通过调节两路单极性PWM方波的死区时间来同时改变两路PWM方波的占空比。首先,通过配置高级定时器8的控制寄存器相应位,将输出的两路PWM波设置为中心对称模式,再配置高级定时器8的死区寄存器的相应位,将死区时间设为0.04μs。此时,两路PWM方波的占空比分别为49.8%和51.4%,通过这两种方法的设置,有效地避免了MOSFET芯片中的PMOS和NMOS同时导通,且最终输出双极性方波信号的占空比也更加接近50%,图15为两路PWM方波的对称模式和死区时间示意图。
(5)通过步骤(1)-(4)得到了两路带死区的单极性PWM方波,该信号先是经过MOSFET驱动电路进行电压放大,然后到达MOSFET升压电路,在主路以及从路输出的5个PWM方波之前,主路的输出电压为低电平,从路的输出电压为高电平,此时,MOSFET芯片为关断状态。由于两路输出的PWM方波存在死区,当从路输出到第一个PWM方波的高电平时,主路输出仍为低电平,MOSFET芯片仍为关断状态,当死区时间结束后,主路输出由低电平变为高电平,此时,MOSFET芯片的Q1关断,Q2由关断变为导通,MOSFET芯片的输出电压为-20V,主路的输出在高电平持续一段时间后变为低电平,从路输出的电压仍为高电平,此时,Q2由导通变为关断,Q1关断,MOSFET芯片的输出电压由-20V上升至GND。持续了死区时间后,从路的输出电压由高电平变为低电平,此时,Q1由关断变为导通,Q2关断,MOSFET芯片的输出电压由GND上升至+20V,持续一段时间后,从路的输出从低电平变为高电平,主路输出的电压仍为低电平,此时,Q1由导通变为关断,Q2关断,MOSFET芯片的输出电压由+20V下降至GND。循环五次这样的电压变化过程后就得到了图14(c)所示的双极性方波信号。
图16为本发明系统各流量下幅值归一化后回波信号上升段峰值点分布图,本发明系统采用的是耐高压型换能器,在制作工艺上采用了钛合金外壳,使得换能器与气体介质之间的声阻抗严重不匹配,影响了回波信号的品质。随着流量的增大,回波信号上升段峰值点的幅值出现明显的衰减,使得已有的可变阈值与过零检测的数字信号处理方法不再适用。例如,阈值线1可完全分隔流量为0m3/h、100m3/h、200m3/h、300m3/h下的各50组回波信号的第2个峰值点和第3个峰值点,但该阈值线将400m3/h的50组回波信号的第3个峰值点分隔为上下两部分,其中,阈值线以上峰值点有17个,阈值线以下峰值点有33个。即该阈值线可保证流量为0m3/h、100m3/h、200m3/h、300m3/h的50组回波信号寻找的特征波均是第2个峰值点所在的正弦波,寻找的特征波正确率为100%,而在流量为400m3/h时,寻找的特征波有17个是第3个峰值点所在的正弦波,有33个是第4个峰值点所在的正弦波,即400m3/h下寻找的特征波仅有34%的正确率,即无法保证400m3/h下的测量精度。同理,若选择阈值线2,可保证流量在100m3/h、200m3/h、300m3/h、400m3/h寻找的特征波为第3个峰值点所在的正弦波,正确率为100%。但是,当流量为0m3/h时,阈值线以下的峰值点有20个,阈值线以上的峰值点有30个。此时,有20个特征波是第3个峰值点所在的正弦波,有30个特征波是第2个峰值点所在的正弦波,即流量为0m3/h下寻找的特征波仅有40%的正确率,无法保证小流量的测量精度。
图17为本发明系统动态阈值的确定方法示意图。针对本发明系统所得到的回波信号品质较差,回波幅值衰减严重,从而使得大部分数字信号处理方法难以应用于本发明系统的问题。本发明提出一种动态阈值与过零检测相结合的信号处理方法。具体实施方法是:
(1)通过STM32芯片的USART模块将ADC在各个流量下(0m3/h、100m3/h、200m3/h、300m3/h、400m3/h)采集的各50组回波信号数据(每组数据2048点)上传到上位机MATLAB中。
(2)将各流量下的回波信号数据先进行零相位滤波,然后,对滤波后的信号做归一化处理(即求出每一组回波信号的幅值最大值,再将整个回波信号幅值数据除以该幅值最大值)。然后,以每组归一化后的回波信号数据的最大值为基准,向前找出所有峰值点,由于本申请发明所得到的回波信号品质较差,归一化后幅值低于0.1的峰值点分布较为杂乱。因此,仅选择幅值大于0.1的峰值点。
(3)选择在各流量下峰值点集的幅值区分度较大的区间来确定一条动态阈值线,根据本申请发明的回波数据分析,0m3/h、100m3/h、200m3/h、300m3/h、400m3/h流量下峰值点集的幅值区分度始终较大的为第二峰值点集和第三峰值点集。
(4)找出0m3/h流量下第二个峰值点集中的幅值最大值点和0m3/h流量下第三个峰值点集中的幅值最小值点,分别为a(x1,y1)、b(x2,y2),并求出两点的中点,坐标为m(x5,y5),其中,x5=(x1+x2)/2,y5=(y1+y2)/2。
(5)找出400m3/h流量下第二个峰值点集中的幅值最大值点和400m3/h流量下第三个峰值点集中的幅值最小值点,分别为c(x3,y3)、d(x4,y4),并求出两点的中点,坐标为n(x6,y6),其中,x6=(x3+x4)/2,y6=(y3+y4)/2。
(6)通过两个中点,坐标分别为m(x5,y5)、n(x6,y6)来确定一条直线,求得直线的方程为Y=Kx+b,该方程即为动态阈值线,即通过该方程即可求得在每个采样点所对应的阈值。
图18为本发明系统动态阈值与过零检测确定回波信号特征点的方法示意图。在得出了动态阈值线方程后,需要根据该阈值线方程求得回波信号的特征点,以0m3/h流量下的一组回波信号数据为例,介绍本发明所提出的动态阈值与过零检测的信号处理方法确定特征点的方法。具体实施方法是:
(1)由图17的介绍已经得到了动态阈值线的方程式Y=Kx+b,K、b为已知常量。根据主程序中对回波信号中有用信号的截取后,使得回波信号数据共有1024点,从这1024点的第一个点开始,其坐标设为X(x0,y0),(该点的横坐标x0并不是1,而是截取之前的横坐标,即原本该点在2048点内所在位置的横坐标,以下所述所有点的坐标都是指在信号截取之前该点的坐标,即该点在原本2048点内的位置,截取的目的是减小算法的计算量)将该点的横坐标x0带入动态阈值线的方程式Y=Kx+b,得到该采样点的阈值为Y0。
(2)比较Y0与y0的大小,由图18中数据得到的结果是Y0>y0,接着将1024点内的第二个点、第三个点以及后面的点的横坐标依次带入动态阈值线的方程式Y=Kx+b来比较回波信号在该采样点处的幅值与该采样点处阈值的大小。
(3)由图18中数据可得,整个回波信号的采样点中,在采样点A以及采样点A之前的采样点的幅值均小于该采样点的阈值。当比较进行到采样点B时,设其坐标为(xb,yb),将该点的横坐标带入Y=Kx+b,得到该点的阈值为Yb,通过比较可得Yb<yb,此时,采样点B是第一个幅值大于或等于该采样点阈值的点,该点所在的波被设为特征波,并将特征波后的第一个过零点作为特征点。
(4)通过特征点的值即可计算出该声道的超声波信号在顺、逆流情况下的传播时间,进而计算出气体流量。
通过表1对本发明提出的动态阈值与过零检测的信号处理方法与可变阈值与过零检测的信号处理方法的步骤进行详细对比。
表1动态阈值与过零检测与可变阈值与过零检测的信号处理方法步骤对比。
图19为本发明系统在两种工作模式下的电流比较示意图。STM32L476共有4种工作模式,分别为运行模式、睡眠模式、停止模式、待机模式,其中,睡眠模式、停止模式、待机模式均属于低功耗模式。为了降低本发明系统的整体功耗,以便本发明系统可在一些电池供电的场合使用。本发明提出一种运行模式与低功耗模式相互交替的系统工作模式。
在3种低功耗模式中,睡眠模式功耗为430nA,在该模式下,内核停止,所有外设均保持运行状态;停止模式功耗为130nA,在该模式下,所有时钟均停止运行,所有I/O引脚状态与运行模式一致,普通定时器停止运行,低功耗定时器处于运行状态;待机模式功耗为30nA,在该模式下,1.2V区域内的所有时钟均关闭,只有6个I/O口引脚状态与运行模式一致,其余I/O口引脚均复位,普通定时器和低功耗定时器均停止运行。为了选择最优低功耗模式(该模式下可满足本发明实际应用需求,同时功耗最低),对低功耗模式下需要运行的外设进行分析。在低功耗模式下,液晶需要实时显示流量,由于液晶模块是通过I/O口模拟SPI控制的,因此,低功耗模式下只需保证I/O口的状态与运行模式一致即可;同时,在低功耗模式下需要继续上传脉冲,因此,控制脉冲上传的定时器应处于运行状态。而待机模式下所有定时器均停止运行,不能实时上传脉冲,不满足实际需求。睡眠模式和停止模式下液晶模块均可正常显示,同时可实时上传脉冲。又因停止模式下功耗远低于睡眠模式下的功耗,从而,选择停止模式作为本发明系统的低功耗模式。
本发明系统的具体运行过程为:主监控程序开始处于运行模式,不断循环完成通道选择、声道传播时间计算,当完成单个声道顺流、逆流各10次传播时间计算后(该时间约为T1=0.1s),程序进入停止模式,此时,主程序停止运行,仅输出脉冲和更新液晶,并拉低STM32芯片的ExcEN引脚和IEE5引脚,分别将MOSFET驱动芯片以及回波调理电路中的运放关断,此过程持续约T2=0.9s。接着,实时时钟RTC控制的1秒1次的定时中断唤醒程序,程序再次处于运行状态,本发明系统的供电电压Vs=+2.7V,由于外围硬件电路也会产生功耗,通过实际测试得到,本发明系统在运行模式下的电流I1=24mA,停止模式下电流I2=4mA。
Claims (6)
1.一种基于STM32的低功耗气体超声流量计系统,其特征在于:由主监控程序和各个程序模块实现;所述主监控程序为总调度程序,所述各个程序模块为初始化模块、中断模块、激励产生模块、USART模块、激励和回波选通模块、ADC数据采集模块、算法模块;主监控程序通过调动各个程序模块实行所述低功耗气体超声流量计的各项功能;
主监控程序的具体工作步骤如下:
(1)电路系统初始化
电路系统上电后,STM32芯片完成各个部分的初始化,包括系统时钟初始化、ADC初始化、GPIO初始化、USART初始化、激励产生模块初始化、仪表参数初始化,并且建立2个队列,每个队列由50个数据空位组成,用于存放2个换能器接收到的超声波的传播时间;每当有一个新的传播时间数据进入时,每个队列首位的数据会被丢弃,新的传播时间数据加在队列尾部;在后面的测量过程中,将根据这2个队列的数据,实时计算出低功耗气体超声波流量计的顺流和逆流的平均传播时间;
(2)进入流量检测循环
主监控程序完成系统初始化后,便开始循环计算流量;低功耗气体超声波流量计共有2个换能器,分别为换能器A、换能器B,分别安装在管道的对侧;同时,将STM32芯片的4个GPIO引脚配置为普通I/O口,分别定义为OC1、OC2和IC1、IC2;其中,OC1、OC2分别为换能器A、换能器B的发射激励选通引脚,IC1、IC2分别为换能器A、换能器B的接收回波选通引脚;开始时,系统选通OC1引脚和IC2引脚,换能器A发射激励信号,换能器B接收回波信号;接着,换能器B发射激励信号,换能器A接收回波信号;然后,上述过程不断循环,完成激励信号的发射和回波信号的接收;
(3)激励信号的发送与回波信号的采集
STM32芯片控制内部的PWM模块产生两路带死区的单极性PWM方波,并传输至MOSFET驱动电路、MOSFET升压电路进行电压放大并转换成双极性方波作为激励信号,再经过由STM32芯片控制的激励选通电路输出至直射式单声道结构的换能器A、或者换能器B;超声波经过一段传播时间后,到达对应的接收换能器;由换能器B、或者换能器A接收,形成回波信号;相应换能器接收的回波信号先经过由STM32芯片控制的回波选通电路,再经过一级放大电路、带通滤波电路和二级放大电路进行放大和滤波,当程序中设置的延迟时间到达后,被STM32内部的12位ADC以5MHz的采样频率连续采集2048点,并存储到相应的寄存器中;
(4)调用算法处理数据,计算超声波传播时间
首先,在2048点数据中截取包括有用信号在内的1024点,具体实现方法为:首先寻找2048点数据中数值最大的点,以该点为基准,向前取511点数据,向后取512点数据,加上最大值点就是需要截取的1024点;若最大值点之前的数据点数少于511点,则截取2048点数据中的前1024点;若最大值点之后的数据点数小于512点,则截取2048点数据中的后1024点;截取完成后,对数据进行零相位滤波处理,然后,使用动态阈值与过零检测的数字信号处理方法来处理滤波后的数据,从而得到回波信号的特征点,进而计算出超声波的传播时间;
(5)计算瞬时流量
进行一次步骤(2)~(4)的循环,就可以得到一次超声波从一个换能器到另外一个换能器之间的传播时间;
在步骤(2)中切换不同的发射换能器和接收换能器,这样就可以依次测量出该声道顺流和逆流情况下超声波信号的传播时间;这样循环2次,就完成了单声道顺流和逆流传播时间的测量,并将这2个传播时间分别放入步骤(1)中所建立的2个队列中;
执行10次这样的测量,计算出单声道顺流和逆流的平均传播时间,并根据这个平均传播时间计算出瞬时流量;
瞬时流量的计算公式为:
式中,S2为缩径后流量管截面积;a为流量修正系数,其值与声道数、雷诺数、声道分布情况有关;D为流量管直径;L为声道长度;θ为流量管轴线与声道夹角;ts、tn、Δt分别为顺流传播时间、逆流传播时间以及两者的时间差;
(6)进入低功耗模式并计算累积流量
主程序计算得到瞬时流量后,并不直接更新液晶中的流量显示和脉冲上传频率,而是进入低功耗模式;在低功耗模式下,由于系统时钟控制的普通定时器和高级定时器是无法工作的;因此,选用实时时钟RTC对中断时间进行控制,其周期为1秒;系统进入中断服务程序后,首先读取此时主监控程序计算的瞬时流量值,并更新累积流量;同时,将瞬时流量值与脉冲当量相乘得到需要上传的脉冲个数,完成脉冲频率的更新;此外,采用累积上传脉冲和最佳分频系数判定的方法有效地解决了低功耗定时器时钟频率低而造成脉冲上传误差大的问题;定时器时间标志位用来控制液晶更新,即当定时器时间标志位为1时,更新一次液晶显示,并将定时器时间标志位置0,从而实现液晶1秒刷新1次。
2.根据权利要求1所述的一种基于STM32的低功耗气体超声流量计系统,其特征在于:所述的动态阈值与过零检测的数字信号处理方法,具体实施方法是:
(1)采集各个流量下50组回波信号数据;
(2)将各流量下的回波信号数据先进行零相位滤波、归一化处理,以每组回波信号数据的最大值为基准,向前找出所有峰值点;
(3)选择在各流量下峰值点集的幅值区分度较大的区间来确定一条动态阈值线;
(4)找出0m3/h流量下第二个峰值点集中的幅值最大值点和0m3/h流量下第三个峰值点集中的幅值最小值点,并求出两点的中点;
(5)找出400m3/h流量下第二个峰值点集中的幅值最大值点和400m3/h流量下第三个峰值点集中的幅值最小值点,并求出两点的中点;
(6)通过两个中点确定一条直线,求得直线的方程为Y=Kx+b;
在得出了动态阈值线方程后,动态阈值与过零检测的信号处理方法确定特征点的具体实施方法是:
(1)对回波信号中有用信号的截取后,回波信号数据共有1024点,从第一点(x0,y0)开始,将该点的横坐标x0带入动态阈值线的方程式Y=Kx+b,得到该采样点的阈值为Y0;
(2)比较Y0与y0的大小,接着将后面的点的横坐标依次带入动态阈值线的方程式Y=Kx+b来比较回波信号在该采样点的幅值与该采样点阈值的大小;
(3)采样点B是第一个幅值大于或等于该采样点阈值的点,该点所在的波被设为特征波,并将特征波后的第一个过零点作为特征点;
(4)通过特征点的值即可计算出该声道的超声波信号在顺、逆流情况下的传播时间,进而计算出气体流量。
3.根据权利要求1所述的一种基于STM32的低功耗气体超声流量计系统,其特征在于:通过STM32的PWM模块发送两路带死区的单极性PWM方波,并传输至MOSFET驱动电路、MOSFET升压电路进行电压放大并转换成双极性方波作为激励信号;具体实施方法是:
(1)将STM32芯片的高级定时器8配置成PWM主从模式,同步发出两路单极性PWM波;
(2)通过配置高级定时器8的比较使能寄存器,强制拉低主路PWM波终止时刻后的电平;
(3)通过设置高级定时器8的比较使能寄存器,强制拉高主路PWM方波的起始电平;
(4)通过调节两路单极性PWM方波的死区时间来同时改变两路PWM方波的占空比;通过配置高级定时器8的控制寄存器相应位,将输出的两路PWM波设置为中心对称模式,再配置高级定时器8的死区寄存器的相应位,将死区时间设为0.04μs;此时,两路PWM方波的占空比分别为49.8%和51.4%;
(5)两路带死区的单极性PWM方波先是经过MOSFET驱动电路进行电压放大,然后到达MOSFET升压电路,在主路以及从路输出的5个PWM方波之前,主路的输出电压为低电平,从路的输出电压为高电平,此时,MOSFET芯片为关断状态;由于两路输出的PWM方波存在死区,当从路输出到第一个PWM方波的高电平时,主路输出仍为低电平,MOSFET芯片仍为关断状态,当死区时间结束后,主路输出由低电平变为高电平,此时,MOSFET芯片的Q1关断,Q2由关断变为导通,MOSFET芯片的输出电压为-20V,主路的输出在高电平持续一段时间后变为低电平,从路输出的电压仍为高电平,此时,Q2由导通变为关断,Q1关断,MOSFET芯片的输出电压由-20V上升至GND;持续了死区时间后,从路的输出电压由高电平变为低电平,此时,Q1由关断变为导通,Q2关断,MOSFET芯片的输出电压由GND上升至+20V,持续一段时间后,从路的输出从低电平变为高电平,主路输出的电压仍为低电平,此时,Q1由导通变为关断,Q2关断,MOSFET芯片的输出电压由+20V下降至GND;循环五次这样的电压变化过程后就得到了双极性方波信号。
4.根据权利要求1所述的一种基于STM32的低功耗气体超声流量计系统,其特征在于:累计上传脉冲和最优分频系数判定的脉冲上传方法;具体实施方法是:将低功耗定时器配置成PWM模式上传脉冲;当采用低功耗定时器的PWM模式上传脉冲时,由于时钟频率较低,导致单位时间内累计的流量无法及时上传;为此,采用累计脉冲上传的方法,将上一秒内未上传的脉冲累计到下一秒上传;为了得到最优分频系数,假定分频系数为FRTc为实时时钟频率,Nt为本次需要上传的总脉冲数,[]为取整函数;对分频系数为k和k+1所产生的脉冲误差进行了比较,即判断与的大小,若前者小,则说明分频系数为k产生的脉冲误差最小,k为最优分频系数,本次实际上传脉冲数为反之,k+1为最优分频系数,本次实际上传脉冲数为在此基础上,得出本次未上传的脉冲数,结合下一秒计算得到的需要上传脉冲个数,进行再次运算。
5.根据权利要求1所述的一种基于STM32的低功耗气体超声流量计系统,其特征在于:主程序计算得到瞬时流量后,并未直接更新液晶中的流量显示和脉冲上传频率,而是进入低功耗模式;具体运行过程为:主监控程序开始处于运行模式,不断循环完成通道选择、声道传播时间计算,当完成单个声道顺流、逆流各10次传播时间计算后,程序进入停止模式,此时,主程序停止运行,仅输出脉冲和更新液晶,并拉低STM32芯片的ExcEN引脚和IEE5引脚,分别将MOSFET驱动芯片以及回波调理电路中的运放关断,此过程持续约T2=0.9s;接着,实时时钟RTC控制的1秒1次的定时中断唤醒程序,程序再次处于运行状态。
6.根据权利要求1所述的一种基于STM32的低功耗气体超声流量计系统,其特征在于:由一次仪表和二次仪表组成;
所述一次仪表由两个超声换能器、一个流量管和相应的安装部件组成;所述二次仪表由激励电路模块、回波调理模块、数字信号处理模块、通讯模块和电源管理模块组成;
所述流量管为进行了缩径设计的流量管;所述的两个换能器分别固定在输送气体的流量管道上;每个换能器既为发射换能器,又为接收换能器;两个换能器构成的声道与流量管道轴线的夹角为45°;
所述激励电路模块负责将激励信号进行处理后输送到发射换能器,激励发射换能器产生超声波信号;该模块主要由MOSFET驱动电路、MOSFET升压电路和激励选通电路组成;
所述回波调理模块负责将接收换能器接收到的回波信号进行放大和滤波处理,再将其输入至数字信号处理模块的ADC中,转换为数字信号;该模块主要由回波选通电路、一级放大电路、带通滤波电路和二级放大电路组成;
所述数字信号处理模块负责计算气体流量、更新液晶显示、传输流量信息给通讯模块;该模块就是STM32的最小系统,由STM32芯片,外部时钟和复位电路、程序烧录接口电路组成;
所述通讯模块负责与上位机进行通讯以及液晶显示,由脉冲上传电路、串口通讯电路和液晶显示电路组成;其中,脉冲上传电路在标定过程中使用,传输实时流量;串口通讯电路在确定动态阈值线时将回波信号上传;液晶显示电路实时显示当前气体的瞬时流量和累计流量;
所述电源管理模块负责将3.7V的电池电压转换成±20V、±2.7V、+3V的直流电压,其中,±20V和+3V为激励电路模块供电,±2.7V为回波调理模块供电、数字信号处理模块和通讯模块供电。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010481077.0A CN111486911B (zh) | 2020-05-31 | 2020-05-31 | 一种基于stm32的低功耗气体超声波流量计系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010481077.0A CN111486911B (zh) | 2020-05-31 | 2020-05-31 | 一种基于stm32的低功耗气体超声波流量计系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111486911A CN111486911A (zh) | 2020-08-04 |
CN111486911B true CN111486911B (zh) | 2021-11-26 |
Family
ID=71795665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010481077.0A Active CN111486911B (zh) | 2020-05-31 | 2020-05-31 | 一种基于stm32的低功耗气体超声波流量计系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111486911B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11899516B1 (en) | 2023-07-13 | 2024-02-13 | T-Mobile Usa, Inc. | Creation of a digital twin for auto-discovery of hierarchy in power monitoring |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112821944A (zh) * | 2021-01-06 | 2021-05-18 | 天津戎行集团有限公司 | 一种可见光信号检测装置 |
CN116961629A (zh) * | 2023-06-26 | 2023-10-27 | 苏州东剑智能科技有限公司 | 一种超声波放大控制电路及应用其的超声波仪器 |
CN117168583B (zh) * | 2023-10-31 | 2024-01-23 | 成都千嘉科技股份有限公司 | 燃气表的过零检测方法和检测装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104697593A (zh) * | 2015-03-24 | 2015-06-10 | 合肥工业大学 | 一种基于fpga和dsp的气体超声流量计 |
CN106840290A (zh) * | 2017-01-10 | 2017-06-13 | 合肥工业大学 | 一种高精度四声道气体超声波流量变送器 |
CN107024251A (zh) * | 2017-05-13 | 2017-08-08 | 山东力创科技股份有限公司 | 一种用于降低超声波流量测量功耗的装置及方法 |
CN108955788A (zh) * | 2018-05-22 | 2018-12-07 | 常州大学 | 一种非接触式的时差法高精度超声波气体流量计 |
EP3421946A1 (en) * | 2010-04-28 | 2019-01-02 | Apator Miitors ApS | Ultrasonic flow meter |
CN209117096U (zh) * | 2018-12-24 | 2019-07-16 | 西安安森智能仪器股份有限公司 | 一种低功耗超声波流量计 |
WO2020072868A1 (en) * | 2018-10-05 | 2020-04-09 | Honeywell International Inc. | Ultrasonic flow meter with lens combination |
CN111149141A (zh) * | 2017-09-04 | 2020-05-12 | Nng软件开发和商业有限责任公司 | 用于收集并使用来自交通工具的传感器数据的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457371B1 (en) * | 2000-06-13 | 2002-10-01 | Murray F. Feller | Ultrasonic flow sensor with error detection and compensation |
CN202024794U (zh) * | 2011-03-18 | 2011-11-02 | 中国计量学院 | 一种低功耗高精度超声波流量测量装置 |
CN103344288B (zh) * | 2013-06-25 | 2015-10-07 | 国家电网公司 | 一种基于零点分析的时差式超声波流量计测量方法 |
US10222247B2 (en) * | 2016-07-07 | 2019-03-05 | Joseph Baumoel | Multiphase ultrasonic flow meter |
JP2018115889A (ja) * | 2017-01-17 | 2018-07-26 | 株式会社日立製作所 | 検出装置および検出方法ならびに流体制御システム |
CN107843305B (zh) * | 2017-10-31 | 2019-11-12 | 合肥工业大学 | 一种基于回波信号包络拟合的气体超声波流量计信号处理方法 |
-
2020
- 2020-05-31 CN CN202010481077.0A patent/CN111486911B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3421946A1 (en) * | 2010-04-28 | 2019-01-02 | Apator Miitors ApS | Ultrasonic flow meter |
CN104697593A (zh) * | 2015-03-24 | 2015-06-10 | 合肥工业大学 | 一种基于fpga和dsp的气体超声流量计 |
CN106840290A (zh) * | 2017-01-10 | 2017-06-13 | 合肥工业大学 | 一种高精度四声道气体超声波流量变送器 |
CN107024251A (zh) * | 2017-05-13 | 2017-08-08 | 山东力创科技股份有限公司 | 一种用于降低超声波流量测量功耗的装置及方法 |
CN111149141A (zh) * | 2017-09-04 | 2020-05-12 | Nng软件开发和商业有限责任公司 | 用于收集并使用来自交通工具的传感器数据的方法和装置 |
CN108955788A (zh) * | 2018-05-22 | 2018-12-07 | 常州大学 | 一种非接触式的时差法高精度超声波气体流量计 |
WO2020072868A1 (en) * | 2018-10-05 | 2020-04-09 | Honeywell International Inc. | Ultrasonic flow meter with lens combination |
CN209117096U (zh) * | 2018-12-24 | 2019-07-16 | 西安安森智能仪器股份有限公司 | 一种低功耗超声波流量计 |
Non-Patent Citations (2)
Title |
---|
基于能量变化率的气体超声波流量计信号处理方法;沈子文;《仪器仪表学报》;20150930;第2138-2144页 * |
基于超声回波信号包络拟合的信号处理方法;张伦;《电子测量与仪器学报》;20190830;第194-201页 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11899516B1 (en) | 2023-07-13 | 2024-02-13 | T-Mobile Usa, Inc. | Creation of a digital twin for auto-discovery of hierarchy in power monitoring |
Also Published As
Publication number | Publication date |
---|---|
CN111486911A (zh) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111486911B (zh) | 一种基于stm32的低功耗气体超声波流量计系统 | |
WO2016150385A1 (zh) | 一种基于fpga和dsp的气体超声流量计及其测量方法 | |
CN106840290B (zh) | 一种高精度四声道气体超声波流量变送器 | |
CN103336667B (zh) | 一种通用多通道数据采集系统 | |
CN101539599B (zh) | 数字式雷电探测方法及其装置 | |
CN109506727B (zh) | 一种超声波流量测量方法及低功耗超声波流量计 | |
CN107290564A (zh) | 一种基于相位差的超声波流速测量方法 | |
CN110735699B (zh) | 一种氮氧化物传感器控制器 | |
CN108955788A (zh) | 一种非接触式的时差法高精度超声波气体流量计 | |
CN213843115U (zh) | 一种基于衰减法的超声波发射与接收电路 | |
CN213545067U (zh) | 一种低功耗水声信号处理板 | |
CN116990543A (zh) | 一种多声道超声测速装置及测速方法 | |
CN209358534U (zh) | 一种调节无线发射功率的电路 | |
CN111075433A (zh) | 一种随钻多极子声波成像测井仪的控制电路及方法 | |
CN111381536A (zh) | 一种tms320f28系列dsp的激励采集系统 | |
CN102968080A (zh) | 低本底αβ测量仪控制装置 | |
CN206687728U (zh) | 一种便携式多普勒胎心检测装置 | |
CN115900858A (zh) | 一种超声波发收电路时延测量及超声波飞行时间修正方法 | |
CN216954658U (zh) | 一种四声道超声波气体流量测量电路板 | |
CN205942282U (zh) | 一种智能生活信息腕表 | |
CN206117478U (zh) | 一种水平声学多普勒测流装置 | |
CN208187478U (zh) | 一种超声波冗余流量计 | |
CN106209281B (zh) | 无线传感器网络rssi衰减模型实地校准装置及方法 | |
CN204422752U (zh) | 一种高精度超声波测距仪 | |
CN204359370U (zh) | 气体超声波流量计换能器接收信号强度自动增益控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |