Revision of infiltration parameters

This commit is contained in:
Oriol Gavalda 2023-03-31 12:25:13 -04:00
parent d37ce01304
commit bc0c1fc0f3

View File

@ -188,6 +188,7 @@ class Idf:
_schedule.Minutes_per_Item = 60 _schedule.Minutes_per_Item = 60
def _add_infiltration_schedules(self, thermal_zone): def _add_infiltration_schedules(self, thermal_zone):
#todo: clean the way infiltration is hardcoded
_infiltration_schedules = [] _infiltration_schedules = []
if thermal_zone.thermal_control is None: if thermal_zone.thermal_control is None:
return return
@ -201,9 +202,9 @@ class Idf:
_infiltration_values = [] _infiltration_values = []
for hvac_value in hvac_availability_schedule.values: for hvac_value in hvac_availability_schedule.values:
if hvac_value == 0: if hvac_value == 0:
_infiltration_values.append(thermal_zone.infiltration_rate_system_off) _infiltration_values.append(1)
else: else:
_infiltration_values.append(thermal_zone.infiltration_rate_system_on) _infiltration_values.append(1)
_schedule.values = _infiltration_values _schedule.values = _infiltration_values
_infiltration_schedules.append(_schedule) _infiltration_schedules.append(_schedule)
for schedule in self._idf.idfobjects[self._HOURLY_SCHEDULE]: for schedule in self._idf.idfobjects[self._HOURLY_SCHEDULE]:
@ -377,7 +378,7 @@ class Idf:
# print(vars(_object)) # print(vars(_object))
self._idf.newidfobject(self._APPLIANCES, self._idf.newidfobject(self._APPLIANCES,
Fuel_Type=fuel_type, Fuel_Type=fuel_type,
Name=f'{zone_name}_appliances', Name=f'{zone_name}_appliance',
Zone_or_ZoneList_Name=zone_name, Zone_or_ZoneList_Name=zone_name,
Schedule_Name=f'Appliance schedules {thermal_zone.usage_name}', Schedule_Name=f'Appliance schedules {thermal_zone.usage_name}',
Design_Level_Calculation_Method=method, Design_Level_Calculation_Method=method,
@ -399,7 +400,7 @@ class Idf:
Zone_or_ZoneList_Name=zone_name, Zone_or_ZoneList_Name=zone_name,
Schedule_Name=schedule, Schedule_Name=schedule,
Design_Flow_Rate_Calculation_Method='AirChanges/Hour', Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.mechanical_air_change Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off
) )
def _rename_building(self, city_name): def _rename_building(self, city_name):
@ -449,7 +450,7 @@ class Idf:
self._add_schedules(usage, 'Heating thermostat', thermal_zone.thermal_control.heating_set_point_schedules) self._add_schedules(usage, 'Heating thermostat', thermal_zone.thermal_control.heating_set_point_schedules)
self._add_schedules(usage, 'Cooling thermostat', thermal_zone.thermal_control.cooling_set_point_schedules) self._add_schedules(usage, 'Cooling thermostat', thermal_zone.thermal_control.cooling_set_point_schedules)
self._add_schedules(usage, 'Lighting', thermal_zone.lighting.schedules) self._add_schedules(usage, 'Lighting', thermal_zone.lighting.schedules)
self._add_schedules(usage, 'Appliances', thermal_zone.appliances.schedules) self._add_schedules(usage, 'Appliance', thermal_zone.appliances.schedules)
self._add_people_activity_level_schedules(thermal_zone) self._add_people_activity_level_schedules(thermal_zone)
@ -479,6 +480,8 @@ class Idf:
Variable_Name="Zone Ideal Loads Supply Air Total Heating Energy", Variable_Name="Zone Ideal Loads Supply Air Total Heating Energy",
Reporting_Frequency="Hourly", Reporting_Frequency="Hourly",
) )
#_object = self._idf.newidfobject("OUTPUT:VARIABLE")
#print(vars(_object))
self._idf.newidfobject( self._idf.newidfobject(
"OUTPUT:VARIABLE", "OUTPUT:VARIABLE",
@ -486,10 +489,10 @@ class Idf:
Reporting_Frequency="Hourly", Reporting_Frequency="Hourly",
) )
self._idf.newidfobject( #self._idf.newidfobject(
"OUTPUTCONTROL:TABLE:STYLE", # "OUTPUTCONTROL:TABLE:STYLE",
Variable_Name="CommaAndHTML, JtoKWH", # Variable_Name="CommaAndHTML, JtoKWH",
) #)
self._idf.match() self._idf.match()
try: try: