I’ve had my ASHP for a year now, and started trying to improve on some of the shortfalls in it’s control behaviours. I’m not done yet, but have at least managed a modest improvement in performance over the past few months compared to the earlier data I have, despite these months being quite cold (and heat pump performance being worse in low temperatures).
Click on the chart above for weekly electric consumption vs. a regression based on degree-days.
Over this recent period, I have been running with real-time instrumentation (viewed through a web browser), and an add-on control unit sitting inside the heat pump itself to modify the sensor data that the controller gets. Shown here is the microcontroller board mounted on the chassis of the monoblock heatpump outdoor unit. Analogue input it taken from the heat pump thermistor sensors, data us transmitted over bluetooth using the small module on the right. Both the MCU board and the bluetooth board cost about £10 each. Data is received and uploaded to the web by my Raspberry Pi, which has finally found a use.
The add-on controller addresses the worst of the design flaws on the Hitachi control unit. These significantly detract from the system COP, the ratio of electrical heat input to useful heat out. Maybe in a system with a massive thermal load the performance would be improved, but I am very sceptical. Any engineer from Hitachi is welcome to measure my system… The active performance isn’t too bad (ambient 8°C, Flow 41°C, Return 29°C, 6kW out, 1.8kW in, COP 3.3 give or take 20%), but for the week, 91kWh in, 220kWh out is not so good)
1) Demand temperature is only sampled every 20 minutes.
This effectively means the system is designed so that DHW heating must use a flow temperature from the heat pump of 60°C. The controller has a setting to ignore the careful water setpoint, and drive the demand for a full 60°C (20mA loop current) for the first 3 minutes. In my case with a fairly small DHW tank of 180L, it doesn’t take too long to heat up so the chance of 20 minutes later setting back to 55° for a more leasurely and more efficient burn wasn’t going to happen. There is a simple work-around for this using a single resistor to re-calibrate the 60° flow temperature reading, see below.
2) Switch from DHW to Space Heating does not reset demand
So, as above, if water is being heated, once the target temperature for the tank is reached, assuming there is still demand for space-heating (i.e. 24/7 in winter), the 3 way valve switches back and the loop current drops to request a more reasonable flow temperature of say 40°C, but the heat pump is still thinking that a flow temperature if 60°C is needed. This is bad enough with a radiator system, but in an underfloor heating system it would both burn a lot of power, and likely cause some damage.
3) Low load results in short burn cycles
This is more of an annoyance than anything else. As the room-outdoor differential narrows to around 10°C, the heating load (in my case) becomes very small and starts to get hard to distinguish from the few degrees return-flow differential that appears when the pump fires up. This means the heating burn stops before the return water temperature has started to increase. What is needed here is some sacrifice of regulation accuracy to avoid rapid on/off switching (and a loss of regulation as a result of the radiator temp not tracking the requested flow temp)
4) Low load results in heat being pumped out
Re-adjustment of my pipe temperature sensors suggests this might not be quite as bad as it first seemed (at least with a 25° radiator-outdoor differential) but it seems possible to achieve a 1°C temperature loss across the heat pump (for 50W pumping cost) which is a worthwhile fraction of a kWh. Additionally, circulating water seems to increase the thermal load on the compressor heater. Either way, the current design of the system controler has water circulating if the demand temperature exceeds the room temperature. So Ambient 10 degrees, demand 25 degrees, room 18 degrees – pump would run even though the solar insolation during the day and internal electrical load means almost no heat input is required. There ARE installer settings to restrict the pump running parameters based on ambient temp, but they seem not to work (rev 9 of system controller firmware). This flaw is particularly noticable when the demand is for DHW heat, but for some reason the heat pump is not running (e.g flow setpoint too low to allow regulation to be maintained as the tank temperature approaches the switching thereshold)
5) No slow start capability
Not the compressor soft start (which seems to work well, there is a slow ramp up over 15-30 set), but the afternoon 18°C -> 21°C room setpoint switch. Now, I’ve made this worse by using the room compensation setting, but what I really want here is to identify this as a regime change and step up the power slowly – particularly since after 10 minutes the room might start to warm and the setpoint drop again a little. Ideally, the pump would run for 20 minutes at a lower power (and higher average performance) than charge in at 80% power then back off to 40% after a few minutes. Further variations on a theme are possible looking at trends in ambient temp to pull in a few % extra efficiency.
Stage 1 fix:
After getting the monitoring set up (spending 20 minutes taking readings every minute is a waste of time), the first step was to trick the heat pump into thinking that 55°C water was really the target setpoint of 60°C. This solves the first problem, and the most complex one (since adding a relay to override the pump/demand is more straightforward). Shown above is CN13 on the smaller control PCB. This is the flow temperature sensor connecting to the analogue/relay board. The left hand pin is +5V, the right hand side is used for the measurement. Thermistor is 500 Ohm at 60C, 700 Ohm at 50C. In combination with the extra loading imposed by my measuring circuit, I found that a parallel resistor of 4.3kOhm (connected by the yellow wires in the photo) resulted in the right flow temperature regulation, and an offset of about 3-4°C at 55°C. The unwanted side effect is to prevent the flow temperature sensor from reading below about 30°C – however, see point (3) above, this is a minor inconvenience because a demand of 30°C is not really valuable.
Stage 2 is more complex, but currently in place… It is attempting to infer the operating state from the temperature measurements then decide when to break the switching loop, or inject a bias current into the sensor (this approach allows the same effect as switching the resistor in and out). With a little more work, the controller will be able to push and pull the setpoint up and down by steps of a few degrees, as well as stopping the circulation. This starts to make it possible to get remote input into heating (at least to reduce the room temp a little, if not switch the system on and off because for a heat pump, on/off operation saves nothing over continuous constant temperature)