Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

BMS Balancing - Current Understanding

This site may earn commission on affiliate links.
There was a massive thread that contains a lot of arguing about range and capacity calculations which I don't want to resurrect here. I'm not linking for reference so it doesn't get thread-necro'd! It has been dead for a few years now... ;)

The information below was from page 57 of that thread and spoke to the process the BMS/BMBs use to balance bricks inside our packs. I'm curious if there have been any updates in the last few years about how the BMS balances packs in the S/X using the bleed resistors? What is the current understanding and best practices? wk057 posted this in that thread on 4/21/19:

Worth an update here.

Tesla has changed the balancing algorithm many many times over the years. Originally this was a very dumb setup that would only kick in once a cell group reached a threshold voltage, usually around 90-93% SoC. This is no longer the case.

First, let me point out that Tesla's BMS software has come a LONG way... I'd consider it a work of art now. Lots of genius in there. It's absolutely amazing and full kudos where kudos are due here.

One thing they're now able to do is to calculate out the capacity of individual bricks of cells (96 in the 85/90/100, 84 in the rest) based on a ton of factors and compute this in near real time, in a full range of conditions, with almost magical accuracy. They're basically running physics simulations (similar to how they calculate out unmeasurable metrics in the inverter firmware, like rotor temperature) of the entire pack based on measured power usage/charge, balancer usage, temperature, temperature delta based on coolant flow and coolant temp, predicting temperature gradients, and probably 100 more variables. This is the holy grail of proper balancing for safety and longevity for a battery pack. This is not a dumb system anymore by any means. Knowing the actual capacity of the individual bricks allows them to know exactly which ones need cell bleeders enabled, and for exactly how long. With this data, they can balance on the fly at any SoC, and just use top and bottom SoC windows for fine tuning, validation, and calibration.

The car balances all the time whenever its needed. It knows when a cell group will need balancing before it's even out of balance... which is really freaking weird when you think about it, especially if you're watching a playback of the pack balancing and voltages and see it engage a balancer on a cell group that doesn't look out of balance at all, and watch it fall completely in line still at the end of a charge or discharge cycle. It keeps track of which groups will need it, which wont, how long they'll need it, how much they've been balanced, etc.

It really is an epic setup now.

The short answer to the balancing question: It balances any time it needs to balance.

As for SoC shenanigans, yes getting closer to 100% or 0% will give it a chance to tune things better... but it's not needed anymore. Just charge like you need to, and drive.
 
Thanks for starting this thread, and not linking to places where people are suggesting extreme charging routines.

I don't have anything else to add, except the refresh MS does not seem to need any calibration or balancing, even after months of storage below 55%.
 
I'm starting to think there isn't much sorcery that we can focus - just let the car do its thing. I'm also glad this isn't filling up with speculation and anecdotes. If someone actually KNOWS the current logic/routine, I've love to hear it. Otherwise, please don't just share to keep it between 20 and 80 and avoid superchargers...
 
Agreed. Short of Jason or Sandy reverse engineering the current BMB firmware, there is nothing new we can discuss.

I will share that avoiding SuC is kinda pointless unless you are very good at avoiding Regen. The new cars can easily see over 100kw of Regen, and 40% of total energy into my pack is Regen currently.

There maybe other things we can glean from SMT, but not sure what they would be. CAC is not working anymore for me.
 
  • Like
Reactions: mr_hyde
Good point on Regen continually 'working' the battery. The real reason to avoid superchargers is that it is cheaper to charge at home... unless you have SC01. Personally, I enjoy getting a quick 100 miles of range on the way home knowing that it is cutting into Tesla's bottom line just that tiny amount. The $2 I save on my own electric bill is just the icing on the cake!
 
  • Like
Reactions: aerodyne
I own an old Model S 2015.10 and have long assumed that even my old car balances 'all the time' but only when needed.
My assumption was based on this my ImBalance Versus SoC graph from SMT data:

1712655841529.png



The minimum ImBalance (of 20 mV) is on the GEOMEAN of my SoC window :)

One could wonder, why it is there not a 0 mV ImBalance somewhere? I guess that is because I have a 2% AmpereHourPerBrich ImBalance:

1712656028346.png


Maximum capacity would be with Top Balancing (as the overall pack voltage is higher), but as I rarely charge above 72% the BMS perhaps/potentially cannot figure out a better balancing.

Not having data for higher SoC's the BMS could optimize for the known SoC range. That could be overcharging bricks with CAC below Avg(CAC), but that would cause problems if the user suddenly charge to 100%, because the dump resistors - by far - cannot dump the voltage on the 'overcharged' weaker brickss, on which the voltage increases faster than on the larger capacity bricks :-(

Does anybody know the algorithm?

