CN101517379A - 多相科里奥利流量计 - Google Patents

多相科里奥利流量计 Download PDF

Info

Publication number
CN101517379A
CN101517379A CNA2007800351576A CN200780035157A CN101517379A CN 101517379 A CN101517379 A CN 101517379A CN A2007800351576 A CNA2007800351576 A CN A2007800351576A CN 200780035157 A CN200780035157 A CN 200780035157A CN 101517379 A CN101517379 A CN 101517379A
Authority
CN
China
Prior art keywords
attribute
heterogeneous fluid
flow velocity
pressure
fluid
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.)
Pending
Application number
CNA2007800351576A
Other languages
English (en)
Inventor
桑塔努·巴鲁亚
罗比·兰桑根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric Systems USA Inc
Original Assignee
Invensys Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Invensys Systems Inc filed Critical Invensys Systems Inc
Publication of CN101517379A publication Critical patent/CN101517379A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F1/00Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
    • G01F1/76Devices for measuring mass flow of a fluid or a fluent solid material
    • G01F1/78Direct mass flowmeters
    • G01F1/80Direct mass flowmeters operating by measuring pressure, force, momentum, or frequency of a fluid flow to which a rotational movement has been imparted
    • G01F1/84Coriolis or gyroscopic mass flowmeters
    • G01F1/845Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits
    • G01F1/8468Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits vibrating measuring conduits
    • G01F1/8481Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits vibrating measuring conduits having loop-shaped measuring conduits, e.g. the measuring conduits form a loop with a crossing point
    • G01F1/8486Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits vibrating measuring conduits having loop-shaped measuring conduits, e.g. the measuring conduits form a loop with a crossing point with multiple measuring conduits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F1/00Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
    • G01F1/76Devices for measuring mass flow of a fluid or a fluent solid material
    • G01F1/78Direct mass flowmeters
    • G01F1/80Direct mass flowmeters operating by measuring pressure, force, momentum, or frequency of a fluid flow to which a rotational movement has been imparted
    • G01F1/84Coriolis or gyroscopic mass flowmeters
    • G01F1/8409Coriolis or gyroscopic mass flowmeters constructional details
    • G01F1/8436Coriolis or gyroscopic mass flowmeters constructional details signal processing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F1/00Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
    • G01F1/76Devices for measuring mass flow of a fluid or a fluent solid material
    • G01F1/78Direct mass flowmeters
    • G01F1/80Direct mass flowmeters operating by measuring pressure, force, momentum, or frequency of a fluid flow to which a rotational movement has been imparted
    • G01F1/84Coriolis or gyroscopic mass flowmeters
    • G01F1/845Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits
    • G01F1/8468Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits vibrating measuring conduits
    • G01F1/849Coriolis or gyroscopic mass flowmeters arrangements of measuring means, e.g., of measuring conduits vibrating measuring conduits having straight measuring conduits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F15/00Details of, or accessories for, apparatus of groups G01F1/00 - G01F13/00 insofar as such details or appliances are not adapted to particular types of such apparatus
    • G01F15/02Compensating or correcting for variations in pressure, density or temperature
    • G01F15/022Compensating or correcting for variations in pressure, density or temperature using electrical means
    • G01F15/024Compensating or correcting for variations in pressure, density or temperature using electrical means involving digital counting

Abstract

一种科里奥利流量计,确定多相流体的属性。流模型确定所述流体的另一属性。确定系统基于所述第一、第二属性确定所述流体的第三属性。基于体密度、总体质量流速和压力确定所述多相流体的组分的流速可以包括:基于所述压力确定所述多相流体的含水率或含气率;并且基于体密度、总体质量流速和所述含水率或含气率确定所述流体的组分的流速。基于压力确定所述流体的含水率或含气率可以包括使用流模型来基于压力确定所述含水率或含气率。

Description

