modelPartialModularExpansionVavles

Base model for all modular expansion valve models

Extends from Fluid.Interfaces.PartialModularPort_b.

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
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

Components

TypeNameDefaultDescription
SimpleExpansionValve[nVal]modExpValArray of expansion valves
ModularControllerexpValConModel of internal controller
Controls.Interfaces.ModularHeatPumpControlBusdataBusData bus connector

Contents

NameDescription
SimpleExpansionValve
FlowCoefficient
ModularController

Revisions

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