FHEM Forum

FHEM => English Corner => Thema gestartet von: Bob B am 31 Januar 2017, 17:33:02

Titel: MAX EQ3 ValvePosition Control
Beitrag von: Bob B am 31 Januar 2017, 17:33:02
I'm using MAX EQ3 valves, CUL, CUL_MAX and fhem on an RPi. I'm in the UK.

My question is whether it is possible to directly control a Max EQ3 Heating Thermostat to valvePosition rather than temperature (thereby cutting out the PI loop local to the valve itself*).

I thought maybe setting the valve to boost every hour with a duration of 60mins and then altering the boostValveposition on the fly as necessary might work (albeit messily) ? Maybe use valveOffset? I simply don't have the ability to find out right now - if anyone knows, I'm all ears!

Bob

* I'm looking at this because, in the very short time I've spent looking at Max valves, it is apparent that they're not ideal** for intermittent heat sources (ie: most UK installations) and difficult to integrate into a control loop which has constraints other than room temperature (eg: condensing boiler entry/exit temperatures, sub-optimally sized radiators). There are other things that make controlling to reported valve temperature generally undesirable in the UK (or my house at least)  like valves being mounted at floor level leading to large lag and inconsistent readings.

My uncorroborated impression is that the integral loop gain in the valves is too high for some rooms (temperature undershoots), too low (temperature overshoots) in others. I'm sure the native PI control works brilliantly for constant temperature, always-on heat sources but for modulating boilers it's sub-optimal to put it politely. That's why I want to cut it out of the loop.

** Lest any UK reader thinks I'm putting EQ3s down; I'm not. I think they work very well at what they're designed for and at half the price of Danfoss et al they're a steal. It bugs me that there's nothing equivalent in the UK unless you have very deep pockets and are happy to install a complete closed system. I doubt they'd do much better anyway!
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: alangward am 01 Februar 2017, 12:48:37
Hi Bob,

I had similar problems with the valves when I first installed them. I then added a number of Wall Thermostats which improved the situation significantly.
I could put them higher up and out of drafts. They also report their temperature (to fhem) every time it changes.
Of course, it doubles the cost, but I still think it is a good system.
I do get overshoots - but it is typically less than 1 degree.

I have implemented my system so that the boiler only fires up if there is demand from at least one room, based on a simple comparison between Temperature and DesiredTemperature. It would be simple to add some hysteresis or pro-active damping as the temperature approaches its target.

Hope this helps

Alan
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: Bob B am 01 Februar 2017, 18:08:59
Thanks for that Alan, much appreciated.

Wall stats would partially solve the problem if my wallet weren't empty.
My cunning plan was to use the wireless stat I already have with the receiver relay bodged onto a spare Rpi input.  I intended to move it from room to room during a training phase and record various parameters for use in a lookup table during "normal" operation. A bit cheesy I'll admit!

As far as firing the boiler is concerned I haven't got enough experience yet to devise a suitable algorithm. I have written some perl (badly!) that associates radiator power, room volume etc. to the corresponding valve in the hope I could intelligently shift heat around the house in a manner that minimises boiler cycling. Just looking at the raw figures though, that approach is probably a fool's errand so I'll probably implement something along the lines you suggest.

Regards & thanks,
Bob
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: malc_b am 01 Februar 2017, 19:10:42
I'm not convinced that the rad stat has a proper PI control.  I have a couple of units I'm playing with and I find if I set the desired temperature above/below the read temperature I don't see any integration.  I need to set up max scanner and charts but looking at the raw numbers and half watching what happens while watching TV :-), it seems to me as though the valve has a dead band where nothing happens and then it is linear.  And maybe there is some averaging too.  If there was integration I would expect to see, if say desired temp was 1C below, that the valve would eventually ramp to 0% which it doesn't.

But, on a different tack, the first thing I would suggest is balancing radiators when you have over/undershoot problems.  If the radiator is oversize you could also look at limiting the max valve setting although that is similar to balancing I would think.  In fact maybe the system could learn and balance itself with the max valve setting.

