modelPartialModularExpansionVavles

Base model for all modular expansion valve models

Extends from Fluid.Interfaces.PartialModularPort_b (Base model for all modular models with one inlet port and multiple outlet ports).

Information

This is a base model for modular expansion valves that are used, for example, in close-loop systems like heat pumps or chillers.

Definitions needed for completion

Three definitions need to be added by an extending class using this component:

  • Redecleration of the model SimpleExpansionValve.
  • Redecleration of the model ModularController.
  • Connection of expansionValves[i] with ports_b[i].

The latter provides the possibility to add further components (e.g. sensors or pipes) located at the expansion valves' outlets.

Modeling approaches

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

Parameters

TypeNameDefaultDescription
General › Modular approach
IntegernVal1Number of valves - each valve will be connected to an individual port_b
Expansion valves › Geometry
Modelica.Units.SI.Area[nVal]AValfill(2e-6, nVal)Cross-sectional areas of the valves when they are fully opened
Modelica.Units.SI.Diameter[nVal]dInlPipfill(7.5e-3, nVal)Diameters of the pipes at valves' inlets
Expansion valves › Transient behaviour
Boolean[nVal]useInpFilfill(false, nVal)= true, if transient behaviours of valves opening or closing are computed
Modelica.Units.SI.Time[nVal]risTimfill(0.5, nVal)Time until valves opening reach 99.6 % of the set values
Expansion valves › Flow Coefficient
Utilities.Types.CalcProc[nVal]calcProcfill(Utilities.Types.CalcProc.flowCoefficient, nVal)Chose predefined calculation method for flow coefficients
Modelica.Units.SI.MassFlowRate[nVal]mFlowNom{m_flow_nominal/sum(AVal)*AVal[i] for i in 1:nVal}Mass flow at nominal conditions
Modelica.Units.SI.PressureDifference[nVal]dpNomfill(dp_nominal, nVal)Pressure drop at nominal conditions
Controller › Base setup
BooleanuseExtfalse= true, if external signal is used instead of internal controllers
Modelica.Blocks.Types.SimpleController[nVal]controllerTypefill(Modelica.Blocks.Types.SimpleController.PID, nVal)Type of controller
Boolean[nVal]reverseActionfill(false, nVal)= true, if medium flow rate is throttled through cooling coil controller
AixLib.Types.Reset[nVal]resetfill(AixLib.Types.Reset.Disabled, nVal)Type of controller output reset
Controller › PID setup
Real[nVal]kfill(1, nVal)Gain of controller
Modelica.Units.SI.Time[nVal]Tifill(0.5, nVal)Time constant of integrator block
Real[nVal]Nifill(0.9, nVal)Ni*Ti is time constant of anti-windup compensation
Modelica.Units.SI.Time[nVal]Tdfill(0.1, nVal)Time constant of derivative block
Real[nVal]Ndfill(10, nVal)The higher Nd, the more ideal the derivative block
Controller › Weighting and limits
Real[nVal]wpfill(1, nVal)Set-point weight for Proportional block (0..1)
Real[nVal]wdfill(0, nVal)Set-point weight for Derivative block (0..1)
Real[nVal]yMaxfill(1, nVal)Upper limit of output
Real[nVal]yMinfill(0, nVal)Lower limit of output
Advanced › Initialisation Controller
Modelica.Blocks.Types.Init[nVal]initTypefill(Modelica.Blocks.Types.Init.InitialState, nVal)Init: (1: no init, 2: steady state, 3: initial state, 4: initial output)
Real[nVal]xi_startfill(0, nVal)Initial or guess value value for integrator output (= integrator state)
Real[nVal]xd_startfill(0, nVal)Initial or guess value for state of derivative block
Real[nVal]y_startfill(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_parValfalse= true, if expansions valves' input parameters are shown in results
Booleanshow_parConfalse= 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.ModularHeatPumpControlBusdataBusData bus connector

Components

TypeNameDefaultDescription
SimpleExpansionValve[nVal]modExpValArray of expansion valves
ModularControllerexpValConModel of internal controller

Contents

NameDescription
SimpleExpansionValve
FlowCoefficient
ModularController

Revisions

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