Skip to content

buildingPhysics.py

Prageeth Jayathissa edited this page Sep 10, 2020 · 13 revisions

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

buildingPhysics.Building(args*)

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,

Supply Systems

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

Emission Systems

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**

solve_lighting(illuminance, occupancy)

Calculates the lighting demand for a set timestep

Inputs

  • illuminance: illuminance transfered into the building [lumens]
  • Occupancy: probability of full occupancy [%]

Return

  • my_building.lighting_demand: lighting demand of the office space in Watts

solve_energy(internal_gains, solar_gains, T_out, T_m_prev)

Calculates the heating and cooling consumption of a building for a set timestep

Inputs

  • 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]

Return

  • 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

Some Important Values

Thermal Capacitance

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

Clone this wiki locally