Monday, July 13, 2020

Lithium (LFP) battery update

I kind of left everyone hanging last year when I put my LPF batteries in service.  In fact, I don't think I even reported that they had gone on line.  Well they did, and they have been running flawlessly for the past 18 months.  I absolutely love them, and will never build a lead-acid house bank again unless there is some extenuating circumstance.  They just work SOOO much better.  No more worrying about when they last reached full charge.  No more long drawn out absorption cycles, and when needed, no more long, lightly loaded generator runs.

"Andy" asked a couple of questions in the comments for this post on the BMS design, and I thought I'd answer them here since they are of general interest to anyone messing with this stuff.

The first question was about cell balancing, and whether I had automated it somehow.  The answer is, just the opposite.  What I actually did is completely counter to every guide on how to commission and run an LFP battery bank, but I did it in the name of science.  I had heard recommendations stressing the importance of regular balancing, making it sound like the batteries would fail spectacularly if you let them drift even the slightest.  And I heard reports of people who had run for months and months without having to re-balance.  So I decided I'd find out for myself.

But before getting in deeper, let me review quickly what this "balancing" thing is all about.  To make any battery bank, you need to wire some number of individual battery cells in series to get the voltage you are looking for.  My system is nominally 48V.  Lead battery cells are 2V each, so you need 24 of them in series to get 48V.  LFP cells are 3.2V, so you need 16 of them in series to get 48V (or close enough).

Batteries get charged by the current that you push through them, and when a bunch of cells are wired in series, each gets the same amount of current.  If all the cells are at exactly the same charge level, then as you apply a charge current, they will all fill up by exactly the same about, and they will all reach full charge at exactly the same time.  That's in a perfect world, and I haven't seen one of those yet, so let's look at reality.

Reality is that variations in each cell's construction and chemistry causes each to charge/discharge by slightly different amounts even though they see the same current.  So in reality, when charging, not all cells will reach full charge at the same time.  With lead batteries, we just ignore this and keep on charging because a little overcharging is pretty benign.  So the cells that reached full charge first you just allow to overflow a bit until all the other cells are full too.

But LFP cells are not at all tolerant of overcharging, and can actually be damaged quickly and irreversibly if over charged too much.  There are a variety of ways to deal with this, but my system simply monitors individual cells, and sends an alarm when any cell starts getting too full.  And if any really get too high such that damage may occur, my BMS disconnects the batteries.  As you identify cells that are more charged, or less charged than the average, then you need to do some combination of adding extra charge, or bleeding off some charge from individual cells.  That's balancing.

OK, now that you understand balancing, what did I do.  Well, nothing.  I just put the batteries together and started the system.  Then I monitored it looking for alarms on cells that were too high or too low.  I got none.  In fact the cells all operated within about 5mv of each other, and that continued for about the first year of operation.

But slowly I did see some drift, and after a while I got my first alarm.  My chargers charge to a nominal cell voltage of 3.45V, and my "high voltage" warning alarm goes off at 3.50V.  No action is taken other than to send me an email.  Now, 6 months later, I get warnings pretty regularly, especially if it's a really sunny day and the batteries have charged quickly.  Here's one from today:

Bank  55.519V, On line

Min Spread Max
Present  3.424  0.087  3.512
Min/Max  3.110  0.148  3.555

Cell Voltage Status
1  3.441 Ok
2  3.455 Ok
3  3.455 Ok
4  3.428 Ok
5  3.500 High
6  3.460 Ok
7  3.466 Ok
8  3.446 Ok
9  3.488 Ok
10  3.509 High
11  3.500 High
12  3.486 Ok
13  3.424 Ok
14  3.484 Ok
15  3.459 Ok
16  3.512 High

This is at it's worst, just before the charger switches to float.  This whole process of warnings triggering, then going away lasts maybe 2-3 minutes.  As you can see, cells 5, 10, 11, and 16 are high.  Also notable is that cells 4 and 13 have fallen behind the pack.  These are at the point where I want to take some action.

You can balance my adding charge to low cells, removing charge from high cells, or a little bit of both.  My plan is to address this step-wise, and the first will be to add charge to the low cells (4 and 13).  That will catch them up with the rest of the pack, and will also partially address the cells that are high too.  With the low cells brought up to around the nominal end-of-charge voltage of 3.45, the overall pack will reach it's final voltage sooner, and stop charging before the high cells get as high as they are now.  Then I'll monitor, and continue to add charge to the lower cells until they all get back into a reasonable range of each other.  Now there's no reason why I couldn't drain some charge from the high cells, except I have a charger, and not a suitable load.

One question is how much charge to add, and I really don't know.  Each "cell" is actually two 180Ah cells bolted together, so 360Ah.  My power supply can put out 6A, so I figured I'd start with 6A for 1 hrs, so adding 6Ah.  Then see how much it changes.

OK, that's a long answer to Andy's first question.  Now on to the second, which was whether I am doing any sort of Ah counting to figure out state of charge.

The answer is no.

First, counter to what everyone says, I think battery bank voltage is a sufficiently close indicator of SOC.  People say it's a much worse indicator for LFP vs Lead, but I disagree.  My lead bank was 50.4 volts when fully charged, and 48.0V when is was 50% empty and the generator started.  That's a spread of 2.4 volts.  In contrast, my LPF bank is full at 53.6V, and ready for recharge at 50.4V.  That's a 3.2V spread and is 30% more voltage swing than lead.  The difference, though, is that in the mid area of charge, the LFP voltage doesn't vary much, so there isn't as much differentiation between 60% and 50%.

But the other side of it is, who cares?  In many ways, I don't care what my battery charge state is.  All that really matters is that if it gets low, the generator will start and run through a recharge cycle.  And if they get full, the chargers stop.  And all that is automatic.  So there is no action for me to take based on charge state, so why worry about it.

What I DO monitor are my every 6 hour health reports like the one above.  I do keep an eye on the current voltage, current spread in cell voltage, highest cell voltage ever seen, lowest cell voltage ever seen, and largest cell voltage spread ever seen.  That tells me about the health of the bank, which is much more important than it's current full/empty level.