舰船科学技术  2020, Vol. 42 Issue (3): 97-101    DOI: 10.3404/j.issn.1672-7649.2020.03.019   PDF    
基于双核DSP的科氏质量流量计并行信号处理
胡国栋1, 冯正平1,2, 毕安元1     
1. 上海交通大学 船舶海洋与建筑工程学院,上海 200240;
2. 高新船舶与深海开发装备协同创新中心 船海协创中心,上海 200240
摘要: 科里奥利质量流量计可直接测量介质质量流量与密度,因而被广泛应用于海洋石油领域。针对单处理器难以保证CMF信号处理实时性要求的问题,基于双核DSP设计了多任务分布的CMF并行信号处理方法。完成数据采集与数字滤波计算任务的预处理进程与完成频率检测与相位差检测任务的后处理进程以并行方式分布在双核DSP中,2个进程之间通过核间中断进行同步。为了验证相位差检测实时性与精度,构建了CMF信号处理验证平台。实验结果表明,基于双核DSP的CMF并行信号处理方法具有更高的精度与实时性。
关键词: 科里奥利质量流量计     相位差检测     并行信号处理     进程同步     实验平台    
Dual-core DSP based parallel CMF signal processing
HU Guo-dong1, FENG Zheng-ping1,2, BI An-yuan1     
1. School of Naval Architecture, Ocean and Civil Engineering, Shanghai Jiaotong University, Shanghai 200240, China;
2. Collaborative Innovation Center for Advanced Ship and Deep-Sea Exploration, Shanghai 200240, China
Abstract: Coriolis Mass Flowmeter is widely used in the field of offshore oil due to the direct measurement of mass flow and density. Sequential signal processing based on single processor for CMF can hardly achieve critical real-time performance. A multi-task parallel signal processing approach based on dual-core DSP for CMF is proposed in this paper. While the pre-processing process implements data acquisition and digital filtering, the post-processing process conducts frequency detection and phase difference detection tasks. The two processes are synchronized via inter-processor interrupts. A test bed for evaluating the real-time performance and processing precision of CMF signal processing is built, and experiment results verify the effectiveness of the proposed approach.
Key words: Coriolis mass flowmeter     phase difference detection     parallel signal processing     process synchronization     Testbed    
0 引 言

科氏质量流量计(CMF)直接高精度地测量介质质量流量与密度,被广泛应用于海洋石油等领域[1],如超大型油轮(VLCC)的油料加装过程。介质密度信息既可作为船用燃油等级划分依据[2],又可作为混合流体中目标液体所占比例的计算依据[3]。BZ19-4油田海上石油平台利用CMF同时测量分离器水相出口的质量流量与水中含油率,降低了分析仪器费用[3]。并且,CMF质量流量测量过程不易受环境温度、介质密度、介质流态的影响,在海洋石油等气液两相流测量应用中具有独特的优势。2008年,英国国家工程实验室与牛津大学Henry团队合作,研制出直径200mm科氏质量流量计。同年,该团队针对新加坡某集装箱船进行现场船用燃油加注测试。测试结果显示,该流量计实际质量流量测量误差低于1%[4]

科氏质量流量计通过检测两路检测线圈振动信号之间的相位差,得到介质的质量流量信息[5]。目前,数字式CMF实时信号处理方法主要有2种:CMF并行信号处理方法与CMF串行信号处理方法。

21世纪初,牛津大学Henry团队基于自确认传感器模型[6]研制出数字化科氏质量流量计系统[7-8]。该系统通过采用“FPGA+微处理器”的并行处理架构,将CMF信号处理与控制任务分布运行在2个处理模块中。其中,FPGA模块完成信号采集与输出任务,微处理器完成流量检测、密度检测与流量管振动参数计算等任务[9]。需要指出的是,除了硬件设计层面的复杂性,该系统需要采用VxWorks实时操作系统进行进程调度,软件复杂程度也较高。

另一方面,数字信号处理器(DSP)因采用哈佛架构,具有专门的硬件乘法器、特殊的数字信号处理指令等优势,而被广泛应用于数字信号处理领域[10]。徐科军团队[11-12]基于单核DSP设计的CMF串行信号处理与控制系统,在一个周期内完成数据采集与数字滤波计算、频率检测与相位差检测、数字驱动控制参数计算等任务。该系统能够取得较高的相位差检测精度,但由于多任务串行运行在同一个周期内,系统不具有良好的实时性;并且在DSP执行相位差检测任务时,系统无法采集CMF模拟信号,造成数据浪费。

