modelPartialIsenthalpicExpansionValve
Base model for all isenthalpic expansion valves
Extends from BaseClasses.PartialExpansionValve (Base model for all expansion valve models).
Information
This is a base model for simple isenthalpic expansion valves that are used, for example, in close-loop systems like heat pumps or chillers. This model inherits from AixLib.Fluid.Actuators.Valves.ExpansionValves.BaseClasses.PartialExpansionValve and, hence, please check out the PartialExpansionValve model if detailed information is required about the modelling approach.
Within this base model, the following two equations are implemented:
-
port_b.h_outflow = inStrem(port_a.h_outflow)for flow in design direction. -
port_a.h_outflow = inStrem(port_b.h_outflow)for flow in reverse direction.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Geometry | |||
| Modelica.Units.SI.Area | AVal (from PartialExpansionValve) | 2.5e-6 | Cross-sectional area of the valve when it is fully opened |
| Modelica.Units.SI.Diameter | dInlPip (from PartialExpansionValve) | 7.5e-3 | Diameter of the pipe at valve's inlet |
| Transient behaviour | |||
| Boolean | useInpFil (from PartialExpansionValve) | true | = true, if transient behaviour of valve opening or closing is computed |
| Modelica.Units.SI.Time | risTim (from PartialExpansionValve) | 0.5 | Time until valve opening reaches 99.6 % of its set value |
| Flow Coefficient | |||
| Utilities.Types.CalcProc | calcProc (from PartialExpansionValve) | Utilities.Types.CalcProc.nominal | Chose predefined calculation method for flow coefficient |
| Flow Coefficient › Nominal calculation | |||
| Modelica.Units.SI.MassFlowRate | mFlowNom (from PartialExpansionValve) | m_flow_nominal | Mass flow at nominal conditions |
| Modelica.Units.SI.PressureDifference | dpNom (from PartialExpansionValve) | 15e5 | Pressure drop at nominal conditions |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Advanced | |||
| Modelica.Units.SI.PressureDifference | dp_start (from PartialTwoPortTransport) | 0 | Guess value of dp = port_a.p - port_b.p |
| Medium.MassFlowRate | m_flow_start (from PartialTwoPortTransport) | 0 | Guess value of m_flow = port_a.m_flow |
| Medium.MassFlowRate | m_flow_small (from PartialTwoPortTransport) | Small mass flow rate for regularization of zero flow | |
| Medium.MassFlowRate | m_flow_nominal (from PartialExpansionValve) | 0.1 | Nominal mass flow rate |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortTransport) | true | = true, if temperatures at port_a and port_b are computed |
| Boolean | show_V_flow (from PartialTwoPortTransport) | true | = true, if volume flow rate at inflowing port is computed |
| Boolean | show_flow_coefficient (from PartialExpansionValve) | true | = true, if flow coefficient model is computed |
| Boolean | show_staInl (from PartialExpansionValve) | true | = true, if thermodynamic state at valve's inlet is computed |
| Boolean | show_staOut (from PartialExpansionValve) | false | = true, if thermodynamic state at valve's outlet is computed |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Blocks.Interfaces.RealInput | manVarVal (from PartialExpansionValve) | Prescribed expansion valve's opening | |
| Modelica.Blocks.Interfaces.RealOutput | curManVarVal (from PartialExpansionValve) | Current expansion valve's opening |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium.MassFlowRate | m_flow (from PartialTwoPortTransport) | Mass flow rate in design flow direction | |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortTransport) | Pressure difference between port_a and port_b (= port_a.p - port_b.p) | |
| Modelica.Units.SI.VolumeFlowRate | V_flow (from PartialTwoPortTransport) | m_flow/Modelica.Fluid.Utilities.regStep(m_flow, Medium.density(Medium.setState_phX(p = port_a.p, h = inStream(port_a.h_outflow), X = inStream(port_a.Xi_outflow))), Medium.density(Medium.setState_phX(p = port_b.p, h = inStream(port_b.h_outflow), X = inStream(port_b.Xi_outflow))), m_flow_small) | Volume flow rate at inflowing port (positive when flow from port_a to port_b) |
| Medium.Temperature | port_a_T (from PartialTwoPortTransport) | Modelica.Fluid.Utilities.regStep(port_a.m_flow, Medium.temperature(Medium.setState_phX(p = port_a.p, h = inStream(port_a.h_outflow), X = inStream(port_a.Xi_outflow))), Medium.temperature(Medium.setState_phX(port_a.p, port_a.h_outflow, port_a.Xi_outflow)), m_flow_small) | Temperature close to port_a, if show_T = true |
| Medium.Temperature | port_b_T (from PartialTwoPortTransport) | Modelica.Fluid.Utilities.regStep(port_b.m_flow, Medium.temperature(Medium.setState_phX(p = port_b.p, h = inStream(port_b.h_outflow), X = inStream(port_b.Xi_outflow))), Medium.temperature(Medium.setState_phX(port_b.p, port_b.h_outflow, port_b.Xi_outflow)), m_flow_small) | Temperature close to port_b, if show_T = true |
| Medium.ThermodynamicState | staInl (from PartialExpansionValve) | Thermodynamic state of the fluid at inlet condtions | |
| Medium.ThermodynamicState | staOut (from PartialExpansionValve) | Thermodynamic state of the fluid at outlet condtions | |
| FlowCoefficient | flowCoefficient (from PartialExpansionValve) | Instance of model 'flow coefficient' | |
| Real | C (from PartialExpansionValve) | Flow coefficient used to calculate mass flow and pressure drop | |
| Modelica.Blocks.Continuous.Filter | filterOpening (from PartialExpansionValve) | Second order filter to approximate valve opening or closing time | |
| Modelica.Blocks.Routing.RealPassThrough | openingThrough (from PartialExpansionValve) | Dummy passing through of opening signal to allow usage of filter |
Revisions
- October 16, 2017, by Mirko Engelpracht, Christian Vering:
First implementation (see issue 457).