modelHeatPumpCarnot
Substation with a heat pump carnot model
Extends from AixLib.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).
Information
A simple substation model using a fixed return temperature and the actual supply temperature to calculate the mass flow rate drawn from the network. This model uses an open loop design to prescribe the required flow rate. This model includes a heat pump model using the district heating network as its source.
- Novemver 22, 2019, by Nils Neuland:
Revised variable names and documentation to follow guidelines. - March 4, 2018, by Marcus Fuchs:
First implementation.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal | Nominal heat flow rate added to medium | |
| Modelica.Units.SI.TemperatureDifference | dTDesign | Design temperature difference for the heat pump on its district heating side | |
| Modelica.Units.SI.Temperature | TReturn | Fixed return temperature | |
| Modelica.Units.SI.TemperatureDifference | dTBuilding | Design temperature difference for the building's heating system | |
| Modelica.Units.SI.Temperature | TSupplyBuilding | Fixed supply temperature for the building heating system | |
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| Design parameter | |||
| Modelica.Units.SI.Pressure | dp_nominal | 30000 | Pressure difference at nominal flow rate |
| Flow resistance | |||
| Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Dynamics | |||
| Modelica.Units.SI.Time | tau | 30 | Time constant at nominal flow (if energyDynamics <> SteadyState) |
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.SteadyState | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| Modelica.Blocks.Interfaces.RealInput | Q_flow_input | Prescribed heat flow | |
| Modelica.Blocks.Interfaces.RealOutput | dpOut | Output signal of pressure difference |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Sensors.TemperatureTwoPort | senT_supply | Supply flow temperature sensor | |
| Sensors.TemperatureTwoPort | senT_return | Return flow temperature sensor | |
| Modelica.Blocks.Math.Add | deltaT | Differernce of flow and return line temperature in K | |
| Modelica.Blocks.Sources.Constant | dTheaPum | Temperature drop over heat pump in K | |
| Modelica.Blocks.Math.Gain | gain | ||
| Modelica.Blocks.Math.Division | hea2MasFlo | ||
| Sources.MassFlowSource_T | sink | Sink extracting prescribed flow from the network | |
| Modelica.Blocks.Math.Gain | changeSign | Changes sign of prescribed flow for extraction from network | |
| Sources.MassFlowSource_T | source | Source sending prescribed flow back to the network | |
| HeatPumps.Carnot_TCon | heaPum | ||
| Modelica.Blocks.Math.Add | Q_con | Differernce of heat demand and electric power of heat pump | |
| Sources.MassFlowSource_T | sourceHeating | ||
| Sources.Boundary_pT | sinkHeating | ||
| Modelica.Blocks.Math.Gain | masFloBuilding | Changes sign of prescribed flow for extraction from network | |
| Modelica.Blocks.Sources.Constant | temperatureSupplyBuilding | Temperature of supply line | |
| Modelica.Blocks.Sources.Constant | deltaTBuilding | Temperature difference in building heating system | |
| Modelica.Blocks.Math.Add | temperatureReturnBuilding | Temperature returning from building heating system | |
| Modelica.Blocks.Math.Gain | gainInput | Optional gain on the input | |
| Modelica.Blocks.Sources.Constant | minT_return | Minimal return Temperature | |
| Modelica.Blocks.Math.Max | max |
Contents
| Name | Description |
|---|---|
| Medium in the building heating system |