feature/upgrade_ep_to_23.2.0 #59
@ -56,10 +56,12 @@ class Idf:
|
|||||||
_SIMPLE = 'Simple'
|
_SIMPLE = 'Simple'
|
||||||
_EQUIPMENT_CONNECTIONS = 'ZONEHVAC:EQUIPMENTCONNECTIONS'
|
_EQUIPMENT_CONNECTIONS = 'ZONEHVAC:EQUIPMENTCONNECTIONS'
|
||||||
_NODE_LIST = 'NODELIST'
|
_NODE_LIST = 'NODELIST'
|
||||||
_BASEBOARD ='ZONEHVAC:BASEBOARD:CONVECTIVE:ELECTRIC'
|
_BASEBOARD = 'ZONEHVAC:BASEBOARD:CONVECTIVE:ELECTRIC'
|
||||||
_AIR_TERMINAL_NO_REHEAT= 'AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:NOREHEAT'
|
_AIR_TERMINAL_NO_REHEAT = 'AIRTERMINAL:SINGLEDUCT:CONSTANTVOLUME:NOREHEAT'
|
||||||
_AIR_DISTRIBUTION='ZONEHVAC:AIRDISTRIBUTIONUNIT'
|
_AIR_DISTRIBUTION = 'ZONEHVAC:AIRDISTRIBUTIONUNIT'
|
||||||
_EQUIPMENT_LIST='ZONEHVAC:EQUIPMENTLIST'
|
_EQUIPMENT_LIST = 'ZONEHVAC:EQUIPMENTLIST'
|
||||||
|
_SIZING_ZONE = 'SIZING:ZONE'
|
||||||
|
_DESIGN_SPECIFICATION_OUTDOOR_AIR = 'DESIGNSPECIFICATION:OUTDOORAIR'
|
||||||
|
|
||||||
idf_surfaces = {
|
idf_surfaces = {
|
||||||
cte.WALL: 'wall',
|
cte.WALL: 'wall',
|
||||||
@ -400,7 +402,9 @@ class Idf:
|
|||||||
Zone_Return_Air_Node_or_NodeList_Name=f'{zone_name} Return Node List')
|
Zone_Return_Air_Node_or_NodeList_Name=f'{zone_name} Return Node List')
|
||||||
|
|
||||||
def _add_nodelist_system(self, thermal_zone, zone_name):
|
def _add_nodelist_system(self, thermal_zone, zone_name):
|
||||||
self._idf.newidfobject(self._NODE_LIST, Name=f'{zone_name} Inlet Node List',Node_1_Name='Node 1')
|
self._idf.newidfobject(self._NODE_LIST,
|
||||||
|
Name=f'{zone_name} Inlet Node List',
|
||||||
|
Node_1_Name='Node 2')
|
||||||
self._idf.newidfobject(self._NODE_LIST,
|
self._idf.newidfobject(self._NODE_LIST,
|
||||||
Name=f'{zone_name} Return Node List',
|
Name=f'{zone_name} Return Node List',
|
||||||
Node_1_Name='Node 3')
|
Node_1_Name='Node 3')
|
||||||
@ -418,8 +422,8 @@ class Idf:
|
|||||||
self._idf.newidfobject(self._AIR_TERMINAL_NO_REHEAT, Name=f'Diffuser',
|
self._idf.newidfobject(self._AIR_TERMINAL_NO_REHEAT, Name=f'Diffuser',
|
||||||
Availability_Schedule_Name='HVAC AVAIL',
|
Availability_Schedule_Name='HVAC AVAIL',
|
||||||
Air_Inlet_Node_Name='Node 4',
|
Air_Inlet_Node_Name='Node 4',
|
||||||
Air_Outlet_Node_Name='Node 2')
|
Air_Outlet_Node_Name='Node 2',
|
||||||
|
Maximum_Air_Flow_Rate='AutoSize')
|
||||||
|
|
||||||
def _add_air_distribution_system(self, thermal_zone, zone_name):
|
def _add_air_distribution_system(self, thermal_zone, zone_name):
|
||||||
for air_distribution in self._idf.idfobjects[self._AIR_DISTRIBUTION]:
|
for air_distribution in self._idf.idfobjects[self._AIR_DISTRIBUTION]:
|
||||||
@ -430,6 +434,7 @@ class Idf:
|
|||||||
Air_Distribution_Unit_Outlet_Node_Name='Node 2',
|
Air_Distribution_Unit_Outlet_Node_Name='Node 2',
|
||||||
Air_Terminal_Object_Type='AirTerminal:SingleDuct:ConstantVolume:NoReheat',
|
Air_Terminal_Object_Type='AirTerminal:SingleDuct:ConstantVolume:NoReheat',
|
||||||
Air_Terminal_Name='Diffuser')
|
Air_Terminal_Name='Diffuser')
|
||||||
|
|
||||||
def _add_equipment_list_system(self, thermal_zone, zone_name):
|
def _add_equipment_list_system(self, thermal_zone, zone_name):
|
||||||
for air_distribution in self._idf.idfobjects[self._EQUIPMENT_LIST]:
|
for air_distribution in self._idf.idfobjects[self._EQUIPMENT_LIST]:
|
||||||
if air_distribution.Zone_Name == zone_name:
|
if air_distribution.Zone_Name == zone_name:
|
||||||
@ -439,9 +444,27 @@ class Idf:
|
|||||||
Load_Distribution_Scheme='SequentialLoad',
|
Load_Distribution_Scheme='SequentialLoad',
|
||||||
Zone_Equipment_1_Object_Type='ZoneHVAC:Baseboard:Convective:Electric',
|
Zone_Equipment_1_Object_Type='ZoneHVAC:Baseboard:Convective:Electric',
|
||||||
Zone_Equipment_1_Name='Elec Baseboard',
|
Zone_Equipment_1_Name='Elec Baseboard',
|
||||||
|
Zone_Equipment_1_Cooling_Sequence='1',
|
||||||
Zone_Equipment_1_Heating_or_NoLoad_Sequence='1',
|
Zone_Equipment_1_Heating_or_NoLoad_Sequence='1',
|
||||||
Zone_Equipment_2_Object_Type='ZoneHVAC:AirDistributionUnit',
|
Zone_Equipment_2_Object_Type='ZoneHVAC:AirDistributionUnit',
|
||||||
Zone_Equipment_2_Name ='ADU Diffuser')
|
Zone_Equipment_2_Name='ADU Diffuser',
|
||||||
|
Zone_Equipment_2_Cooling_Sequence='2',
|
||||||
|
Zone_Equipment_2_Heating_or_NoLoad_Sequence='2'
|
||||||
|
)
|
||||||
|
|
||||||
|
def _add_sizing_zone(self, thermal_zone, zone_name):
|
||||||
|
koa=self._idf.newidfobject(self._SIZING_ZONE,
|
||||||
|
Zone_or_ZoneList_Name=f'{zone_name}',
|
||||||
|
Zone_Cooling_Design_Supply_Air_Humidity_Ratio='0.0085',
|
||||||
|
Zone_Heating_Design_Supply_Air_Humidity_Ratio='0.008'
|
||||||
|
)
|
||||||
|
|
||||||
|
def _add_outdoor_air_design_specification(self, thermal_zone, zone_name):
|
||||||
|
self._idf.newidfobject(self._DESIGN_SPECIFICATION_OUTDOOR_AIR,
|
||||||
|
Name='MidriseApartment Apartment Ventilation',
|
||||||
|
Outdoor_Air_Method='Sum',
|
||||||
|
Outdoor_Air_Flow_per_Person='0.0169901079552')
|
||||||
|
|
||||||
def _add_occupancy(self, thermal_zone, zone_name):
|
def _add_occupancy(self, thermal_zone, zone_name):
|
||||||
number_of_people = thermal_zone.occupancy.occupancy_density * thermal_zone.total_floor_area
|
number_of_people = thermal_zone.occupancy.occupancy_density * thermal_zone.total_floor_area
|
||||||
fraction_radiant = 0
|
fraction_radiant = 0
|
||||||
@ -607,6 +630,10 @@ class Idf:
|
|||||||
self._add_air_terminal_system(thermal_zone, building.name)
|
self._add_air_terminal_system(thermal_zone, building.name)
|
||||||
self._add_air_distribution_system(thermal_zone, building.name)
|
self._add_air_distribution_system(thermal_zone, building.name)
|
||||||
self._add_equipment_list_system(thermal_zone, building.name)
|
self._add_equipment_list_system(thermal_zone, building.name)
|
||||||
|
|
||||||
|
self._add_sizing_zone(thermal_zone, building.name)
|
||||||
|
self._add_outdoor_air_design_specification(thermal_zone, building.name)
|
||||||
|
|
||||||
self._add_infiltration(thermal_zone, building.name)
|
self._add_infiltration(thermal_zone, building.name)
|
||||||
self._add_ventilation(thermal_zone, building.name)
|
self._add_ventilation(thermal_zone, building.name)
|
||||||
self._add_occupancy(thermal_zone, building.name)
|
self._add_occupancy(thermal_zone, building.name)
|
||||||
|
Loading…
Reference in New Issue
Block a user