多相科里奥利流量计
对相关申请的交叉引用
本申请要求于2006年7月21日提交的美国专利申请序列号No.60/820,032的优先权,通过引用将其全部内容合并于此。
技术领域
本描述涉及流量计。
背景技术
流量计提供关于正通过流道(conduit)或流管(flowtube)传递的材料的信息。例如,质量(mass)流量计提供正通过流道传递的材料的质量的指示。质量流量计还可以提供材料的密度的指示。
例如,科里奥利(Coriolis)类型的质量流量计基于科里奥利效应,其中流过流道的材料受科里奥利力的影响并因而经历加速度。许多科里奥利类型的质量流量计通过关于与流道的长度正交的旋转轴正弦地振荡流道来引起科里奥利力。在这样的质量流量计中,正在行进的流体质量所经历的科里奥利反应力被传递给流道自身,并被表示为在转动平面中科里奥利力矢量的方向中的流道的偏转或偏移。
发明内容
在一个方面,科里奥利流量计被配置为确定多相流体的第一属性。流模型(flow model)被配置为确定多相流体的第二属性。确定系统被配置为至少部分地基于所述第一属性和所述第二属性确定多相流体的第三属性。
实现方式可以包括下面特征中的一个或多个。例如,传感器可以被配置为感测与多相流体相关联的第四属性,并且所述流模型可以被配置为基于所述第四属性确定所述第二属性。所述第四属性可以是与多相流体相关联的压力或温度。
所述科里奥利流量计可以被配置为确定多相流体的第四属性。所述确定系统可以被配置为至少部分地基于所述第一属性、所述第二属性和所述第四属性确定多相流体的第三属性。所述第一属性可以是多相流体的体密度(bulkdensity),所述第二属性可以是多相流体的含水率(water-cut)或含气率(gasvoid fraction),以及所述第四属性可以是多相流体的总体质量流速(bulk massflow rate)。所述第三属性可以是多相流体的组分的质量流速或体积流速。
在另一个方面中,体密度确定系统确定多相流体的体密度。质量流速确定系统确定多相流体的总体质量流速。压力传感器被配置为确定与多相流体相关联的压力。流模型被配置为至少部分地基于所感测的压力来确定多相流体的含水率或含气率。流速确定系统基于体密度、总体质量流速和含水率或含气率来确定多相流体的至少一个组分的流速。
在另一个方面中,使用科里奥利流量计来确定多相流体的第一属性。使用通过流道的多相流体的流的数学模型来确定多相流体的第二属性。至少部分地基于所述第一属性和所述第二属性来确定多相流体的第三属性。
实现方式可以包括下面特征中的一个或多个。可以确定与多相流体相关联的第四属性,并且可以通过将所述第四属性输入到所述数学模型中来确定所述第二属性。第四属性可以是与多相流体相关联的压力或温度。
可以确定多相流体的第四属性,并且可以至少部分地基于所述第一属性、所述第二属性以及所述第四属性来确定多相流体的第三属性。所述第一属性可以是多相流体的体密度,所述第二属性可以是多相流体的含水率或含气率,以及所述第四属性可以是多相流体的总体质量流速。所述第三属性可以是多相流体的组分的质量流速或体积流速。
在另一个方面中,确定多相流体的体密度。确定多相流体的总体质量流速。确定与多相流体相关联的压力。基于所述体密度、所述总体质量流速和所述压力确定多相流体的至少一个组分的流速。
实现方式可以包括下面特征中的一个或多个。例如,基于所述体密度、所述总体质量流速和所述压力确定多相流体的至少一个组分的流速可以包括:至少部分地基于所述压力确定多相流体的含水率或含气率;以及基于所述体密度、所述总体质量流速和所述含水率或含气率来确定多相流体的至少一个组分的流速。至少部分地基于所述压力确定多相流体的含水率或含气率可以包括使用流模型来基于所述压力确定所述含水率或含气率。
在另一个方面中,使用包括流管的科里奥利流量计确定多相流体的体密度。使用所述科里奥利流量计来确定多相流体的总体质量流速。分别确定在所述流管的入口和出口处的多相流体的入口和出口压力。分别确定在所述流管的入口和出口处的多相流体的入口和出口温度。基于所述体密度、所述总体质量流速、所述入口压力、所述出口压力和所述入口温度来确定多相流体的含水率或含气率。基于所述体密度、所述总体质量流速和所述含水率或含气率来确定多相流体的至少一个组分的流速。
实现方式可以包括下面特征中的一个或多个。例如,确定多相流体的所述含水率或含气率可以包括使用通过所述流管的多相流体的流的数学模型来基于所述体密度、所述总体质量流速、所述入口压力、所述出口压力和所述入口温度来确定多相流体的所述含水率或含气率。
附图说明
图1A是使用弯曲的流管的科里奥利流量计的图示。
图1B是使用直的流管的科里奥利流量计的图示。
图2是流量计系统的框图。
图3A示出了内插的含水率对出口压力曲线。
图3B示出了图3A的曲线,其具有由流模型计算的数据点的指示以及实际的出口压力位于内插曲线上的点的指示。
图4示出了图示用于确定三相流体流的各个组分的属性的过程的一个实现方式的流程图。
图5示出了图示科里奥利流量计对含水率的压力灵敏度的采样点图500。
具体实施方式
流量计的类型包括数字流量计。例如,通过引用而合并于此的美国专利6,311,136公开了数字流量计的使用和包括信号处理及测量技术的相关技术。这样的数字流量计在其测量中可以非常精确,具有很小或可忽略的噪声,并且能够使得在用于驱动流道的驱动器电路能够获得较宽范围的正和负增益。这样的数字流量计因而在各种设置中是有利的。例如,通过引用而合并于此的共同受让的美国专利6,505,519公开了宽增益范围的使用和/或负增益的使用,以便即使在诸如两相流(例如包含液体和气体的混合物的流)或三相流(例如气体和两种不同的液体)的困难情况下也能防止失速(stalling)和更精确地进行流管的控制。
尽管下面关于例如图1和图2特定讨论了数字流量计,但是应理解还存在模拟流量计。尽管这样的流量计可能具有模拟电路的典型缺点的倾向,例如相对于数字流量计的低精度和高噪声测量,但是其也可以与在此讨论的各种技术和实现方式兼容。因此,在下面的讨论中,术语“流量计”或“仪表”用于指其中科里奥利流量计系统使用各种控制系统和相关元件来测量通过流管或其他流道移动的材料的质量流、密度和/或其他参数的任何类型的设备和/或系统。
图1A是使用弯曲的流管102的数字流量计的图示。具体地,可以使用弯曲的流管102来测量例如如上所提及的(行进中的)流体的一个或多个物理特征。在图1A中,数字传送器104与弯曲的流管102交换传感器和驱动信号,以便因此感测弯曲的流管102的振荡并因此驱动弯曲的流管102的振荡。通过快速地并且精确地确定传感器和驱动信号,如上所提及的数字传送器104提供弯曲的流管102的快速并且精确的操作。例如在共同受让的美国专利6,311,136中提供了与弯曲的流管102一起使用的数字传送器104的示例。
图1B是使用直的流管106的数字流量计的图示。更具体地,在图1B中,直的流管106与数字传送器104交互。在概念级别上这样的直的流管类似于弯曲的流管102而操作,并且相对于弯曲的流管102具有各种优点/缺点。例如,直的流管106仅仅由于其构造的几何形状而可以比弯曲的流管102更易于(完全地)填充和清空。在操作中,弯曲的流管102可以以例如50-110Hz的频率操作,而直的流管106可以以例如300-1000Hz的频率操作。弯曲的流管102表示具有各种直径的流管,并且可以在多个方向操作,诸如例如在垂直或水平方向。
图2是流量计系统2100的框图。流量计系统2100可以用于测量混合流中的各个组分的属性。例如,“三相”流或“混合的两相”流指其中两种类型的液体与气体混合的情况。例如,油和水的流混合物可以包含空气(或另一气体),因而形成“三相流”,其中该术语是指流的三个组分,并且一般不隐含在流中包括固体材料。在这样的情形中,确定流体的各个组分的属性(例如质量或体积流速)可能是有用的。
为了确定三相流中的各个组分的属性,可能需要总体流体的三个独立的属性。通常,科里奥利流量计可以提供三相流体的体密度和总体质量流速的精确测量。然而,总体流体的这两个独立属性对于确定流体的三个独立组分的属性来说可能并非是足够的信息。因而,流量计系统2100的一个实现方式使用科里奥利流量计两端的压降,具体地是流量计215两端的压降,作为总体流体的附加属性,以使得能够确定三个独立组分的属性。
具体地,下面的描述描述了用于确定在三相流内的独立组分流速(质量和/或体积)的流量计系统2100的实现方式。具体地,所描述的实现方式确定在油-水-气体三相流中的各个组分的流速。然而,其他实现方式可以确定流体流的各个组分的不同属性,并且各个组分可以包括除了油、水和气体之外的材料。
此外,所描述的实现方式使用科里奥利流量计215的入口压力、科里奥利流量计215的出口压力、和入口温度作为到通过科里奥利流量计215的流体流的数学模型的输入,使得数学模型能够确定含水率,其然后被用来确定各个组分的流速。然而,其他的实现方式可以使用依赖其他输入(并且因此除了科里奥利流量计两端的压降之外的总体流的独立属性)的数学流模型来确定含水率。类似地,其他的实现方式可以使用数学模型来(基于压力或其他类型的输入)确定除了含水率之外的属性,其然后用于确定各个组分的所期望的属性。例如,代替含水率或除了含水率之外,可以确定含气率。
通常,流量计系统2100使用由科里奥利计量器加上通过科里奥利流管的流体流的数学模型所确定的流体的属性。如所描述的,科里奥利流量计通常可以提供三相流体的体密度和总体质量流速的精确测量。数学模型使用科里奥利流量计两端的压降来确定流体的附加属性,诸如含水率(油-水混合物中的水的百分比)或含气率。然后将该附加属性与通过科里奥利流量计所确定的属性结合使用来确定流体的各个组分的流速。
具体地,流量计系统2100包括数字质量流量计(例如科里奥利流量计)237、压力传感器225、温度传感器220和主机计算机2110。数字质量流量计237包括数字传送器104、一个或多个运动传感器205、一个或多个驱动器210以及流管215(其也可以被称作流道,并且其可以表示弯曲的流管102、直的流管106或某种其他类型的流管)。
可以使用例如处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、ASIC、其他可编程逻辑或门阵列、或具有处理器内核的可编程逻辑中的一个或多个来实现数字传送器104。应理解,如在US 6,311,136中所描述的,对于驱动器210的操作可以包括相关联的数模转换器,而可以使用模数转换器来转换来自传感器205的传感器信号,以用于数字传送器104。
数字传送器104包括体密度确定系统2104以及总体质量流速确定系统2106,以至少基于从运动传感器205接收的信号来生成流过流管215的材料的体密度和总体质量流速的测量。数字传送器104还控制驱动器210来引起流管215中的运动。通过运动传感器205来感测该运动。
流过流管的材料的密度测量与例如由驱动器210提供的驱动力在流管215中引起的流管215的运动频率、和/或流管215的温度相关。类似地,通过流管215的质量流与流管215的运动的相和频率相关,也与流管215的温度相关。通常,在多相流条件下(例如三相流),与构成多相材料的各个组分的密度相对,体密度是指作为整体的流材料的密度。类似地,在这样的条件下,与各个组分的质量流速相对,总体质量流速是指作为整体的材料的质量流速。
在图2中,应理解,尽管为了清晰的原因未明确示出通信链路,但是数字传送器104的各种组件彼此通信。此外,应理解,数字传送器104的常规组件未在图2中示出,但是假定存在于数字传送器104内或可被数字传送器104访问。例如,数字传送器104将典型地包括用于生成并向驱动器210提供驱动信号的驱动电路。
温度传感器220与传送器104通信,并且测量在流管215的入口处的流材料的温度。压力传感器225与传送器104通信,并且连接到流管215,以便可操作地感测在流管215的入口和出口处的、流过流管215的材料的压力(通过测量在入口和出口两者处的压力、或通过除了测量压差外还测量在入口和出口处中的一个或另一个处的压力)。如果明确地测量入口和出口压力,则压力传感器225实际上可以由两个传感器组成——一个在入口处,一个在出口处。
温度和压力可以被传送器104使用,更具体地由体密度确定系统2104和总体质量流速确定系统2106使用,以更精确地确定体密度和总体质量流速。例如,流管215中的流体的温度可能影响流管的某些属性,诸如其硬度和尺寸(dimension)。数字传送器104可以补偿这些温度影响。
主机计算机2110耦接到数字传送器104,并且可以从传送器104读取体密度、总体质量流速、入口压力、出口压力和入口温度。主机计算机2110执行流模型2120和组分流速确定系统2130。
流模型2120是通过流管215的流体的流的数学模型。可以使用提供对通过流道或一系列流道的流体流建模并连接组件的软件系统来实现流模型2120。通常,这样的流建模软件系统是商业可获得的。商业可获得的流建模软件系统的示例包括来自SIMSCI-ESSCOR的
Figure A20078003515700111
来自Schlumberger的Pipesim和来自Flowmaster,Ltd的Flowmaster2。可以对于给定的科里奥利流管几何形状和预期的流体成分来开发流模型2120。
例如,流模型2120可以包括表示科里奥利流管215并将流体建模为油、水和气体的三相流的管道网络。如果流管215具有图1A中所示的几何形状,则管道网络可以包括两个平行链路,该两个平行链路包括与图1A中所示的流管的几何形状相对应的弯曲和直的管道部分。
主机计算机2110从数字传送器104(或存储来自传送器104的信息的存储器)读取总体质量流速、体密度、入口压力、出口压力和入口温度。流模型2120然后使用入口压力和入口温度来确定流体的含水率(或替代地,在其他实现方式中流模型可以确定含气率)。为此,流模型可以使用各个组分的密度、入口压力、入口温度、体密度和总体质量流速来确定含水率对出口压力曲线。各个组分的密度可以是预先已知的并且可以被假定为常数,或者流模型2120可以基于入口温度、入口压力和气体的比重(其典型地是已知的)来计算这些密度。然后,使用含水率对出口压力曲线和实际的出口压力来确定流体的实际的含水率。
为了确定含水率对出口压力曲线,流模型2120可以改变组分的摩尔比,以按照保持所测量的体密度和总体质量流速恒定的方式改变含水率和含气率。例如,流模型2120可以确定对于含水率等于10%、20%、30%、40%、50%、60%、70%、80%、90%和100%的组分的摩尔百分比。对于含水率的每个百分比,流模型2120然后可以使用组分的摩尔百分比以及入口温度和入口压力来计算相应的出口压力。
组分流速确定系统2130然后内插这些点并且使用实际测量的出口压力来确定流体的实际含水率。也就是说,确定系统2130确定与实际测量的压力相对应的内插曲线上的点,对应的含水率值被接受为实际的含水率。基于含水率、总体质量密度、总体质量流速和各个组分的密度,组分流速确定系统2130然后计算各个组分的质量和/或体积流速。为此,组分流速确定系统2130可以使用下面的等式:
混合物体积流速:qT=WT/DENTP
液体密度:      DENL=DENO*(1.0-WC)+DENW*WC
含气率:        GVF=(DENL-DENTP)/(DENL-DENG)
气体体积流速:  qG=GVF*qT
气体质量流速:  wG=qG*DENG
液体体积流速:  qL=(1-GVF)*qT
油体积流速:    qO=(1.0-WC)*qL
油质量流速:    wO=qO*DENO
水体积流速:    qW=WC*qL
水质量流速:    wW=qW*DENW
其中:
wG: 现场(in-situ)气体质量流速
wO: 现场油质量流速
wW: 现场水质量流速
qG: 现场气体体积流速
qO: 现场油体积流速
qW: 现场水体积流速
qL   现场液体体积流速
GVF:现场气体体积百分比
qT   总体体积流速
WT   总体质量流速
DENTP体密度
DENL  液体的密度
DENO  油的密度
DENW  水的密度
DENG  气体的密度
WC    含水率
诸如
Figure A20078003515700121
的某些商业可获得的流建模软件系统具有使得能够用诸如Fortran或C++或Visual Basic(VB)的编程语言来开发主驱动器程序的开放结构。例如,
Figure A20078003515700131
提供允许这样的驱动器程序对Pipephase做出定制的自动调用、根据需要操作Pipephase模型变量以及访问模型的所期望的结果的API。结果,组分流速确定系统2130可以被实现为使用实现流模型2120的软件的API来确定关于流体的含水率对出口压力点的驱动器程序。例如,驱动器程序可以被实现为从传送器104(或在其他实现方式中,从数据的存储器中,诸如历史(historian))访问数据,以向流模型2120提供数据,并且启动流模型2120以确定含水率对出口压力点。驱动器程序然后可以访问这些来自流模型2120的点,内插这些点,使用实际的出口压力来确定实际的含水率,并且然后如上所述计算流速。
尽管未明确描述,但是由体密度确定系统2104和总体质量流速确定系统2106执行的体密度和总体质量流速测量可以是校正的体密度测量和校正的质量流速测量。通常,在流体流中存在的气体可以影响流体流的密度的实际值和测量值两者,导致密度测量比流体流仅包含液体组分的情况下的密度测量低,并且读取的密度测量也如此。因而,表面上的体密度可能与实际的体密度不同。类似地,表面的质量流速可能与实际的质量流速不同。因而,体密度确定系统2104和总体质量流速确定系统2106可以分别校正体密度和质量流速的初始/表面测量,以使得这些项更接近真实的密度和真实的质量流速。
而且,尽管将流量计系统2100描述为使用主机计算机2110实现流模型2120和组分流速确定系统2130,但是可以在数字传送器104中实现这些项中的一个或二者。例如,如果传送器的处理功率足够,则流模型2120和确定系统2130可以被实现在具有诸如
Figure A20078003515700132
的分析流建模软件的传送器104上。然而,如果处理功率有限,则可以使用其他技术来根据入口温度、入口压力、出口压力和组分的密度获得诸如含水率的属性。例如,可以在传送器104中实现神经网络。将利用包括入口温度、入口压力和出口压力的各种值以及相对应的含水率值的训练数据来训练神经网络。输入还可以包括组分的各种密度,或者可以针对组分的密度值的特定组来训练神经网络(并且因此,由于其他训练数据仅对密度值的特定组有效,所以不指定需要密度)。在传送器104中(或例如在主机计算机2110上)实现的组分流速确定系统然后利用神经网络输出的含水率以及体密度和密度质量流速一起来确定各个组分的流速。
如上所述,在一些实现方式中,可以将来自科里奥利流量计237的数据输出到历史数据库,并且然后由主机计算机2110从历史中访问它(而不是主机计算机2110直接从传送器104访问或接收)。当使用分析流模型软件系统将流模型2120实现在主机计算机2110上时,这是特别有利的。在这样的情况下,传送器104可以以比流模型2120高许多的频率来产生数据,并且确定系统2130可以处理该数据以确定流速。例如,流模型2120和确定系统2130可以花一或两秒来处理数据以确定流速,而传送器104可以每几毫秒输出数据。因而,传送器104可以比流模型2120和确定系统2130可以处理的速度快许多地输出数据。使用历史数据库允许在流模型2120和确定系统2130可以访问数据之前对其进行存储。
此外,在这样的情况下,对由传送器104在诸如一或两秒的一时间段内产生的数据求平均、并且使用该平均数据作为流模型2120和确定系统2130的输入可能是有利的。可替代地,主机计算机2110可以仅仅读取每秒或每两秒发生的数据点(而不是对时间段求平均)。
通常,应当理解,系统2100及其各种实现方式可以允许所有或基本所有的三相流体流连续地流过流管215和相关联的管道或用于传送三相流材料的其他流道。结果,确定各个组分流速不需要将三相流体流分离为包含一个或多个组成组分的单独流。例如,当三相流包含油、水和气体时,不必将气体与油/水液体组合分离以对结果的油/液体流的油部分执行测量(例如质量流速)。因此,可以容易、快速、廉价并且可靠地对例如在油产生设备处产生的油的量进行可靠测量。
图3A示出了可以由例如组分流速确定系统2130生成的内插的含水率对出口压力曲线。图3B示出了其中由流模型2120计算的数据点的指示被示出为三角形且实际出口压力位于内插曲线上的点的指示被示出为矩形的曲线。实际出口压力位于内插曲线上的点对应于0.24的含水率。
图4示出了图解用于确定三相流体流的各个组分的属性的处理400的一个实现方式的流程图。该实现方式基于流体流过流道时的总体质量流速、体密度、入口温度以及入口和出口压力来确定油-水-气体流体的各个组分的质量流速。可以由流量计系统2100或与其结合来执行该处理,或者可以将处理300适配于不同的系统。
诸如油-水-空气混和物的三相流体通过流道(402)。确定在流道的入口处流体的温度(404)。确定在流道的入口处和出口处流体的压力(406)。此外,确定三相流体的体密度和总体质量流速(408)。基于入口压力、出口压力、体密度和总体质量流速来确定流体的含水率或含气率(410)。例如,可以使用通过流道的流体的流的数学模型或经训练的神经网络来确定含水率或含气率。当使用数学模型时,在模型中也可以使用各个组分的密度的已知值来确定含水率或含气率。然后,基于含水率或含气率、体密度和总体质量流速来确定三相流的各个组分的流速(412)。
例如,当与流量计系统2100结合使用时,流道是科里奥利流管,以使得三相流体通过科里奥利流管。使用温度传感器220来感测在流管215的入口处流体的温度,并且可以使用压力传感器(或多个压力传感器)225来感测流管215的入口和出口压力。科里奥利计量器237测量通过流管的流体的体密度和总体质量流速。然后,组分流速确定系统2130与流模型2120相结合来基于入口压力、出口压力、体密度和总体质量流速确定流体的实际含水率,并且基于含水率或含气率、体密度和总体质量流速来确定三相流的各个组分的质量流速。
图5示出了图解科里奥利计量器的压力灵敏度对含水率的采样点图500。该图示出了出口压力作为流速的函数的变化,其中含水率为随每个曲线变化的参数。基于该图,可以注意到,对于给定的科里奥利流管尺寸,接近流速的更低范围,曲线变得更靠近,并且可能更难以区分不同的含水率。因而,对于期望的流的范围,应使用适当尺寸的科里奥利流管,以使得对于改变中的含水率可以获得足够的压力差。
通过开发Pipephase网络模型以对通过来自Invensys Systems公司的CFT50-3科里奥利计量器的流建模,来测试上述技术。“科里奥利计量器网络”包括通过表示科里奥利计量器流管的两个相同的并行路径(环路)的流。这些并行的链路由弯曲的管道部分组成,其对应于计量器的流几何形状。具体地,模型包括配置有BEND设备的短管部分。用于每个弯管的KMUL(下面描述,并且用于Pipephase仿真)隐含地限定为相同的值,因为缺少区分信息来判断任何其他KMUL值分布并且使得分析结果更容易/易管理。
KMUL在计算中涉及弯管两端的压降。弯管两端的压降通常可以表示为:
DP=Kmul*f1(w,ρ,d,μ)*f2(多相流效应)
Kmul是L/D,其是弯管的特征,并且可以根据单相流测试压降数据获得。f1是依赖于质量流速w、流体密度ρ、流直径d和粘滞度(viscosity)μ的项。该数据在Pipephase中可通过热力学属性计算中获得。f2是说明包括流图案和滑动(slip)以及压缩性的多相流效应的项。在Pipephase中使用Chisolm或均相(Homogeneous)模型来计算该项。
利用水、空气和伪组分油组分的3组分模型对流体建模。在精确度几乎没有损失的情况下,流体的模型假定水组分处于水相、空气组分处于气相并且油组分处于油相(假定实验室条件)。对于建模领域条件,更精确的模型/算法可以反映更精确的相行为。
在附录B中提供了用于对CFT50流管和流体建模的Pipephase模型文件。
使用两相空气-水实验室数据来检查模型保真度并校准模型。使用标准Pipephase范例研究特征来使用所测量的数据运行大量Pipephase范例研究。
较宽范围内的数据被输入到模型中,并且手工改变Bend KMUL(L/D)值,以将压降与关于给定压降的流速相匹配。为了对管道建模,尝试BBMHV和Lockart-Martinelli模型。对于弯管,尝试HOMOGENEOUS模型和CHISOLM模型。
如上所述,假定所有弯管具有相同的KMUL值以简化模型。对于Chisolm-bmhv组合,发现KMUL为14是合适的。对于Homogeneous-bbmhv组合,发现KMUL为12是合适的。具体地,具有KMUL=12的Chisolm模型对于更低的流范围(15kg/s流速)给出良好的结果(流中平均1.18%的误差)。对于KMUL=14.35误差是-6.6%,并且均相模型对于使用KMUL=14.375的更高流范围给出更好的预测。所以,期望对于每个弯管的KMUL值整体上在12到14的范围内。
在Pipephase中,通过影响BEND输入数据KMUL使其作为最佳(决定、约束和目标变量)可以容易地自动化该手工校准。可以以3种方式来影响该数据:(a)用于KMUL的各个弯管变量(Individual Bend Variable)、(b)用于链路中的所有弯管的KMUL(KMUL_BEND_IN_LINK)以及(c)用于网络中的所有弯管的KMUL(KMUL_BEND_IN_NETW)。如果在Pipephase中开发该改进特征,则可以获得对于实验室所测量的数据的更精确、更快速的自动校正。
仿真试验表明:(a)与BBMHV管道模型相结合的Chisolm模型在位移更大或显著时对于更低范围的流速具有最高的保真度;以及(b)与BBMHV管道模型相结合的Homogeneous Bend模型在位移变得可忽略时对于更高范围的流速具有最高的保真度。该观察与所期望的行为一致。
下面的表格总结了目前为止对指定的压降所生成的流结果。
  流范围-->   15kg/s   19kg/s   23kg/s
  KMUL   12   12   12
  Chisolm模型平均流误差%   6.617%   4.34%   1.18%
  Homogeneous模型平均流误差%   =   =   =
  KMUL   14.35   14.35   14.35
  Chisolm模型误差%   -1.67%   -3.77%   -6.63%
  Homogeneous模型平均流误差%   +6.42%   1.40%   -2.01%
