Ventilation and usage changed, problem of units. Revise with Pilar the incorporation of ventilation

This commit is contained in:
Oriol Gavalda 2023-05-02 17:51:08 -04:00
parent bcc2f2fd3a
commit 75e56f4b99
2 changed files with 22 additions and 6 deletions

View File

@ -105,7 +105,8 @@ class NrcanCatalog(Catalog):
for space_type in space_types: for space_type in space_types:
usage_type = space_type['building_type'] usage_type = space_type['building_type']
space_type_compliance = space_types_dictionary[usage_type] space_type_compliance = space_types_dictionary[usage_type]
occupancy_density = space_type_compliance['occupancy_per_area'] #todo: check, because I think the value is pax per 1000 sqfoot
occupancy_density = space_type_compliance['occupancy_per_area']/1000
lighting_density = space_type_compliance['lighting_per_area'] lighting_density = space_type_compliance['lighting_per_area']
appliances_density = space_type_compliance['electric_equipment_per_area'] appliances_density = space_type_compliance['electric_equipment_per_area']
domestic_hot_water_peak_flow = space_type_compliance['service_water_heating_peak_flow_per_area'] domestic_hot_water_peak_flow = space_type_compliance['service_water_heating_peak_flow_per_area']
@ -128,14 +129,14 @@ class NrcanCatalog(Catalog):
domestic_hot_water_load_schedule = self._get_schedules(domestic_hot_water_schedule_name) domestic_hot_water_load_schedule = self._get_schedules(domestic_hot_water_schedule_name)
# ACH # ACH
#todo: revise with Pilar, some changes done
mechanical_air_change = space_type['ventilation_air_changes'] mechanical_air_change = space_type['ventilation_air_changes']
# cfm/ft2 to m3/m2.s # cfm/ft2 to m3/m2.s
ventilation_rate = space_type['ventilation_per_area'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS) ventilation_rate = space_type['ventilation_per_area'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS)
if ventilation_rate == 0: #if ventilation_rate == 0:
# cfm/person to m3/m2.s # cfm/person to m3/m2.s
ventilation_rate = space_type['ventilation_per_person'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS)\ ventilation_rate += space_type['ventilation_per_person'] / (cte.METERS_TO_FEET * cte.MINUTES_TO_SECONDS)\
/ occupancy_density * occupancy_density
lighting_radiative_fraction = space_type['lighting_fraction_radiant'] lighting_radiative_fraction = space_type['lighting_fraction_radiant']
lighting_convective_fraction = 0 lighting_convective_fraction = 0
if lighting_radiative_fraction is not None: if lighting_radiative_fraction is not None:

View File

@ -38,6 +38,7 @@ class Idf:
_WINDOW_MATERIAL_SIMPLE = 'WINDOWMATERIAL:SIMPLEGLAZINGSYSTEM' _WINDOW_MATERIAL_SIMPLE = 'WINDOWMATERIAL:SIMPLEGLAZINGSYSTEM'
_ROUGHNESS = 'MediumRough' _ROUGHNESS = 'MediumRough'
_INFILTRATION = 'ZONEINFILTRATION:DESIGNFLOWRATE' _INFILTRATION = 'ZONEINFILTRATION:DESIGNFLOWRATE'
_VENTILATION = 'ZONEVENTILATION:DESIGNFLOWRATE'
_HOURLY_SCHEDULE = 'SCHEDULE:DAY:HOURLY' _HOURLY_SCHEDULE = 'SCHEDULE:DAY:HOURLY'
_COMPACT_SCHEDULE = 'SCHEDULE:COMPACT' _COMPACT_SCHEDULE = 'SCHEDULE:COMPACT'
@ -421,7 +422,21 @@ class Idf:
Design_Flow_Rate_Calculation_Method='AirChanges/Hour', Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off * factorreduct Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off * factorreduct
) )
def _add_ventilation(self, thermal_zone, zone_name):
# for zone in self._idf.idfobjects["ZONE"]:
# if zone.Name == f'{zone_name}_infiltration':
# return
schedule = f'Ventilation schedules {thermal_zone.usage_name}'
# if schedule not in self._idf.idfobjects[self._HOURLY_SCHEDULE]:
# return
# todo: revise ventilation with Pilar
self._idf.newidfobject(self._VENTILATION,
Name=f'{zone_name}_ventilation',
Zone_or_ZoneList_Name=zone_name,
Schedule_Name=schedule,
Design_Flow_Rate_Calculation_Method='Flow/Zone',
Flow_Rate_per_Zone_Floor_Area=thermal_zone.infiltration_rate_system_off
)
def _add_dhw(self, thermal_zone, zone_name): def _add_dhw(self, thermal_zone, zone_name):
fuel_type = 'Electricity' fuel_type = 'Electricity'
method = 'Watts/Area' method = 'Watts/Area'