Side Note, I have ssen that some members here report ImBalance of only a few mV - my ImBalance is far greater, which i feared could be parasistic cells in one or two bricks. So I did SMT readouts of all Brick voltages over several days of Vampire Drain periods and all bricks loose approx the voltage that the Idle consumption cause - so no Parassitic cells (or im-measureable). Atteched graph shows on top Voltages and on Bottom, drop over period. It think it is pretty convincing that all Bricks six in each module has a lower Voltage, why woul dthat be?

1712657954584.png


I tend to conclude, that with a CAC ImBalance of 2% it makes sense to maintain a certain Voltage ImBalance (say up to 2% and 2% of 3.6V is 72 mV).

Any comments on whether this is likely or wishfull thinking?
 
Doesn't look like your car is balancing if there is still at least a 20mV imbalance.

I faced similar and wondered WTF was going on. In the end I tried a method from Reddit that said engineers from Tesla suggested charging to 100% and letting the car sit for at least 6 hours.

So I charged to 100%, unplugged, and let the car sit. I started at 28mV imbalance. After 6 hours it was down to around 20mV imbalance. I decided to leave it and could see the imbalance being corrected by around 1mV per hour. After 24 hours it was down to 4-6mV imbalance.

have long assumed that even my old car balances 'all the time'

I had also thought this due to posts by people in the past. Certainly when I got the car we knew to charge above 93% to trigger balancing. At some point people suggested it was no longer necessary and the car will balance all the time after updates to the BMS software.

But it doesn't seem to be true any more. Or maybe it's only true after the BMS has seen a full spread of ranges (including 100%) but after a while the data becomes stale and the BMS is unable to accurately balance. And then it needs a 100% charge to recalibrate.

Does anybody know the algorithm?

As far as I know the algorithm has changed over the years and uses data points from all over the charging range. However it does appear that you do need to charge into the 90-100% range periodically to keep things accurate.

The other thing I have learnt is that the car needs to sit for a while before the car will conduct readings. I've seen 45 minutes mentioned, so I'd leave the car alone for at least an hour.

i.e. Charging to 100% and driving away immediately isn't going to allow the BMS to get the values it needs. The car needs to sit for an hour.
 
  • Like
Reactions: jensk2
On a '15 MS 85D, I rarely went above 90%. The dozen or so times I did, including 3 times to 100%, I saw very little difference in capacity or RR, even comparing to 2 months storage at 50-60%.

At 65k miles when I sold it, I had 265 out of 270RM. I Forget the capacity per SMT, but think it was 75KwH.

I often had 20mv imbalance, and module 2, string 2 was always low.

Despite this, RR was highest on Teslafi for the model year and mileage.

On the '22, never been below 22 or above 88%. Despite this, my capacity has not suffered, despite 2 months storage at 55%. 93Kwh capacity after 14k miles, which is average, but my pack started out lower than most.4-8mv imbalance, can't get CAC since SMT does not report this on the newer cars.

I don't think it is ever necessary to cycle the battery to extremes to get greater BMS accuracy, if all it does is "add" a few miles of range. The few data points above and Tesla advice do not convince me otherwise.
 
Doesn't look like your car is balancing if there is still at least a 20mV imbalance.

I faced similar and wondered WTF was going on. In the end I tried a method from Reddit that said engineers from Tesla suggested charging to 100% and letting the car sit for at least 6 hours.

So I charged to 100%, unplugged, and let the car sit. I started at 28mV imbalance. After 6 hours it was down to around 20mV imbalance. I decided to leave it and could see the imbalance being corrected by around 1mV per hour. After 24 hours it was down to 4-6mV imbalance.



I had also thought this due to posts by people in the past. Certainly when I got the car we knew to charge above 93% to trigger balancing. At some point people suggested it was no longer necessary and the car will balance all the time after updates to the BMS software.

But it doesn't seem to be true any more. Or maybe it's only true after the BMS has seen a full spread of ranges (including 100%) but after a while the data becomes stale and the BMS is unable to accurately balance. And then it needs a 100% charge to recalibrate.



As far as I know the algorithm has changed over the years and uses data points from all over the charging range. However it does appear that you do need to charge into the 90-100% range periodically to keep things accurate.

The other thing I have learnt is that the car needs to sit for a while before the car will conduct readings. I've seen 45 minutes mentioned, so I'd leave the car alone for at least an hour.

i.e. Charging to 100% and driving away immediately isn't going to allow the BMS to get the values it needs. The car needs to sit for an hour.
so, do we balance on our own every other month or so, charge to 100% and let it sit for an hour
or assume Tesla amazing code, BMS, does all the necessary balancing on its own?
 
