Class ThermalResponse


  • public class ThermalResponse
    extends Object
    Describes basic thermodynamic behaviour of one specific type using the 1R1C model according to https://doi.org/10.1016/j.enbuild.2020.110144.
    Author:
    Evelyn Sperber
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double calcHourlyHeatDemandInKW​(double initialRoomTemperatureInC, double finalRoomTemperatureInC, double ambientTemperatureInC, double solarRadiationInKWperM2)
      Calculates the heat demand required to heat the building from the initial room temperature to the final room temperature
      double calcHourlyPowerDemandSimpleInKW​(double initialRoomTemperatureInC, double finalRoomTemperatureInC, double ambientTemperatureInC, double solarRadiationInKWperM2)
      Calculates electrical power demand required to heat the building from the initial room temperature to the final room temperature.
      double calcHourlyPowerDemandWithHysteresisInKW​(double initialRoomTemperatureInC, double finalRoomTemperatureInC, double ambientTemperatureInC, double solarRadiationInKWperM2)
      Calculates electrical power demand required to heat the building from the initial room temperature to the final room temperature.
      double[] calcMinMaxReachableRoomTemperatureInC​(double initialRoomTemperatureInC, double ambientTemperatureInC, double solarRadiationInKWperM2)
      Calculates minimal and maximal room temperature that can be reached depending on whether heat pump is off, or completely on.
      double calcNextRoomTemperatureInC​(double initialRoomTemperatureInC, double ambientTemperatureInC, double solarRadiationInKWperM2, double electricHeatingPowerInKW)
      Calculates the next room temperature at given ambient conditions and heating power.
      double getCurrentRoomTemperatureInC()  
      double getHeatDemandInKW()  
      void updateBuildingTemperature​(double ambientTemperatureInC, double solarRadiationInKWperM2, double electricHeatingPowerInKW)
      Calculates the room temperature in the next time step
    • Constructor Detail

      • ThermalResponse

        public ThermalResponse​(BuildingParameters buildingParams,
                               HeatPump heatPump,
                               double initialRoomTemperatureInC)
        Creates a physical ThermalResponse building
        Parameters:
        buildingParams - input data regarding the building type from config
        heatPump - input data regarding the heat pump type from config
        initialRoomTemperatureInC - room temperature at start of simulation
    • Method Detail

      • updateBuildingTemperature

        public void updateBuildingTemperature​(double ambientTemperatureInC,
                                              double solarRadiationInKWperM2,
                                              double electricHeatingPowerInKW)
        Calculates the room temperature in the next time step
        Parameters:
        ambientTemperatureInC - ambient temperature at current time
        solarRadiationInKWperM2 - tilted solar radiation at current time
        electricHeatingPowerInKW - electric power of heat pump at current time
      • calcHourlyHeatDemandInKW

        public double calcHourlyHeatDemandInKW​(double initialRoomTemperatureInC,
                                               double finalRoomTemperatureInC,
                                               double ambientTemperatureInC,
                                               double solarRadiationInKWperM2)
        Calculates the heat demand required to heat the building from the initial room temperature to the final room temperature
        Parameters:
        initialRoomTemperatureInC - room temperature at current time step
        finalRoomTemperatureInC - room temperature at next time step
        ambientTemperatureInC - ambient temperature at current time step
        solarRadiationInKWperM2 - tilted solar radiation at current time step
        Returns:
        heatDemandInKW (Positive) heat demand of heat pump
      • calcHourlyPowerDemandSimpleInKW

        public double calcHourlyPowerDemandSimpleInKW​(double initialRoomTemperatureInC,
                                                      double finalRoomTemperatureInC,
                                                      double ambientTemperatureInC,
                                                      double solarRadiationInKWperM2)
        Calculates electrical power demand required to heat the building from the initial room temperature to the final room temperature. No hysteresis is implemented to avoid interference with dynamic programming algorithm.
        Parameters:
        initialRoomTemperatureInC - room temperature at current time step
        finalRoomTemperatureInC - room temperature at next time step
        ambientTemperatureInC - ambient temperature at current time step
        solarRadiationInKWperM2 - tilted solar radiation at current time step
        Returns:
        (Positive) power demand of heat pump
      • calcHourlyPowerDemandWithHysteresisInKW

        public double calcHourlyPowerDemandWithHysteresisInKW​(double initialRoomTemperatureInC,
                                                              double finalRoomTemperatureInC,
                                                              double ambientTemperatureInC,
                                                              double solarRadiationInKWperM2)
        Calculates electrical power demand required to heat the building from the initial room temperature to the final room temperature. A hysteresis is implemented in order to keep the room temperature within a given range that is defined by the temperature deadband.
        Parameters:
        initialRoomTemperatureInC - room temperature at current time step
        finalRoomTemperatureInC - room temperature at next time step
        ambientTemperatureInC - ambient temperature at current time step
        solarRadiationInKWperM2 - tilted solar radiation at current time step
        Returns:
        (Positive) power demand of heat pump considering hysteresis
      • calcMinMaxReachableRoomTemperatureInC

        public double[] calcMinMaxReachableRoomTemperatureInC​(double initialRoomTemperatureInC,
                                                              double ambientTemperatureInC,
                                                              double solarRadiationInKWperM2)
        Calculates minimal and maximal room temperature that can be reached depending on whether heat pump is off, or completely on.
        Parameters:
        initialRoomTemperatureInC - room temperature at current time step
        ambientTemperatureInC - ambient temperature at current time step
        solarRadiationInKWperM2 - tilted solar radiation at current time step
        Returns:
        Tuple of minimum and maximum reachable room temperature
      • calcNextRoomTemperatureInC

        public double calcNextRoomTemperatureInC​(double initialRoomTemperatureInC,
                                                 double ambientTemperatureInC,
                                                 double solarRadiationInKWperM2,
                                                 double electricHeatingPowerInKW)
        Calculates the next room temperature at given ambient conditions and heating power.
        Parameters:
        initialRoomTemperatureInC - room temperature at current time step
        ambientTemperatureInC - ambient temperature at current time step
        solarRadiationInKWperM2 - tilted solar radiation at current time step
        electricHeatingPowerInKW - electric heating power of heat pump at current time step
        Returns:
        Next room temperature
      • getCurrentRoomTemperatureInC

        public double getCurrentRoomTemperatureInC()
        Returns:
        current room temperature
      • getHeatDemandInKW

        public double getHeatDemandInKW()
        Returns:
        current heat demand of heat pump