Gas Boiler

Note

A gas boiler consists of one element and one controller. The element defines its physical parameters, while the controller governs the operational logic.

Create Controlled Function

pandaprosumer.create_controlled_gas_boiler(prosumer, max_q_kw, heating_value_kj_per_kg=50000.0, efficiency_percent=100, name=None, index=None, in_service=True, period=0, level=0, order=0, **kwargs)[source]

Creates an gas boiler element in prosumer[“gas_boiler”] and a gas boiler controller

INPUT:

prosumer - The prosumer within this gas boiler should be created

max_q_kw (float) - Maximal heat power of the boiler [kW]

OPTIONAL:

heating_value_kj_per_kg (float, default 50e3) - Heating Value of the gas (amount of energy per kg of gas) [kJ/kg]

efficiency_percent (float, default 100) - Boiler Efficiency [%]

name (string, default None) - The name for this gas boiler

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 gas boiler

EXAMPLE:

create_controlled_gas_boiler(prosumer, “gas_boiler_1”)

Controller

Gas Boiler Controller logic

Input Static Data

These are the physical parameters required for the Gas Boiler element to enable the model calculation:

Input Static Data: Gas Boiler Element

Parameter

Description

Unit

name

Unique name or identifier for the gas boiler element.

N/A

max_q_kw

Maximum heat power of the boiler.

kW

efficiency_percent

Boiler efficiency expressed as a percentage.

%

Input Time Series

No input (GenericMapping) needed for this controller

Output Time Series

Output Time Series: Gas Boiler

Parameter

Description

Unit

q_kw

The provided heat power.

kW

mdot_kg_per_s

The water mass flow rate through the boiler.

kg/s

t_in_c

The temperature at the inlet of the gas boiler (cold return pipe).

Degree Celsius

t_out_c

The temperature at the outlet of the gas boiler (hot feed pipe).

Degree Celsius

mdot_gas_kg_per_s

The gas mass flow rate through the boiler

kg/s

Mapping

The Gas Boiler Controller can be mapped using FluidMixMapping.

  • No inputs are mapped, as the gas boiler does not act as a responder.

  • The following outputs are mapped:

    • mdot_kg_per_s

    • t_out_c

Model

class pandaprosumer.controller.models.GasBoilerController(prosumer, gas_boiler_object, order, level, in_service=True, index=None, name=None, **kwargs)[source]

Controller for gas boilers.

Parameters:
  • prosumer – The prosumer object

  • gas_boiler_object – The gas boiler object

  • order – The order of the controller

  • level – The level of the controller

  • in_service – The in-service status of the controller

  • index – The index of the controller

  • kwargs – Additional keyword arguments

control_step(prosumer)[source]

Executes the control step for the controller.

Parameters:

prosumer – The prosumer object

The gas boiler model calculate the thermal power produced of the boiler and the mass flow of the gas to heat up the fluid to the demand power.

\begin{align*} Q &= \dot{m} * Cp * (T_\text{feed} - T_\text{return}) \\ \end{align*}
\[\dot{m}_\text{gas} = \frac{Q}{HV * \eta}\]

If the power consumption is higher than the maximum power of the boiler, the power consumption is set to the maximum power, and the actual output temperature \(T_\text{feed}\) that can be reached is calculated based on the maximum power. For a gas boiler, the maximum power is defined as the maximum thermal power output, representing the highest amount of heat energy the boiler can produce.