Charge-Distribution "BMS" Development (Open-Source)

amberwolf

Administrator
Staff member
Joined
Aug 17, 2009
Messages
40,859
Location
Phoenix, AZ, USA, Earth, Sol, Local Bubble, Orion
I'd like to make a repository thread for ideas and hopefully development of an open-source Charge-Distribution type of battery management system, one that does not do bleed balancing or bulk charging, but rather uses an automatic process to individually charge each cell (or parallel group of cells).

It's not a new idea, and there have been some threads / posts about making such a system around here before (though at the moment I'm unable to find them; not using the right search terms I guess). I know there are also chips that do some of what I would like to do (or rather, they control the process, at least).

I'm not the person to actually design and develop this idea, but I'd like to get those who *could* do it interested in doing so, and posting up here their open-source ideas on creating this type of system, preferably in a scalable design that could be used on a 3s or a 30s or a 300s pack. :)

Basic function:
This system specifically does not:
--bulk-charge and then redistribute the overcharge to the undercharged cells
--bulk-charge and then bleed off the overcharge from the cells

It specifically *does*:
--charge individual cells (or parallel groups of cells) to their "ideal full" voltage (programmable in some way, since that ideal voltage will differ depending on the cell chemistry and the desired usage of the pack.

--and / or

--charge individual cells/groups to a specific *capacity* (programmable *and* adaptable), while also monitoring voltage below an HVC (programmable).

--the "adaptable" above means that the BMS monitors and learns the cells' / groups' capacities, so that it can ensure each one gets the maximum charge without overcharging, and so that it can also monitor discharge of each cell/group and prevent overdischarge not just monitored by voltage.

That's probably sufficiently complex right there, so I'll leave it up to those more experienced in such matters to discuss and clarify what can and can't actually be done, and how.

As to whether this is or isnt' a better idea than existing systems, well, let's ignore that for now, and just see if we can figure out how to do it. :)


If you're not interested in creating such an open-source system, it's probably best not to post in the thread. :)
 
If the full charged voltage level is equal on all cells in the battery pack, easiest way is to make the fly-back charger with multiple outputs.
The secondary stage of the charger could be like on this picture:
Balance_charger.gif

Due typical characteristics of MOSFET the cell the transistor on the cell with lowest voltage will first switch on s it need lowest charge.
Because of possibility to have only one output activated (even worse: it can happen that while charging one cell, you're discharging other one and thus increase the current even more), this architecture is good only for slow chargers, like solar...

The problem is that at beginning of charge can happen that all power from charger can go for a limited time to single cell (with the lowest voltage and lowest resistance). As the choke has predefined energy stored in every PWM cycle, it can generate excessive current on particular output.
Other problem is that it is bit difficult to make a transformer for high voltage batteries, but this is simple solution for charging 2S-8S batteries...
I tried to make a choke for 16S battery, using ETD79 ferrite core, but it is difficult to organize 48 terminals on secondary side. Think that it is not a big deal to make the choke for 2S, up to 8S batteries...
Installing Schottky diodes instead transistors can reduce the deviation of charging current through cells (and simplifies the choke design), but the efficiency of the charger suffers due low voltage on single cell.

Note I omitted primary stage circuit, as well as feedback circuit.

The secondary windings can be wound parallel as between them exists only DC voltage and there's no problem with capacitive leaks between windings.
Here's a photograph of my construction of choke:
T2detail.jpg


My conclusion is that it is better that the charger monitors voltage and status of each cell and adopts its' output according to state of the battery.
The cell imbalance is not so big problem if you use balancer which can bleed particular cell with at least 0.05C.
The algorithm for the charger can be something like I described here: http://bps.biz.hr/BMSchargeproc.html.
The advantage of monitoring status of cells is that particular cell voltage doesn't go much above bleeding threshold voltage.
Of course, the problem is how to take every cell status/voltage as cheaper BMS doesn't show when particular cell is bleeding or not.
 
The point of this system is to specifically *not* have any kind of bleeding resistors.

The only thing done during a charge cycle, to any cell, would be to charge it, and then stop when it reaches whatever the HVC is, if it hasn't reached it's full capacity by then (would have to have current into the cell monitored over time to ensure it actually gets as much as it needs, based on whatever the BMS has "learned" about the cells' individual capacities).

Partly this is to minimize the chances of a FET-to-bleed-resistor failure, which seems to happen more often as a short than an open, and thus bleeds down a cell or group constantly, and can't be turned off anymore. It's not a super-common scenario, but it's happened often enough that there are a few troubleshooting threads around here for packs damaged by that problem.

Mostly it is to allow charge to be faster and more precise, without having to have huge bleed-down resistors with active cooling to keep them from overheating themselves or the stuff around them (like the cells), or else having to wait for hours as the high cells bleed down so the lower ones can finish charging.


The simplest method of doing this is to just use individual chargers on each cell, each completely independent of the others, but this requires

A) isolation of input and output of each of those from the other

and then:

B) they have no communication to tell each other to stop should some other problem occur (pack overheating, etc), requiring separate electronics and monitoring for all that.

