Heat Demand
See also
Note
A heat demand consists of an element and a controller. The element defines it’s physical parameters, while the controller governs the operational logic.
The create_controlled function creates both and connects them.
Create Controlled Function
- pandaprosumer.create_controlled_heat_demand(prosumer, scaling=1.0, name=None, index=None, in_service=True, period=0, level=0, order=0, **kwargs)[source]
Creates a heat demand element and a controller in prosumer[“heat_demand”] and an heat demand controller
- INPUT:
prosumer - The prosumer within this heat demand should be created
- OPTIONAL:
scaling (float, default 1) - A scaling factor applied to the heat demand. Multiply the demanded power by this factor
t_in_set_c (float, default nan) - The default required input temperature level [C]
t_out_set_c (float, default nan) - The default required output temperature level [C]
name (string, default None) - A custom name for this heat demand
index (int, default None) - Force a specified ID if it is available. If None, the index one higher than the highest already existing index is selected.
in_service (boolean, default True) - True for in_service or False for out of service
level (int, default 0) - The level of the controller
order (int, default 0) - The order of the controller
period (int, default 0) - Index of the period, default is 0
- OUTPUT:
index (int) - The unique ID of the created heat demand controller
- EXAMPLE:
create_controlled_heat_demand(prosumer, “heat_demand1”)
Controller
Input Static Data
Parameter |
Description |
Unit |
|---|---|---|
name |
Unique name or identifier for the gas boiler element. |
N/A |
q_demand_kw |
Demand heat power |
kW |
mdot_demand_kg_per_s |
Demand required mass flow |
kg/s |
t_feed_demand_c |
Demand required feed temperature level |
Degree Celsius |
t_return_demand_c |
Demand required return temperature level |
Degree Celsius |
Input Time Series
Parameter |
Description |
Unit |
|---|---|---|
q_demand_kw |
Demand heat power |
kW |
mdot_demand_kg_per_s |
Demand required mass flow |
kg/s |
t_feed_demand_c |
Demand required feed temperature level |
Degree Celsius |
t_return_demand_c |
Demand required return temperature level |
Degree Celsius |
Output Time Series
Parameter |
Description |
Unit |
|---|---|---|
q_uncovered_kw |
Uncovered heat power. Can be negative if the power provided is greater than the required power |
kW |
Mapping
The Heat Demand Controller can be mapped using FluidMixMapping.
The heat demand can be used as responder for a FluidMix mapping, taking the output from another controller as its input
The heat demand can also be used as responder for a Generic mapping, in this case the results from another controller are mapped to the following inputs of the heat demand:
q_received_kw
No output are mapped, as the heat demand does not act as an initiator.
Model
- pandaprosumer.controller.models.HeatDemandController(prosumer, heat_demand_object, order=-1, level=-1, in_service=True, index=None, name=None, **kwargs)[source]
Controller for Heat Demand.
- Parameters:
prosumer – The prosumer object
heat_demand_object – The heat demand object
order – The order of the controller
level – The level of the controller
scale_factor – The scale factor for the controller
in_service – The in-service status of the controller
index – The index of the controller
name – The name of the controller
kwargs – Additional keyword arguments
The heat demand model take four inputs \(Q\), \(\dot{m}\), \(T_\text{feed}\) and \(T_\text{return}\)
Only three of these inputs should be provided, typically from timeseries data through a ConstProfile controller. The fourth one will be inferred from the relation