Package agents.heatPump
Class ThermalResponse
- java.lang.Object
-
- agents.heatPump.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
-
-
Constructor Summary
Constructors Constructor Description ThermalResponse(BuildingParameters buildingParams, HeatPump heatPump, double initialRoomTemperatureInC)
Creates a physicalThermalResponse
building
-
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 temperaturedouble
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 physicalThermalResponse
building- Parameters:
buildingParams
- input data regarding the building type from configheatPump
- input data regarding the heat pump type from configinitialRoomTemperatureInC
- 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 timesolarRadiationInKWperM2
- tilted solar radiation at current timeelectricHeatingPowerInKW
- 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 stepfinalRoomTemperatureInC
- room temperature at next time stepambientTemperatureInC
- ambient temperature at current time stepsolarRadiationInKWperM2
- 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 stepfinalRoomTemperatureInC
- room temperature at next time stepambientTemperatureInC
- ambient temperature at current time stepsolarRadiationInKWperM2
- 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 stepfinalRoomTemperatureInC
- room temperature at next time stepambientTemperatureInC
- ambient temperature at current time stepsolarRadiationInKWperM2
- 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 stepambientTemperatureInC
- ambient temperature at current time stepsolarRadiationInKWperM2
- 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 stepambientTemperatureInC
- ambient temperature at current time stepsolarRadiationInKWperM2
- tilted solar radiation at current time stepelectricHeatingPowerInKW
- 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
-
-