开发FORTRAN驱动器例行程序以经由Pipephase API调用Pipephase,以便实现用于利用实现流模型2120的Pipephase来实现组分流速确定系统2130的算法。在附录A中包括驱动器程序。
开发驱动器程序以反映Laboratory/Field科里奥利计量器测量方案。该科里奥利计量器输出5个量:(a)总体质量流速、(b)体密度、(c)入口压力、(d)出口压力以及(e)入口温度。还使用三个附加的常数:(1)现场气体密度、(2)现场水密度、(3)现场油密度。驱动器程序从*.csv文件读取科里奥利测量数据,将该数据发送到基础科里奥利网络模型,并且在保持总体质量流速和体密度恒定的同时计算作为含水率值的细栅格的函数的出口压力Pout,所述含水率值从0%含水率到100%含水率而变化。然后,对于关于出口压力的测量值的含水率内插Pout对Wcut的曲线。
对于基础Chisolm模型测试算法。所生成的结果展示所生成的曲线并非是平滑和单调改变的曲线。所以应使用在数据点之间的直线内插方案来得到合理的结果。更高阶的内插方案可能产生不稳定的结果。
还对于基础HOMOGENEOUS模型测试算法。所生成的Pout对Wcut曲线是平滑的。从这一点可以得出,与Chisolm模型相比,特别是在滑动明显时的更低范围的计量流量(meter flow)中,HOMOGENEOUS模型具有更想要的数学特性,虽然Chisolm模型可以反映实际发生的条件。
附录A
3-相科里奥利计量器Fortran驱动器程序
外部文件:
●科里奥利计量器数据测量数据位于与Pipephase科里奥利计量器关键词输入文件所位于的目录相同的目录中的csv文件中
●科里奥利计量器Pipephase运行的当前实现方式生成包含对一个数据集的全部3相流计算结果的输出csv文件。该输出文件位于与Pipephase科里奥利计量器关键词输入文件所位于的目录相同的目录中
输入的科里奥利计量器数据文件名:CORIOLIS_INP.CSV
示例:
  WT(1)   DENTP   PRES(1)   PRES(2)  TEMP(1)   DENO   DENW   DENG
  17594.78   820   9.7816   9.71  40   833.6   1001.3   12.909
输出的科里奥利计量器数据文件名:CORIOLIS_OUT.CSV
示例:
Figure A20078003515700182
Pipephase科里奥利计量器Fortran驱动器程序
C MAINS-MAINONE
C NOTRANS
C
C   $Archive::V:/cc/ff/src/mains/mainone for!v    $
C $Workfile::mainone.for                           $
C $Revision::1.16                                  $
C
C   $Author::thald                                 $
C $Modtime::24Oct 2002 17:28:56                    $
C    $Date::24Oct 2002 17:31:24                    $
C
     PROGRAM MAINONE
C
C *********************
C 示例FORTRAN驱动器
C *********************
C
C 这是用于PIPEPHASE仿真程序的主驱动器。其
C 也展示了对于希望将PIPEPHASE链接到他们自己的家用
C FORTRAN或C应用程序的用户可用的PIPEPHASE API
C 的使用。通过与向用户提供附加的子程序库的
C SIMSCI链接来解决下面的调用,其在PC中
C 被命名为D_MAINONELIB。
      IMPLICIT    DOUBLE PRECISION(A-H,O-Z),INTEGER(I-N)
C
C    ----------------------------------------------
C-L  局部变量
C    ----------------------------------------------
C
     CHARACTER*2 CDUM
     CHARACTER*256 INPNAME,INPDIR,CFGNAME,CWORK
     CHARACTER*256 CORIOLIS_OUT_FILNAM,CORIOLIS_INPUT_FILNAM
C-SB-Start
     Character*20 cClass,cName,cItem,cBuff(5000),
   1                 c2Buff(250),c3Buff(250),cComponentName(50),
   2 cBuff_TON(5000),cBuff_FRMN(5000),cBuff_shrt(5000)
     DIMENSION DBUFF(100),IBUFF(10)
     DIMENSION XMOLWT(50)
     DIMENSION ZGAS(50),ZOIL(50),ZWAT(50)
     EQUIVALENCE(ZGAS(1),ZOIL(1),ZWAT(1))
     DIMENSION ZCOMP(50),ZNEW(50)
    DIMENSION WT(1),PRES(2),TEMP(2)
     DIMENSION POUT_ARR(100),WCUT(100)
     CHARACTER SRCNAM(1)*20,SNKNAM(1)*20
     CHARACTER COMPNAMS(50)*20
    CHARACTER HEADING*132
C-SB-End
C
C    ----------------------------------------------
C-C  代码从此处开始
C    ----------------------------------------------
C
C    RETRIEVE COMMAND LINE ARGUMENTS
     CALL PARSECMDLINEARGS(INPNAME,INPDIR,CFGNAME)
