diff --git a/life_cycle_costs.py b/life_cycle_costs.py index 5887367..ccb2fbd 100644 --- a/life_cycle_costs.py +++ b/life_cycle_costs.py @@ -77,17 +77,62 @@ class LifeCycleCosts: if self._retrofitting_scenario == 2 or self._retrofitting_scenario == 3: chapter = chapters.chapter('D_services') capital_cost_pv = surface_roof * factor_pv * chapter.item('D301010_photovoltaic_system').initial_investment[0] + reposition_cost_PV = 0 + for year in range(1, self._number_of_years + 1): + costs_increase = math.pow(1 + self._consumer_price_index, year) / math.pow(1 + self._discount_rate, year) + if (year % chapter.item('D301010_photovoltaic_system').lifetime) == 0: + reposition_cost_PV += surface_roof * factor_pv * chapter.item('D301010_photovoltaic_system').reposition[ + 0] * costs_increase + capital_cost_heating_equipment = total_floor_area * factor_heating_power * chapter.item('D3020_heat_generating_systems').initial_investment[0] + capital_cost_cooling_equipment = total_floor_area * factor_cooling_power * chapter.item('D3030_cooling_generation_systems').initial_investment[0] + capital_cost_distribution_equipment = total_floor_area * factor_cooling_power * chapter.item('D3040_distribution_systems').initial_investment[0] + capital_cost_other_hvac_ahu = total_floor_area * factor_cooling_power * chapter.item('D3080_other_hvac_ahu').initial_investment[0] + capital_cost_lighting = total_floor_area * factor_pv * chapter.item('D5020_lighting_and_branch_wiring').initial_investment[0] + capital_cost_services=capital_cost_pv+capital_cost_heating_equipment+capital_cost_cooling_equipment+capital_cost_distribution_equipment+capital_cost_other_hvac_ahu+capital_cost_lighting - capital_cost_subtotal = capital_cost_skin + capital_cost_services - capital_cost_total= capital_cost_subtotal*(1+chapters.design_allowance)*(1+chapters.overhead_and_profit) + reposition_cost_heating_equipment = 0 + reposition_cost_cooling_equipment = 0 + reposition_cost_lighting = 0 + reposition_cost_hvac_ahu = 0 + capital_cost_pv = 0 + reposition_cost_PV = 0 - return capital_cost_total + for year in range(1, self._number_of_years + 1): + chapter = chapters.chapter('D_services') + costs_increase = math.pow(1 + self._consumer_price_index, year) / math.pow(1 + self._discount_rate, year) + if (year % chapter.item('D3020_heat_generating_systems').lifetime) == 0: + reposition_cost_heating_equipment = total_floor_area * factor_heating_power * \ + chapter.item('D3020_heat_generating_systems').reposition[ + 0] * costs_increase + if (year % chapter.item('D3030_cooling_generation_systems').lifetime) == 0: + reposition_cost_cooling_equipment = total_floor_area * factor_cooling_power * \ + chapter.item('D3030_cooling_generation_systems').reposition[ + 0] * costs_increase + if (year % chapter.item('D3080_other_hvac_ahu').lifetime) == 0: + reposition_cost_hvac_ahu = total_floor_area * factor_cooling_power * \ + chapter.item('D3080_other_hvac_ahu').reposition[ + 0] * costs_increase + if (year % chapter.item('D5020_lighting_and_branch_wiring').lifetime) == 0: + reposition_cost_lighting = total_floor_area * chapter.item('D5020_lighting_and_branch_wiring').reposition[ + 0] * costs_increase + + capital_cost_subtotal = capital_cost_skin + capital_cost_services + + capital_cost_total = capital_cost_subtotal*(1+chapters.design_allowance)*(1+chapters.overhead_and_profit) + + reposition_cost_subtotal = reposition_cost_PV + reposition_cost_heating_equipment + reposition_cost_cooling_equipment + reposition_cost_hvac_ahu + reposition_cost_hvac_ahu + reposition_cost_lighting + + reposition_cost_total = reposition_cost_subtotal * (1+chapters.design_allowance)*(1+chapters.overhead_and_profit) + + life_cycle_cost_capital_total = capital_cost_total + reposition_cost_total + + return life_cycle_cost_capital_total @staticmethod def _search_archetype(costs_catalog, function): costs_archetypes = costs_catalog.entries('archetypes').archetypes @@ -155,11 +200,11 @@ class LifeCycleCosts: cooling_demand= 10 * total_floor_area if self._retrofitting_scenario==2 or self._retrofitting_scenario==3: - heating_SCOP=1 - cooling_SEER=2.8 + heating_SCOP=3 + cooling_SEER=4.5 else: - heating_SCOP = 2.5 - cooling_SEER = 4 + heating_SCOP = 1 + cooling_SEER = 2 electricity_heating=heating_demand/heating_SCOP electricity_cooling=cooling_demand/cooling_SEER diff --git a/main.py b/main.py index 3835539..6e06d2f 100644 --- a/main.py +++ b/main.py @@ -34,11 +34,11 @@ ConstructionFactory('nrcan', city).enrich() print('enrich constructions... done') number_of_years = 30 consumer_price_index = 0.04 -discount_rate = 0.06 +discount_rate = 0.03 #retrofitting_scenario = 2 catalog = CostCatalogFactory('montreal_custom').catalog -for i in range(1,4) : +for i in range(0,4) : for building in city.buildings: lcc = LifeCycleCosts(building, catalog, number_of_years, consumer_price_index, discount_rate, i) total_capital_costs = lcc.calculate_capital_costs()