Skip to content

Monthly Energy Balance


Applies a monthly energy balance to each building, in order to determine monthly heating and cooling demands. The implementation is based on the German norm "DIN V 18599". The monthly energy balance is a static thermal model, calculating the overall energy balance of buildings with a monthly resolution, based on the DIN V 18599-2. The energy balance includes all heat sources (intern gains, solar gains...) and sinks (transmission, ventilation...) within the building zone, its results are the monthly space heating and cooling demand.

Technical information

Class MonthlyEnergyBalance
Superclass WorkflowStepWithSimStadtGraphics
Source location simstadt/src/main/java/eu/simstadt/workflowsteps/
Package eu.simstadt.workflowsteps
Project simstadt



Calculation mode (calculationMode)

Depending on the location, it might make sense to either calculate:

  • Heating

  • Cooling

  • Heating and cooling

Note that monthly energy balance probably is not very accurate for cooling simulation, because short-term cooling demand peaks in the afternoon cannot be considered.

  • Type : CalculationMode
  • Default : HEATING
  • Getter : getCalculationMode()
  • Setter : setCalculationMode(CalculationMode)

Consumer behaviour (consumerBehaviour)

Enables to choose between different "consumer behaviour Type":

  • Standard (following strictly the norm)

  • or the user factor "IWU_Nutzung", empirically determined by IWU based on a comparison study between the norm-calculated and actual energy use.

  • Type : ConsumerBehaviourType
  • Default : IWU_NUTZUNG
  • Possible values : STANDARD, IWU_NUTZUNG
  • Getter : getConsumerBehaviour()
  • Setter : setConsumerBehaviour(ConsumerBehaviourType)

Write INSEL model? (writeInselModel)

For each simulated building, should a separate INSEL model be written?

It could be useful for debugging purposes or additional simulation.

Note that this model is not used in SimStadt and might lead to slightly different results.

  • Type : boolean
  • Default : false
  • Getter : isWriteInselModel()
  • Setter : setWriteInselModel(boolean)

Used in