so, do we balance on our own every other month or so, charge to 100% and let it sit for an hour
or assume Tesla amazing code, BMS, does all the necessary balancing on its own?
If your capacity on Recurrent, SMT, or Teslafi is in the middle or upper portion of the fleet, just let the BMS do it's job.

If not, don't expect miracles by cycling the battery.
 
  • Like
Reactions: kpanda17
so, do we balance on our own every other month or so, charge to 100% and let it sit for an hour
or assume Tesla amazing code, BMS, does all the necessary balancing on its own?

Depends I guess. If you have CAN bus tools you can see when voltage imbalance starts to drift and the BMS is being ineffective balancing. Then you can do a 100% charge to re-calibrate the BMS.

If you don't have CAN bus monitoring then doing a 100% charge every couple of months would appear to keep things in check.

My last 100% charge was in late January. Just checked the car now and 6mV imbalance so things still looking good.
 
  • Like
Reactions: kpanda17
Depends I guess. If you have CAN bus tools you can see when voltage imbalance starts to drift and the BMS is being ineffective balancing. Then you can do a 100% charge to re-calibrate the BMS.

If you don't have CAN bus monitoring then doing a 100% charge every couple of months would appear to keep things in check.

My last 100% charge was in late January. Just checked the car now and 6mV imbalance so things still looking good.
so, do we balance on our own every other month or so, charge to 100% and let it sit for an hour
or assume Tesla amazing code, BMS, does all the necessary balancing on its own?

I tend to conclude, that with a CAC ImBalance of 2% it makes sense to maintain a certain Voltage ImBalance (say up to 2% and 2% of 3.6V is 72 mV).

Any comments on whether this is likely or wishfull thinking?

Thanks for the replies!

I know a little more now. I had a long trip planned for thursday (2 x 105 km at Danish Highway speeds of up to 130 kmph :)) so I decided to test my theory that the voltage imBalance was BMS Intentional and to correct CAC ImBalance.

So I charged to 100% (third time in the cars existance) AND waited untill it said 'Charge complete' instead of driving as soon as it hit 100%. After racing Danish highways (with consumption out at 239 Wh/km and home in the evening with 249 Wh/km) I returned with 22% SoC. My voltages (courtesy ScanMyTesla) are below (Top taken at 'Charging complete' and bottom 2 hours after parking car after returning).

1713598545919.png


If the Voltage ImBalance was to 'correct' for Calculated Amperage Houre ImBalance (CAC ImBalance) then an Ah weak brick would have too low voltage at bottom SoC (and possibly/likely too high Voltage at 100%, in case Tesla does not simply do Top Level Balancing, but 'Always Balancing')

But all bricks that are High in Voltage at 100% are as well high at low SoC and vice versa. That does not argue for CAC compensation in the Balancer!

As the Voltage drop is inverse proportional to the Ah, I have added below brown graph, which shows the expected low SoC voltage by dividing the 100% Voltage with AVG(100%) / AVG(Min SoC) voltage:
1713598902324.png


If one looks at Module 2 (Brick 7 - 13), itt was very low in 100% Voltage. but landed better than the expected ratio! This must have a high Ah Capacity
If one looks at Module 3 (Brick 13 - 19) it was very high in 100% Voltage and landed worse than expected. This must have a low Ah Capacity
This is all to be expected !

To mee above does not look compensated for CAC at all and my imbalance could very well be the effect of NEWER balancing, as the initial CAC - with 74 high quality Panasonic Cells in parallel must be very similar for all bricks and assuming that Tesla does balancing during production or Panasonic delivers equally charged cells (which they did with th efour NCR 18650B cells I own)

My CAC Imbalance of 4,3Ah I assume is a few blown fuses and the +8 years of drift :-(

On the FB Group 'Tesla BMS_u029/BMS_u018 (BMS_OhSh1t)' one of the Professionals reported that the car has an 80% - 100% balancing window and will only balance in that range while connected to a charger. The info had a recommandation with it :) that periodic slow charge to 90% is a better strategy than charging to 100%, which I think is a very good advice to reduce High SoC Cathode stress!

Above FB info matches my results perfectly.

At my 100% SoC charge, SoC was in the 80-100% range for 1 hour and 20 minutes because it was a Shopping Center 50/25 kW charger, which was a bad idea given the 'new' info:
1713600939412.png


With assumed 100 mA bleed, that caused only 133 mAh offloaded, which is a mere 0,06% of my average CAC of 222 Ah, but is 3% of my CAC ImBalance (of 4.000 mAh). So my balancing should now have been 'improved' ever so slightly :)

