architecture-building-systems / sia_380-1-full_version

This code is the python implemented form of SIA380-1. It is not a simplified version.
4 stars 1 forks source link

Heating setpoint has a huge impact on hourly heating power output #117

Closed kuhnal closed 3 years ago

kuhnal commented 3 years ago

The following heating power in kW were calculated with specific heating setpoints (in brackets):

Here the calculated cooling power in kW for different cooling setpoints:

It seems that the effect is rather small with cooling power dim. (Which is generally overestimated). It should also be noted that the Norm-Heizlast according to SIA 384.201 (monthly calc.) is only correct for norm temperature, so 20° room temperature. One could though simplify the adaption to a diverging indoor temperature by using (/ 20 * setpoint). This is not highly important to adapt, as the embodied heater emissions are only calculated for scenario 0. One should keep in mind to put 20° as heating setpoint for scenario 0.

I could imagine a possible solution for the hourly calculation issue by using yearly "Volllaststunden", for example from SIA 2024 (this is available for cooling as well as for heating). Therefore, the heating/cooling power is directly proportional with heating/cooling energy demand. I will test this and let you know if that could be a possible option.

kuhnal commented 3 years ago

Update:

Heating power calculated with SIA 384.201 (monthly) and Volllaststunden (hourly)

Here the calculated cooling power in kW, monthly as well as hourly by Volllaststunden:

The issue is not solved by using Volllaststunden, neither for heating nor cooling. The yearly Volllaststunden probably only work for standard values. As soon as diverging temperature levels are used for the calculation, the power is overestimated or underestimated. The same for cooling. As most of the time, cooling would not be necessary (according to SIA), the assumed Volllaststunden are rather on the lower side which again, overestimates the needed power.

In a next step, I would like to try an other approach, for example by using a certain percentile of energy demands.

kuhnal commented 3 years ago

Calculation with percentiles, always for 20° (heating) and 28° (cooling) (power demand cooling and heating; hourly calculation): Comparison value (monthly calculations): 43.4kW for heating (SIA 384.201), 29.7kW for cooling (hardcoded 10W/m2)

Heating (all values taken into account | only values with heating demand >0.001W): max: 39.6kW 95%: 23.9kW | 31.8kW 90%: 16.5kW | 28.8kW 85%: 9.9kW | 26.8kW 80%: 0.152kW | 25.4kW 75%: 0kW | 23.8kW 70%: 0kW | 22.5kW 50%: 0kW | 16.5kW 25%: 0kW | 9.8kW

Cooling (all values taken into account | only values with cooling demand <-0.001W ): #64 max: 94kW 95%: 47.9kW | 71.4kW 90%: 27.9kW | 64.3kW 85%: 10.9kW | 59.2kW 80%: 0kW | 54.2kW 75%: 0kW | 49.4kW 70%: 0kW | 44.9kW (with a shading factor of 0.5 instead of 0.855, here a value of 29.6kW was achieved) 50%: 0kW | 30.6kW 25%: 0kW | 14.5kW

Whereas for heating, the heating power seems to be most accurate with max. hourly value, for cooling a percentile of somewhere between 50% and 25% seems most reliable. I hoped that outliers caused these high cooling powers, which is not the case. Maybe shading should be taken into account more precisely. @Linwal what do you think? Edit: solving this issue will also help with issue #109

Linwal commented 3 years ago

Thank you for this analysis. This seems to be a tricky issue. I have to dig a bit deeper into your analysis, right now, here is what comes to my mind. I'll add more information once I looked at it.

I have some Ideas that I need to check where the high hourly max power could come from:

  1. In the very first hour, RC initializes at 20°C then the whole building is heated to the heating set point within one hour.
  2. In case of free cooling by increased ventilation, it could be that the building cools down below that heating set point and then has to heat up (not sure about this one, have to check how the code is written)
  3. Depending on the ventilation rate, low ambient temperature could leat do high hourly ventilation losses. Does your building have a high thermal mass?

If dimensioning is always done with 20°C, then we can just fix that in the dimensioning function in simulation_engine.py Then Scenario 0 can also be different from 20.

Shading can be an issue, especially with low thermal mass, however, for the swiss context, increased ventilation rates should/could often be enough to counter overheating. There is an issue on shading. #88 Eventually this can be implemented.

kuhnal commented 3 years ago

The building I used has high thermal mass and ventilation according to SIA. Increased ventilation at a rate of 1.38 instead of 0.7 (max. capacity of ventilation system).

Linwal commented 3 years ago

@kuhnal, ok then let me add shading. To not get too much into control strategies, do you think, a monthly shading factor would make sense. Basically representing the multiplication of f, fs etc from SIA. SIA uses annual factors, but in my opinion this does not represent the situation well enough.

kuhnal commented 3 years ago

I agree that annual factors do not make sense. Therefore, I would also prefer monthly factors. For input simplification, maybe even seasonal factors would make sense.

kuhnal commented 3 years ago

Update after implementing shading

Weatherfile: Zurich_historic Cooling power at 70% percentile (hourly), Heating Power at 100% percentile (hourly). Remember the comparison values (from monthly calculation): cooling power of 29.7kW (hardcoded 10W/m2), heating power of 43.4kW (nom. heating power at 20°C) Edit: Viola and Wyss et al. : 40.8kW heating power

Settings Cooling setting: 28° Heating setting: 20° Results Shading (1 1 1 1): 44.9kW cooling, 39.6kW heating Shading (1 0.75 0.5 0.75): 28.2kW cooling, 39.6kW heating Shading (0.5 0.5 0.5 0.5): 27.4kW cooling, 42.9kW heating --> Cooling and heating seems to make sense.

Settings Cooling setting: 25° Heating setting: 23° Results Shading (1 1 1 1): 47.8kW cooling, 216.1kW heating Shading (1 0.75 0.5 0.75): 33.7kW cooling, 216.1kW heating Shading (0.5 0.5 0.5 0.5): 31.2kW cooling, 216.1kW heating -->Cooling seems to make sense to me. With a percentile of 100%, heating power is clearly overestimated

Settings Heating setting: 23° Results Shading (1 1 1 1), percentile: 99.9%: 152.2kW Shading (1 1 1 1), percentile: 99.8%: 109.9kW Shading (1 1 1 1), percentile: 99.7%: 83.2kW Shading (1 1 1 1), percentile: 99.6%: 62.6kW *Shading (1 1 1 1), percentile: 99.5%: 46.7kW Shading (1 1 1 1), percentile: 99%: 41.6kW Shading (1 1 1 1), percentile: 98%: 39.7kW Shading (1 1 1 1), percentile: 95%: 36.6kW --> There are very little amount of values causing this huge heating power

Settings Heating setting: 20° Results Shading (1 1 1 1), percentile: 100%: 39.6kW *Shading (1 1 1 1), percentile: 99.5%: 36.6kW --> That is not the case at lower heating settings

Settings Heating setting: 25° Results Shading (1 1 1 1), percentile: 100%: 348.8kW *Shading (1 1 1 1), percentile: 99.5%: 47.7kW --> There, again, are very little amount of values causing this huge heating power

Conclusion: Cooling seems to make sense with shading at a percentile of 70%. Heating power however, only gives reliable results at 100% percentile at a heating setpoint of 20°C. At higher temperatures, there are very few outliers generating huge heating powers. It can be still discussed, which percentile should be chosen (I would suggest 99.5%). Already a difference of 0.1% can make a big impact.

kuhnal commented 3 years ago

By implementing the percentile calculation for cooling and heating power (70% for cooling and 99.5% for heating) and the possibility to implement different shading strategies, this issue could be solved.