For my house I'm planning to adjust the boiler open loop.  That is I've worked out the room loses and I will be measuring outside temperature so I can calculated the expected loses for each room.  That gives me how much power I want from my boiler. I can program the boiler output temperature and read the flow/read (via opentherm I reckon) or I can fix this and control power via on/off periods.  Then I can examine the valve positions and the actual temperatures and adjust the boiler to suit.  Well that's the plan.  I don't think the rad valves react quick enough which I suspect is to save batteries.

My current off the shelf PI stat has an adjustable cycle which it says set to 1min for gas, 15min for oil.  Oil loses a bit on fire-up so you want long burns, hence on 15min cycle, 50% would be a 7.5min burn.  I've found that a bit lumpy so I run a 10min cycle AFAIR.  I suspect that a 5-10min cycle is as long as you want, and that's only when you're in the control band, say +/-1C of desired.
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: chapelhill am 02 Februar 2017, 08:57:18
I have about 20 radiator valves in my system and a condensing boiler. I have a simple programme which monitors total valve percentage for all valves and max percentage for any individual radiator and a threshold value for each which must be exceeded to switch on and a lower threshhold to switch off. Seems to work ok. Mine is a mewer house so is easier to control as it is well insulated.

If a radiator valve calls for heat by increasing valve position and the boiler is off it will keep increasing valve percentage and when boiler does then switch on may overshoot.
My boiler is a condenser which also moderates power to suit demand. Diring winter if we are ar home the boiler is on pretty much all day but at night it will be off for 4 to 5 hours then on for an hour and off for about 1.5 hours.
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: malc_b am 02 Februar 2017, 09:27:33
Does the boiler sense outside temperature or do you alter the flow temperature during the year?  Condensing boiler are more efficient the lower the flow temperature (or rather the return temperature to be precise).  At about 55C return they stop being condensing so there is a big loss in efficiency then.
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: chapelhill am 02 Februar 2017, 18:00:04
I think I have the heating water just over 60 degrees centigrade and i can leave it like that all year. I don't think the boiler senses outside temperature but it modulates its power so that it does not switch on or off very often.

Happy to share my rubbish code if anyone want to see. Most of it was pinched as good code from fruit and then made bad by me but it works.
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: Bob B am 08 Februar 2017, 22:27:16
Zitat von: malc_b am 01 Februar 2017, 19:10:42
I'm not convinced that the rad stat has a proper PI control.  I have a couple of units I'm playing with and I find if I set the desired temperature above/below the read temperature I don't see any integration.  I need to set up max scanner and charts but looking at the raw numbers and half watching what happens while watching TV :-), it seems to me as though the valve has a dead band where nothing happens and then it is linear.  And maybe there is some averaging too.  If there was integration I would expect to see, if say desired temp was 1C below, that the valve would eventually ramp to 0% which it doesn't.

But, on a different tack, the first thing I would suggest is balancing radiators when you have over/undershoot problems.  If the radiator is oversize you could also look at limiting the max valve setting although that is similar to balancing I would think.  In fact maybe the system could learn and balance itself with the max valve setting.

For my house I'm planning to adjust the boiler open loop.  That is I've worked out the room loses and I will be measuring outside temperature so I can calculated the expected loses for each room.  That gives me how much power I want from my boiler. I can program the boiler output temperature and read the flow/read (via opentherm I reckon) or I can fix this and control power via on/off periods.  Then I can examine the valve positions and the actual temperatures and adjust the boiler to suit.  Well that's the plan.  I don't think the rad valves react quick enough which I suspect is to save batteries.

My current off the shelf PI stat has an adjustable cycle which it says set to 1min for gas, 15min for oil.  Oil loses a bit on fire-up so you want long burns, hence on 15min cycle, 50% would be a 7.5min burn.  I've found that a bit lumpy so I run a 10min cycle AFAIR.  I suspect that a 5-10min cycle is as long as you want, and that's only when you're in the control band, say +/-1C of desired.

