FransVeldman / OpenHybridBMS

Arduino based BMS for lead-acid/LiFePO4 hybrid systems tailored for long term off grid sailing boats
GNU General Public License v3.0
18 stars 4 forks source link

[Question] Full SOC determination method? #1

Open abaeyens opened 4 years ago

abaeyens commented 4 years ago

Hi

I was looking at your project of combining the Li and LA in parallel. I appreciate the simplicity and lack of major changes to the existing system.

I was wondering how you determine full SOC in order to terminate charging the Li battery. One method is to regulate the current into the battery (e.g. to 1/30 C) and stop charging when the voltage reaches a threshold.

As I understand, in the parallel configuration all charging sources always run at full output if the Li battery is connected, and thus the above method cannot be applied. So, what method does your system use to estimate full SOC?

FransVeldman commented 4 years ago

Hi,

I was wondering how you determine full SOC in order to terminate charging the Li battery. One method is to regulate the current into the battery (e.g. to 1/30 C) and stop charging when the voltage reaches a threshold.

Stopping charging when the voltage reaches a treshhold voltage works with all currents. With stopping at a voltage below the maximum voltage specified by the manufacturer (in my case I stop at 3.550V, factory says 3.600V), the battery can not be damaged, you only might get a slight "undercharge" which is actually a good thing for lithium batteries. With a low current, it might take just a bit longer to reach the cut off voltage so you might cram a few Ah's more in the battery than with a higher current, but in my experience this is too little to worry about. I use the BMS to track the SoC (by counting all the amps going in and out of the batteries) with my 360Ah of lithium batteries, and the charge current from my solar panels varies between 0 and 100 Amps output. On cloudy days with a low current output like 20A, I get only 2Ah's more into the batteries than on days where the cutoff voltage is reached while the full 100Amps are flowing into the battery. That is one of the nice things of lithium batteries, that their voltage curve has such a nice determined "knee" when they become fully charged, which is relatively independent from other factors.

At the moment I have added some logic to determine the internal resistance of the cells automatically, and if use this to correct the measured cell voltages, the result is even better because it cancels the effect of low vs high charge currents.

BTW, I'm converting this project from Arduino-based to ESP32.

Best regards, Frans Veldman

abaeyens commented 4 years ago

Hi, Thanks for your helpful reply.

I had not expected such a small difference in charged energy for such a large difference in charging current. It's good to hear as it significantly eases charging the Li battery. Estimating the internal resistance makes sense. Apart from estimation SOC, it also seems useful to me to monitor the health of the cells?

An ESP32 ticks a lot of boxes regarding functionality and makes some fancy features possible. Would you combine it with a simple µC that handles the low-level control and some watchdog-like tasks, or let the ESP32 do everything?

Sidenote: Github issues are not really designed for this type of discussion I'm afraid - do you mind that I use them for these questions, or would you prefer a forum/mailinglist/IRC or so?

Best, abaeyens