modelPipeFlowChoked
Extends from FreeFluids.Pipes.Pipe (Pipe with two ports fluid ports and an internal fluid).
Information
The model is for single phase compressible flow that could become choked. Although it can be used giving the flow at one of the connectors, it is intended for the specification of the two ends pressures and calculation of the flow.
The enthalpy change is always calculated between PortA and PortB but, if the flow is chocked, the pressure variation is calculated between PortA and StateB, that becames equal to StateC. This is due to the fact that the pressure at B has been specified but is less that the choked pressure.
The model may have convergence problems when isothermal behaviour is selected, but it is possible to add heat till we arrive to isothermal situation.
In complex circuits, use this model only for the last pipe, that is the one that can become choked. For the other pipes use PipeFlow1Ph with the parameter isCompressibleFlow to true
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Physical data | |||
| Boolean | useTubeLength (from PipePhysical) | true | use the supplied length |
| Modelica.Units.SI.Distance | lTube (from PipePhysical) | 0 | supplied individual tube length |
| Boolean | fixNumTubes (from PipePhysical) | true | if true fixes the number of tubes to numTubes |
| Integer | numTubes (from PipePhysical) | 1 | number of parallel identical paths |
| Boolean | isCircular (from PipePhysical) | true | the pipe is circular in shape |
| Boolean | useDiameter (from PipePhysical) | true | the supplied diameter will be used for calculation of section and perimeter |
| Modelica.Units.SI.Distance | di (from PipePhysical) | 0.0 | supplied internal diameter if path is circular |
| Boolean | useSectionAndPerimeter (from PipePhysical) | false | the supplied section and perimeter will be used |
| Modelica.Units.SI.Area | section (from PipePhysical) | 0 | supplied pipe section if not circular |
| Modelica.Units.SI.Distance | perimeter (from PipePhysical) | 0 | supplied perimeter if not circular |
| Modelica.Units.SI.Distance | thickness (from PipePhysical) | 1e-3 | pipe thickness. Vessel wall thickness for halfcoils |
| Modelica.Units.SI.Distance | roughness (from PipePhysical) | 1.5e-005 | pipe roughness. SS:1.5e-5, Steel new:4.6e-5, Steel old:2.0e-4, Concrete:1.5e-3 |
| Modelica.Units.SI.Distance | thicknessInsul (from PipePhysical) | 0 | insulation thickness |
| Modelica.Units.SI.Density | rhoWall (from PipePhysical) | 8000 | |
| Ports links | |||
| Boolean | useElevDifference (from TwoFluidPorts) | true | introduces, or not, an equation for the ports elevation. Use only in one connector |
| FreeFluids.Types.ElevationOption | elevCalcMethod (from TwoFluidPorts) | FreeFluids.Types.ElevationOption.differential | if useElevDifference==true, selects the equation to use: differential, or absolute for PortB |
| Modelica.Units.SI.Length | elevDifference (from TwoFluidPorts) | 0.0 | used only if previously selected. Positive if PortB higher than PortA |
| Modelica.Units.SI.Length | portBelevation (from TwoFluidPorts) | 0.0 | used only if previously selected. |
| Boolean | calcEnthalpyDifference (from TwoFluidPorts) | true | if true, will calculate the enthalpy difference between ports. Use only in one connector |
| Boolean | passComposition (from TwoFluidPorts) | true | if true, the equation PortA.X=PortB.X will be activated |
| Flow | |||
| Integer | numActiveTubes (from Pipe) | numTubes | number of parallel identical paths used with flow. Default=numTubes |
| Real | pipeComplexity (from Pipe) | 0 | Approx. estimation of equivalent length,0=not used,0.25=supply lines,0.5=long runs, 1=normal,2=valves,4=complex valves |
| Real | equivL_Di (from Pipe) | 0 | Equivalent length of accesories as multiples of Di |
| Real | numVelocityHeads (from Pipe) | 0 | number of velocity heads for pressure loss |
| Modelica.Units.SI.Area | kv (from Pipe) | 0 | This allows for special head loses to be incorporated inside the pipe calculation via Kv |
| Fraction | aperture (from Pipe) | 1 | Fraction of Kv used |
| Boolean | fullBore (from Pipe) | true | true if the full pipe section is used for flow |
| Boolean | isCompressibleFlow (from Pipe) | false | indicates if kinetic energy and momentum are taken into account or not |
| Heat transfer | |||
| FreeFluids.Types.ThermalType | thermalType | FreeFluids.Types.ThermalType.adiabatic | Alternatives: detailed, isenthalpic, adiabatic, isothermal, fixed W, fixed deltaT. If detailed, W calculation must be supplied |
| Modelica.Units.SI.HeatFlowRate | fixedW | 0 | Heat exchange if thermaltype = fixedPower. Positive if heat enters the tube |
| Modelica.Units.SI.TemperatureDifference | fixedDeltaT | 0 | fixed T diff. between ports if thermalType = fixedDeltaT. Positive if Tb > Ta |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| FreeFluids.Interfaces.FluidPortA | PortA (from TwoFluidPorts) | ||
| FreeFluids.Interfaces.FluidPortB | PortB (from TwoFluidPorts) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Diameter | Di (from PipePhysical) | pipe internal diameter only if circular, otherwise four times Section/Perimeter | |
| Modelica.Units.SI.Area | PathSection (from PipePhysical) | Internal section of the tube. But not the flow section if double pipe | |
| Modelica.Units.SI.Distance | PathPerimeter (from PipePhysical) | Internal perimeter of the tube. But not the flow perimeter if double pipe | |
| Modelica.Units.SI.Distance | Ltotal (from PipePhysical) | total pipe length, as necessary for obtainning its total weight | |
| Modelica.Units.SI.Distance | Ltube (from PipePhysical) | pipe path length, as necessary for obtainning friction loss | |
| Integer | NumTubes (from PipePhysical) | number of parallel identical paths | |
| Modelica.Units.SI.Area | SiTube (from PipePhysical) | each tube internal surface | |
| Modelica.Units.SI.Area | SiTotal (from PipePhysical) | total pipe internal surface | |
| Modelica.Units.SI.Volume | ViTube (from PipePhysical) | each tube internal volume | |
| Modelica.Units.SI.Volume | ViTotal (from PipePhysical) | total pipe internal volume | |
| Modelica.Units.SI.Diameter | Do (from PipePhysical) | pipe external diameter | |
| Modelica.Units.SI.Diameter | Dinsul (from PipePhysical) | pipe diameter with insulation | |
| Modelica.Units.SI.Area | SoTube (from PipePhysical) | each tube external surface | |
| Modelica.Units.SI.Area | SoTotal (from PipePhysical) | total pipe external surface | |
| Modelica.Units.SI.Volume | VoTube (from PipePhysical) | each tube external volume | |
| Modelica.Units.SI.Volume | VoTotal (from PipePhysical) | total pipe external volume | |
| Modelica.Units.SI.Area | SinsulTube (from PipePhysical) | each tube insulation surface | |
| Modelica.Units.SI.Area | SinsulTotal (from PipePhysical) | total pipe insulation surface | |
| Modelica.Units.SI.Mass | MassPipeTotal (from PipePhysical) | total mass of the pipe | |
| Modelica.Units.SI.SpecificEnthalpy | Hdiff (from TwoFluidPorts) | specific enthalpy difference: Port B - Port A | |
| Modelica.Units.SI.PressureDifference | Pdiff (from TwoFluidPorts) | pressure difference: Port B - Port A | |
| Integer | NumActiveTubes (from Pipe) | number of parallel identical paths used with flow. | |
| Real | Slope (from Pipe) | pipe slope as (PortB.Elevation-PortA.Elevation)/Ltube | |
| Modelica.Units.SI.Area | SiActive (from Pipe) | active pipe internal surface | |
| Modelica.Units.SI.Volume | ViActive (from Pipe) | active pipe internal volume | |
| Modelica.Units.SI.Area | SoActive (from Pipe) | active pipe external surface | |
| Modelica.Units.SI.Volume | VoActive (from Pipe) | active pipe external volume | |
| Modelica.Units.SI.Area | SinsulActive (from Pipe) | active pipe external surface | |
| Modelica.Units.SI.Distance | LeTube (from Pipe) | equivalent length of the pipe for pressure loss | |
| Modelica.Units.SI.Area | PathSectionActive (from Pipe) | section of each tube used for flow calculation | |
| Modelica.Units.SI.Distance | PathPerimeterActive (from Pipe) | perimeter of each tube used for flow calculation | |
| Modelica.Units.SI.Diameter | Dh (from Pipe) | four time the hydraulic radius | |
| Modelica.Units.SI.Mass | MassProductTotal (from Pipe) | Mass of product inside all the tubes | |
| Modelica.Units.SI.Pressure | PLossFriction (from Pipe) | friction head loss | |
| Modelica.Units.SI.Velocity | Va | ||
| Modelica.Units.SI.Velocity | Vb | ||
| Medium.Density | RhoA | density at Port A | |
| Medium.Density | RhoB | density at PortB | |
| Medium.ThermodynamicState | StateA | state at PortA | |
| Medium.ThermodynamicState | StateB | state at PortB | |
| Modelica.Units.SI.VolumeFlowRate | Qa | volume flow rate at PortA | |
| Modelica.Units.SI.VolumeFlowRate | Qb | volume flow rate at PortB | |
| Medium.Temperature | Ta | ||
| Medium.Temperature | Tb | ||
| Modelica.Units.SI.Power | W | heat transfer between fluid and wall. Positive if fluid inputs heat | |
| Medium.ThermodynamicState | StateAvg | average state for physical properties calculation | |
| Modelica.Units.SI.Density | Rho | average density used in calculations | |
| Medium.DynamicViscosity | Mu | average dynamic viscosity used in calculations | |
| Modelica.Units.SI.ReynoldsNumber | Re | Reynolds number at average conditions | |
| Real | F | Darcy's friction factor at average conditions | |
| Modelica.Units.SI.VolumeFlowRate | Q | volume flow rate in each active tube at average conditions | |
| Modelica.Units.SI.Velocity | V | velocity at average conditions | |
| Modelica.Units.SI.VelocityOfSound | Vc | sound velocity at outlet conditions | |
| Medium.ThermodynamicState | StateC | choked state | |
| Modelica.Units.SI.AbsolutePressure | Pc | outlet pressure for choked condition | |
| Modelica.Units.SI.Density | RhoC | density at choked conditions |