sinergym.utils.rewards.ExpReward

class sinergym.utils.rewards.ExpReward(range_comfort_winter=(20.0, 23.5), range_comfort_summer=(23.0, 26.0), energy_weight=0.5, lambda_energy=0.0001, lambda_temperature=1.0)
__init__(range_comfort_winter=(20.0, 23.5), range_comfort_summer=(23.0, 26.0), energy_weight=0.5, lambda_energy=0.0001, lambda_temperature=1.0)

Reward considering exponential absolute difference to temperature comfort.

\[R = - W * lambda_E * power - (1 - W) * lambda_T * exp( (max(T - T_{low}, 0) + max(T_{up} - T, 0)) )\]
Parameters:
  • range_comfort_winter (tuple, optional) – Temperature comfort range for cold season. Defaults to (20.0, 23.5).

  • range_comfort_summer (tuple, optional) – Temperature comfort range fot hot season. Defaults to (23.0, 26.0).

  • energy_weight (float, optional) – Weight given to the energy term. Defaults to 0.5.

  • lambda_energy (float, optional) – Constant for removing dimensions from power(1/W). Defaults to 1e-4.

  • lambda_temperature (float, optional) – Constant for removing dimensions from temperature(1/C). Defaults to 1.0.

Methods

__init__([range_comfort_winter, ...])

Reward considering exponential absolute difference to temperature comfort.

calculate(power, temperatures, month, day)

Reward calculus.

calculate(power, temperatures, month, day)

Reward calculus.

Parameters:
  • power (float) – Power consumption.

  • temperatures (list) – Indoor temperatures (one per zone).

  • month (int) – Current month.

  • day (int) – Current day.

Returns:

Reward value.

Return type:

float