为了解决上述CMF串行信号处理方法无法同时进行数据采集与相位差检测工作的问题,并考虑到DSP在数字信号处理方面的独特优势,本文基于双核DSP设计了CMF并行信号处理方法,旨在提升CMF信号处理实时性,降低系统复杂度。基于设计的CMF信号处理验证平台,对该方法进行相位差检测实时性与精度验证,并将实验验证结果与仿真测试结果对比。

1 CMF信号处理的并行化设计 1.1 CMF串行信号处理方法

典型的CMF信号处理任务可分为两类:预处理任务(数据采集与数字滤波计算)与后处理任务(频率检测与相位差检测)。预处理任务(Sample-based Task)依据采样频率不断反复地被执行;当采样点数量达到数据帧长度时,后处理任务(Frame-based Task)被执行一次。在一个数据帧周期内,预处理任务与后处理任务是互斥的。数据帧周期开始时,系统执行预处理任务而阻塞了后处理任务。当采样点数量到达数据帧长度时,系统执行后处理任务而阻塞预处理任务。

在执行预处理任务的时间内,CMF输出的模拟信号无法被采集,因此,CMF串行信号处理方法存在信号利用率低、系统实时性差的明显缺点。

1.2 CMF并行信号处理方法

为解决上述问题,将CMF信号处理任务重组,并行运行在分布式处理器中,如图1所示。

图 1 CMF并行信号处理流程图 Fig. 1 Parallel CMF signal processing flowchart

主处理器中运行的预处理进程依据采样频率,不断反复执行预处理任务,即数据采集与数字滤波计算任务;当采样点数量达到数据帧长度时,预处理进程向后处理进程发送事件通知。

从处理器中运行的后处理进程收到来自预处理进程的事件通知时,方可开始针对本数据帧进行频率检测与相位差检测等后处理任务。

需要指出的是,在预处理进程中最后一个预处理任务时间片内需要额外完成发送事件通知与将相位差检测结果输出等工作,因此比其他预处理任务时间片稍长(见图2)。另外,从处理时序中可看出,后处理进程比预处理进程滞后一个数据帧周期。由于CMF信号处理数据帧周期通常很短(典型值为40 ms左右),因此完全可以认为后处理进程输出的处理结果是实时的。

图 2 CMF并行信号处理时序图 Fig. 2 Parallel CMF signal processing timeline
1.3 基于双核DSP的CMF并行信号处理软件

基于TI公司TMS320F28379D型号MCU开发CMF并行信号处理软件。该MCU集成了2个32位DSP核(CPU01与CPU02),集成了2个独立于CPU之外的浮点运算协处理器(CLA)、2个六通道DMA、核间通信模块(IPC)与128KB共享内存。预处理进程与后处理进程分布并行运行在双核DSP中。

1.3.1 预处理进程

预处理进程基于定时器中断,等时间间隔地完成数据采集与数字滤波计算任务。

在每个定时器中断处理程序中:

1)使能2个ADC,分别对两路CMF模拟信号进行一次采样,并将采样数据传递给CLA1;

2)CLA1完成数字滤波计算后,将本次滤波计算结果写入循环缓存。

当循环缓存的最后一个位置被写入数字滤波计算结果时,本数据帧数据采集完成,预处理进程在最后一个预处理任务时间片内需要完成以下额外的工作:

1)启动两路DMA,由DMA将本数据帧转移至后处理进程的工作内存中;

2)重置循环缓存指针,准备开始写入新数据帧;

3)将双核DSP共享内存内的相位差检测结果写入DAC寄存器;

4)通过核间中断向后处理进程发送事件通知,通知其基于本数据帧进行频率检测与相位差检测任务。

1.3.2 后处理进程

后处理进程初始化后处于等待事件通知的状态。当其接收到来自预处理进程的事件通知时,依次完成以下工作:

1)基于自适应陷波滤波算法(ANF频率检测算法)对本数据帧进行频率检测;

2)基于离散时间傅里叶变换算法(DTFT相位差检测算法)或三参数正弦拟合算法(SWF3相位差检测算法)对本数据帧进行相位差检测;

3)将相位差检测结果写入双核DSP共享内存;

4)重新进入等待预处理进程事件通知的状态。

2 CMF数字信号处理算法仿真测试

ANF频率检测算法根据被处理信号的特点,对被处理信号进行参数优化,自动调节自身模型参数,令误差函数达到最小值,使陷波频率与信号频率相等,从而计算出信号频率值[13-15]。DTFT相位差检测算法依据两路信号的离散傅里叶变换相位谱差值计算得到两路信号基波分量间的相位差[16,17]。SWF3相位差检测算法通过迭代,不断逼近得出待检测信号参数(如相位、频率与振幅等),进而得到两路信号间相位差[18,19]

