House Thermal Inertia and Roomstat Setback (some cautionary notes)

To me, this means that all heat pumps should employ robust and effective auto-adaptation as the default control mechanism, with no need to dick about manually setting WC curves etc.

4 Likes

Fully agree. And this is coming.

1 Like

@langestefan
I’m not sure that I can. One or two people have asked me - “Should I get a heat pump?”. I’ve answered no, wait for everybody to have found all the pitfalls and how to avoid them.

@ectoplasmosis
With my control engineer’s hat on, this is the difference between an open loop control system and a closed loop.

The weather dependency curve is a ‘best guess’ at the amount of heat to input into the dwelling based on the outside temperature - and ignores all the other variables @langestefan has cited above and included in his model. It’s up to the user to ‘tune’ the system, that is to correct the combined effect of all these things, hoping the errors end up cancelling each other out to within tolerable limits. So it’s an open loop system - it can’t self-adjust for something changing. The control loop is closed by the user fiddling with the curve to compensate for the change.

On the other hand, the closed loop system will measure the desired condition (temperature) and maintain it automatically under all circumstances. This problem seems be a lot harder than a lot of manufacturers, suppliers and installers anticipated. It needs a heat pump that can run continuously at anything between 0% and 100% of its rated output, and it needs a continuously variable measurement of the temperature it’s aiming for, so that the loop can be closed and it’s stable, with no continuous oscillations and overshoots.

And so it should. Maybe it hasn’t come yet because, to quote a recent post, a heat pump isn’t a gas boiler, and it hasn’t sunk in yet, everywhere. That’s why I’ve told people - wait.

I think you’re too pessimistic. Heat geek has proved that with common sense and not too much effort you can get a 4.5 sCOP system, which runs cheaper than a gas boiler in the UK, which would need about 3.3 sCOP last time I checked. In the netherlands it’s even lower, something like 2.0 sCOP would break even. What we are now working on is getting the price down, improving the controls, increasing reliability. I’d say that’s finetuning, and the basics are there and are solid.

Heat pump controllers are already closed loop, but they only look at the current state of the system and not at the future states. Even when you include weather compensation you are only really looking at the current weather temperature and predicting how long that takes to propogate inside your house.

More sophisticated controls can make use of future states of the system, which would have to be forecast. That’s what the thermal network is for. If your thermal capacitances and resistances match the real system then you can pretty accurately predict how your house will respond. In control terminology this is called Model Predictive Control. It’s been around for a long time, nothing new really, just not really applied to heat pumps yet

2 Likes

The inner-most loop, yes. But the dwelling is often outside that particular loop.

I’ve only had experience trimming in the WDC during Feb but with only a few tweaks along the way during the first week I’ve got it working from -2C to +12C outside temps with a pretty stable inside temp.
We’ve had hard frosts, cold dry and now windy warmer wet weather.

Variation from our target room temperature is +/- 0.3C!
I say room temperature, it is whole house temperature.

It’s much less variation than the gas boiler had or the thermostat on the heat pump could achieve.

I guess UFH and reasonable levels of insulation / airtightness smooths things out. With UFH changes take longer to take effect.

I’ve yet to see how the curve handles even warmer temps. Worst case is a tweak of the overall flow temp for quick change and then modification to the warmer end of the WDC from the control app or turn the thing off manually, much as you would with a boiler.

Will be interesting to see next year if it just works right through…

These things would not be for everybody though.
I think it should be a ‘good’ self learning system to be for everyone.

2 Likes

A nice approach, @langestefan, but regretfully way over my head :upside_down_face:. (There’s a dusty, cobweb-laden part of my brain labelled “Laplace Transforms and the Relaxation Technique”, so your equations are ringing a faint bell, but it seems “access is denied” nowadays :confused:.)
Keep up the good work, though…

2 Likes

If there’s any interest I could write a blog post about it. I can’t make the equations easier, but I can make it very visual. The idea is exactly the same as what you wrote in your original post :slight_smile:

1 Like

Hi @langestefan,

That would be useful, but if you do, please remember that 1) most of your readers, whilst intelligent, aren’t academics, and 2) they may not have ready access to the detailed data a comprehensive model may require.

2 Likes

Interesting discussion @SarahH!

Hello @langestefan, agreed.

I’ve experimented with this approach in the dynamic heat pump simulator that I’ve written here Dynamic heat pump simulator based on earlier work and an emoncms module to use real data here GitHub - emoncms/dynamic: Dynamic building energy modelling module. The documentation page on the model might be interesting dynamic/docs/dynamicmodel.md at master · emoncms/dynamic · GitHub

The example run when you open the tool gives an example using the thermal mass and conduction parameters for my house (solid stone mid terrace) of a setback to 17C overnight, followed by 18C until 4pm and then a peak time temperature of 19C until 10pm. The suggested saving vs steady state is just over 7%.

A simpler 18C/20C schedule gives a much lower saving e.g ~3% (I adjusted down the PID controller ki parameter here to 0.1 to reduce the overshoot on room temp).

