Compare commits

..

2 Commits

Author SHA1 Message Date
c77c03b759 Incorporation of ventilation that previously was not writing idf. Working.
Incorporation of percentual losses in distribution
2023-05-19 18:05:36 -04:00
de066b25fb Changes hub to incorporate change in distribution 2023-05-19 16:57:35 -04:00
2 changed files with 42 additions and 41 deletions

View File

@ -8,8 +8,8 @@
</demands>
<heating_efficiency>0.85</heating_efficiency>
<distribution_heat_losses units="%">10</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">2</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">2</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="2" type="boiler" fuel_type="electricity">
@ -20,8 +20,8 @@
</demands>
<heating_efficiency>1</heating_efficiency>
<distribution_heat_losses units="%">10</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">2</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">2</distribution_consumption_variable_flow>
<storage>true</storage>
</system>
<system id="3" type="furnace" fuel_type="gas">
@ -32,8 +32,8 @@
</demands>
<heating_efficiency>0.85</heating_efficiency>
<distribution_heat_losses units="%">25</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">13</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">13</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="4" type="furnace" fuel_type="electricity">
@ -44,8 +44,8 @@
</demands>
<heating_efficiency>1</heating_efficiency>
<distribution_heat_losses units="%">25</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">13</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">13</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="5" type="baseboard" fuel_type="gas">
@ -56,8 +56,8 @@
</demands>
<heating_efficiency>0.85</heating_efficiency>
<distribution_heat_losses units="%">10</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">2</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">2</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="6" type="baseboard" fuel_type="electricity">
@ -68,8 +68,8 @@
</demands>
<heating_efficiency>1</heating_efficiency>
<distribution_heat_losses units="%">0</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">4</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">4</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="7" type="cooler" fuel_type="electricity">
@ -79,8 +79,8 @@
</demands>
<cooling_efficiency>3.23</cooling_efficiency>
<distribution_heat_losses units="%">0</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">4</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">4</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="8" type="cooler" fuel_type="electricity">
@ -90,8 +90,8 @@
</demands>
<cooling_efficiency>3.23</cooling_efficiency>
<distribution_heat_losses units="%">10</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">4</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">4</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="9" type="cooler" fuel_type="electricity">
@ -101,8 +101,8 @@
</demands>
<cooling_efficiency>3.23</cooling_efficiency>
<distribution_heat_losses units="%">0</distribution_heat_losses>
<distribution_consumption_fix_flow units="%">1000000000</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">1000000000</distribution_consumption_variable_flow>
<distribution_consumption_fix_flow units="%">4</distribution_consumption_fix_flow>
<distribution_consumption_variable_flow units="%">4</distribution_consumption_variable_flow>
<storage>false</storage>
</system>
<system id="10" type="electricity generator" fuel_type="renewable">

View File

@ -427,32 +427,32 @@ class Idf:
for zone in self._idf.idfobjects["ZONE"]:
if zone.Name == f'{zone_name}_infiltration':
return
schedule = f'Infiltration schedules {thermal_zone.usage_name}'
if schedule not in self._idf.idfobjects[self._HOURLY_SCHEDULE]:
return
self._idf.newidfobject(self._INFILTRATION,
Name=f'{zone_name}_infiltration',
Zone_or_ZoneList_Name=zone_name,
Schedule_Name=schedule,
Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off
)
schedule = f'Ventilation schedules {thermal_zone.usage_name}'
#if schedule not in self._idf.idfobjects[self._HOURLY_SCHEDULE]:
# return
self._idf.newidfobject(self._INFILTRATION,
Name=f'{zone_name}_infiltration',
Zone_or_ZoneList_Name=zone_name,
Schedule_Name=schedule,
Design_Flow_Rate_Calculation_Method='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.infiltration_rate_system_off
)
def _add_ventilation(self, thermal_zone, zone_name):
for zone in self._idf.idfobjects["ZONE"]:
if zone.Name == f'{zone_name}_ventilation':
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='AirChanges/Hour',
Flow_Rate_per_Zone_Floor_Area=thermal_zone.mechanical_air_change
)
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='AirChanges/Hour',
Air_Changes_per_Hour=thermal_zone.mechanical_air_change
)
def _add_dhw(self, thermal_zone, zone_name):
peak_flow_rate = thermal_zone.domestic_hot_water.peak_flow * thermal_zone.total_floor_area
@ -510,8 +510,8 @@ class Idf:
if building.name in self._target_buildings or building.name in self._adjacent_buildings:
_new_schedules = self._create_infiltration_schedules(thermal_zone)
self._add_schedules(usage, 'Infiltration', _new_schedules)
_new_schedules2 = self._create_ventilation_schedules(thermal_zone)
self._add_schedules(usage, 'Ventilation', _new_schedules2)
_new_schedules = self._create_ventilation_schedules(thermal_zone)
self._add_schedules(usage, 'Ventilation', _new_schedules)
self._add_schedules(usage, 'Occupancy', thermal_zone.occupancy.occupancy_schedules)
self._add_schedules(usage, 'HVAC AVAIL', thermal_zone.thermal_control.hvac_availability_schedules)
self._add_schedules(usage, 'Heating thermostat', thermal_zone.thermal_control.heating_set_point_schedules)
@ -536,6 +536,7 @@ class Idf:
self._add_zone(thermal_zone, building.name)
self._add_heating_system(thermal_zone, building.name)
self._add_infiltration(thermal_zone, building.name)
self._add_ventilation(thermal_zone, building.name)
self._add_occupancy(thermal_zone, building.name)
self._add_lighting(thermal_zone, building.name)
self._add_appliances(thermal_zone, building.name)