Martin's corner on the web

Custom defrost algorithm for Daikin heat pump

One of the things that has been quite annoying about my Daikin heat pump converted to air-water system, is the defrosting algorithm, or is it better to say the lack of defrost algorithm.

Basically below 5 degrees Celsius it defrosts every 45 minutes of accumulated compressor run time on my system, not considering if it needs to defrost at all. I have seen it defrost when it is nice,dry and sunny outside and the heat exchanger is as dry as it gets, temperature in the 3-5 degrees range. Quite a waste I’d say. I have calculated that on a cold day when the compressor is running all the time, I can have up to 32 defrosts per 24hrs and those eat up to 2.5kWh, not counting the energy needed to recover from the defrost. During a defrost, cycle is reversed, heat is pushed to the outside heat exchanger and cold is moved inside. My fan coils have “smart control” that watches out for fluid temperature and react by stopping their fans, thus preventing room cooling, but that means a gap in heating of 10 minutes until defrosting is complete and cycles reverse. I understand the importance of defrosting, but only when it is necessary. These unnecessary defrosts drive me nuts.. so here is a project idea: hack the heat pump to defrost only when necessary.

The project steps that I outlined are
1) Determine reasonable defrost algorithm
2) Determine when the heat pump is about to defrost, so I can intervene
3) Determine how to prevent the heat pump from entering defrost
4) Make a program to control all this

Determine reasonable defrost algorithm

For my research, I used several articles on the Internet, most impressive was this one
So basically, as expected, it turns out that the major factors for ice formation on the external heat exchanger are air humidity and temperature.

The below graph shows the relation between relative air humidity in % and time to form ice. Obviously the critical area is 85-98%, time to form ice is ~30 minutes. Values below 80% mean ice formation gets less likely and takes much much longer. Good to know.

Next, I look into the relation of temperature to frost formation. Again, obviously critical area is obvious, -4 to +4 degrees C. Good news is that above 5 C we don’t need defrosting. Also, there is a notable drop in ice formation below -7 simply because colder air carries less humidity.

So I identify the critical areas for humidity and temperature. But do these two interrelate? Lets take a look at the below diagram that illustrates the relation between temperature, humidity and defrosting frequency of Sanyo air source heat pump with decent defrost algorithm. Defrosting takes place when the blue line drops suddenly.

Clearly, even at high humidity levels but low air temperatures defrosting can be delayed.

So here is the rought algorithm that I came up with.

No defrost above +5 degrees C
Default time between defrosts (Td) is 45 minutes of accumulated heat pump work time.

If air humidity is <65% then increase time between defrosts  by 135 min
If air humidity is between 65% and 75% then increase time between defrosts by 90 min
If air humidity is between 75% and 87% then increase time between defrosts by 45 min
If air humidity is between 87% and 99% then increase time between defrosts by 0 min and BREAK further processing (humidity too high to risk defrost delays)

If outside temperature is between 6 and -4 then increase time between defrosts by 0 min
If outside temperature is between -4 and -7 then increase time between defrosts by 45 min
If outside temperature is between -7 and -99 ,increase time between defrosts by 90 min

Next step is to determine when the heat pump is about to defrost, so I can intervene.
I scratched my head a lot on this. Some heat pumps have an indicator light up when defrosting, mine has none. So I had to figure alternative way. I have noticed that during defrosts, the motor on the internal body fan stops. This is to prevent it from blowing cold inside during defrost. I have a energy consumption monitoring on the heat pump (I will be describing that sometime soon), so I know if it is running or not. The heat pump can only enter defrost after it has been running for at least 6 minutes. So, if I have a running heat pump and the fan has stopped, that is a sure indication of a defrost about to happen. The easiest way to check if the fan is running is by using a hall effect sensor attached to the fan motor. If readings jump a lot, it is rotating. If reading are quite stable, it is stopped.

My next challenge was how to intervene? How can I postpone a defrost? I thought a lot and the simplest, least invasive way was .. to use my Daikin remote control project
to effectively switch off the heat pump for 10 seconds and then turn it back on. That resets the runtime counters. The side effect is that it also enters a 3 minutes standby protection mode, but that is way better than performing unnecessary defrost.

So finally to put the block together, I wrote a small PHP script that my hvac monitoring system calls when it determines that the heat pump is about to enter defrost. The script considers air humidity, outside temperature, last time when the system was allowed to defrost and based on the algorithm described above decides weather to restart the heat pump, or let it proceed with the defrost.. neat.

I have this running for couple days now and seems working quite neatly.

3 thoughts on “Custom defrost algorithm for Daikin heat pump

  1. germanguy

    very interesting topic. I’ve got an Air Conditioner too (Mitsubishi ZGX 20)
    which I use mainly for heating. I was often annoyed about the defrosting so
    I was happy to find your webpage via google. After your modifications you
    say it seems to work quite neatly. Can you describe the effects in more
    detail or have you made some logging? i.e. how often does the remote control
    switches the a.c. off/on a day (1-2 times or more often 5-10)? What energy
    savings do you observed since the mod approx. (10% or more like 30-40%)?
    Thanks in advance.

    1. admin Post author

      I can’t say the exact measured effect, at least it is not so annoying; see the graphs from yesterday: it halted 13 defrosts and allowed only 5 to happen so in theory I must have conserved lots of energy 🙂


  2. James Maupin

    Hi Martin, some manufacturers use two temp sensors, one inside and one outside the outdoor coil. During runtime, as long as there is a differential in temperature then there is good air flow and no need to defrost regardless of ambient temperature or accumulated runtime. Place the sensors near the bottom of the coil where the ice will accumulate first. The basic logic is if in heat mode, after a few minutes runtime begin periodic testing, if the differential is near zero then start the defrost cycle. When the sensors see a sharp rise in temperature that indicates the ice is gone so stop the defrost cycle. This on-demand defrost control eliminates unnecessary defrost cycles.