C
C    Initialize Local Variables
     IDUM=-1
     RDUM=-1
     IRET=-1
     CDUM=″
C
C    Setup Simulation Data
     CALL FF_VALS(IDUM,′Quiet′,IDUM,RDUM,CDUM)
     CALL FF_EXEC(′Quiet′,″,IRET)
C
     CALL FF_VALS(IDUM,′Initialize′,IDUM,RDUM,CDUM)
     CALL FF_VALS(IDUM,′Activate Standard Code′,IDUM,RDUM,CDUM)
     CALL FF_VALS(IDUM,′Standard Output′,IDUM,RDUM,CDUM)
C    SB change to manual termination
C    CALL FF_VALS(IDUM,′Automatic Termination′,IDUM,RDUM,CDUM)
     CALL FF_VALS(IDUM,′MANUAL TERMINATION′,IDUM,RDUM,CDUM)
     CALL FF_VALS(IDUM,′Main Control FORTRAN′,IDUM,RDUM,CDUM)
C
C    Setup problem information before initializing
     CALL FF_VALS(IDUM,′Input File Name′,IDUM,RDUM,INPNAME)
     CALL FF_VALS(IDUM,′Input File Directory′,IDUM,RDUM,INPDIR)
     CALL FF_VALS(IDUM,′Configuration File Name′,IDUM,RDUM,CFGNAME)
C
C    Initialize and clean directory before running.
     CALL FF_EXEC(′Initialize′,″,IRET)
     IF(IRET.LT.0)GOTO 999
     CALL FF_EXEC(′Clean Start′,″,IRET)
     IF(IRET.LT.0)GOTO 999
C
C    Run Simulation
     CALL FF_EXEC(′Run Preprocessor′,″,IRET)
     IF(IRET.LT.0)GOTO 999
     CALL FF_EXEC(′Run Thermo Module′,″,IRET)
     IF(IRET.LT.0)GOTO 999
     CALL FF_EXEC(′Run Cross Checker′,″,IRET)
     IF(IRET.LT.0)GOTO 999
     CALL FF_EXEC(′Run Calculations′,″,IRET)
C-SB-start
C
C    =======================
C    指定Coriolis计量器项目修改的开始
C    =======================
C
C    Open 3ph-CORIOLIS-Meter Output file
     ITMP1=LEN_TRIM(INPDIR)
     CORIOLIS_OUT_FILNAM=INPDIR(1:ITMP1)//′\CORIOLIS_OUT.CSV′
     OPEN(UNIT=129,FILE=CORIOLIS_OUT_FILNAM,STATUS=′UNKNOWN′)
C    Open 3ph-CORIOLIS-meter input file
     CORIOLIS_INPUT_FILNAM=INPDIR(1:ITMP1)//′\CORIOLIS_INP.CSV′
     OPEN(UNIT=130,FILE=CORIOLIS_INPUT_FILNAM,STATUS=′UNKNOWN′)
C
     WRITE(129,*)
    I′WT(1),wG,wO,wW,qG,qO,qW,WCUT_CLC,GVF,Pout-measured′
     WRITE(129,*)
    1′kg/hr,kg/hr,kg/hr,kg/hr,m3/hr,m3/hr,m3/hr,frac,frac,bara′
C
C    NWCS is the number of water-cut grid points.The water-cut range is divided equally from 0.0 to 1.0.
    NWCS=10
    DWAT=1.0/NWCS
   NWCS=NWCS+1
    WC=0.0
C
C    =============================
C    必须依次列出网络文件中的组分列表,以使得
C    邻近的组分被指派为气体或油或水
C    =============================
C
C    ISTRT_GAS is the starting component number of the gas-component
     ISTRT_GAS=2
C    IEND_GAS is the ending component number of the gas-component
     IEND_GAS=2
C
C    ISTRT_OIL is the starting component number of the oil-component
     ISTRT_OIL=3
C    IEND_OIL is the ending component number of the oil-component
     IEND_OIL=3
C
C    ISTRT_WAT is the starting component number of the water-component
     ISTRT_WAT=1
C    IEND_WAT is the ending component number of the water-component
     IEND_WAT=1
C
C
C *************************************
C    获得科里奥利计量器源名称
C *************************************
C    CHARACTER SRCNAM(1)*16,SNKNAM(1)*16
C
     iPutGet=1
     cClass =′NAMES′
     cName   =′SOURCE NODES′
     CALL PPDATC(iPutGet,cClass,cName,cItem,SRCNAM,iSize,iCount,
    1 iReturnCode)
C
C *************************************
C    获得科里奥利水槽名称
C *************************************
C
     iPutGet=1
     cClass =′NAMES′
     cName   =′SINK NODES′
     CALL PPDATC(iPutGet,cClass,cName,cItem,SNKNAM,iSize,iCount,
    1 iReturnCode)
C
C *********************************************
C    获得科里奥利计量器模型组分名称
C *********************************************
C
     iPutGet=1
     cClass =′NAMES′
     cName   =′COMPONENTS′
     CALL PPDATC(iPutGet,cClass,cName,cItem,cBuff,iSize,iCount,
    1 iReturnCode)
C
C    DIMENSION COMPNAMS(50)
    NOC=iCount!number of components
    DO 1020 JC=1,NOC
     COMPNAMS(JC)=CBUFF(JC)
  1020 CONTINUE
C
C    DIMENSION XMOLWT(50)
    IF(iReturnCode.EQ.0)THEN
C
C *********************************************
C    获得科里奥利计量器分子量
C *********************************************
C
     iPutGet=1
     cClass =′NODE′
     cName   =′FEED(MW)′
    cItem  =SRCNAM(1)
     cComponentName=″
     CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
    &dBuff,iBuff,KUOM,IUOM,iReturnCode)
C
    DO 1030 JC=1,NOC
     XMOLWT(JC)=DBUFF(JC)
1030 CONTINUE
C
C **************************************************
C    获得源的摩尔合成阵列
C **************************************************
C
    iPutGet=I
    cClass =′NODE′
    cName   =′FEED(M)′
    cItem  =SRCNAM(1)
    cComponentName=″
    CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
   &dBuff,iBuff,KUOM,IUOM,iReturnCode)
C
    DO1010 JC=1,NOC
     ZCOMP(JC)=DBUFF(JC)
1010 CONTINUE
C
C **************************************************
C    为科里奥利网络设置压力公差
C **************************************************
C
    iPutGet=2
    cClass =′NETWORK′
    cName   =′PRES TOLER′
    cComponentName=″
    dbuff=1.0E-5
   KUOM=9!Pressure
   IUOM=6!Bara
     CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
    &dBuff,iBuff,KUOM,IUOM,iReturnCode)
C
C **************************************************
C    计算集总气体的分子量
C **************************************************
C    DIMENSION ZGAS(50),ZOIL(50),ZWAT(50)
C    EQUIVALENCE(ZGAS(1),ZOIL(1),ZWAT(1))
C
    xmwLG=0.0
    SUMG  =0.0
    DO 1040 J=ISTRT_GAS,IEND_GAS
    xmwLG=xmwLG+ZCOMP(J)*XMOLWT(J)
    SUMG=SUMG+ZCOMP(J)
 1040 CONTINUE
C
    xmwLG=xmwLG/SUMG
    DO 2040 J=ISTRT_GAS,IEND_GAS
    IF(SUMG.GT.0.0)THEN
     ZGAS(J)=ZCOMP(J)/SUMG
    ELSEIF(ISTRT_GAS.EQ.IEND_GAS)THEN
     ZGAS(J)=1.0
    ELSE
     ZGAS(J)=0.0
    ENDIF
  2040 CONTINUE
C
C **************************************************
C    计算集总油的分子量
C **************************************************
C
    xmwLO=0.0
    SUMO=0.0
    DO 1050 J=ISTRT_OIL,IEND_OIL
    xmwLO=xmwLO+ZCOMP(J)*XMOLWT(J)
    SUMO=SUMO+ZCOMP(J)
  1050 CONTINUE
C
    IF(SUMO.GT.0.0)THEN
    xmwLO=xmwLO/SUMO
    ELSE
    xmwLO=XMOLWT(ISTRT_OIL)
    ENDIF
C
    DO 2050 J=ISTRT_OIL,IEND_OIL
    IF(SUMO.GT.0.0)THEN
     ZOIL(J)=ZCOMP(J)/SUMO
    ELSEIF(ISTRT_OIL.EQ.IEND_OIL)THEN
     ZOIL(J)=1.0
    ELSE
    ZOIL(J)=0.0
    ENDIF
  2050 CONTINUE
C
C ****************************************************
C    计算集总水的分子量
C ****************************************************
C
    xmwLW=0.0
    SUMW=0.0
    DO 1060 J=ISTRT_WAT,IEND_WAT
    xmwLW=xmwLW+ZCOMP(J)*XMOLWT(J)
    SUMW=SUMW+ZCOMP(J)
  1060 CONTINUE
C
    IF(SUMW.GT.0.0)THEN
    xmwLW=xmwLW/SUMW
    ELSE
    xmwLW=XMOLWT(ISTRT_WAT)
    ENDIF
C
    DO 2060 J=ISTRT_WAT,IEND_WAT
    IF(SUMW.GT.0.0)THEN
     ZWAT(J)=ZCOMP(J)/SUMW
    ELSEIF(ISTRT_WAT.EQ.IEND_WAT)THEN
     ZWAT(J)=1.0
    ELSE
     ZWAT(J)=0.0
    ENDIF