The PID control parameters, how fast you want the response, how high you allow the flow temperature to go in order to speed up the response etc all effect these savings figures quite a bit…

I personally have a temperature set back on my system mostly for night time comfort as it’s too hot otherwise in the bed rooms. This probably makes no sense financially, especially now that Im on Octopus GO. Perhaps there is a case for turning off bed room TRV’s at night and keeping downstairs warm…

4 Likes

I think a very good case for smart TRV that don’t limit temperature other then from a few hours before bedtimes until one hour before end of cheaprate. Maybe also boost flow temperature for last hour of cheaprate.

1 Like

Awesome tool, thanks for sharing!

Key questions are, how do you determine those parameters? How many masses do you include in your model? How do you include disturbances? For example in my own data I see a large mismatch for houses that have underfloor heating but where the emission system is not included as a distinct mass.

Personally I don’t think PID is the right way to control this system and you should do MPC so that you can make use of what you have learned about your house :slight_smile:

I could add that as an control option but I don’t speak any PHP unfortunately :rofl:

This is another interesting point. When applying a setback the controller may determine on its own that it makes no financial sense to do so and just keep heating. So some kind of distinction must be made between setbacks which are purely imposed for economical reasons and setbacks which are imposed to increase comfort.

Thanks @langestefan!

Ooo interesting, some pointers or help with that would be amazing, luckily most of the code javascript (500 lines), html (300 lines) and only a single line of php to set a code path :slight_smile:

Here’s the javascript tools/www/tools/dynamic_heatpump_v1/dynamic_heatpump_v1.js at main · openenergymonitor/tools · GitHub

I found from trial and error that 3 linked RC’s worked quite well for a couple of buildings I have tested this with. What I think would be really neat is a feature to enter an emoncms myheatpump app dashboard url into that tool and for it to use the real monitoring data to automatically “train” the physical model so that you can then run alternative scenarios for e.g the last week of real world data…

E.g I’ve installed monitoring on 5 local heat pump systems that have not yet had their control parameters optimised I’d like to be able to use that data to inform the model parameters and then try different optimisations without having to wait for actual similar weather conditions… I could then show the householder that if they change their schedule to do x, their performance will do y and overall electric use will do z. It may be that performance will go up, comfort will go up but will overall electric also go up or stay similar?

4 Likes

Yeah sorry, I know absolutely nothing about web dev :slight_smile:

I implement my models in DifferentialEquations.jl: Efficient Differential Equation Solving in Julia · DifferentialEquations.jl and Home · ModelingToolkit.jl and then discretize.

This is system identification. Some efforts have been made to automate it for thermal models, for example GitHub - JulienLeprince/fiftyshadesofgrey: This repository exemplifies the automated and scalable method for stochastic model identification of building heat dynamics presented in DOI...

None of the methods I tried worked well enough to be deployed in production though, so I wrote my own. It is a really hard problem to solve since so many parameter values and model structures are ‘plausible’ but fail to generalize well to all weather patterns and building compositions.

1 Like

Thanks @langestefan

Agreed!

and thanks for the links, will have a look!

1 Like

Let me know if I can help with anything.

1 Like

I’m trying to read and understand all this stuff.

Looking at dynamic/docs/dynamicmodel.md at master · emoncms/dynamic · GitHub I have some questions and comments. Where’s the best place to post these? In this thread, in a new thread, on github as issues, or somewhere else?

I would go ahead right here with your thoughts, @djh.

The intention behind the original post (using a very simplistic mathematical model to demonstrate to HP users that house thermal inertia may limit setback if the HP has little spare capacity over heat loss) developed mid way to something more sophisticated, using electrical engineering analogies, that might be used in a control algorithm.

The model proposed in your link looks impressive, so any development of it (here) could be very useful…

Thanks Sarah. My perspective is a little different in that I don’t have a heat pump - I just use direct electric because my heating needs are fairly minimal. But I’m interested in modelling heat loss because at present I’m on an E7 tariff and do all my heating overnight. So I’m reliant on thermal inertia and solar gains to maintain the temperature during the day.

The model I linked to has what I suspect is a simple typo in that the first diagram refers to ‘Segment 0’ through ‘Segment 2’ whereas the rest of the text refers to ‘Segment 1’ to ‘Segment 3’.

More fundamentally I don’t understand why the model has three segments - why not one or two, or four or five? Do the segments correspond to something physical in the real world or are they arbitrary features created for some reason? (and how is the number 3 arrived at?)

The model doesn’t include anything about solar gains, which are by far the largest factor in thermal equilibrium apart perhaps from external temperature. But the data shown apparently extends into periods when the sun is up, which confuses me and I would have thought the model.

I’ve previously experimented with a model by Simon Rouchier and published at Chapter 11 A simple RC model (Python) | Building energy statistical modelling and related pages. But I’ve had a lot of trouble getting reliable predictions from it. Hence looking to understand things in more depth.

2 Likes