Source code for accim.parametric_and_optimisation.funcs_for_besos.param_apmv

# accim - Adaptive-Comfort-Control-Implemented Model
# Copyright (C) 2021-2025 Daniel Sánchez-García

# accim is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.

# accim is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

import besos
[docs] def change_adaptive_coeff_all_zones(idf: besos.IDF_class, value: float): """ Modifies the adap_coeff_cooling and adap_coeff_heating arguments for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' # program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' # program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return
[docs] def change_adaptive_coeff_cooling_all_zones(idf: besos.IDF_class, value: float): """ Modifies the adap_coeff_cooling argument for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' # program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' # program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' # program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return
[docs] def change_adaptive_coeff_heating_all_zones(idf: besos.IDF_class, value: float): """ Modifies the adap_coeff_heating argument for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] # program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' # program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' # program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return
[docs] def change_pmv_setpoint_all_zones(idf: besos.IDF_class, value: float): """ Modifies the pmv_cooling_sp and pmv_heating_sp arguments symmetrically for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] # program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' # program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {-value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return
[docs] def change_pmv_cooling_setpoint_all_zones(idf: besos.IDF_class, value: float): """ Modifies the pmv_cooling_sp argument for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] # program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' # program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' # program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return
[docs] def change_pmv_heating_setpoint_all_zones(idf: besos.IDF_class, value: float): """ Modifies the pmv_heating_sp argument for all zones to match the entered value. :param idf: The eppy or besos IDF class instance. :param value: The value to be applied in the argument. :return: """ ppl_temp = [people.Zone_or_ZoneList_Name.replace(':', '_') for people in idf.idfobjects['People']] for zonename in ppl_temp: program = [p for p in idf.idfobjects['EnergyManagementSystem:Program'] if 'set_zone_input_data' in p.Name and zonename.lower() in p.Name.lower() ][0] # program.Program_Line_1 = f'set adap_coeff_cooling_{zonename} = {value}' # program.Program_Line_2 = f'set adap_coeff_heating_{zonename} = {value}' # program.Program_Line_3 = f'set pmv_cooling_sp_{zonename} = {value}' program.Program_Line_4 = f'set pmv_heating_sp_{zonename} = {value}' # program.Program_Line_5 = f'set tolerance_cooling_sp_cooling_season_{zonename} = {value}' # program.Program_Line_6 = f'set tolerance_cooling_sp_heating_season_{zonename} = {value}' # program.Program_Line_7 = f'set tolerance_heating_sp_cooling_season_{zonename} = {value}' # program.Program_Line_8 = f'set tolerance_heating_sp_heating_season_{zonename} = {value}' return