2060 CONTINUE
C
C **************************************************
C    我们应当在这里读到科里奥利计量器数据
C    (a)总的加权速率,
C    (b)两相密度
C    (c)入口压力
C    (d)出口压力
C    (e)入口温度
C
C    我们应当在这里读到计量器恒定数据
C    (a)计量器的现场油密度(DENO),
C    (b)计量器的现场水密度DENW,
C    (c)计量器的现场气体密度(DENG
C **************************************************
C
C    以下是某些假想数据
C    DIMENSION WT(1)82811.08914
C    WT(1)=85139.88!KG/HR
C
C ==================================
C    3-phase meter SWRI data set from 3000-00-025 MST
C    total rate 645.1419067lb/min 17594 78kg/hr
C    Inlet pressure 141.8707733 psig=9.7816bar
C    Temperature:103.263031 F=40C
C    oil density 833.6kg/m3
C    Water density:1001.3kg/m3
C    Gas density:0.805544317lb/ft3=12.909kg/m3
C    WT(1)=17594.78!KG/HR
C  PRES(1)=9.7816!Bar-abs inlet pressure
C    PRES(2)=7.7816!Bar-abs outlet pressure(fictitious)
C    TEMP(1)=40.0!degrees C
C    DENO=833.6!kg/m3
C    DENW=1001.3!kg/m3
C    DENG=12.909!kg/m3
C ==================================
C
C ==================================
C    Data set
C     WT(1)=82811.08914!KG/HR
C    PRES(1)=2.51268335!Bar-abs inlet pressure
C     PRES(2)=1.646795786!Bar-abs outlet pressure
C
C     TEMP(1)=31.68140366!degrees C
C
C    qT  =qG+qO+qW
C   qT  =0.436781609+0+82.977043226!m3/hr
C     DENTP=WT(1)/qT
C
C     DENO=750.0!kg/m3
C     DENW=998.0!kg/m3
C     DENG=2.61!kg/m3
C ==================================
C
C **************************************************
C    用于测试模型的制造缺失数据
C **************************************************
C
C    GVF_dum=5.511579543*1.0E-2
C    wc_dum=0.15
C    DENL_dum=wc_dum*DENW+(1.0-WC_dum)*DENO
C    DENTP=DENL_dum-GVF_dum*(DENL_dum-DENG)
C
C   Read coriolis-meter data from a csv input file
C      WT(1)=Total mass flow rate KG/HR
C      DENTP  =Mixture density kg/m3
C      PRES(1)=Coriolis-meter Inlet pressure(coriolis network source pressure,bara)
C      PRES(2)=Coriolis-meter Outlet pressure(coriolis network sink pressure,bara)
C      TEMP(1)=Coriolis-meter Inlet temperature(source temperature)
C      DENO    =Oil phase density(kg/m3,usually a nominated value for a particular data set or installation)
C      DENW    =Water density(kg/m3,usually a nominated value for a particular data set or installation)
C      DENG    =Gas density(kg/m3,usually a nominated value for a particular data set or installation)
C
      READ(130,6030)HEADING
 6030 FORMAT(A132)
      READ(130,*)WT(1),DENTP,PRES(1),PRES(2),TEMP(1),DENO,
     1            DENW,DENG
C
     qT=WT(1)/DENTP
C
    NVAL_WCS=NWCS
    JVAL_WCS=0
C
C ***************************************************************************
C    对于含水率的范围开始出口压力计算的循环
C ***************************************************************************
C
    DO 1000 JWAT=1,NWCS
C
C     WC=WC+DWAT
    DENL=DENO*(1.0-WC)+DENW*WC
    GVF =(DENL-DENTP)/(DENL-DENG)
    IF(GVF.LT.0.0)THEN
       NVAL_WCS=NVAL_WCS-1
       WC=WC+DWAT
       GOTO 1000
     END1F
     qG  =GVF*qT
     wG  =qG*DENG
C
     qL  =(1-GVF)*qT
     qO  =(1.0-WC)*qL
     wO  =qO*DENO
C
     qW  =WC*qL
     wW  =qW*DENW
C
C **********************************************************************
C    计算关于集总气体、油和水组分的摩尔百分比
C **********************************************************************
C
    XMOLGAS_LMP=wG/xmwLG  !Moles of lumped gas
    XMOLOIL_LMP=wO/xmwLO  !Moles of lumped oil
    XMOLWAT_LMP=wW/xmwLW  !Moles of lumped water
    TOTAL_MOLES=XMOLGAS_LMP+XMOLOIL_LMP+XMOLWAT_LMP
C
C **************************************************************************************************************
C    基于集总成分摩尔速率,计算总流合成摩尔百分比数据返回
C **************************************************************************************************************
C
    DO 3040 J=ISTRT_GAS,IEND_GAS
     ZNEW(J)=ZGAS(J)*XMOLGAS_LMP/TOTAL_MOLES
  3040 CONTINUE
C
    DO 3050 J=ISTRT_OIL,IEND_OIL
     ZNEW(J)=ZOIL(J)*XMOLOIL_LMP/TOTAL_MOLES
  3050 CONTINUE
C
    DO 3060 J=ISTRT_WAT,IEND_WAT
     ZNEW(J)=ZWAT(J)*XMOLWAT_LMP/TOTAL_MOLES
  3060 CONTINUE
C
C
==================================
C    设置新的源加权速率和新的源压力,并且
C    对于WC的范围通过调用Pipephase来计算新的出口压力,且存储Poutlet对WC
C
==================================
C
C **************************************************
C    设置源流合成
C **************************************************
C
    iPutGet=2
    cClass =′NODE′
    cName   =′FEED(M)′
   cItem  =SRCNAM(1)
    cComponentName=″
C
C    Need to tell how many elements are being sent(this needs to be documented)
     iBuff(1)=NOC
     CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
    & ZNEW,iBuff,KUOM,IUOM,iReturnCode)
C
C ************************************
C    设置源加权流速
C ************************************
    iPutGet=2
    cClass =′NODE′
    cName    =′RATE(WT)′
   cItem  =SRCNAM(1)
    cComponentName=″
    KUOM=2!Weight Rate
    IUOM=9!kg/hr
     CALLPPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
    & WT(1),iBuff,KUOM,IUOM,iReturnCode)
C
C **************************************************
C    设置入口压力和温度
C **************************************************
C
C    iPutGet=2
C    cClass =′NODE′
    cName   =′PRESSURE′
C  cItem  =SRCNAM(1)
     cComponentName=″
    KUOM=9!Pressure
    IUOM=6!Bara
     CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
    &PRES(1),iBuff,KUOM,IUOM,iReturnCode)
C
C    Set the Inlet Temperature
C     DIMENSION TEMP(2)
C    iPutGet=2
C    cClass  =′NODE′
    cName    =′TEMPERATURE′
C  cItem  =SRCNAM(1)
    cComponentName=″
    KUOM=7!temperature
    IUOM=3!Centigrade
      CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
     &TEMP(1),iBuff,KUOM,IUOM,iReturnCode)
C
C    =====================
C    计算科里奥利计量器网络
C    =====================
C
    CALL FF_EXEC(′Rerun Calculations′,″,IRET)
C
    IF(IRET.NE.2)THEN
C
    NVAL_WCS=NVAL_WCS-1
    WC=WC+DWAT
    GO TO 1000
  ENDIF
C
C ****************************
C    计算出口压力
C ****************************
C
    iPutGet=1
C    cClass  =′NODE′
    cName  =′PRESSURE′
   cItem  =SNKNAM(1)
    cComponentName=″
   KUOM=9!Pressure
   IUOM=6!Bara
    JVAL_WCS=JVAL_WCS+1
    CALL PPDATR(iPutGet,cClass,cName,cItem,iItemID,cComponentName,
   &POUT_ARR(JVAL_WCS),iBuff,KUOM,IUOM,iReturnCode)
C
C    POUT_ARR(JWAT)=PRES(2)
    WCUT(JVAL_WCS)    =WC
C
C    Calculate next water cut
     WC=WC+DWAT
1000 CONTINUE
C
C ******************************
C    内插含水率
C ******************************
C
    NVAL_WCS=JVAL_WCS
    IF(NVAL_WCS.EQ.0)THEN
    WRITE(129,*)′FAILED TO CALCULATE WATER-CUT and GVF′
    GO TO 4060
    ELSEIF(NVAL_WCS.EQ.1)THEN
    WCUT_CLC=WCUT(1)
    ELSEIF(NVAL_WCS.EQ.2)THEN
    CALL SRTVAR(NVAL_WCS,POUT_ARR,WCUT)
    WCUT_CLC=FLAGRR(POUT_ARR,WCUT,PRES(2),1,NVAL_WCS)
    ELSEIF(NVAL_WCS.GT.2)THEN
    CALL SRTVAR(NVAL_WCS,POUT_ARR,WCUT)
    WCUT_CLC=FLAGRR(POUT_ARR,WCUT,PRES(2),1,NVAL_WCS)
    ENDIF
C
    IF(WCUT_CLC.GT.1.0)THEN
    WC=1.0
    ELSEIF(WCUT_CLC.LT.0.0)THEN
   WC=0.0
    ELSE
    WC=WCUT_CLC
    ENDIF
   DENL=DENO*(1.0-WC)+DENW*WC
   GVF =(DENL-DENTP)/(DENL-DENG)
    qG =GVF*qT
    wG =qG*DENG
C
    qL  =(1-GVF)*qT
    qO  =(1.0-WC)*qL
    wO  =qO*DENO
C
    qW  =WC*qL
    wW  =qW*DENW
    WCUT_CLC=WC
C
C *****************************************************************************
C    写出科里奥利计量器结果和含水率对pout曲线结果
C *****************************************************************************
C
      WRITE(129,6010)WT(1),wG,wO,wW,qG,qO,qW,WCUT_CLC,GVF,PRES(2)
6010 FORMAT(20(1X,E165,′,′))
      WRITE(129,*)′WUT ARRAY(FRAC)′
      WRITE(129,6010)(WCUT(1),I=1,NVAL_WCS)
      WRITE(129,*)′CALCULATED OUTLET PRESSURE ARRAY(Bara)′
      WRITE(129,6010)(POUT_ARR(I),I=1,NVAL_WCS)
      ENDIF
C
 4060 CONTINUE
      CLOSE(129)
      CLOSE(130)
C-SB-end
      IF(IRET.LT.0)GOTO 999
      GOTO 998
C
C    ERRORS-IF AUTOMATIC TERMINATION IS SELECTED,
C    THE CODE BELOW WILL NEVER BE REACHED SINCE THE CALL
C    TO FF_EXEC WILL STOP WITH AN EXIT CODE WHEN THE
C    SIMULATION HAS COMPLETED.
C
  999 CONTINUE
       CALL FFGETMESSAGE(IRET,CWORK)
       WRITE(*,*)″
       WRITE(*,′(A,I6,2A)′)′***ERROR:′,IRET,″,CWORK(1:60)
C
  998 CONTINUE
      CALL FF_EXEC(′End′,″,IRET)
      CALL FF_EXEC(′Clean End′,″,IRET)
      CALL FF_EXEC(′Stop′,″,IRET)
C
C    -------------------------------------------
C-E  程序结束
C    ------------------------------------------
C
    STOP
    END
C
C    THIS IS A COMPAQ VISUAL FORTRAN SPECIFIC COMMAND LINE PARSER.
C
    SUBROUTINE PARSECMDLINEARGS(FNAME,FPATH,CNAME)
C-A
    CHARACTER*(*)FNAME,FPATH,CNAME
C-L
    CHARACTER*256 ARG(3),CWORK
    LOGICAL EXISTS
C-C
    FNAME=′NONE′
*~IF IBMPC
    FPATH=′.\′
*~ELSEIF UNIX
*~      FPATH=′./′
*~ENDIF
    CNAME=′pipephase.ini′
    ARG(1)=″
    ARG(2)=″
    ARG(3)=″
C
    I=NARGS()
    IF(I.GT.3)I=3
    DO J=1,I
      CALL GETARG(J,ARG(J))
    ENDDO
C
    DO WHILE(1>0)
      IF(ARG(I)(1:3).EQ.′/F=′)FNAME=ARG(I)(4:)
      IF(ARG(I)(1:3).EQ.′/D=′)FPATH=ARG(I)(4:)
      IF(ARG(I)(1:3).EQ.′/I=′)CNAME=ARG(I)(4:)
      IF(ARG(I)(1:3).EQ.′/f=′)FNAME=ARG(I)(4:)
      IF(ARG(I)(1:3).EQ.′/d=′)FPATH=ARG(I)(4:)
      IF(ARG(I)(1:3).EQ.′/i=′)CNAME=ARG(I)(4:)
      I=I-1
    ENDDO
C
    ITMPI=LEN_TRIM(FPATH)
    ITMP2=LEN_TRIM(FNAME)
*~IF IBMPC
    IF(FPATH(ITMP1:ITMP1).NE.′\′)THEN
       CWORK=FPATH(1:ITMP1)//′\′//FNAME(1:ITMP2)//′.INP′
    ELSE
       CWORK=FPATH(1:ITMP1)//FNAME(1:ITMP2)//′.INP′
    ENDIF
*~ELSEIF UNIX
*~    IF(FPATH(ITMP1:ITMP1).NE.′/′)THEN
*~      CWORK=FPATH(1:ITMP1)//′/′//FNAME(1:ITMP2)//′.INP′
*~    ELSE
*~      CWORK=FPATH(1:ITMP1)//FNAME(1:ITMP2)//′.INP′
*~    ENDIF
*~ENDIF
C
C    CHECK FOR INPUT FILE
     INQUIRE(FILE=CWORK,EXIST=EXISTS)
     IF(.NOT.EXISTS)THEN
        WRITE(*,*)″
        WRITE(*,*)′INPUT FILE NOT FOUND:′,CWORK(1:50)
        GOTO 998
      ENDIF