@malc_b Interesting stuff, thank you and apologies for the delay in replying.
I haven't read anything detailed about the valve's feedback loop implementation. I think you may be right - the algorithm may be very simple proportional control or at least non-integral inside the dead band which would be reasonable. The small data that I have suggests that's the case but it's obviously very easy to be mislead when dealing with loops within loops (within loops if you include the boiler's control system!).

I haven't balanced any rads, in fact I intend to open all the lockshields fully. I figured that balancing would be akin to reducing the local "gain" (d(output temp) / d(input valve pos)) thus limiting response time. The thing is here that sometimes I want a fast rise in temperature regardless of overshoot; sometimes I don't. Limiting the valve's max. position would indeed be balancing by any other name.

I'm curious as to why you think the valves mightn't react quickly enough for satisfactory control.  My experience (with only three valves installed so far) is that they react within a minute of receiving a new setting which I would've thought was adequate? I saw that there's an artificial delay/limit imposed on messaging with CUL so as not to clutter the airwaves - is this an issue with more valves perhaps?

Like you I need eventually to measure outside temperature (it's absolutely key for a decent control algorithm). I really don't want to buy yet more kit just to do that so I was thinking of putting a MaxEQ3 on an old rad. valve and putting it in a weatherproof box - if the reception is good enough. Do you know of anything better?
I also plan to measure boiler exit and return temperatures. I can't find anything at a reasonable price so I plan to design some bespoke hardware to do this (2020 is my guess!).

Regards,

Bob
Titel: Antw:MAX EQ3 ValvePosition Control
Beitrag von: malc_b am 09 Februar 2017, 09:46:04
Not balancing radiators is a very BAD idea.  Let's say your boiler is 20kW.  Every second 20kJ is being dumped into the CH water and carried off to radiators.  If you have all of the lockshields open then most of the water flow will be going through the nearest radiator and next to nothing will be going to radiators at the far end of the house.  Let's say the nearest radiator is 1kW.  So 20kW is flowing through the 1kW radiator meaning 19kW is still in the return.  Boiler cuts out or modulates down to 1kW.  What happens is that you heat up your house from cold room by room.  First the nearest rad gets hot and that room heats up until the TRV (or max) cuts in.  This forces the flow to the next nearest rad and so on.

On the other hand with balanced radiators each leg has been adjusted so that each radiator gets its fair share of the boiler power.  The whole house heats up together and the boiler runs at full power.  Basically you can't get anymore heat out of a radiator that it's rating.  The power out of it depends on the surface area and the temperature of the radiator.  With an open lockshield the radiator will warm up faster but that's a minor time difference and not the same as warming the room.  And it's more than offset by the system warming up the house room by room and the boiler running at reduced power.   Also with an open lockshield you will get a reduced temperature drop so a slightly higher output of the radiator.  Again, that's not significant, call it 10%.  And modern boilers control the temperature difference across the boiler (i.e. the reverse of the temperature difference across the rad) so you might not even get that 10% increase.

I was looking at using DS18B20s for temperature measurement.  You can get sealed ones of these off ebay.  They need to be hard wired and you need a 1-wire controller.  I'm installing stuff in a house as it is built so wiring isn't a problem for me.  I suspect I'll measure the outside temperature in the roof eaves by poking a DS18B20 from the roof into the space behind the fascia.  On the north side of course.  The boiler I'm installing has opentherm so I should be able to get temperatures via that.

I didn't mean that the max rad valve was slow to respond to commands by rather slow to respond to room changes due to the deadband and lack of  integration.  But I think it might be more complex.  In this thread https://forum.fhem.de/index.php/topic,64904.0.html , chapelhill posted a log of his temperatures.  The plot is interesting as it has a room temperature sensor as well as the rad sensor.  It shows that the rad sensor ramps up when the rad heats up but the room doesn't follow the same.  In other words the valve sensor is affected by the radiator.  No surprise I guess and this might explain the dead band (aka hysteresis) otherwise the rad would turn off as soon as it turned on.  In the plot I can't see any sign of integration.  From 12:00 to ~14:30 the temperature is falling yet there is no increase in valve (or at least no visible increase).  If there was integration I'd expect to see a minor correction in that period.