modelModularExpansionValves

Model of modular expansion valves, i.g. each valves is in front of an evaporator

Extends from BaseClasses.PartialModularExpansionVavles (Base model for all modular expansion valve models).

Information

This is a model of modular expansion valves that are used, for example, in close-loop systems like heat pumps or chillers.
It consists of nVal expansion valves in parallel and also nVal PID conrollers if no external controller is used.

Modeling approaches

This base model mainly consists of two sub-models. Therefore, please checkout these sub-models for further information of underlying modeling approaches and parameterisation:

Parameters

TypeNameDefaultDescription
General › Modular approach
IntegernVal (from PartialModularExpansionVavles)1Number of valves - each valve will be connected to an individual port_b
Expansion valves › Geometry
Modelica.Units.SI.Area[nVal]AVal (from PartialModularExpansionVavles)fill(2e-6, nVal)Cross-sectional areas of the valves when they are fully opened
Modelica.Units.SI.Diameter[nVal]dInlPip (from PartialModularExpansionVavles)fill(7.5e-3, nVal)Diameters of the pipes at valves' inlets
Expansion valves › Transient behaviour
Boolean[nVal]useInpFil (from PartialModularExpansionVavles)fill(false, nVal)= true, if transient behaviours of valves opening or closing are computed
Modelica.Units.SI.Time[nVal]risTim (from PartialModularExpansionVavles)fill(0.5, nVal)Time until valves opening reach 99.6 % of the set values
Expansion valves › Flow Coefficient
Utilities.Types.CalcProc[nVal]calcProc (from PartialModularExpansionVavles)fill(Utilities.Types.CalcProc.flowCoefficient, nVal)Chose predefined calculation method for flow coefficients
Modelica.Units.SI.MassFlowRate[nVal]mFlowNom (from PartialModularExpansionVavles){m_flow_nominal/sum(AVal)*AVal[i] for i in 1:nVal}Mass flow at nominal conditions
Modelica.Units.SI.PressureDifference[nVal]dpNom (from PartialModularExpansionVavles)fill(dp_nominal, nVal)Pressure drop at nominal conditions
Controller › Base setup
BooleanuseExt (from PartialModularExpansionVavles)false= true, if external signal is used instead of internal controllers
Modelica.Blocks.Types.SimpleController[nVal]controllerType (from PartialModularExpansionVavles)fill(Modelica.Blocks.Types.SimpleController.PID, nVal)Type of controller
Boolean[nVal]reverseAction (from PartialModularExpansionVavles)fill(false, nVal)= true, if medium flow rate is throttled through cooling coil controller
AixLib.Types.Reset[nVal]reset (from PartialModularExpansionVavles)fill(AixLib.Types.Reset.Disabled, nVal)Type of controller output reset
Controller › PID setup
Real[nVal]k (from PartialModularExpansionVavles)fill(1, nVal)Gain of controller
Modelica.Units.SI.Time[nVal]Ti (from PartialModularExpansionVavles)fill(0.5, nVal)Time constant of integrator block
Real[nVal]Ni (from PartialModularExpansionVavles)fill(0.9, nVal)Ni*Ti is time constant of anti-windup compensation
Modelica.Units.SI.Time[nVal]Td (from PartialModularExpansionVavles)fill(0.1, nVal)Time constant of derivative block
Real[nVal]Nd (from PartialModularExpansionVavles)fill(10, nVal)The higher Nd, the more ideal the derivative block
Controller › Weighting and limits
Real[nVal]wp (from PartialModularExpansionVavles)fill(1, nVal)Set-point weight for Proportional block (0..1)
Real[nVal]wd (from PartialModularExpansionVavles)fill(0, nVal)Set-point weight for Derivative block (0..1)
Real[nVal]yMax (from PartialModularExpansionVavles)fill(1, nVal)Upper limit of output
Real[nVal]yMin (from PartialModularExpansionVavles)fill(0, nVal)Lower limit of output
Advanced › Initialisation Controller
Modelica.Blocks.Types.Init[nVal]initType (from PartialModularExpansionVavles)fill(Modelica.Blocks.Types.Init.InitialState, nVal)Init: (1: no init, 2: steady state, 3: initial state, 4: initial output)
Real[nVal]xi_start (from PartialModularExpansionVavles)fill(0, nVal)Initial or guess value value for integrator output (= integrator state)
Real[nVal]xd_start (from PartialModularExpansionVavles)fill(0, nVal)Initial or guess value for state of derivative block
Real[nVal]y_start (from PartialModularExpansionVavles)fill(0, nVal)Initial value of output
Modular approach
IntegernPorts (from PartialModularPort_b)1Number of outlet ports
Assumptions › General
BooleanallowFlowReversal (from PartialModularPort_b)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced › Initialisation medium
Modelica.Units.SI.PressureDifferencedp_start (from PartialModularPort_b)1e5Guess value of pressure difference for subcomponents
Medium.MassFlowRatem_flow_start (from PartialModularPort_b)0.5*m_flow_nominalGuess value of m_flow = port_a.m_flow
Advanced › Numeric limitations
Modelica.Units.SI.PressureDifferencedp_nominal (from PartialModularPort_b)7.5e5Pressure drop at nominal conditions
Medium.MassFlowRatem_flow_nominal (from PartialModularPort_b)0.1Nominal mass flow rate
Medium.MassFlowRatem_flow_small (from PartialModularPort_b)1e-6*m_flow_nominalSmall mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_parVal (from PartialModularExpansionVavles)false= true, if expansions valves' input parameters are shown in results
Booleanshow_parCon (from PartialModularExpansionVavles)false= true, if controller's input parameters are shown in results

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialModularPort_b)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPorts_b[nPorts]ports_b (from PartialModularPort_b)Fluid connectors b (positive design flow direction is from port_a to port_b)
Controls.Interfaces.ModularHeatPumpControlBusdataBus (from PartialModularExpansionVavles)Data bus connector

Components

TypeNameDefaultDescription
SimpleExpansionValve[nVal]modExpVal (from PartialModularExpansionVavles)Array of expansion valves
ModularControllerexpValCon (from PartialModularExpansionVavles)Model of internal controller

Revisions

  • October 17, 2017, by Mirko Engelpracht, Christian Vering:
    First implementation (see issue 457).