Tuesday 17 November 2015

Battery UnBalancing

When I put this system together I did wonder whether the charger would affect the balance of the cells in the battery.

The charger is a proper LifePO4 charger, CC/CV (with the CC part being adjustable from about 5A upto 100A which is what makes it perfect in this application - I can adjust it on the fly to consume the spare power that the solar panels are generating).

However, it has no monitor leads for the cells, just the two leads going to the +VE and -VE battery terminals.

The maximum voltage where it changes from CC mode to CV mode is 29V, and so the cells with slightly less capacity will reach their max V first (no two cells in the world will be exactly the same capacity, manufacturing tolerances, etc). The battery as a whole won't have reached 29V so the charger will stay in CC mode, overcharging these smaller capacity cells. Any time a cell is overcharged will unbalance that cell very slightly.

After being in use for 6 months (intermittent use, about 3 months total), the difference between the lowest cell V and the highest cell V is 0.4V - 3.12V upto 3.54V, so I'm guessing this is limiting the usable battery capacity by maybe 20% of the total capacity.

So time to balance it.

I know how to bottom balance, and it's a very long, boring process.

* For each cell
* Connect shunt resistor
* Monitor voltage, when it falls to 2.85V, disconnect shunt resistor
* Wait 30 mins and measure voltage
* If voltage > 2.95V, goto step 2.
* Otherwise that cell is bottom balanced

Now, if that doesn't lend itself to being automated, I don't know what is.

So I've built a little board with 8 x 0.47 ohm, 25W resistors and 1 x 8 way relay board, connected to the Arduino.

Added a little bit of software to perform the above steps (on all cells simultaneously).

This "bottom balance cycle" code is built into the main Solar System software, and for the moment can only be run manually by me entering diagnostic mode and starting it.

For the final version I think I will add code that, at the end of each nightly discharge, checks the lowest and highest cell voltages, and if the difference is greater than some threshold, kicks off a bottom balance cycle - with a failsafe that if the last bottom balance was less than one (or two?) months ago, it logs a warning and alerts the user that the battery might have a problem with one or more of its cells.

I am aware that I've now added something that in the case of a fault - if the relay jams on - it will completely drain a cell. But apart from solutions like using two relays in series, or massively overrating the relays (they will conduct about 5A and they're rated at 10A), all I can do is test the relays when I first get the relay board, and try to make sure the boards I buy have decent relays in them, with good MTBFs. I have added checks into the bottom balancing software that detects if the cell voltage continues to drop, and if it detects this it "rattles" the relay, trying to free it up, halts the system and tries to alert the owner. Not much else I can realistically do I think.

Apart from this, everything is working nicely.