C) and with all those separate chargers, more space is required (housings, cords, etc) when a single unit charger (any typical bulk charger with sufficent output power) would be able to be used with the proposed charge-distribution BMS that woudl be part of the battery instead. Then the CDBMS would just convert that "bulk" voltage to that needed for each cell, and charge each cell.


I guess that last one probably makes this a pretty complex project. :/ There *should* be some relatively simple way of doing this, but at high enough currents to make it worthwhile....

I just don't know what it is. :/
 
Cells in a healthy pack, even say a 200Ah pack, require <5mA bleed current to stay balanced.

Cells only drift balance from internal self-discharge leakage. This mechanism leads to gas production inside cells of a finite volume pouch/can.

For this reason, no BMS can repair defective cells in a pack, the best they can do is observe they are staying in balance, gently nudge them towards balance if they drift slightly, and most importantly fail the battery from continued use in the event it has a defective cell with high self discharge before it's gas production leads to failed electrolyte containment.

If you find yourself working with cells that require substantial balancing, retire them before they fail in a way that leads to electrolyte leakage. It does not repair defective cells to balance them, it only extends use at the risk of catastrophic failure modes. If you have new cells that need more than 1-2mA to balance, find a new cell manufacturer who knows how to make quality cells.

ATB,
-Luke
 
As usual lpf makes a good point. I do still think the "charge distribution" method has potential, 1) when I use a "balance charge" option in a conventional balance charger, it takes AGES (am I just using a really bad one? I don't know...) and 2) I don't like the idea of more things getting hot in and around the batteries, allied with something dissipative being by very definition inefficient.
As a traditional "bulk charger" + occasion balance, perhaps that's why my balances seem to take a while.
I'm part way through an arduino development using charge distribution. THis will do its balancing at 2A, so it should be pretty quick, with a longer balancing time being very visible as a prompt for the operator to find out why....
https://endless-sphere.com/forums/viewtopic.php?f=14&t=78428
 
bobc said:
As usual lpf makes a good point. I do still think the "charge distribution" method has potential, 1) when I use a "balance charge" option in a conventional balance charger, it takes AGES (am I just using a really bad one? I don't know...) and 2) I don't like the idea of more things getting hot in and around the batteries, allied with something dissipative being by very definition inefficient.
As a traditional "bulk charger" + occasion balance, perhaps that's why my balances seem to take a while.
I'm part way through an arduino development using charge distribution. THis will do its balancing at 2A, so it should be pretty quick, with a longer balancing time being very visible as a prompt for the operator to find out why....
https://endless-sphere.com/forums/viewtopic.php?f=14&t=78428

Im all for charging all individual cells simultaneously from a transformer coupled or capacitor coupled system.

However, replace cells/packs that drift into major imbalances rather than band-aiding them with high current balancing.
 
Having a set of individual cell chargers is all well and good (it was the first "solution" that came to my mind for the charging issue) but you end up limited to 2A charging current & therefore taking hours to charge... The balance lead is good for 2A only
Sure while bulk charging all the cells take ~ the same current so there's net zero in the balance leads, but at the end of charge some cells will stop before others (the "balancing" function") and more than 2A will bazooka the balance leads/connectors.
This will still happen, even with perfectly balanced cells, (lpf!!!! :) because the individual cell chargers will inevitably have slightly different current limits during the bulk charge phase.
 
People are building battery packs from used laptop batteries not because joy, they are trying to save some money that way...
Thus balancer which bigger bleeding current are more interesting - you can reuse old batteries...

I don't agree that 5mA balancing current is enough for ~200Ah batteries, it is not enough even for 1Ah battery...

Couple days ago have connected 24S2P Headway 38120S battery, which was never discharged more than 30% (but it is ~6 years old) and found that during charging some cells reach 4V. Have used AE-LMD17 REV A1 as BMS, cell balance current ~7mA/mV...

Problem is that it is very difficult to have cells with equal self discharging current for longer time. After a while this current differs more and more.
Replacing cells which have bigger self discharging current doesn't solve problem, only way is to scrap relatively good battery or to get proper balancer...

There's no problem with the battery which is used frequently, but I have to leave my bicycle battery on charger for couple days after winter in order to get it back to full capacity. For me the bleeding balancer is quite OK as I need higher bleeding current once per year.
My battery is 48V LiFePO4 and is 7 years old. It still has over 90% of nominal capacity. In October my bicycle is stored in basement and I don't take care about the battery during winter, until I take it out in April or May...
BTW it is easier for me to leave battery on charger for couple days than to open it (it's well sealed)...

Old battery has much longer absorption phase than new one. Capacity doesn't drop so fast...
 
Back
Top