describe metrics formula with cavets description
This calculation method uses the Cv curve of a valve to estimate the flow rate through it. Valve Flow Coefficient (Cv) is the flow capability of a control valve at open conditions relative to the pressure drop across the valve.
Flow Control Valves have a table of open % vs Cv value. XV’s or SV’s have a single CV value for when they are fully open. In addition to the Cv value, numerous physical properties for the respective gas flowing through the valve are used to compute the flow rate.
It’s method of estimating the flow based on interpolation of the flow chart. In following gdoc gdoc you can find set of examples and CV tables for each CV based metric.
Second part flow recovery rate interpolated based on FL table.
Each set of metrics based on following formula inputs: psig_in, psig_out, valve, temp, gas
valveis between 0 and 100 and it’s %
Intermediate variables are computed:
psia_in = psig_in + 14.696 #absolute pressure
psia_out = psig_out + 14.696 #absolute pressure
pressure_change = psia_out / psia_in
rankine_temp = temp + 460
cv = cv_interpolation(valve)
fl_recovery = fl_interpolation(valve)
Following constant are in use:
gas_density_vs_air it’s physical constant dependant on gas type1360 is a unit version factor for variables and output in imperial units834 is a unit version factor for variables and output in imperial unitsgas_std_density it’s physical constant dependant on gas type1.25 is a ratio applied to argon gas streams to estimate the N2 flow rate to condense the streamMain formula returns lb/h:
0 if valve < 0 or 100 < valve or pressure_change >= 1(gas_std_density * cv) / (sqrt(gas_density_vs_air * rankine_temp) / (fl_recovery * 834 * psia_in)) if pressure_change < 0.53(gas_std_density * cv) / (sqrt(gas_density_vs_air * rankine_temp) / (sqrt((psia_in - psia_out) * psia_out) * 1360)) if pressure_change >= 0.53At the end scfm = to_scfm(gas_type, lbh)
fcv_202_lbh, fcv_202_scfmInputs: psig_in=PT201, psig_out=0, valve=FCV202, temp=75°F if ARS14002 or ARS16006 else 150°F, gas=Ar
fcv_202_scfm0 if FCV202 <= 1 or FCV204 >= 15 or ft_202_scfm <= 100
based on FCV204: gdoc
fcv_204_lbh, fcv_204_scfm, coldbox_lbh, coldbox_scfmInputs: psig_in=PT201, psig_out=0, valve=FCV204, temp=75°F if ARS14002 or ARS16006 else 150°F, gas=Ar
fcv_204_scfm0 if FCV202 > fcv202MinFlowThreshold and (FCV204 < fcv204NoFlowThreshold or FCV204ZT < fcv204NoFlowThreshold)
fcv202MinFlowThreshold = 15 if ARS13007 else 20fcv204NoFlowThreshold = 6 if ARS15008 or ARS13007 or (ARS16006 and before(2020-06-03) else 5ft_202_scfm if FCV202 <= 1 or FCV204 >= 15 or ft_202_scfm <= 100fcv_204_scfm = FT100 - FT_101A (coldbox metrics are empty)coldbox_scfm = ft_202_scfm - fcv_204_scfmcoldbox_lbh = lbh(coldbox_scfm)fcv_204b_lbh, fcv_204b_scfm (only for ARS19004, ARS20009, ARS15002)Inputs: psig_in=PT201, psig_out=0, valve=FCV204B, temp=75°F, gas=Ar
if FCV204 = 0:
fcv_204_scfm = fcv_204b_scfmfcv_204_lbh = fcv_204b_lbhcoldbox_scfm = ft_202_scfm - fcv_204b_scfmcoldbox_lbh = lbh(coldbox_scfm)fcv_605_scfm, fcv_605_lbh, fcv_605_n2_use_lbh, fcv_605_n2_use_scfmInputs: psig_in=PT701, psig_out=PT601, valve=FCV605, temp=-300°F, gas=Ar
There are times where HXR_600 becomes full of argon such that the flow of argon through FCV_605 into the heat exchanger becomes obstructed and flow stops. In this situation FCV_605 cannot relieve pressure in TK_700 like it is supposed to do and it get stuck fully open (100%).
During this time period we log a high fcv_605_scfm value, even though there is realistically 0 flow.
Because of this fcv_605_scfm performs a check on the level of argon in HXR_600 according PDT_601_ALT
and if it exceeds a threshold, the output flow rate fcv_605_scfm is set to 0.
For ARS20009 after 2024-07-10 use FCV605_ZT instead of normal FCV_605.
| Site | threshold |
|---|---|
| ARS14002 | 130 |
| ARS15002 | 90 |
| ARS15008 | 90 |
| ARS16005 | 130 |
fcv_605_n2_use_scfm = fcv_605_scfm * 1.25fcv_605_n2_use_lbh = lbh(fcv_605_n2_use_scfm)sv_221_out_lbh, sv_221_out_scfm, sv_221_out_scfm_cb, sv_221_out_scfm_atmInputs: psig_in=PT1002, psig_out=PT222, valve=100, temp=60°F, gas=Ar
sv_205_out_lbh, sv_205_out_scfm, sv_205_out_scfm_cb, sv_205_out_scfm_atmInputs: psig_in=PT222, psig_out=PT201, valve=100 if ARS19004 and SV205A/B/C = 1 or SV205 = 1 else 0, temp=50°F, gas=Ar
For ARS13007:
sv_205_out_lbh = sv_221_out_lbhsv_205_out_scfm = sv_221_out_scfmsv_205_out_scfm_atm = sv_205_out_scfm * fcv_204_scfm / ft_202_scfmsv_205_out_scfm_cb = sv_205_out_scfm - sv_205_out_scfm_atmAdditionaly for ARS19004 and ARA20009:
sv_205a_out_scfm_atm + sv_205b_out_scfm_atm + sv_205c_out_scfm_atm = sv_205_out_scfm_atm (evenly distributed among open valves)
sv_205a_out_scfm_cb + sv_205b_out_scfm_cb + sv_205c_out_scfm_cb = sv_205_out_scfm_cb (evenly distributed among open valves)
xv_1005_scfm, xv_1005_lbhInputs: psig_in=PT1003, psig_out=0, valve=100 if XV1005OUT = 1 else 0, temp=50°F, gas=Ar
fcv_207_scfm, fcv_207_lbh, fcv_207_n2_use_lbh, fcv_207_n2_use_scfmInputs: psig_in=PT1002, psig_out=PT601, valve=FCV207_REFINED, temp=50°F, gas=Ar
FCV207_REFINED = 0 if XV_207_OUT = 0 and XV_208_OUT = 0 else FCV207FCV207_REFINED = FCV207fcv_207_n2_use_scfm = fcv_207_scfm * 1.25fcv_207_n2_use_lbh = lbh(fcv_207_n2_use_scfm)xv_623_scfm, xv_623_lbhInputs: psig_in=PT601, psig_out=0, valve=100 if XV623 = 1 else 0, temp=TE601, gas=Ar
CV is flat:
fcv_405_scfm, fcv_405_lbh, fcv_405_n2_use_lbh, fcv_405_n2_use_scfm (ARS19004, ARS20009)Inputs: psig_in=PT701, psig_out=PT601, valve=FCV405, temp=-300°F, gas=Ar
For ARS20009 after 2024-07-10 use FCV405_ZT instead of normal FCV_405.
fcv_405_n2_use_scfm = fcv_405_scfm * 1.25fcv_405_n2_use_lbh = lbh(fcv_405_n2_use_scfm)fcv_755_scfm, fcv_755_lbh, fcv_755_n2_use_lbh, fcv_755_n2_use_scfmInputs: psig_in=PT751, psig_out=PT701, valve=FCV755, temp=-300°F, gas=Ar
fcv_755_n2_use_scfm = fcv_755_scfm * 1.25fcv_755_n2_use_lbh = lbh(fcv_755_n2_use_scfm)fcv_504_scfm, fcv_504_lbhInputs: psig_in=PT603, psig_out=1, valve=FCV504, temp=TE504, gas=N2
Extra formula condition:
<empty> if PDT603 < 5
fcv_754_scfm, fcv_754_lbhInputs: psig_in=PT753, psig_out=1, valve=FCV754, temp=-302°F, gas=N2
sv_1207_scfm, sv_1207_lbhInputs: psig_in=PT1201, psig_out=0, valve=SV1207, temp=50°F, gas=Ar
xv_523_out_scfm, xv_523_out_lbh (ARS16006, ARS19004, ARS20009)Inputs: psig_in=PT601, psig_out=0, valve=XV523OUT, temp=TE501, gas=Ar
xv_1109a/b_scfm, xv_1109a/b_lbh, xv_1109a/b_scfm_recond, xv_1109a/b_scfm_atmInputs: psig_in=PT1101A/B, psig_out=PT701 if PDT603 < 10 else PT601, valve=0 if PDT601ALT > 410 or XV1109A/B_OUT_AVG_5M > 0.9 else SV1109A/B_OUT, temp=boil(PT1101A/B), gas=Ar
Caveats are to set flow to 0 if the HXR_600 is full of argon and therefore gas cannot flow through XV_1109. HXR_600 being full is assessed according to PDT_601 level. Valve should never be open for extended time periods, so after 5 minutes of being open it is assumed there is 0 flow also.
xv623sph = 40 if ARS13007 else XV623SPH
xv_1109a/b_scfm_recond = xv_1109a/b_scfm if PDT603ALT > 10xv_1109a/b_scfm_atm = xv_1109a/b_scfm if PDT603ALT <= 10xv_1309a/b_scfm, xv_1309a/b_lbhInputs: psig_in=PT1301A/B, psig_out=0.5, valve=100 if XV1309A/B_OUT = 1 else 0, temp=boil(PT1301A/B), gas=N2
xv_806_scfm, xv_806_lbhPT_802D = 0 if ARS13007
Inputs: psig_in=sum(PT_802A/B/C/D), psig_out=0, valve=100 if XV806 = 1 else 0, temp=50, gas=Ar
xv_806_scfm = min(xv_806_scfm, p_800_scfm) (upper bound)sv_725_scfm, sv_725_lbh for ARS13007Inputs: psig_in=PT721, psig_out=0, valve=100 if SV725 = 1 else 0, temp=-290°F, gas=Ar
fcv_102_scfm, fcv_102_lbhFinal result is a sum of flows for each active tower. Following input has set of separate sensors variants for each active tower, i.e. PT_101_PP or FCV_102_T1.
Inputs: psig_in=PT101, psig_out=0, valve=FCV_102, temp=TE101, gas=Ar
Upper bound for flow for each active tower is defined as follows:
FT1002/n where n is number of active towersFT1002 is divided among active towers as follows:
PP=44%, T1=27%, T2=29%PP=61%, T1 or T2=39%PP=29%, T1=36%, T2=35%PP=45%, T1 or T2=55%T1=50%, T2=50%FCV_102 flow rate is smc_atb_supply_flowFCV_102 flow rate is smc_atc_supply_flowFor HRS18006 formula is defined as:
Inputs: psig_in=PT100, psig_out=0, valve=FCV102VENT, temp=TT100, gas=He