Do setbacks save en...
 
Notifications
Clear all

Do setbacks save energy without compromising comfort?

843 Posts
24 Users
100 Reactions
20.7 K Views
(@sunandair)
Prominent Member Member
2538 kWhs
Joined: 1 year ago
Posts: 345
 

Is this topic causing so much debate because there has always been a problem with heat pumps operating at varying set temperatures? And has someone in the industry just decided it’s easier to just say there is no gain in operating setbacks so don’t bother?

It is obvious to me that Weather Compensation alone is not sufficiently sophisticated enough to handle quick recovery to 21c after a setback of say 17c. And most heat pumps appear to rely on weather compensation. 

If the weather compensation curve is correctly set up - in other words, at its most efficient output - it should only maintain a constant temperature and only gently rise and fall as the outside temperature changes. Whereas when it’s put into the situation of having to raise the room temperature 4 degrees in 3 hours the curve would need to be set at roughly 5c higher flow temperature and so, at an inefficient higher operating output leading to inefficient cycling as it hits the over-temp threshold stops-cools-and reheats etc.

here is a 24hour graph of our WC Curve attempting to reheat without any adjustment to the flow temperature.

607659B3 F4C9 4085 A7C4 C67497D0017A

So enter the arena Auto adapt which constantly operates at least 5c above the WC curve even after a learning period. I believe it’s  the clumsy controls which haven’t been refined at this moment in time which make setbacks challenging. 

I believe there are savings to be had but it requires quite a bit of intervention because the preset schedules and flow temp variation controls are not sophisticated enough.

there are ways to make thing so more efficient as shown below. Such as using a “rebound Setback” I’ve called it that because it uses the setback temp to trigger a reheat to bounce the temperature back up at say 3am so that when the heating comes on the temperature is already raised. We have found the temp can be raised by 2c from one rebound reheat which means the targeting room temperature is that much closer.

The second adjustment is to action a +3c alteration to the WCcurve for 3 hours at the start of he reheat. Neither of these things can be programmed into the schedules.

64F0756D 5ECA 47E0 921D 571A010809C2

These should be within the scope of the heat pump controls but I haven to found a way to schedule it yet.

 


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

@jamespa - thanks for the kind words.

I think I must be much more comfortable with 'making do with what we have' than those with backgrounds in the physical sciences because of my time doing epidemiology, where 'making do' is the norm. We know full well data garnered this way is never perfect (know it so well we hardly ever even say it), but take the view it is better than nothing. To give two examples from recent times: 'do pandemic lockdowns work?' and 'do masks prevent the spread of respiratory viral infections?'. Getting the perfect experimental/control groups for the first question is obviously impossible, but it is also the case for the second example (plus too many variables, not to mention people will not do what they are told!). But they are both very important questions, and we need some sort of 'best possible answer' in all the circs (and the answer can if necessary be 'we don't know' when we don't know) and so we 'make do'. It won't surprise readers familiar with my views that my best considered answer in both the above cases is no. In the latter case, I took particular exception to bossy doctors who relied on materials science and physics to 'prove' masks worked. Perhaps unwittingly and unknowingly I became allergic to physics based explanations of complex biological/human behaviour systems...

I jest - here of course we are dealing with something that does have a rock solid grounding in physics, even if we haven't cracked it yet. With the 'making do' justification preamble out of the way, I think there is some 'making do' we can do with the data I have collected (apologies in advance, this is going to be a long lost, as there is a lot to cover). Take the data for December 2023, which includes the setbacks we are currently working on:

image

There is a LOT of information in there, but let's focus on the OAT (as measured - henceforth OAT always means 'as measured' unless otherwise qualified). During the setback period, apart from the dip in the middle, the OAT is by good fortune reasonably constant, mostly hovering between 11 and 13 degrees. If we look at non-setback periods, can we find intervals where similar OATs prevailed, and the answer is, yes we can! Consider both the 10-11th and 27-28th Dec, and then look at the lower plot at the green bars (energy in), and we consistently see values of around 1kWh an hour or just a fraction over. The red horizontal line marks the 1 kWh level. Here's a zoom in on the 27-28th period (because it is the most similar):

