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]withports_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
| Type | Name | Default | Description |
|---|---|---|---|
| General › Modular approach | |||
| Integer | nVal | 1 | Number of valves - each valve will be connected to an individual port_b |
| Expansion valves › Geometry | |||
| Modelica.Units.SI.Area[nVal] | AVal | fill(2e-6, nVal) | Cross-sectional areas of the valves when they are fully opened |
| Modelica.Units.SI.Diameter[nVal] | dInlPip | fill(7.5e-3, nVal) | Diameters of the pipes at valves' inlets |
| Expansion valves › Transient behaviour | |||
| Boolean[nVal] | useInpFil | fill(false, nVal) | = true, if transient behaviours of valves opening or closing are computed |
| Modelica.Units.SI.Time[nVal] | risTim | fill(0.5, nVal) | Time until valves opening reach 99.6 % of the set values |
| Expansion valves › Flow Coefficient | |||
| Utilities.Types.CalcProc[nVal] | calcProc | fill(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] | dpNom | fill(dp_nominal, nVal) | Pressure drop at nominal conditions |
| Controller › Base setup | |||
| Boolean | useExt | false | = true, if external signal is used instead of internal controllers |
| Modelica.Blocks.Types.SimpleController[nVal] | controllerType | fill(Modelica.Blocks.Types.SimpleController.PID, nVal) | Type of controller |
| Boolean[nVal] | reverseAction | fill(false, nVal) | = true, if medium flow rate is throttled through cooling coil controller |
| AixLib.Types.Reset[nVal] | reset | fill(AixLib.Types.Reset.Disabled, nVal) | Type of controller output reset |
| Controller › PID setup | |||
| Real[nVal] | k | fill(1, nVal) | Gain of controller |
| Modelica.Units.SI.Time[nVal] | Ti | fill(0.5, nVal) | Time constant of integrator block |
| Real[nVal] | Ni | fill(0.9, nVal) | Ni*Ti is time constant of anti-windup compensation |
| Modelica.Units.SI.Time[nVal] | Td | fill(0.1, nVal) | Time constant of derivative block |
| Real[nVal] | Nd | fill(10, nVal) | The higher Nd, the more ideal the derivative block |
| Controller › Weighting and limits | |||
| Real[nVal] | wp | fill(1, nVal) | Set-point weight for Proportional block (0..1) |
| Real[nVal] | wd | fill(0, nVal) | Set-point weight for Derivative block (0..1) |
| Real[nVal] | yMax | fill(1, nVal) | Upper limit of output |
| Real[nVal] | yMin | fill(0, nVal) | Lower limit of output |
| Advanced › Initialisation Controller | |||
| Modelica.Blocks.Types.Init[nVal] | initType | fill(Modelica.Blocks.Types.Init.InitialState, nVal) | Init: (1: no init, 2: steady state, 3: initial state, 4: initial output) |
| Real[nVal] | xi_start | fill(0, nVal) | Initial or guess value value for integrator output (= integrator state) |
| Real[nVal] | xd_start | fill(0, nVal) | Initial or guess value for state of derivative block |
| Real[nVal] | y_start | fill(0, nVal) | Initial value of output |
| Modular approach | |||
| Integer | nPorts (from PartialModularPort_b) | 1 | Number of outlet ports |
| Assumptions › General | |||
| Boolean | allowFlowReversal (from PartialModularPort_b) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Advanced › Initialisation medium | |||
| Modelica.Units.SI.PressureDifference | dp_start (from PartialModularPort_b) | 1e5 | Guess value of pressure difference for subcomponents |
| Medium.MassFlowRate | m_flow_start (from PartialModularPort_b) | 0.5*m_flow_nominal | Guess value of m_flow = port_a.m_flow |
| Advanced › Numeric limitations | |||
| Modelica.Units.SI.PressureDifference | dp_nominal (from PartialModularPort_b) | 7.5e5 | Pressure drop at nominal conditions |
| Medium.MassFlowRate | m_flow_nominal (from PartialModularPort_b) | 0.1 | Nominal mass flow rate |
| Medium.MassFlowRate | m_flow_small (from PartialModularPort_b) | 1e-6*m_flow_nominal | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_parVal | false | = true, if expansions valves' input parameters are shown in results |
| Boolean | show_parCon | false | = true, if controller's input parameters are shown in results |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_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.ModularHeatPumpControlBus | dataBus | Data bus connector |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| SimpleExpansionValve[nVal] | modExpVal | Array of expansion valves | |
| ModularController | expValCon | Model of internal controller |
Contents
| Name | Description |
|---|---|
Revisions
- October 17, 2017, by Mirko Engelpracht:
First implementation (see issue 457).