Source code for sap2012.SAP_appendices.internal_gains_appendix_L

# -*- coding: utf-8 -*-
import math

[docs]def internal_gains_appendix_L ( total_floor_area, assumed_occupancy, number_of_low_energy_light_bulbs, total_number_of_light_bulbs, frame_factor, window_area, light_access_factor_table_6d, light_transmittance_factor_table_6d, month_number, days_in_month, heat_gains_from_water_heating_monthly ): """Internal gain calculations as given in Appendix L. :param total_floor_area: See (4). :type total_floor_area: float :param assumed_occupancy: See (42). Calculated using equation from (42). If TFA > 13.9, N = 1 + 1.76 * [1 - exp(-0.000349 * (TFA -13.9)2)] + 0.0013 * (TFA -13.9). if TFA =< 13.9, N = 1. Where TFA is the Total Floor Area. :type assumed_occupancy: float :param number_of_low_energy_light_bulbs: :type number_of_low_energy_light_bulbs: int :param total_number_of_light_bulbs: :type total_number_of_light_bulbs: int :param frame_factor: :type frame_factor: float :param window_area: :type window_area: float :param light_access_factor_table_6d: :type light_access_factor_table_6d: float :param light_transmittance_factor_table_6d: :type light_transmittance_factor_table_6d: float :param month_number: :type month_number: list(int) :param days_in_month: List of the number of days in each month of the calendar year. :type days_in_month: float(int) :param heat_gains_from_water_heating_monthly: (65) in kWh/month. :type heat_gains_from_water_heating_monthly: list(float) :returns: A dictionary with keys of ( G_L, C_1, C_2, E_B, initial_annual_lighting_demand, monthly_lighting_demand, annual_lighting_demand, lighting_gains, initial_annual_electrical_appliance_demand, monthly_electrical_appliance_demand, annual_electrical_appliance_demand, appliances_gains, cooking_gains, losses, water_heating_gains, metabolic_gains ) - **G_L** (`float`)- - **C_1** (`float`)- - **C_2** (`float`)- - **E_B** (`float`)- - **initial_annual_lighting_demand** (`float`)- - **monthly_lighting_demand** (`list` (`float`))- - **annual_lighting_demand** (`float`)- - **lighting_gains** (`list` (`float`))- - **initial_annual_electrical_appliance_demand** (`float`)- - **monthly_electrical_appliance_demand** (`list` (`float`))- - **annual_electrical_appliance_demand** (`float`)- - **appliances_gains** (`list` (`float`))- - **cooking_gains** (`list` (`float`))- - **losses** (`list` (`float`))- - **water_heating_gains** (`list` (`float`))- - **metabolic_gains** (`list` (`float`))- :rtype: dict """ G_L = ((0.9 * window_area * light_transmittance_factor_table_6d * frame_factor * light_access_factor_table_6d) / total_floor_area) C_1 = (1 - 0.5 * (number_of_low_energy_light_bulbs / total_number_of_light_bulbs)) if G_L > 0.095: C_2 = 0.96 else: C_2 = (52.2 * (G_L)**2 - 9.94 * G_L + 1.433) E_B = 59.73 * (total_floor_area * assumed_occupancy)**0.4714 initial_annual_lighting_demand = E_B * C_1 * C_2 monthly_lighting_demand = [] for i in range(12): monthly_lighting_demand.append(initial_annual_lighting_demand * (1 + 0.5 * math.cos(2*math.pi * (month_number[i] - 0.2) / 12)) * days_in_month[i] / 365) annual_lighting_demand = sum(monthly_lighting_demand) lighting_gains = [] for i in range(12): lighting_gains.append(monthly_lighting_demand[i] * 0.85 * 1000 / (24 * days_in_month[i])) initial_annual_electrical_appliance_demand = 207.8 * (total_floor_area * assumed_occupancy)**0.4714 monthly_electrical_appliance_demand = [] for i in range(12): monthly_electrical_appliance_demand.append(initial_annual_electrical_appliance_demand * (1 + 0.157 * math.cos(2*math.pi * (month_number[i] - 1.78) / 12)) * days_in_month[i] / 365) annual_electrical_appliance_demand = sum(monthly_electrical_appliance_demand) appliances_gains = [] for i in range(12): appliances_gains.append(monthly_electrical_appliance_demand[i] * 1000 / (24 * days_in_month[i])) cooking_gains = [] for i in range(12): cooking_gains.append(35 + 7 * assumed_occupancy) losses= [] for i in range(12): losses.append(assumed_occupancy * -40) water_heating_gains = [] for i in range(12): water_heating_gains.append((heat_gains_from_water_heating_monthly[i] * 1000) / (days_in_month[i] * 24)) metabolic_gains = [] for i in range(12): metabolic_gains.append(60 * assumed_occupancy) return dict( G_L=G_L, C_1=C_1, C_2=C_2, E_B=E_B, initial_annual_lighting_demand=initial_annual_lighting_demand, monthly_lighting_demand=monthly_lighting_demand, annual_lighting_demand=annual_lighting_demand, lighting_gains=lighting_gains, initial_annual_electrical_appliance_demand=initial_annual_electrical_appliance_demand, monthly_electrical_appliance_demand=monthly_electrical_appliance_demand, annual_electrical_appliance_demand=annual_electrical_appliance_demand, appliances_gains=appliances_gains, cooking_gains=cooking_gains, losses=losses, water_heating_gains=water_heating_gains, metabolic_gains=metabolic_gains )