-
Notifications
You must be signed in to change notification settings - Fork 36
buildingPhysics.py
buildingPhysics.py contains the thermodynamic model which calculates the energy demand and temperatures of the building. It is based on the ISO-13790 standard. Here we will explain the main methods and classes
Initialises a building to be studied
The arguments here are
- window_area: Area of the Glazed Surface in contact with the outside [m2]
- walls_area: Area of all non glazed (opaque) surfaces, with contact to the exterior. Including roofs [m2]
- floor_area: floor area of zone [m2]
- room_vol: volume of interior zone [m3]
- total_internal_area: area of all surfaces facing the room. A_t [m2][m2]
- lighting_load: Lighting Load [W/m2]
- lighting_control: Lux threshold at which the lights turn on [Lx]
- lighting_utilisation_factor: A factor that is determines how much natural solar lumminace is effectively utilised in the space. Environmental Science Handbook, SV Szokolay, Section 2.2.1.3 [1- full utilisation, 0 - no utilisation]
- lighting_maintenance_facotor: A factor based on how dirty the windows are. Environmental Science Handbook, SV Szokolay, Section 2.2.1.3 [1- full transmission, 0 - no transmission]
- U_walls: average U value of opaque surfaces [W/m2K]
- U_windows: U value of glazed surfaces [W/m2K]
- ACH_vent: Air changes per hour through ventilation [Air Changes Per Hour]
- ACH_infl: Air changes per hour through infiltration [Air Changes Per Hour]
- ventilation_efficiency: The efficiency of the heat recovery system for ventilation. Set to 0 if there is no heat recovery []
- thermal_capacitance_per_floor_area: Thermal capacitance of the room per floor area [J/m2K]
- **T_set_heating **: Thermal heating set point [C]
- T_set_cooling: Thermal cooling set point [C]
- max_cooling_energy_per_floor_area: Maximum cooling load. Set to -np.inf for unresctricted cooling [C]
- max_heating_energy_per_floor_area: Maximum heating load per floor area. Set to no.inf for unrestricted heating [C]
- heatingSupplySystem: The type of heating system. Choices are DirectHeater, ResistiveHeater, HeatPumpHeater. Direct heater has no changes to the heating demand load, a resistive heater takes an efficiency into account, and a HeatPumpHeater calculates a COP based on the outdoor and indoor temperature
- coolingSupplySystem: The type of cooling system. Choices are DirectCooler HeatPumpCooler. DirectCooler has no changes to the cooling demand load, a HeatPumpCooler calculates a COP based on the outdoor and indoor temperature
- heatingEmissionSystem: How the heat is distrubuted to the building
- coolingEmissionSystem: How the cooling energy is distributed to the building
The default settings are
window_area=4.0,
walls_area=11.0,
floor_area=35.0,
room_vol=105,
total_internal_area=142.0,
lighting_load=11.7,
lighting_control = 300.0,
lighting_utilisation_factor=0.45,
lighting_maintenance_factor=0.9,
U_walls = 0.2,
U_windows = 1.1,
ACH_vent=1.5,
ACH_infl=0.5,
ventilation_efficiency=0.6,
thermal_capacitance_per_floor_area = 165000,
T_set_heating = 20.0,
T_set_cooling = 26.0,
max_cooling_energy_per_floor_area=-np.inf,
max_heating_energy_per_floor_area=np.inf,
heatingSupplySystem=supplySystem.OilBoilerMed,
coolingSupplySystem=supplySystem.HeatPumpAir,
heatingEmissionSystem=emissionSystem.NewRadiators,
coolingEmissionSystem=emissionSystem.AirConditioning,
The following SupplySystems can be selected. For more informaiton see the wiki page supplySystem.py or the supplySystem.py
script
- OilBoilderOld: A boiler with a fuel efficiency of 63%
- OilBoilerMed: A boiler with a fuel effiiency of 82%
- OilBoilerNew: A boiler with a fuel efficiency of 98%
- HeatPumpAir: An air heat pump
- HeatPumpWater: A water heat pump
- Electric heating: A 100% efficient electric resistive heater
- CHP: Combined heat and power unit with a 60% conversion to heat, and 33% conversion to electricity
- DirectHeater: A default unit with a 100% thermal to electricity conversion for testing
- DirectCooler: A default unit with a 100% thermal to electricity conversion for testing
The following emission systems can be selected. For more information about each system see the wiki page emissionSystem.py or the emssionSystem.py
script
- OldRadiators
- ** NewRadiators **
- ** ChilledBeams**
- ** AirConditioning**
- ** FloorHeating**
- ** TABS: Thermally Activated Building System**
Calculates the lighting demand for a set timestep
- illuminance: illuminance transfered into the building [lumens]
- Occupancy: probability of full occupancy [%]
- my_building.lighting_demand: lighting demand of the office space in Watts
Calculates the heating and cooling consumption of a building for a set timestep
- internal_gains: internal heat gains from people and appliances [W]
- solar_gains: solar heat gains [W]
- T_out: Outdoor air temperature [C]
- T_m_prev: Prevous air temperature [C]
- my_building.heatingDemand: space heating demand of the building
- my_building.heatingSysElectricity: heating electricity consumption
- my_building.heatingSysFossils: heating fossil fuel consumption
- my_building.coolingDemand: space cooling demand of the building
- my_building.coolingSysElectricity: electricity consumption from cooling
- my_building.coolingSysFossils: fossil fuel consumption from cooling
- my_building.electricityOut: electricty produced from combined heat pump systems
- my_building.sysTotalEnergy: total exergy consumed (electricity + fossils) for heating and cooling
- my_building.heatingEnergy: total exergy consumed (electricity + fossils) for heating
- my_building.coolingEnergy: total exergy consumed (electricity + fossils) for cooling
- my_building.COP: COP of the heating or cooling system
- my_building.has_heating_demand: Boolean
- my_building.has_cooling_demand: Boolean
thermal_capacitance_per_floor_area
J/m2/K
- Very light: 80 000
- Light: 110 000
- Medium: 165 000
- Heavy: 260 000
- Very heavy:370 000
Source: Section 12.3.1.2 of ISO 13790