image

For over 24 hours, the system was running is about as close to steady state conditions as we are likely to see in a complex dynamic system, and it is not unreasonable to say that in these conditions, with no setback, energy in will be one or just over one kWh per hour. This is the basis for my statement that the energy in expected value, if running in a parallel universe without setbacks for the setback period, should be close to one, or just over, during this setback period.

The other thing to take from the charts in the current context is that the cold well effect is present, but not that pronounced. Look closely at the setback period, and spot the removal of the chilling effect during the setbacks (six hours is far longer than is needed for the heat pump local OAT to reach the wider OAT):

image

 

It's not really there, most of the time, or if it is, it is very small. I've always thought the cold well effect is not that important, as there isn't really a well, the heat pump is on the highest bit of a mound, ground level falls away on all three sides sooner or later, and the only thing that creates a 'well' is some rather not very dense vegetation on two sides, which is never less than a metre from the heat pump. The other thing worth noting on this chart is the post setback recovery boost, seen more easily in the energy out, but also visible in the energy in, as the spike immediately after the setback.

@scrchngwsl - the above gives my reasoning as to why we should be getting expected energy in without setbacks for the setback period of around one kWh. I've run your latest code (the explanation for the reasons behind the changes just about penetrated the outer cortex of my brain), and the combined observed vs expected plot I get it this:

image

where it can be seen that the expected values are still definitely well below the ballpark 1 kWh number, especially on the right hand side of the plot. Looking at the various plots, I think I may be able to see what is possibly causing this. Consider the scatter plot and regression line for your regression model v2:

image