为与CMF信号处理验证平台精度测试结果对比,基于随机参数信号进行300次相位差检测仿真测试。设定待检测正弦信号频率在150~180 Hz范围内随机变化,信号采样频率为50 kHz,数据帧长度为2 000,两路待检测数字信号间相位差随机范围为−0.5°~0.5°,设定信号信噪比为40 dB。仿真结果显示,DTFT算法相位差检测结果平均绝对误差为0.000 28°,SWF3算法相位差检测结果平均绝对误差为0.000 25°(见图3图4)。

图 3 DTFT算法相位差检测结果 Fig. 3 Phase difference detection results based on DTFT algorithm

图 4 SWF3算法相位差检测结果 Fig. 4 Phase difference detection results based on SWF3 algorithm
3 CMF信号处理验证平台简介 3.1 验证平台硬件描述

为验证本文设计的基于双核DSP的CMF并行信号处理方法实时性与精度,开发CMF信号处理验证平台。验证平台由主机与目标机两部分组成。主机为搭载NI公司PCI-6154多功能数据采集卡的台式电脑,目标机为搭载TMS320F28379D双核DSP的C2000系列开发板。主机通过数据采集卡的模拟信号输出通道为目标机提供CMF模拟信号,并通过数据采集卡的模拟信号输入通道采集目标机相位差检测结果。即主机实现了CMF模拟信号的输出与相位差检测结果的采集功能,目标机搭载CMF并行信号处理软件对两路CMF模拟信号进行相位差检测。

主机数据采集卡模拟信号输出通道与目标机ADC引脚相连,目标机DAC引脚接入主机数据采集卡模拟信号输入通道。

3.2 验证平台软件描述

验证平台软件由主机软件与目标机软件两部分组成。目标机软件即前文所述基于双核DSP的CMF并行信号处理软件。

基于Matlab Data Acquisition Toolbox开发验证平台主机软件。主机软件匹配识别PCI-6154数据采集卡,并配置模拟信号输入输出通道。主机软件依据设定的输出频率,通过数据采集卡模拟信号输出通道,输出两路带有相位差的正弦信号,并通过模拟信号输入通道实时采集目标机相位差检测结果。

验证平台主机硬件与软件总体组成如图5所示。

图 5 实验验证平台组成示意图 Fig. 5 Schematic diagram of Test-bed
4 实验验证结果

为了验证基于双核DSP的CMF并行信号处理方法相位差检测的实时性与精度,通过目标机检测主机输出的两路模拟正弦信号间相位差。实验设定主机软件输出的两路模拟信号间相位差为0°~0.5°,设定目标机软件预处理进程采样频率为50 kHz、数据帧长度为2 000(即数据帧周期为40 ms),设定DSP主频为200 MHz。

4.1 相位差检测实时性结果

为验证CMF并行信号处理方法是否可达实时性要求,在目标机软件中打点统计各部分任务所消耗的时间,如表1所示。

表 1 相位差检测实时性结果 Tab.1 Time consumption of phase difference detection experiment

经统计,预处理进程采集一个完整数据帧耗时40 ms,而后处理进程完成一次对数据帧的数字信号处理耗时7.8 ms(ANF频率检测算法与DTFT相位差检测算法)或13.5 ms(ANF频率检测算法与SWF3相位差检测算法)。实验结果说明,在预处理进程进行数据帧采集的时间内,后处理进程有足够的时间完成针对上一个数据帧的全部数字信号处理任务。因此,CMF并行信号处理方法能够以40 ms为数据帧周期,连续地对CMF模拟信号进行相位差检测。而CMF串行信号处理方法则相应耗时47.8 ms或53.5 ms,才可完成一次对数据帧的数字信号处理任务。

另由实验统计结果可知,启动DMA、发送事件通知与将相位差检测结果写入DAC寄存器等工作耗时小于1 μs,远小于预处理任务时间片间隔空余时间。因此,预处理进程中最后一个预处理任务需要完成的额外工作,不影响预处理进程的连续运行,也即CMF模拟信号可以连续被采样。

4.2 相位差检测精度结果

统计主机软件收集到的目标机相位差检测结果,可分别得到基于DTFT相位差检测算法和SWF3相位差检测算法的相位差检测精度结果(见表2)。经计算,DTFT算法相位差检测结果平均绝对误差为0.000 21°,SWF3算法相位差检测结果平均绝对误差为0.000 18°。即基于双核DSP的CMF并行信号处理软件相位差检测精度结果优于仿真测试结果。

表 2 相位差检测精度结果 Tab.2 processing precision of phase difference detection experiment
5 结 语