If the BMS should compensate my CAC ImBalance of 4 Ah (plus 8 years of drift) it WILL slightly increase capacity, because both the avareage pack Voltage during a discharge is slightly higher AND because the weakes brick dies a litle later. My current average Brick voltage at 100% is 4,163 V, so we can raise average to 4,200 V, which is only 0,9% higher than now. But if my weakes cell(s) are currently at a too low voltage, then the improvement MAY be in excess of 1%

But my slowest 3 phase charging is at 3 x 230V x 5A = 3,3 kW which means that a theoretical 80-90% charge is exactly two hours and then I will need to do that charge 20 times. I am not prepared to do that, because the wear will probably be of the same magnitude as the 'improvement'. Plus, it will not improve longevity, because taking the weaker cells to a higher Voltage will increase the wear on the already weaker cells. (For Capacity I favour Top Level Balancing and for longevity I favor Bottom Level balancing).

But for curiosity and confirmation of current workings of the BMS, I may do a proof of theory test and perform a balancing that I can surely detect. A one phase charge at 5A will use 6-7 hours from 80% to 90% and should improve balancing by 12% relative, which I will be able to measure using ScanMyTesla and Excel :) (If only one brick is 4 Ah below the others balancing WILL take the full +40 hours, but if half of bricks are above and half are below average CAC, then it will be factor two faster, I deducted)

After the test - if my bottom balancing is good I will ignore balancing from now on (and not spam TMC with these long rants :) )
 

Attachments

  • 1713600770894.png
    1713600770894.png
    916.2 KB · Views: 4
Last edited:
  • Informative
Reactions: aerodyne
But for curiosity and confirmation of current workings of the BMS, I may do a proof of theory test and perform a balancing that I can surely detect. A one phase charge at 5A will use 6-7 hours from 80% to 90% and should improve balancing by 12% relative, which I will be able to measure using ScanMyTesla and Excel :) (If only one brick is 4 Ah below the others balancing WILL take the full +40 hours, but if half of bricks are above and half are below average CAC, then it will be factor two faster, I deducted)

After the test - if my bottom balancing is good I will ignore balancing from now on (and not spam TMC with these long rants :) )

I think above calculation was way off! Having slept on the issue, I have come to the conclusion that the voltage ImBalance from the CAC ImBalance should ONLY be 20 mV at 100% SoC :-(

0-100% SoC wil produce (approx) 3,0 - 4,2 Volt increase on the brick(s) with the lowest Ah capacity. That means the end voltages would be:
1713696910238.png


That is 20 mV. And I have 60 mV !!

To estimate whether Balancing will increase my available capacity I have created below graphs. Bricks 11, 12 and 66 hav eth elowest voltage at 100% SoC and could be the bricks that cause 'Pull over safely, car is shutting down'
1713697194281.png


But those bricks are over average in CAC (the green graph is voltage after discharging to 22% SoC, the Brown is what would be expected if each brick had the Average CAC ie. 222 Ah). So bricks 11, 12 and 66 have CAC above average and may not be the 'Pull over' bricks.

1713697364163.png


The CAC weakest cells are those that had the biggest voltage drop during th edischarge and these are bricks 13, 14 and 54!!!
1713697461772.png


So who reaches the assumed 3.0 Volts first? The strong, but too low voltage charged or the weak, that are highly charged, but will fall in voltage faster?

Unfortunately, the voltage drop certainly does not have a fixed slope as function of Ah, because it looks similar to this (same car):

1713697808947.png


I have decided to ignore that and just project linearly and se what bricks goes lowest first, as in:
V(0%) = V(100%) - (V(22%)) / 0,78

That cause these projected voltages per brick:
1713698032693.png


So it suggests that Bricks 12 and 66 will be the two limiting bricks and as they are both severely under charged and can be lifted, then balancing SHOULD improve capacity.

But I think it will take days to balance out the bricks!!

Just as the 4 Ah CAC ImBalance would only cause 20 mV voltage ImBalance, then the current 60 mV voltage Imbalance corresponds to 12 Ah brick Amphour ImBalance. At a bleed speed of 100mA, that could take 120 hours to correct. Luckily (and by nature) the weakest bricks are already high in Charge and the strong cells are low in voltage (same nature), so I will need to bleed somewhat less. But that could still be 6 - 8 AH which will last 60 - 80 HOURS!!
I will likely do 80%-90% a few times, to confirm it is worth the effort and then stop when many bricks projects same 'out of charge' points.

(I have long wondered why my car reports:
Nominal Capacity = 65kWh
50% SoC = 3,7V (Half of energy(kWh) is below this voltage)
Min(CAC) = 220 Ah
Because that SHOULD give 220 Ah x 3,7V x 84 Bricks == 68,37 kWh (and not 65 kWh)
It does makes sense, when some of my strong bricks are under charged :) )
 
Last edited: