modelPartialModularCompressors
Base model for all modular compressor models
Information
This is a base model for modular compressors 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
modCom. - Redecleration of the model
modCon. - Connection of
modCom[i].port_bwithport_b.
The latter provides the possibility to add further components (e.g. sensors or pipes) located at the compressors' 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
| Type | Name | Default | Description |
|---|---|---|---|
| General › Modular approach | |||
| Integer | nCom | 1 | Number of compressors in parallel |
| Compressors › Geometry | |||
| Modelica.Units.SI.Volume[nCom] | VDis | fill(13e-6, nCom) | Displacement volume of the compressor |
| Modelica.Units.SI.Efficiency[nCom] | epsRef | fill(0.04, nCom) | Ratio of the real and the ideal displacement volume |
| Modelica.Units.SI.Diameter[nCom] | diameterInl | fill(12e-3, nCom) | Diameter of the pipe at compressor's inlet |
| Modelica.Units.SI.Diameter[nCom] | diameterOut | fill(8e-3, nCom) | Diameter of the pipe at compressor's outlet |
| Compressors › Compressor's characterisitcs | |||
| Modelica.Units.SI.Frequency[nCom] | rotSpeMax | fill(120, nCom) | Maximal rotational speed executable by the compressor |
| Real[nCom] | piPreMax | fill(15, nCom) | Maximal pressure ratio executable by the compressor |
| Compressors › Transient behaviour | |||
| Boolean[nCom] | useInpFil | fill(true, nCom) | = true, if transient behaviour of rotational speed is computed |
| Modelica.Units.SI.Time[nCom] | risTim | fill(0.5, nCom) | Time until rotational speed reaches 99.6 % of its set value |
| Controller › Base setup | |||
| Boolean | useExt | true | = true, if external signal is used instead of internal controllers |
| Modelica.Blocks.Types.SimpleController[nCom] | controllerType | fill(Modelica.Blocks.Types.SimpleController.PID, nCom) | Type of controller |
| Boolean[nCom] | reverseAction | fill(false, nCom) | = true, if medium flow rate is throttled through cooling coil controller |
| AixLib.Types.Reset[nCom] | reset | fill(AixLib.Types.Reset.Disabled, nCom) | Type of controller output reset |
| Controller › PID setup | |||
| Real[nCom] | k | fill(1, nCom) | Gain of controller |
| Modelica.Units.SI.Time[nCom] | Ti | fill(0.5, nCom) | Time constant of integrator block |
| Real[nCom] | Ni | fill(0.9, nCom) | Ni*Ti is time constant of anti-windup compensation |
| Modelica.Units.SI.Time[nCom] | Td | fill(0.1, nCom) | Time constant of derivative block |
| Real[nCom] | Nd | fill(10, nCom) | The higher Nd, the more ideal the derivative block |
| Controller › Weighting and limits | |||
| Real[nCom] | wp | fill(1, nCom) | Set-point weight for Proportional block (0..1) |
| Real[nCom] | wd | fill(0, nCom) | Set-point weight for Derivative block (0..1) |
| Real[nCom] | yMax | fill(1, nCom) | Upper limit of output |
| Real[nCom] | yMin | fill(0, nCom) | Lower limit of output |
| Pressure and heat losses › Pressure losses - General | |||
| Real[nCom] | zetInl | {((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 | {((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 | fill(false, nCom) | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean[nCom] | homotopyInitialization | fill(true, nCom) | = true, use homotopy method for initialisation |
| Boolean[nCom] | linearized | 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 | 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 | fill(2.5, nCom) | Mass of the fictitious wall |
| Modelica.Units.SI.SpecificHeatCapacity[nCom] | cpWal | fill(450, nCom) | Specific heat capacity of the fictitious wall |
| Pressure and heat losses › Heat losses - Thermal conductances | |||
| Modelica.Units.SI.ThermalConductance[nCom] | kAMeaInl | fill(25, nCom) | Effective mean thermal conductance between medium and fictitious wall at inlet |
| Modelica.Units.SI.ThermalConductance[nCom] | kAMeaOut | fill(35, nCom) | Effective mean thermal conductance between medium and fictitious wall at outlet |
| Modelica.Units.SI.ThermalConductance[nCom] | kAMeaAmb | fill(10, nCom) | Effective mean thermal conductance coefficient between fictitious wall and ambient |
| Pressure and heat losses › Heat losses - Initialisation | |||
| Boolean[nCom] | iniTWal0 | fill(true, nCom) | = true, if wall is initialised at fixed temperature; Otherwise, steady state initialisation |
| Modelica.Units.SI.Temperature[nCom] | TWal0 | fill(293.15, nCom) | Temperature of wall at initialisation |
| Advanced › General | |||
| Modelica.Units.SI.PressureDifference | dp_start | -20e5 | Guess value of compressor's dp = port_a.p - port_b.p |
| Medium.MassFlowRate | m_flow_start | 0.5*m_flow_nominal | Guess value of compressor's m_flow = port_a.m_flowr |
| Medium.MassFlowRate | m_flow_small | 1e-6*m_flow_nominal | Small mass flow rate for regularization of compressor's zero flow |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal | 0.1 | Nominal mass flow rate |
| Advanced › Diagnostics | |||
| Boolean | show_T | false | = true, if compressor's temperatures at port_a and port_b are computed |
| Boolean | show_V_flow | false | = true, if compressor's volume flow rate at inflowing port is computed |
| Boolean | show_staEff | false | = true, if thermodynamic states and efficiencies are computed |
| Boolean | show_qua | false | = true, if vapour qualities are computed |
| Boolean | show_parCom | true | = true, if compressors' input parameters are shown in results |
| Boolean | show_parCon | true | = true, if controller's input parameters are shown in results |
| Advanced › Initialisation | |||
| Modelica.Units.SI.Frequency[nCom] | rotSpe0 | fill(60, nCom) | Compressor's rotational spped at initialisation |
| Modelica.Units.SI.AbsolutePressure[nCom] | pInl0 | fill(3e5, nCom) | Pressure at compressor's inlet at initialisation |
| Modelica.Units.SI.Temperature[nCom] | TInl0 | fill(283.15, nCom) | Temperature at compressor's inlet at initialisation |
| Advanced › Initialisation Controller | |||
| Modelica.Blocks.Types.Init[nCom] | initType | fill(Modelica.Blocks.Types.Init.InitialState, nCom) | Init: (1: no init, 2: steady state, 3: initial state, 4: initial output) |
| Real[nCom] | xi_start | fill(0, nCom) | Initial or guess value value for integrator output (= integrator state) |
| Real[nCom] | xd_start | fill(0, nCom) | Initial or guess value for state of derivative block |
| Real[nCom] | y_start | fill(0, nCom) | Initial value of output |
| Assumptions | |||
| Boolean | allowFlowReversal | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b[nCom] | heatPort | Heat port for compressors' heat losses | |
| Controls.Interfaces.ModularHeatPumpControlBus | dataBus | Connector that contains all relevant control signals |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| SimpleCompressor[nCom] | modCom | Array of compressor models in parallel | |
| ModularController | modCon | Model of internal controller |
Contents
| Name | Description |
|---|---|
Revisions
- October 20, 2017, by Mirko Engelpracht:
First implementation (see issue 467).