C
C    CHECK FOR CONFIG FILE
     INQUIRE(FILE=CNAME,EXIST=EXISTS)
     IF(.NOT.EXISTS)THEN
        WRITE(*,*)″
        WRITE(*,*)′CONFIGURATION FILE NOT FOUND:′,CNAME(1:40)
        GOTO 998
      ENDIF
C
    GOTO 999
C
  998 CONTINUE
       WRITE(*,*)″
       WRITE(*,*)
     1   ′PROPER SYNTAX:MAINONE/F=INPNAME/D=INPDIR/I=CFGNAME′
*~IF IBMPC
        WRITE(*,*)
       1  ′        IE:MAINONE/F=TEST/D=″.\″/I=PIPEPHASE.INI′
*~ELSEIF UNIX
*~     WRITE(*,*)
*~     1′         IE:MAINONE/F=TEST/D=″./″/I=PIPEPHASE.INI′
*~ENDIF
      WRITE(*,*)″
      STOP
  999 CONTINUE
C-E
    RETURN
    END
C FFLIB-FLAGR
C
C  $Archive::  V:/cc/ff/src/fflib/FLAGR.FOV   $
C $Workfile:: FLAGR.FOR                       $
C $Revision:: 1.7                             $
C
C  $Author::thald                             $
C $Modtime::Oct 20 1999 09:16:00              $
C    $Date::Oct 25 1999 09:42:32              $
C
C+---------------------------------------------+
C!                                            !
C!            维护和改进记录                  !
C!   ==================     !
C!                                            !
C!日期    人员    改变简要描述                !
C!------  ---  -------------------------      !
C!                                            !
C+---------------------------------------------+
C!                                            !
C!目的:                                !
C!                                      !
C!作者:                                !
C!                                      !
C !完成日期:                           !
C!                                      !
C+---------------------------------------+
C!                                      !
C!      使用的主要局部变量              !
C!===================!
C!                                      !
C!自变量列表                            !
C!----------                            !
C!名称  类型  I/O    简要描述           !
C!---  ---  --  ------------------------!
C!                                      !
C !局部变量                             !
C!---------                             !
C!名称  类型     简要描述               !
C!---  ---  ----------------------------!
C!                                      !
C+---------------------------------------+
C
C
    FUNCTION FLAGRR(X,Y,XARG,IDEG,N2)
