modelModularCompressors

Model of simple modular compressors

Extends from BaseClasses.PartialModularCompressors (Base model for all modular compressor models).

Information

This is a model of modular compressors that are used, for example, in close-loop systems like heat pumps or chillers.
It consists of nCom compressors in parallel and also nCom 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:

The first sub-model describes a simple compressor that is defined in AixLib.Fluid.Movers.Compressors.SimpleCompressors; the second sub-model describes the internal controller model.

Parameters

TypeNameDefaultDescription
General › Modular approach
IntegernCom (from PartialModularCompressors)1Number of compressors in parallel
Compressors › Geometry
Modelica.Units.SI.Volume[nCom]VDis (from PartialModularCompressors)fill(13e-6, nCom)Displacement volume of the compressor
Modelica.Units.SI.Efficiency[nCom]epsRef (from PartialModularCompressors)fill(0.04, nCom)Ratio of the real and the ideal displacement volume
Modelica.Units.SI.Diameter[nCom]diameterInl (from PartialModularCompressors)fill(12e-3, nCom)Diameter of the pipe at compressor's inlet
Modelica.Units.SI.Diameter[nCom]diameterOut (from PartialModularCompressors)fill(8e-3, nCom)Diameter of the pipe at compressor's outlet
Compressors › Compressor's characterisitcs
Modelica.Units.SI.Frequency[nCom]rotSpeMax (from PartialModularCompressors)fill(120, nCom)Maximal rotational speed executable by the compressor
Real[nCom]piPreMax (from PartialModularCompressors)fill(15, nCom)Maximal pressure ratio executable by the compressor
Compressors › Transient behaviour
Boolean[nCom]useInpFil (from PartialModularCompressors)fill(true, nCom)= true, if transient behaviour of rotational speed is computed
Modelica.Units.SI.Time[nCom]risTim (from PartialModularCompressors)fill(0.5, nCom)Time until rotational speed reaches 99.6 % of its set value
Controller › Base setup
BooleanuseExt (from PartialModularCompressors)true= true, if external signal is used instead of internal controllers
Modelica.Blocks.Types.SimpleController[nCom]controllerType (from PartialModularCompressors)fill(Modelica.Blocks.Types.SimpleController.PID, nCom)Type of controller
Boolean[nCom]reverseAction (from PartialModularCompressors)fill(false, nCom)= true, if medium flow rate is throttled through cooling coil controller
AixLib.Types.Reset[nCom]reset (from PartialModularCompressors)fill(AixLib.Types.Reset.Disabled, nCom)Type of controller output reset
Controller › PID setup
Real[nCom]k (from PartialModularCompressors)fill(1, nCom)Gain of controller
Modelica.Units.SI.Time[nCom]Ti (from PartialModularCompressors)fill(0.5, nCom)Time constant of integrator block
Real[nCom]Ni (from PartialModularCompressors)fill(0.9, nCom)Ni*Ti is time constant of anti-windup compensation
Modelica.Units.SI.Time[nCom]Td (from PartialModularCompressors)fill(0.1, nCom)Time constant of derivative block
Real[nCom]Nd (from PartialModularCompressors)fill(10, nCom)The higher Nd, the more ideal the derivative block
Controller › Weighting and limits
Real[nCom]wp (from PartialModularCompressors)fill(1, nCom)Set-point weight for Proportional block (0..1)
Real[nCom]wd (from PartialModularCompressors)fill(0, nCom)Set-point weight for Derivative block (0..1)
Real[nCom]yMax (from PartialModularCompressors)fill(1, nCom)Upper limit of output
Real[nCom]yMin (from PartialModularCompressors)fill(0, nCom)Lower limit of output
Pressure and heat losses › Pressure losses - General
Real[nCom]zetInl (from PartialModularCompressors){((1/0.59 - 1)^2 + (1 - (diameterInl[i]/0.066)^2))*(1 - (diameterInl[i]/0.066)^2) for i in 1:nCom}Pressure loss factor at compressor's inlet for flow of port_a -> port_b
Real[nCom]zetOut (from PartialModularCompressors){((1/0.59 - 1)^2 + (1 - (diameterOut[i]/0.1122)^2))*(1 - (diameterOut[i]/0.1122)^2) for i in 1:nCom}Pressure loss factor at compressor's outlet for flow of port_a -> port_b
Pressure and heat losses › Pressure losses - Advanced
Boolean[nCom]from_dp (from PartialModularCompressors)fill(false, nCom)= true, use m_flow = f(dp) else dp = f(m_flow)
Boolean[nCom]homotopyInitialization (from PartialModularCompressors)fill(true, nCom)= true, use homotopy method for initialisation
Boolean[nCom]linearized (from PartialModularCompressors)fill(false, nCom)= true, use linear relation between m_flow and dp for any flow rate
Pressure and heat losses › Heat losses - General
Utilities.Types.HeatTransferModels[nCom]heaTraMod (from PartialModularCompressors)fill(Utilities.Types.HeatTransferModels.Simplified, nCom)Choose heat transfer model for heat losses at compressor's inlet and outlet
Pressure and heat losses › Heat losses - Geometry
Modelica.Units.SI.Mass[nCom]mWal (from PartialModularCompressors)fill(2.5, nCom)Mass of the fictitious wall
Modelica.Units.SI.SpecificHeatCapacity[nCom]cpWal (from PartialModularCompressors)fill(450, nCom)Specific heat capacity of the fictitious wall
Pressure and heat losses › Heat losses - Thermal conductances
Modelica.Units.SI.ThermalConductance[nCom]kAMeaInl (from PartialModularCompressors)fill(25, nCom)Effective mean thermal conductance between medium and fictitious wall at inlet
Modelica.Units.SI.ThermalConductance[nCom]kAMeaOut (from PartialModularCompressors)fill(35, nCom)Effective mean thermal conductance between medium and fictitious wall at outlet
Modelica.Units.SI.ThermalConductance[nCom]kAMeaAmb (from PartialModularCompressors)fill(10, nCom)Effective mean thermal conductance coefficient between fictitious wall and ambient
Pressure and heat losses › Heat losses - Initialisation
Boolean[nCom]iniTWal0 (from PartialModularCompressors)fill(true, nCom)= true, if wall is initialised at fixed temperature; Otherwise, steady state initialisation
Modelica.Units.SI.Temperature[nCom]TWal0 (from PartialModularCompressors)fill(293.15, nCom)Temperature of wall at initialisation
Advanced › General
Modelica.Units.SI.PressureDifferencedp_start (from PartialModularCompressors)-20e5Guess value of compressor's dp = port_a.p - port_b.p
Medium.MassFlowRatem_flow_start (from PartialModularCompressors)0.5*m_flow_nominalGuess value of compressor's m_flow = port_a.m_flowr
Medium.MassFlowRatem_flow_small (from PartialModularCompressors)1e-6*m_flow_nominalSmall mass flow rate for regularization of compressor's zero flow
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialModularCompressors)0.1Nominal mass flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialModularCompressors)false= true, if compressor's temperatures at port_a and port_b are computed
Booleanshow_V_flow (from PartialModularCompressors)false= true, if compressor's volume flow rate at inflowing port is computed
Booleanshow_staEff (from PartialModularCompressors)false= true, if thermodynamic states and efficiencies are computed
Booleanshow_qua (from PartialModularCompressors)false= true, if vapour qualities are computed
Booleanshow_parCom (from PartialModularCompressors)true= true, if compressors' input parameters are shown in results
Booleanshow_parCon (from PartialModularCompressors)true= true, if controller's input parameters are shown in results
Advanced › Initialisation
Modelica.Units.SI.Frequency[nCom]rotSpe0 (from PartialModularCompressors)fill(60, nCom)Compressor's rotational spped at initialisation
Modelica.Units.SI.AbsolutePressure[nCom]pInl0 (from PartialModularCompressors)fill(3e5, nCom)Pressure at compressor's inlet at initialisation
Modelica.Units.SI.Temperature[nCom]TInl0 (from PartialModularCompressors)fill(283.15, nCom)Temperature at compressor's inlet at initialisation
Advanced › Initialisation Controller
Modelica.Blocks.Types.Init[nCom]initType (from PartialModularCompressors)fill(Modelica.Blocks.Types.Init.InitialState, nCom)Init: (1: no init, 2: steady state, 3: initial state, 4: initial output)
Real[nCom]xi_start (from PartialModularCompressors)fill(0, nCom)Initial or guess value value for integrator output (= integrator state)
Real[nCom]xd_start (from PartialModularCompressors)fill(0, nCom)Initial or guess value for state of derivative block
Real[nCom]y_start (from PartialModularCompressors)fill(0, nCom)Initial value of output
Assumptions
BooleanallowFlowReversal (from PartialModularCompressors)true= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialModularCompressors)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialModularCompressors)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b[nCom]heatPort (from PartialModularCompressors)Heat port for compressors' heat losses
Controls.Interfaces.ModularHeatPumpControlBusdataBus (from PartialModularCompressors)Connector that contains all relevant control signals

Components

TypeNameDefaultDescription
SimpleCompressor[nCom]modCom (from PartialModularCompressors)Array of compressor models in parallel
ModularControllermodCon (from PartialModularCompressors)Model of internal controller

Revisions

  • October 20, 2017, by Mirko Engelpracht:
    First implementation (see issue 467).