1)为解决CMF串行信号处理方法无法连续采样的问题,本文基于双核DSP设计的科氏质量流量计并行信号处理方法,实现了数据采集与数字滤波计算、频率检测与相位差检测任务的并行运行,并降低了系统复杂度。

2)通过搭建的CMF信号处理验证平台,对该方法进行相位差检测实时性与精度测试。实验结果显示,该方法具有更好的CMF信号处理精度与实时性。

参考文献
[1]
HENRY M, TOMBS M, DUTA M, et al. Two-phase flow metering of heavy oil using a coriolis mass flow meter: a case study[J]. Flow Measurement & Instrumentation, 2006, 17(6): 399-413.
[2]
BERGMEIJER P. The international convention for the prevention of pollution from ships[M]. Ports As Nodal Points in a Global Transport System. 1992: 259-270.
[3]
郭子学, 王澍虹, 王崴. Coriolis质量流量计监测水中油在海上石油平台上的应用[J]. 自动化仪表, 1993, 34(12): 80-82.
GUO Zi-xue, WANG Shuo-hong, WANG Wei. Application of coriolis mass flowmeter in offshore oil platform for monitoring oil in water[J]. Process Automation Instrumentation, 1993, 34(12): 80-82.
[4]
GREGORY D, WEST M, PATON R, et al. Two-phase Flow metering using a large coriolis mass flow meter applied to ship fuel bunkering[J]. Measurement and control, 2008.
[5]
CHEESEWRIGHT R, CLARK C. The effect of flow pulsations on coriolis mass flow meters[J]. Journal of Fluids and Structures, 1998, 12(8): 1025-1039. DOI:10.1006/jfls.1998.0176
[6]
HENRY M P, CLARKE D W. The self-validating sensor: rationale, definitions and examples[J]. Control Engineering Practice, 1993, 1(4): 585-610. DOI:10.1016/0967-0661(93)91382-7
[7]
HENRY M P, CLARKE D W, ARCHER N, et al. A self-validating digital coriolis mass-flow meter: an overview[J]. Control Engineering Practice, 2000, 8(5): 487-506. DOI:10.1016/S0967-0661(99)00177-X
[8]
HENRY M. On-line compensation in a digital coriolis mass flow meter[J]. Flow Measurement & Instrumentation, 2002, 12(2): 147-161.
[9]
TOMBS M, HENRY M, PETER C. From research to product using a common development platform[J]. Control engineering practice, 2004, 12(4): 503-510. DOI:10.1016/j.conengprac.2003.09.012
[10]
FRANTZ G. Digital Signal Processor Trends[M]. IEEE Computer Society Press, 2000.
[11]
HOU Qi-li, XU Ke-jun, FANG Min, et al. A DSP-based signal processing method and system for CMF[J]. Measurement, 2013, 46(7): 2184-2192. DOI:10.1016/j.measurement.2013.03.010
[12]
HOU Qi-li, XU Ke-jun, FANG Min, et al. Development of coriolis mass flowmeter with digital drive and signal processing technology[J]. Isa Transactions, 2013, 52(5): 692-700. DOI:10.1016/j.isatra.2013.05.001
[13]
CHO N I, CHOI C H, SANG U L. Adaptive line enhancement by using an ⅡR lattice notch filter[J]. IEEE Transactions on Acoustics Speech & Signal Processing, 1989, 37(4): 585-589.
[14]
MOJIRI M, BAKHSHAI A R. An adaptive notch filter for frequency estimation of a periodic signal[J]. Automatic Control IEEE Transactions on, 2004, 49(2): 314-318. DOI:10.1109/TAC.2003.821414
[15]
RAO D V B, KUNG S Y. Adaptive notch filtering for the retrieval of sinusoids in noise[J]. Acoustics Speech & Signal Processing IEEE Transactions on, 1984, 32(4): 791-802.
[16]
AGREŽ D. Interpolation in the frequency domain to improve phase measurement[J]. Measurement, 2008, 41(2): 151-159. DOI:10.1016/j.measurement.2006.09.003
[17]
SO H C. A comparative study of two discrete-time phase delay estimators[J]. IEEE Transactions on Instrumentation & Measurement, 2005, 54(6): 2501-2504.
[18]
SEDLACEK M, KRUMPHOLC M. Digital measurement of phase difference-a comparative study of dsp algorithms[J]. Metrology and Measurement Systems, 2005, 12(4): 427-448.
[19]
RADIL T, RAMOS P M, SERRA A C. DSP based portable impedance measurement instrument using sine-fittingalgorithms[J]. 2005, 2: 1018–1022.