C
C   FLAGR USES THE LAGRANGE FORMULA TO EVALUATE THE INTERPOLATING
C   POLYNOMIAL OF DEGREE′IDEG′FOR ARGUMENT XARG USING THE DATA VALUE
C    X(1).......X(N)AND Y(N)......Y(N).SUBSCRIPTS MIN AND
C    SELECTED BY THE FUNCTION TO BRACKET XARG.   X(1).......X(N
C    ASSUMED TO BE IN ASCENDING ORDER BUT NOT NECESSARILY EVENLY SPACED
C
C    X=VECTOR OF INDEPENDENT VARIABLE DATA POINTS.
C    Y=VECTOR OF CORRESPONDING DEPENDENT VARIABLE DATA POINTS.
     CXARG=VALUE IN THE X VECTOR FOR WHICH Y EQUIVALENT IS DESIRED.
C    IDEG=DEGREE OF INTERPOLATING POLYNOMIAL-1 IS LINEAR,2 IS
C          QUADRATIC,ETC.
C    N=NUMBER OF DATA POINTS IN X AND Y
C
C    INCLUDE′PRECIS.CMN′
    IMPLICIT    DOUBLE PRECISION(A-H,O-Z),INTEGER(1-N)
     DIMENSION X(N2),Y(N2)
C
C    PROTECT CONSTANT ARGUMENTS THAT MAY HAVE BEEN PASSED IN.
    N=N2
C
    NDEG=IDEG
    L=1
     IF(N.LT.0)L=2
     IF(N.LT.0)N=-N
    IF(N-2)6,7,8
  6 FLAGRR=Y(1)
     RETURN
  7 NDEG=1
  8 CONTINUE
     SXARG=XARG
     N1=NDEG+1
      GO TO(191,192),L
191 DO 11 MAX=N1,N
   IF(XARG.LT.X(MAX))GO TO 12
 11 CONTINUE
     MAX=N
      GO TO 12
192    DO 2I MAX=N1,N
      IF(XARG.GT.X(MAX))GO TO 12
21    CONTINUE
      MAX=N
12 MIN=MAX-IDEG
    FACTOR=1.
    DO 2I=MIN,MAX
    IF(XARG.NE.X(I))GO TO 2
    FLAGRR=Y(1)
    RETURN
 2 FACTOR=FACTOR*(XARG-X(I))
    YEST=0.
    DO 5 I=MIN,MAX
    TERM=Y(I)*FACTOR/(XARG-X(I))
    DO 4 J=MIN,MAX
 4 IF(I.NE.J)TERM=TERM/(X(I)-X(J))
 5 YEST=YEST+TERM
   XARG=SXARG
   FLAGRR=YEST
   RETURN
   END
C FFLIB-SRTVAR
C
C   $Archive::  V:/cc/ff/src/fflib/srtvar.foV    $
C $Workfile::   srtvar.for                       $
C $Revision::   1.1                              $
C
C   $Author::thald                               $
C $Modtime:: Sep 13 1996 11:28:16                $
C    $Date:: Sep 13 1996 11:28:26                $
C
    SUBROUTINE SRTVAR(SETSIZ,VAR1,VAR2)
C
C+--------------------------------------------+
C!                                           !
C!            维护和改进记录                 !
C!===================     !
C!                                           !
C!日期    人员    改变简要描述               !
C!---------   ----- -------------------------!
C!09-09-96 DTT    初始实现                   !
C!                                           !
C+--------------------------------------------+
C!                                           !
C!目的:基于VAR1整理关于VAR2的曲线数据       !
C!                                           !
C!作者:      R.F.(Bob)Schaettle             !
C!                                           !
C+--------------------------------------------+
C!                                           !
C!          所使用的主要局部变量             !
C!==============               !
C!                                           !
C!自变量列表                                 !
C!----------                                 !
C!名称  类型  I/O      简要描述              !
C!------  ----  --- -------------------------!
C!                                           !
C!                                           !
C!共有区                                     !
C!---------------                            !
C!名称  共有  类型  I/O    简要描述          !
C!----  ----  ----  ----  -------------------!
C!                                           !
C!局部变量                                   !
C!---------                                  !
C!名称  类型    简要描述                     !
C!----  ----  -------------------------------!
C!                                           !
C!SETSIZ  IA    曲线中的点数                 !
C!                                           !
C!VAR1    RA  保持关于第一变量的曲线数据     !
C!VAR2    RA  保持关于第二变量的曲线数据     !
C!                                           !
C+--------------------------------------------+
C
C===============================================
C-                        共同声明
C===============================================
C
C    INCLUDE′PRECIS.CMN′
C    INCLUDE′KCONS.CMN′
C    INCLUDE′DEFUNT.CMN′
C    INCLUDE′CDUMP.CMN′
C    INCLUDE′CINOUT.CMN′
C
C===============================================
C-L                        局部声明
C===============================================
C
    IMPLICIT    DOUBLE PRECISION(A-H,O-Z),INTEGER(I-N)
    CHARACTER*6MYNAME
    PARAMETER  (MYNAME=′SRTVAR′)
    INTEGER SETSIZ,DEBUG,P1,P2
    DIMENSION  VAR1(SETSIZ),VAR2(SETSIZ)
C
C   EQUIVALENCE (IIDMP(1,53),DEBUG)
C
C================================================
C-F                            版本陈述
C================================================
C
C
  9001 FORMAT(2X,′***′,A8,1X,A6)
C
C================================================
C-C                            可执行陈述
C================================================
C
C    IF(DEBUG.GT.0)THEN
C        WRITE(KUPPOT,9001)′ENTERING′,MYNAME
C    ENDIF
C
   IF(SETSIZ.GT.1)THEN
C      Bubble Up
        DO 1300 I=1,(SETSIZ-1)
      P1=1+(I-1)
1000  CONTINUE
        JMARK=0
   DO 1100 J=(I+1),SETSIZ
              P2=1+(J-1)
              IF(VAR1(P1).GT.VAR1(P2))THEN
C               Markthis set
                JMARK=J
              ENDIF
 1100       CONTINUE
C
        IF(JMARK.GT.0)THEN
C          Swap the current data and the marked data
           TEMP=VAR1(P1)
           VAR1(P1)=VAR1(JMARK)
           VAR1(JMARK)=TEMP
           TEMP=VAR2(P1)
           VAR2(P1)=VAR2(JMARK)
           VAR2(JMARK)=TEMP
C
C          Now go back and bubble the new value that
C          has been swapped into this slot.
C
           GO TO 1000
          ENDIF
1300  CONTINUE
C
C     Bubble Down
     DO 2300 I=SETSIZ,2,-1
       P1=1+(I-1)
C
 2000    CONTINUE
            JMARK=0
      DO 2100 J=(I-1),1,-1
                P2=1+(J-1)
C
                IF(VAR1(P1).LT.VAR1(P2))THEN
C                  Mark this spot
                   JMARK=J
                 ENDIF
2100           CONTINUE
               IF(JMARK.GT.0)THEN
C                Swap the current data and the marked data
                 TEMP=VAR1(P1)
                 VAR1(P1)=VAR1(JMARK)
                 VAR1(JMARK)=TEMP
                 TEMP=VAR2(P1)
                 VAR2(P1)=VAR2(JMARK)
                 VAR2(JMARK)=TEMP
C
                 GO TO 2000
              ENDIF
2300     CONTINUE
       ENDIF
C
C   -----------------------------------------
C   ------------- 程序SRTCRV的结束 ------------------
C   ------------------------------------------
C
C    IF(DEBUG.GT.0)THEN
C       WRITE(KUPPOT,9001)′LEAVING′,MYNAME
C    ENDIF
    RETURN
    END
附录B:
CFT50科里奥利计量器网络的
示例Pipephase关键字输入模型文件
科里奥利计量器Pipephase模型关键字输入文件:
Homogeneous模型:
关键字文件名:TRIAL3_ACT_DATA_HOMOG_BMHV_K12meter.inp
$ SIMSCI PIPEPHASE Version 9.1 keyword file...
$
$ 一般数据部分
$
TITLE DATE=06/07/06
$
$
DIMENSION SI,TEMPERATURE=C,PRESSURE=BAR,*
 LENGTH=FT,IN
$
CALCULATION NETWORK,Compositional,PRANDTL
$
FCODE PIPE=BBHV
$
DEFAULT IDPIPE=4.026,IDTUBING=4.026,IDRISER=4.026,*
 IDANNULUS=6.065,ROUGH(IN)=1.8000e-005,*
 HAUSEN
$
PRINT INPUT=FULL,DEVICE=PART,CONNECT=NONE,*
 MERGESUB,ITER,DATABASE=NONE,PROPERTY=FULL,*
 SIMULATOR=PART
$
SEGMENT AUTO=OFF,DLHORIZ(FT)=1,DLVERT(FT)=500,*
 MAXSTEPS=2000
$
LIMITS PRES(MIN)=1.000e-003
$
$  组分数据部分
$
COMPONENT DATA
$
LIBID 1,H2O/*
      2,AIR
PETRO(KGM3)3,c7+,300,833.6$750.0
$
PHASE VL=1,2
$
$  网络数据部分
$
NETWORK DATA
$
SOLUTION PBALANCE,FLOWAL=2,STEP=1,*
 QDAMP=10,HALVINGS=1
$
TOLERANCE PRESSURE=1.000e-005
$
$  热力学数据部分
$
THERMODYNAMIC DATA
$
METHOD SET=SET01,SYSTEM=SRK
$
WATER PROPERTY=Super
$
KVALUE BANK=SimSci
$
$  PVT数据部分
$
PVT PROPERTY DATA
$
SET SETNO=1,SET=SET01
$
$  结构数据部分
$
STRUCTURE DATA
$
$SOURCE NAME=S000,PRIORITY=0,SETNO=1,*
$ SET=SET01,PRES=2.51268335,TEMP=31.37,*
$ RATE(esti,W)=82811.08914,XCORD=0,YCORD=-688,*$85139.88
$ COMP(M)=1,0.999895572/2,0.000104428/3,0
$
$SINK NAME=D000,PRES=1.646795786,RATE(ESTI)=1000,*
$ XCORD=1769,YCORD=-719
$
SOURCE NAME=S000,PRIORITY=0,SETNO=1,*
 SET=SET01,PRES=2.51268335,TEMP=31.37,*
RATE(W)=17587.4654352121,XCORD=0,YCORD=-688,*$85139.88
COMP(M)=1,0.999895572/2,0.000104428/3,0
$
SINK NAME=D000,PRES(esti)=1.646795786,RATE(ESTI)=1000,*
 XCORD=1769,YCORD=-719
$
JUNCTION NAME=J001,XCORD=791,YCORD=-704
JUNCTION NAME=J002,XCORD=1294,YCORD=-706
$
$
LINK NAME=L000,FROM=S000,TO=J001,*
 XCOR=583,380,266,YCOR=-641,-650,-647
PIPE NAME=P000,LENGTH(FT)=0.87,ID=3.02,*
 U=1
$D~CONTRACTION NAME=C001,IDIN=3.02,IDOUT=1.744,*
$D~ANGLE=7.30103
$
LINK NAME=L001,FROM=J001,TO=J002,*
 XCOR=1146,1003,909,YCOR=-604,-604,-615
$D~TEE NAME=T002,IDPIPE=1.744,KMUL=16
REGULATOR NAME=R002,PRES=999
PIPE NAME=P007,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B009,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P008,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B010,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P009,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B011,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P010,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B012,ID=1.744,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
BEND NAME=B013,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOGENEOUS
PIPE NAME=P011,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1,FCODE=BMHV
$D~TEE NAME=T003,IDPIPE=1.744,KMUL=16
$D~TEE NAME=T004,IDPIPE=1.744,KMUL=16
PIPE NAME=P012,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B014,ID=1.744,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P013,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B015,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P014,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B016,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P015,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B017,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P016,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1
$D~TEE NAME=T005,IDPIPE=1.744,KMUL=16
$
LINK NAME=L002,FROM=J001,TO=J002
$D~TEE NAME=T006,IDPIPE=1.744,KMUL=16
REGULATOR NAME=R001,PRES=999
PIPE NAME=P019,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B020,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P020,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B021,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P021,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B022,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P022,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B023,ID=1.744,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
BEND NAME=B024,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P023,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1,FCODE=BMHV
$D~TEE NAME=T007,IDPIPE=1.744,KMUL=16
$D~TEE NAME=T008,IDPIPE=1.744,KMUL=16
PIPE NAME=P024,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B025,ID=1.744,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P025,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B026,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P026,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B027,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P027,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B028,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=12,*
 ROUGH(IN)=2.000e-004,HOMOG
PIPE NAME=P028,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1
$D~TEE NAME=T009,IDPIPE=1.744,KMUL=16
$
LINK NAME=L003,FROM=J002,TO=D000
$D~EXPANSION NAME=E003,IDIN=1.744,IDOUT=3.02
PIPE NAME=P030,LENGTH(FT)=0.87,ID=3.02,*
 ISOTHERMAL
$End of keyword file...
END
Chisolm模型:
关键字文件名:TRIAL3_ACT_DATA_CHIS_BMHV_K14meter.inp
$ SIMSCI PIPEPHASE Version 9.1 keyword file...
$
$ 一般数据部分
$
TITLE DATE=06/07/06
$
$
DIMENSION SI,TEMPERATURE=C,PRESSURE=BAR,*
 LENGTH=FT,IN
$
CALCULATION NETWORK,Compositional,PRANDTL
$
FCODE PIPE=BBHV
$
DEFAULT IDPIPE=4.026,IDTUBING=4.026,IDRISER=4.026,*
 IDANNULUS=6.065,ROUGH(IN)=1.8000e-005,*
 HAUSEN
$
PRINT INPUT=FULL,DEVICE=PART,CONNECT=NONE,*
 MERGESUB,ITER,DATABASE=NONE,PROPERTY=FULL,*
 SIMULATOR=PART
$
SEGMENT AUTO=OFF,DLHORIZ(FT)=1,DLVERT(FT)=500,*
 MAXSTEPS=2000
$
LIMITS PRES(MIN)=1.000e-003
$
$  组分数据部分
$
COMPONENT DATA
$
LIBID 1,H2O/*
      2,AIR
PETRO(KGM3)3,c7+,300,750.0
$
PHASE VL=1,2
$
$  网络数据部分
$
NETWORK DATA
$
SOLUTION PBALANCE,FLOWAL=2,STEP=1,*
 QDAMP=10,HALVINGS=1
$
TOLERANCE PRESSURE=1.000e-005
$
$  热力学数据部分
$
THERMODYNAMIC DATA
$
METHOD SET=SET01,SYSTEM=SRK
$
WATER PROPERTY=Super
$
KVALUE BANK=SimSci
$
$  PVT数据部分
$
PVT PROPERTY DATA
$
SET SETNO=1,SET=SET01
$
$  结构数据部分
$
STRUCTURE DATA
$
SOURCE NAME=S000,PRIORITY=0,SETNO=1,*
 $SET=SET01,PRES=2.285677266,TEMP=31.37,*      $23kgs/line 2
 $RATE(esti,W)=82811.08914,XCORD=0,YCORD=-688,*$23kgs/line 2
 $COMP(M)=1,0.999999808/2,1.91884E-07/3,0    $23kgs/line 2
$
 $SET=SET01,PRES=1.631911817,TEMP=31.5756866,*$15kgs/line 2
 $RATE(esti,W)=53952.91437,XCORD=0,YCORD=-688,*$15kgs/line 2
 $COMP(M)=1,0.999999678/2,3.22461E-07/3,0    $15kgs/line 2
SET=SET01,PRES=1.942586675,TEMP=31.5756866,*    $19kgs/line 2
 RATE=53952.91437,XCORD=0,YCORD=-688,*$19kgs/line 2
 COMP(M)=1,0.999999856/2,143789E-07/3,0    $19kgs/line 2
$
SINK NAME=D000,*
 $PRES=1.537303089,RATE(ESTI)=1000,*    $23kgs/line 2
 $PRES=1.248341963,RATE(ESTI)=1000,*    $15kgs/line 2
 PRES(esti)=1.377834393,RATE(ESTI)=1000,*  $19kgs/line 2
 XCORD=1769,YCORD=-719
$
JUNCTION NAME=J001,XCORD=791,YCORD=-704
JUNCTION NAME=J002,XCORD=1294,YCORD=-706
$
$
LINK NAME=L000,FROM=S000,TO=J001,*
 XCOR=583,380,266,YCOR=-641,-650,-647
PIPE NAME=P000,LENGTH(FT)=0.87,ID=3.02,*
 U=1
$D~CONTRACTION NAME=C001,IDIN=3.02,IDOUT=1.744,*
$D~ANGLE=7.30103
$
LINK NAME=L001,FROM=J001,TO=J002,*
 XCOR=1146,1003,909,YCOR=-604,-604,-615
$D~TEE NAME=T002,IDPIPE=1.744,KMUL=16
REGULATOR NAME=R002,PRES=999
PIPE NAME=P007,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B009,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P008,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B010,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P009,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B011,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P010,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B012,ID=1.744,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
BEND NAME=B013,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOGENEOUS
PIPE NAME=P011,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1,FCODE=BMHV
$D~TEE NAME=T003,IDPIPE=1.744,KMUL=16
$D~TEE NAME=T004,IDPIPE=1.744,KMUL=16
PIPE NAME=P012,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B014,ID=1.744,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P013,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B015,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P014,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B016,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P015,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B017,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P016,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1
$D~TEE NAME=T005,IDPIPE=1.744,KMUL=16
$
LINK NAME=L002,FROM=J001,TO=J002
$D~TEE NAME=T006,IDPIPE=1.744,KMUL=16
REGULATOR NAME=R001,PRES=999
PIPE NAME=P019,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B020,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P020,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B021,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P021,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B022,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P022,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B023,ID=1.744,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
BEND NAME=B024,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P023,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1,FCODE=BMHV
$D~TEE NAME=T007,IDPIPE=1.744,KMUL=16
$D~TEE NAME=T008,IDPIPE=1.744,KMUL=16
PIPE NAME=P024,LENGTH(FT)=0.2738,ECHG=0.2738,*
 ID=1.744,U=1
BEND NAME=B025,ID=1.744,KMUL=14.35347,*$16,*$8,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P025,LENGTH(FT)=0.3333,ECHG=-0.3333,*
 ID=1.744,U=1
BEND NAME=B026,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P026,LENGTH(FT)=1.275,ID=1.744,*
 U=1
BEND NAME=B027,ID=1.744,NONSTANDARD,*
 ANGLE=90,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P027,LENGTH(FT)=0.3333,ECHG=0.3333,*
 ID=1.744,U=1
BEND NAME=B028,ID=1.744,NONSTANDARD,*
 ANGLE=180,RADIUS=5.99936,KMUL=14.35347,*$16,*$12,*
 ROUGH(IN)=2.000e-004$,HOMOG
PIPE NAME=P028,LENGTH(FT)=0.2738,ECHG=-0.2738,*
 ID=1.744,U=1
$D~TEE NAME=T009,IDPIPE=1.744,KMUL=16
$
LINK NAME=L003,FROM=J002,TO=D000
$D~EXPANSION NAME=E003,IDIN=1.744,IDOUT=3.02
PIPE NAME=P030,LENGTH(FT)=0.87,ID=3.02,*
 ISOTHERMAL
$ 关键字文件的结束...
$
END

Claims (20)

1.一种系统,包括:
科里奥利流量计,被配置为确定多相流体的第一属性;
流模型,被配置为确定所述多相流体的第二属性;以及
确定系统,被配置为至少部分地基于所述第一属性和所述第二属性确定所述多相流体的第三属性。
2.根据权利要求1所述的系统,进一步包括传感器,所述传感器被配置为感测与所述多相流体相关联的第四属性,其中所述流模型被配置为基于所述第四属性确定所述第二属性。
3.根据权利要求2所述的系统,其中,所述第四属性是与所述多相流体相关联的压力。
4.根据权利要求2所述的系统,其中,所述第四属性是与所述多相流体相关联的温度。
5.根据权利要求1所述的系统,其中:
所述科里奥利流量计被配置为确定所述多相流体的第四属性;以及
所述确定系统被配置为至少部分地基于所述第一属性、所述第二属性和所述第四属性确定所述多相流体的第三属性。
6.根据权利要求1所述的系统,其中,所述第一属性是所述多相流体的体密度,所述第二属性是所述多相流体的含水率或含气率,以及所述第四属性是所述多相流体的总体质量流速。
7.根据权利要求1所述的系统,其中,所述第三属性是所述多相流体的组分的质量流速或体积流速。
8.一种系统,包括:
体密度确定系统,用于确定多相流体的体密度;
质量流速确定系统,用于确定所述多相流体的总体质量流速;
压力传感器,被配置为确定与所述多相流体相关联的压力;
流模型,被配置为至少部分地基于所感测的压力确定所述多相流体的含水率或含气率;
流速确定系统,用于基于所述体密度、所述总体质量流速和所述含水率或含气率确定所述多相流体的至少一个组分的流速。
9.一种方法,包括:
使用科里奥利流量计确定多相流体的第一属性;
使用通过流道的所述多相流体的流的数学模型确定所述多相流体的第二属性;以及
至少部分地基于所述第一属性和所述第二属性确定所述多相流体的第三属性。
10.根据权利要求9所述的方法,进一步包括确定与所述多相流体相关联的第四属性,其中,确定所述第二属性包括将所述第四属性输入到所述数学模型中。
11.根据权利要求10所述的方法,其中,所述第四属性是与所述多相流体相关联的压力。
12.根据权利要求10所述的方法,其中,所述第四属性是与所述多相流体相关联的温度。
13.根据权利要求9所述的方法,进一步包括确定所述多相流体的第四属性,其中,确定所述多相流体的所述第三属性包括至少部分地基于所述第一属性、所述第二属性以及所述第四属性来确定所述第三属性。
14.根据权利要求9所述的方法,其中,所述第一属性是所述多相流体的体密度,所述第二属性是所述多相流体的含水率或含气率,以及所述第四属性是所述多相流体的总体质量流速。
15.根据权利要求9所述的方法,其中,所述第三属性是所述多相流体的组分的质量流速或体积流速。
16.一种方法,包括:
确定多相流体的体密度;
确定所述多相流体的总体质量流速;
确定与所述多相流体相关联的压力;以及
基于所述体密度、所述总体质量流速和所述压力确定所述多相流体的至少一个组分的流速。
17.根据权利要求16所述的方法,其中,基于所述体密度、所述总体质量流速和所述压力确定所述多相流体的至少一个组分的流速包括:
至少部分地基于所述压力确定所述多相流体的含水率或含气率;以及
基于所述体密度、所述总体质量流速和所述含水率或含气率确定所述多相流体的至少一个组分的流速。
18.根据权利要求17所述的方法,其中,至少部分地基于所述压力确定所述多相流体的所述含水率或含气率包括使用流模型来基于所述压力确定所述含水率或含气率。
19.一种方法,包括:
使用科里奥利流量计确定多相流体的体密度,所述科里奥利流量计包括流管;
使用所述科里奥利流量计来确定所述多相流体的总体质量流速;
确定在所述流管的入口处的所述多相流体的入口压力;
确定在所述流管的出口处的所述多相流体的出口压力;
确定在所述流管的入口处的所述多相流体的入口温度;
基于所述体密度、所述总体质量流速、所述入口压力、所述出口压力和所述入口温度来确定多相流体的含水率或含气率;以及
基于所述体密度、所述总体质量流速和所述含水率或含气率来确定所述多相流体的至少一个组分的流速。
20.根据权利要求19所述的方法,其中,确定所述多相流体的所述含水率或含气率包括:使用通过所述流管的所述多相流体的流的数学模型来基于所述体密度、所述总体质量流速、所述入口压力、所述出口压力和所述入口温度来确定所述多相流体的所述含水率或含气率。
CNA2007800351576A 2006-07-21 2007-07-20 多相科里奥利流量计 Pending CN101517379A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82003206P 2006-07-21 2006-07-21
US60/820,032 2006-07-21

Publications (1)

Publication Number Publication Date
CN101517379A true CN101517379A (zh) 2009-08-26

Family

ID=38957663

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007800351576A Pending CN101517379A (zh) 2006-07-21 2007-07-20 多相科里奥利流量计

Country Status (5)

Country Link
US (2) US7614312B2 (zh)
CN (1) CN101517379A (zh)
CA (1) CA2658196A1 (zh)
RU (1) RU2431119C2 (zh)
WO (1) WO2008011587A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103616051A (zh) * 2013-12-11 2014-03-05 中国石油大学(华东) 基于误差分析的两相流参数测量修正方法
CN107525553A (zh) * 2017-09-19 2017-12-29 中国石油天然气股份有限公司 一种确定多相流体组分流量的方法及装置
CN110726444A (zh) * 2019-08-22 2020-01-24 无锡洋湃科技有限公司 一种基于科氏力质量流量计的湿气流量计量方法及其装置
CN110793584A (zh) * 2019-11-13 2020-02-14 四川奥达测控装置有限公司 一种多相流质量流量测量系统与测量方法
CN115096383A (zh) * 2022-07-15 2022-09-23 海默新宸水下技术(上海)有限公司 基于等效密度测算多相流中气相流量的方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4966306B2 (ja) * 2005-08-18 2012-07-04 マイクロ・モーション・インコーポレーテッド 流量計における多相流体物質に対するセンサ信号を処理するための計測器電子機器及び方法
RU2442111C2 (ru) 2006-05-08 2012-02-10 Инвенсис Системз, Инк. Измерение характеристик однофазных и многофазных флюидов
DE102008050116A1 (de) 2008-10-06 2010-04-08 Endress + Hauser Flowtec Ag In-Line-Meßgerät
DE102008050113A1 (de) 2008-10-06 2010-04-08 Endress + Hauser Flowtec Ag In-Line-Meßgerät
DE102008050115A1 (de) 2008-10-06 2010-04-08 Endress + Hauser Flowtec Ag In-Line-Meßgerät
US20100217536A1 (en) * 2009-02-26 2010-08-26 Invensys Systems, Inc. Bunker fuel transfer
US8620611B2 (en) * 2009-08-13 2013-12-31 Baker Hughes Incorporated Method of measuring multi-phase fluid flow downhole
KR101179749B1 (ko) * 2010-10-07 2012-09-10 한국수력원자력 주식회사 유체음과 고체음을 이용한 2상 유동 측정 장치 및 방법
WO2014078853A1 (en) 2012-11-19 2014-05-22 Invensys Systems, Inc. Net oil and gas well test system
MX363104B (es) * 2014-09-04 2019-03-08 Micro Motion Inc Herramienta para flujometro diferencial.
US9689736B2 (en) 2014-10-31 2017-06-27 Invensys Systems, Inc. Method to provide a quality measure for meter verification results
US9863798B2 (en) 2015-02-27 2018-01-09 Schneider Electric Systems Usa, Inc. Systems and methods for multiphase flow metering accounting for dissolved gas
US9664548B2 (en) 2015-03-19 2017-05-30 Invensys Systems, Inc. Testing system for petroleum wells having a fluidic system including a gas leg, a liquid leg, and bypass conduits in communication with multiple multiphase flow metering systems with valves to control fluid flow through the fluidic system
MX2018007287A (es) * 2016-01-13 2018-09-06 Micro Motion Inc Dispositivo y metodo de medicion de coriolis de fases multiples.
GB2572836B (en) * 2018-09-13 2020-09-02 M-Flow Tech Ltd Void fraction calibration method
WO2021154289A1 (en) * 2020-01-31 2021-08-05 Micro Motion, Inc. Method of correcting flow meter variable
US11333538B2 (en) * 2020-04-22 2022-05-17 Saudi Arabian Oil Company Systems and methods for fluid flow measurement with mass flow and electrical permittivity sensors

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461930A (en) * 1992-03-17 1995-10-31 Agar Corporation Inc. Apparatus and method for measuring two-or three-phase fluid flow utilizing one or more momentum flow meters and a volumetric flow meter
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
DE60139548D1 (de) * 2000-03-23 2009-09-24 Invensys Sys Inc Korrektur für eine zweiphasenströmung in einem digitalen durchflussmesser
US6471487B2 (en) * 2001-01-31 2002-10-29 Micro Motion, Inc. Fluid delivery system
US7059199B2 (en) * 2003-02-10 2006-06-13 Invensys Systems, Inc. Multiphase Coriolis flowmeter
US7188534B2 (en) * 2003-02-10 2007-03-13 Invensys Systems, Inc. Multi-phase coriolis flowmeter
US7072775B2 (en) * 2003-06-26 2006-07-04 Invensys Systems, Inc. Viscosity-corrected flowmeter
GB2424713B (en) * 2003-12-12 2008-07-16 Invensys Sys Inc Densitometer with pulsing pressure
RU2442111C2 (ru) * 2006-05-08 2012-02-10 Инвенсис Системз, Инк. Измерение характеристик однофазных и многофазных флюидов
US7617055B2 (en) * 2006-08-28 2009-11-10 Invensys Systems, Inc. Wet gas measurement

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103616051A (zh) * 2013-12-11 2014-03-05 中国石油大学(华东) 基于误差分析的两相流参数测量修正方法
CN103616051B (zh) * 2013-12-11 2016-01-20 中国石油大学(华东) 基于误差分析的两相流参数测量修正方法
CN107525553A (zh) * 2017-09-19 2017-12-29 中国石油天然气股份有限公司 一种确定多相流体组分流量的方法及装置
CN107525553B (zh) * 2017-09-19 2019-09-06 中国石油天然气股份有限公司 一种确定多相流体组分流量的方法及装置
CN110726444A (zh) * 2019-08-22 2020-01-24 无锡洋湃科技有限公司 一种基于科氏力质量流量计的湿气流量计量方法及其装置
CN110793584A (zh) * 2019-11-13 2020-02-14 四川奥达测控装置有限公司 一种多相流质量流量测量系统与测量方法
CN115096383A (zh) * 2022-07-15 2022-09-23 海默新宸水下技术(上海)有限公司 基于等效密度测算多相流中气相流量的方法
CN115096383B (zh) * 2022-07-15 2022-11-22 海默新宸水下技术(上海)有限公司 基于等效密度测算多相流中气相流量的方法

Also Published As

Publication number Publication date
RU2009106038A (ru) 2010-08-27
WO2008011587A2 (en) 2008-01-24
WO2008011587A3 (en) 2008-03-06
US20100094568A1 (en) 2010-04-15
US20080034890A1 (en) 2008-02-14
US7614312B2 (en) 2009-11-10
RU2431119C2 (ru) 2011-10-10
CA2658196A1 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
CN101517379A (zh) 多相科里奥利流量计
US8126661B2 (en) Wet gas measurement
AU2003286596B2 (en) Diagnostic apparatus and methods for a Coriolis flow meter
KR101484074B1 (ko) 유체의 특성을 결정하기 위한 방법 및 코리올리 유량계
CN101438135B (zh) 单相和多相流体测量
CN101278174B (zh) 确定刚度系数或质量系数的一个或多个的计量电子器件和方法
CA2683387C (en) Wet gas measurement
KR20160111502A (ko) 진동 유량계 및 계기 검증을 위한 방법들 및 진단들
CN100437044C (zh) 使用多种模式验证流量计并计算流速和温度的方法和系统
US9395224B2 (en) Coriolis flowmeter and method with improved meter zero
CN101523165A (zh) 用于流量计中几何热补偿的仪表电子和方法
JP2022050491A (ja) 振動計内の流体の粘性効果について測定された流量を修正するシステム、振動計内の流体の粘性効果について測定された流量を修正する方法、及び、流体の粘性効果について測定された流量を修正する振動計
KR101938844B1 (ko) 디퍼렌셜 유량계 툴
WO2006062856A1 (en) Multi-phase flow meter system and method of determining flow component fractions
CN101311687B (zh) 用于科里奥利流量计的诊断设备和方法
KR20240024269A (ko) 코리올리스 유량계 비 이상적인 유체 측정 및 관련 방법들
Tombs US Patent 7,599,807 Compensating for frequency change in flowmeters
Tombs et al. US patent no. 8,117,921: Multi-phase coriolis flowmeter
Tombs US Patent No. 8,473,224: Compensating for frequency change in flowmeters
MXPA06010011A (en) Multi-phase coriolis flowmeter

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1134134

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090826

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1134134

Country of ref document: HK