I think a linear regression line under-predicts at moderate OATs, when IAT-OAT is of the order of say 8 (ie the sort of values we are looking at) and the x (predictor) values (I(IATmOAT^2/(MD02_tmp + 273)) work out at around 0.2 to 0.3. Note how at those low x values, the actual values are above the line, meaning the line equation will under-predict in this range, and this is exactly what happens in above the observed vs expected plot. The residuals etc also indicate something isn't right, note how at low fitted values the residuals are clustered above the line:

image

The scatter plot and residuals suggest to me the relationship isn't linear, instead it has a gentle curve. I therefore modified your code to use polynomial regression (code to follow at the end of post) and got this, which seems to me a better fit:

image

[edit 13 Jan 2024 10:10: above plot replaced with clean line version without split in middle, clean version uses sort() to sort the values to remove the split] The fit looks better and R squared has increased. The residuals etc show  residuals better, Q-Q plot not so good (not sure why or whether we need worry about the Q-Q plot as the residuals are better):

image

Using this version 3 of the regression, we get the following observed vs expected plot:

image

 

This time, the expected value are much closer to the ballpark expected values of around 1 kWh per hour, and the setback_saving_percent is given as 22.8%. 

Lastly, I just want to recap on the importance of the normality assumption, which is the underlying reason why I think this version 3 plot is the best estimate so far. The way the plot works is that the expected value, happening as it does in a parallel universe, is the average value of what in that parallel universe would be actual values that randomly vary a bit this way and that. However, because the random variation is normally distributed, if we sum enough values, and 24 values or more is enough, then the random variation cancels out, and the sum becomes a valid measure. This can only happen in the residuals are spread evenly about zero, as in the version 3 model. If they are not, as they are not, as they are not in the version 2 model, there is bias, and the regression equation will either under or over predict the expected values, in this case, under predict, because the residuals are above zero in the range we are interested in for the setback period we are looking at (lowish IATmOAT values).    

As ever usual caveats apply, only one setback period in one house/heating system, in one set of environmental conditions.  

 

This post was modified 4 months ago 2 times by cathodeRay

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

And here is the version 3 (polynomial regression) code [edit 13 Jan 2024 10:00: now with sort added to remove split in regression line plot, and use fitted() rather than predict(), both give same result, but fitted() is more 'correct]:

# midea hourly modelling
library(tidyverse)
library(lubridate)

midea_data_raw <- read_csv("z:\\modbus\\midea_hr_data_dec_2023.csv")

# only include data from before setback enabled, and isn't doing DHW
# also add a column for IAT-OAT
midea_data_clean_nosetback <- midea_data_raw %>%
  filter(dhw_kWh_out == 0,
         datetime < "2023-12-16T00:01:01") %>%
  mutate(IATmOAT = MD02_tmp - ambient)

# fit the model
lm_htg_in_quadratic <- lm(htg_kWh_in ~ poly(I(IATmOAT^2/(MD02_tmp + 273)), 2), data = midea_data_clean_nosetback)

# cs addition: scatter plot and regression line
plot(htg_kWh_in ~ I(IATmOAT^2/(MD02_tmp + 273)), data = midea_data_clean_nosetback, 
     main='Scatter Plot and Regression Line v3 Polynomial',col=rgb(0.4,0.4,0.8), pch=16 , cex=0.6 )
lines(sort(midea_data_clean_nosetback$IATmOAT^2/(midea_data_clean_nosetback$MD02_tmp + 273)), 
      sort(fitted(lm_htg_in_quadratic)),
      col='firebrick', lwd=2)
modsum = summary(lm_htg_in_quadratic)
r2label = bquote(italic(R)^2 == .(format(modsum$r.squared, digits = 3)))
text(x = 0.3, y = 4, labels = r2label)

# CS residuals
res <- resid(lm_htg_in_quadratic)
plot(fitted(lm_htg_in_quadratic), res, main='Residuals for v2', col=rgb(0.4,0.4,0.8), pch=16 , cex=0.6 )
abline(0,0, col='firebrick')

# CS Q_Q plot
qqnorm(res, main='Q-Q Plot for v2', col=rgb(0.4,0.4,0.8), pch=16 , cex=0.6 )
qqline(res, col='firebrick')

summary(lm_htg_in_quadratic)
par(mfrow = c(2, 2))
plot(lm_htg_in_quadratic, ask=FALSE)

# now let's look at the setback days
# we need a different "IAT", however, as the point of the setback is to
# reduce the average IAT! so let's use the average IAT from the "daytime" hours
# and just use that for the whole day. This won't be accurate hour-by-hour, but
# it should average out over the course of the day.
# we also need to correct for the ambient temp during the setback hours being
# too high, because the HP is off and the cold well is no longer there.
midea_data_clean_yessetback <- midea_data_raw %>%
  filter(dhw_kWh_out == 0,
         datetime >= "2023-12-16T00:01:01",
         datetime < "2023-12-24T00:01:01") %>%
  group_by(day(datetime)) %>%
  mutate(IAT_avg = sum(MD02_tmp * (htg_kWh_out > 0.1)) / sum(htg_kWh_out > 0.1),
         ambient_measured = ambient) %>%
  ungroup() %>%
  mutate(ambient_modified = ifelse(htg_kWh_out < 0.1, NA, ambient_measured),
         last_ambient = lag(ambient_modified),
         next_ambient = lead(ambient_modified)) %>%
  fill(last_ambient, .direction = "down") %>%
  fill(next_ambient, .direction = "up") %>%
  mutate(ambient_modified = if_else((htg_kWh_out < 0.1), (last_ambient + next_ambient)/2, ambient_measured),
         IATmOAT_modified = IAT_avg - ambient_modified,
         IATmOAT_measured = MD02_tmp - ambient_measured,
         IATmOAT = IATmOAT_modified)

# apply the model to the setback period
modelled_htg_kWh_in_yessetback <- data.frame(
  midea_data_clean_yessetback,
  modelled_kWh_in_quadratic = predict(lm_htg_in_quadratic,
                                      midea_data_clean_yessetback)
)

# compare actual with modelled kWh usage
modelled_htg_kWh_in_yessetback %>%
  summarise(htg_kWh_in = sum(htg_kWh_in),
            modelled_kWh_in = sum(modelled_kWh_in_quadratic)) %>%
  mutate(setback_saving_percent = modelled_kWh_in / htg_kWh_in - 1)

ggplot(modelled_htg_kWh_in_yessetback,
       aes(x = datetime)) +
  geom_line(aes(y = htg_kWh_in), colour = "blue") +
  geom_line(aes(y = modelled_kWh_in_quadratic), colour = "red")
This post was modified 4 months ago by cathodeRay

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Moderator
13719 kWhs
Veteran Expert
Joined: 3 years ago
Posts: 4164
 

@sunandair

There appears to be several inter-connected problems when operating setbacks on a heat pump system.

As you mentioned there is difficulty in the actual setting of required temperatures in a scheduled automatic manner.

The recovery time will probably vary under different weather conditions.

By trying to recover the room temperature too quickly, any energy saving made during the setback period will possibly be lost, because the heat pump will need to work harder at lower efficiency.


   
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

Posted by: @sunandair

Is this topic causing so much debate because there has always been a problem with heat pumps operating at varying set temperatures? And has someone in the industry just decided it’s easier to just say there is no gain in operating setbacks so don’t bother?

It is obvious to me that Weather Compensation alone is not sufficiently sophisticated enough to handle quick recovery to 21c after a setback of say 17c. And most heat pumps appear to rely on weather compensation. 

It's certainly true that basic WC as used by most heat pumps is really only good enough for steady state operation with relatively slow over time changes in parameters. That why we have Homely, Mitsubishi Auto-Adapt and my python auto-adapt script, with the latter being both by far the simplest, and also the most accessible (code is visible and can be edited, try that on Homely or Mitsubishi Auto-Adapt!).

I also think it is very plausible heat pump manufacturers (and energy suppliers) want us to run our heat pumps 24 hours a day. It's the easiest way of getting warm comfortable heating, it ensures the heat pumps wear out faster (when in setback, mine is resting for 25% of the time), and it almost certainly increases total energy use, as compared to more sophisticated control arrangements. They probably also take the view that we are too thick to be able to use sophisticated controls.   

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Moderator
13719 kWhs
Veteran Expert
Joined: 3 years ago
Posts: 4164
 

@scrchngwsl

If you look through the raw data measured at 1 minute intervals, and I think some of the charts produced by CR, the variation in measured OAT from the true value would appear to be dependent upon the weather conditions. In milder conditions (10C to 12C) the deviation is quite small (probably 1C), but as temperatures get closer to zero and the heat pump is working much harder, the deviation would appear to be 4C or even 5C.

It should be noted that a 1C variation in OAT equates to an approximately 0.5kWh change in thermal energy output from the heat pump, which could lead to an error of over 10% in any calculations.

Is this taken into account in your calculations?

The other problem of course is the temperature drop across the PHE, which also could vary with loading.

How do you account for varying efficiency due to increased LWT? 

This post was modified 4 months ago by Derek M

   
ReplyQuote



cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

Posted by: @derek-m

In milder conditions (10C to 12C) the deviation is quite small (probably 1C), but as temperatures get closer to zero and the heat pump is working much harder, the deviation would appear to be 4C or even 5C.

I think the higher variation is probably due to the defrost cycles, the heat pump is literally blowing hot and cold, and the local OAT varies as a result.

Midea 14kW (for now...) ASHP heating both building and DHW


   
ReplyQuote
(@derek-m)
Illustrious Member Moderator
13719 kWhs
Veteran Expert
Joined: 3 years ago
Posts: 4164
 

Posted by: @cathoderay

Posted by: @derek-m

In milder conditions (10C to 12C) the deviation is quite small (probably 1C), but as temperatures get closer to zero and the heat pump is working much harder, the deviation would appear to be 4C or even 5C.

I think the higher variation is probably due to the defrost cycles, the heat pump is literally blowing hot and cold, and the local OAT varies as a result.

I think that if you look closely at the data you will find that that is not the case.

 


   
ReplyQuote
(@scrchngwsl)
Estimable Member Member
1387 kWhs
Joined: 2 years ago
Posts: 87
 

Posted by: @cathoderay

The scatter plot and residuals suggest to me the relationship isn't linear, instead it has a gentle curve. I therefore modified your code to use polynomial regression (code to follow at the end of post) and got this, which seems to me a better fit:

-- Attachment is not available --

I'm not sure why the lines() plot of the line splits in the middle. Nonetheless, the fit looks better and R squared has increased. The residuals etc show  residuals better, Q-Q plot not so good (not sure why or whether we need worry about the Q-Q plot as the residuals are better):

-- Attachment is not available --

Using this version 3 of the regression, we get the following observed vs expected plot:

-- Attachment is not available --

 

This time, the expected value are much closer to the ballpark expected values of around 1 kWh per hour, and the setback_saving_percent is given as 22.8%. 

Lastly, I just want to recap on the importance of the normality assumption, which is the underlying reason why I think this version 3 plot is the best estimate so far. The way the plot works is that the expected value, happening as it does in a parallel universe, is the average value of what in that parallel universe would be actual values that randomly vary a bit this way and that. However, because the random variation is normally distributed, if we sum enough values, and 24 values or more is enough, then the random variation cancels out, and the sum becomes a valid measure. This can only happen in the residuals are spread evenly about zero, as in the version 3 model. If they are not, as they are not, as they are not in the version 2 model, there is bias, and the regression equation will either under or over predict the expected values, in this case, under predict, because the residuals are above zero in the range we are interested in for the setback period we are looking at (lowish IATmOAT values).    

As ever usual caveats apply, only one setback period in one house/heating system, in one set of environmental conditions.  

 

I also found other forms of the curve that better fit the data when doing my EDA, many of which confused the hell out of me, including the polynomial in IATmOAT^2/(MD02_tmp + 273). I think these different forms are surely down to factors specific to your setup. As @jamespa said, the cold well will affect the COP of the heat pump, but won't affect the heat loss -- this will surely result in an extra term in the equation as the COP will decrease faster than the heat loss increases as IAT-OAT increases. I don't really have a derivation for why it is a square term (that is, why it is IATmOAT^4/(MD02_tmp + 273)^2 and not some other power of IATmOAT^2/(MD02_tmp + 273)), but as you say that is what the data shows. The data also shows that your COP is not inversely proportional to IATmOAT, but proportional to -(IATmOAT), which I find very strange -- and this time I can't suggest a physical reason why.

When I modelled based on the two key things that a setback ought to do -- i.e. reduce the average IAT-OAT, and increase the average COP -- my motivation was to find out what a setback would do in general, rather than what it has done in your specific case. I'm happy to conclude that in your case the setback does indeed give you a bigger saving than 6%, but I'd also conclude that, in general, the saving might only be in the order of 6%. I think if you wanted to conclude something like 22% though you'd need to run it the whole winter - a bigger claim requires bigger evidence. Probably you'd also want to take actual outdoor temperature readings from a different side of your house - then you can properly separate the "heat loss vs IATmOAT" term from the "COP vs IATmOAT" term.

Your setback, in addition to those two key things, also eliminates your cold well for 25% of the day, but introduces a slightly larger cold well for the remaining 75% of the day. Perhaps others would benefit from a "cold well reset" as well, in which case maybe they'd be closer to 22% than 6%.

ASHP: Mitsubishi Ecodan 8.5kW
PV: 5.2kWp
Battery: 8.2kWh


   
Mars reacted
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

Posted by: @derek-m

I think that if you look closely at the data you will find that that is not the case.

I think that if you look closely at the data you will find that that is the case. Defrosts indicated by the LWT dropping below the RWT:

image

 

Midea 14kW (for now...) ASHP heating both building and DHW


   
Mars reacted
ReplyQuote
cathodeRay
(@cathoderay)
Famed Member Moderator
6905 kWhs
Joined: 2 years ago
Posts: 1391
Topic starter  

Posted by: @scrchngwsl

a bigger claim requires bigger evidence

I absolutely agree - that is why the opening remarks in my very first original post in this thread, answering the question in the thread title, were

"An answer appears to be yes. I say 'an answer', rather than 'the answer', because this is one night in one building, with the weather conditions that prevailed at the time. Other buildings and/or other prevailing weather conditions may - very probably will - give different results."

and why I ended my last long post with

"As ever usual caveats apply, only one setback period in one house/heating system, in one set of environmental conditions."

The problem is very few people are willing to collect and post their data. As time goes by I can collect more data, but at the present time I only have data for the period I have been doing full monitoring, which in effect started at the beginning of this heating season, when I added the IAT sensor. That leaves us with the choice of either making do with what we have (and adding the caveats as I have), or doing nothing.

 

Midea 14kW (for now...) ASHP heating both building and DHW


   
Mars reacted
ReplyQuote
(@sunandair)
Prominent Member Member
2538 kWhs
Joined: 1 year ago
Posts: 345
 

Thank you @derek-m for your reply. 

My post dealt directly with the issues of controlling the speed of recovery. So perhaps you might like to read my post again and comment on the actual detail of it since I am making an emphasis on controlling the recovery temperature better than weather compensation and better even, than Auto Adapt. Indeed I’ve also commented on the benefit of a ‘rebound setback’ which seems to have missed your attention. 

I think the post certainly addresses your last point -

By trying to recover the room temperature too quickly, any energy saving made during the setback period will possibly be lost, because the heat pump will need to work harder at lower efficiency.” ..... Whilst this is an important generalisation it doesn’t possess any specific observation about the post. 

The main part of my post was.....

Posted by: @sunandair

If the weather compensation curve is correctly set up - in other words, at its most efficient output - it should only maintain a constant temperature and only gently rise and fall as the outside temperature changes. Whereas when it’s put into the situation of having to raise the room temperature 4 degrees in 3 hours the curve would need to be set at roughly 5c higher flow temperature and so, at an inefficient higher operating output leading to inefficient cycling as it hits the over-temp threshold stops-cools-and reheats etc.

here is a 24hour graph of our WC Curve attempting to reheat without any adjustment to the flow temperature.

607659B3 F4C9 4085 A7C4 C67497D0017A

So enter the arena Auto adapt which constantly operates at least 5c above the WC curve even after a learning period. I believe it’s  the clumsy controls which haven’t been refined at this moment in time which make setbacks challenging. 

I believe there are savings to be had but it requires quite a bit of intervention because the preset schedules and flow temp variation controls are not sophisticated enough.

there are ways to make thing so more efficient as shown below. Such as using a “rebound Setback” I’ve called it that because it uses the setback temp to trigger a reheat to bounce the temperature back up at say 3am so that when the heating comes on the temperature is already raised. We have found the temp can be raised by 2c from one rebound reheat which means the targeting room temperature is that much closer.

The second adjustment is to action a +3c alteration to the WCcurve for 3 hours at the start of he reheat. Neither of these things can be programmed into the schedules.

64F0756D 5ECA 47E0 921D 571A010809C2

These should be within the scope of the heat pump controls but I haven to found a way to schedule it yet.

 

ps

There are savings to be made from a setback using Auto adapt but imo it should be modified to have a slower recovery period program. Once it learns to recover from More than a 1 degC rise it adopts a higher recovery habit which it doesn’t seem to unlearn.

However the chart below shows today’s 24 hour chart of room temperatures showing wc with a +3 start period for the first 3 hours. Which is more efficient than Auto Adapt which seems to add 5c to the WCcurve setting and often keeps a higher flow temperature all day.

46329A44 91FC 4E5D A6C1 A33C81A4954C

   
Derek M reacted
ReplyQuote



Page 67 / 71



Share:

Join Us!

Latest Posts

Heat Pump Humour

Members Online

x  Powerful Protection for WordPress, from Shield Security
This Site Is Protected By
Shield Security