SOC (estado de carga de las baterías) para LiFePO4

Estoy tratando de encontrar el estado de carga (SOC) de algunas baterías

  • Tengo 3 baterías LiFePO4, estas son las que he comprado:

    https://www.ampsplus.co.uk/ampsplus-14500-3-2v-500mah-battery-button

  • Los tengo conectados en paralelo . Para cada batería puedo medir su voltaje individual y puedo descargar individualmente cada una a través de una resistencia.

  • Los dos métodos que he encontrado en línea para encontrar el SOC (estado de carga) de cada batería se llaman conteo de coulomb y el segundo es una tabla de búsqueda de voltaje.

conteo de columnas

Este método consiste en integrar la corriente a lo largo del tiempo para averiguar cuánta carga se le da a las baterías.

  1. Esto solo mide la diferencia en el estado de carga. Dado que no sabe cuánta carga hay en cada batería, en realidad no puede encontrar el estado de carga, ¿cómo soluciona este problema?

  2. Solo sé cuánta corriente entra en toda la conexión paralela y no en cada batería, por lo que el SOC cambia en todas ellas y no en cada una. ¿Hay alguna manera segura de encontrar la corriente que entra en cada batería? ¿Necesitamos siquiera encontrar la corriente que entra en cada uno, si están en paralelo, no distribuirían esto uniformemente entre ellos?

Tabla de búsqueda de voltaje

Este parece ser el método más fácil. Si tiene un gráfico de voltaje VS SOC, puede encontrar cuánta carga hay en cada batería simplemente midiendo el voltaje en cada batería y luego comparándolos con los valores de voltaje del gráfico / tabla de búsqueda. El problema es

  1. Miré la hoja de datos como se muestra en el enlace y no puedo encontrar nada como esto. Por lo tanto, necesitaría encontrar esto yo mismo. Esto deja la pregunta de cómo podría hacer esto.

  2. Cuando encuentre este gráfico, ¿puedo usar la tabla de búsqueda para todas las baterías, ya que las diferencias entre ellas son lo suficientemente insignificantes como para usar el mismo gráfico para todas o tendría que producir un gráfico diferente para cada una?

Estoy agradecido por cualquier ayuda y aprecio su tiempo leyendo esto.

Para agregar: no me gustaría usar ningún sistema BMS prefabricado en línea, ya que estoy tratando de aprender sobre esto. actualmente estoy usando

  • Arduino nano cada
  • SMPS para conversión DC-DC puede ser un dólar o un impulso
  • He diseñado un circuito para las baterías que puede medir sus voltajes y descargarlos individualmente.

Respondiendo algunas preguntas (lo editaré más tarde con respuestas y todo, si puedo obtenerlas)

Solo una nota Russel, cuando dices 1%, ¿a qué te refieres exactamente?

Para dar una idea, este proyecto utiliza un SMPS, Arduino y una placa de circuito.

Q1 - La corriente se mide con el sensor de corriente ina219. Estos valores se toman cada 1s y se almacenan usando el Arduino en una tarjeta SD.

P2 - Las baterías se conectan en paralelo mediante cables de alimentación. Cada batería está en una placa de circuito que es esta:

ingrese la descripción de la imagen aquí

Usando el relé, puedo dejar de cargarlo y medir el voltaje de cada celda por separado y descargarlas. Tiene un opto para aislar la celda de las conexiones, un relé para cambiar los pines para medir y un puerto pos y neg que se utilizan para conectar las baterías entre sí. El mosfet y la resistencia solo se usan cuando se descargan.

P3: para la integración, lo que estoy haciendo es que Arduino recopile la corriente medida cada segundo. entonces es currentx1 segundo y solo agrego toda la corriente básicamente desde que encuentra el área, también conocida como integración. (sí, asume que la corriente es constante durante ese segundo, pero la corriente está regulada por un controlador PID, por lo que tiene un error muy pequeño).

En cuanto a SOH (estado de salud), temperatura, etc., me centraré en esto más adelante, estoy tratando de implementar SOC, equilibrar y cargar primero.

Para LFP, la búsqueda de voltaje no es tan útil: es una curva muy plana alrededor de 3.2V. Si 3,6 V es 100 % y 2,5 V es 0 %, encontrará que 3,3 V es aproximadamente 90 % y 3,1 V es aproximadamente 10 %. Entre esos... buena suerte. El conteo de Coulomb funciona.
@user_1818839 Puedo medir el voltaje hasta un mV. Creo que esto al menos debería ser suficiente para diferenciar entre 95%, 85%, 80%, etc., así que incrementos de 5%. Recopilé algunos datos del voltaje de las baterías, por ejemplo, 3.301, etc. Además, tiene razón al decir que estoy tratando 3.6V como voltaje máximo y 2.5V como el voltaje más bajo.
Estoy abierto a cualquier sugerencia sobre algún algoritmo o método para determinar el SOC. No estoy tratando de encontrar el método más complejo, solo algo que al menos me dé algo que sea algo preciso.
¡Hola fred! Si sus baterías están en paralelo, no puede descargarlas individualmente. ¿Quizás me estoy perdiendo algo obvio?
Las baterías de litio no son baterías normales. Pueden quemarse muy intensamente si se manipulan mal durante la carga o descarga. Es por eso que los litios necesitan un BMS competente frente a ellos. Si desea administrar la batería usted mismo, puede elegir una batería de litio que tenga un BMS incorporado (se ubica debajo del terminal positivo, por lo que hace que la batería sea un poco más alta; es invisible para usted a todos los efectos prácticos, por lo que puede divertirse con BMS diseño sin riesgo), o si desea "funcionar con metal desnudo", puede seleccionar una química más dócil como NiMH.
@bitsmack Tengo un circuito diseñado que puede hacer esto, puedo enviar un esquema si desea que sea realmente simple.
@reinstate monica, estoy tratando de diseñar algo que pueda equilibrar la batería, SOC, SOH, etc., así que supongo que es un BMS en sí mismo.
@ Harper-ReinstateMonica Estas no son células de litio normales. Son considerablemente más seguros, pero no conozco ningún LFP con BMS incorporado.
para agregar a lo que dijo @user_1818839, estas baterías simplemente mueren/dejan de cargarse/descargarse cuando llegan a un punto en el que pueden quemarse o derretirse, etc., esta es una de las razones por las que las elegí.
@Fred seguro, esos objetivos son compatibles. Puede tener el BMS en la celda protegiendo la celda misma, y ​​también hacer que su circuito externo haga el balance. En ese punto, su circuito externo solo necesita equilibrarse.
@user_1818839 Encontré uno sin esfuerzo con una búsqueda en Google, BMS integrado y todo. Y "considerablemente más seguro que el litio normal" no es una gran recomendación jajaja. La tecnología de batería más antigua es segura, no se necesita "r". Toda esta idea de "baterías incendiándose" es realmente bastante novedosa, y solo existe debido a la loca búsqueda de la densidad de energía.
@fred 1% es probablemente lo mejor que puede lograr sin un control muy cuidadoso de las mediciones. | P1 ¿Qué estás usando para medir la corriente? (Medidor o sistema utilizado, precisión, resolución, marca) ... P2 ¿Cómo se conecta a las celdas (recepción de detalles, conexiones del medidor, etc.)? P3 ¿Cómo está integrando los resultados para obtener el algoritmo de muestreo de período de tiempo de mAh...? || También control de temperatura, calefacción de carga, funcionamiento de otros dispositivos...
Se puede esperar que una tabla de búsqueda de voltaje sea menos precisa que el conteo de culombios y variará con la condición de la batería, la temperatura, la corriente de carga y más. El conteo de coulomb implementado correctamente le indica la entrada y salida REAL de coulomb.
Veo que parte de lo que pregunté se proporciona en los comentarios sobre la respuesta de Bruce. Es de gran ayuda que TODA la información relevante se incluya en la pregunta (e idealmente que esté presente inicialmente si se conoce).
Sugerencia: mida el voltaje del terminal de la celda cuando está cargada. Cargue a, digamos, 0,1 V por encima de esto hasta que la corriente caiga a una fracción muy pequeña, digamos un rango de C/20 a C/100. La celda ahora está completamente cargada.
@RussellMcMahon Encuentre las respuestas a sus preguntas agregadas al final de la publicación.
Tengo algunas preocupaciones y agradecería su opinión. Tengo un problema con la carga de la batería a 3,6 V. Mi proceso de caracterización es este. Si la batería es inferior a 3,6 V, se carga. Una vez que alcanza los 3,6V, deja de cargar y descansa durante 10-20 segundos. Luego comienza a descargar hasta llegar a 2,5 V y repite. Estoy usando una carga de corriente constante y la estoy cargando a 800 mA
El problema es que usando carga de corriente constante, lo carga a 3.6V, pero cuando deja de cargar, inmediatamente cae a 3.4V. He leído en línea que esto se debe a la ESR y la capacitancia de las baterías. También he visto que se menciona que el uso de una combinación de carga de corriente constante y voltaje constante podría permitirle alcanzar 3.6V usando voltaje constante para cargar desde 3.6V en adelante. ¿Tiene alguna experiencia o conoce formas en las que podría abordar esto/si esto es correcto?
prnt.sc/13owkjr Aquí hay un gráfico de mV VS tiempo en segundos que usé para caracterizar la batería usando el ciclo de carga que mencioné. Se podía ver claramente la caída de 3,6 a 3,4VI mencionada anteriormente. El segundo problema es con el conteo de coulomb, estoy configurando 3.6V como el 100% SOC y 2.5V como el 0% SOC. El problema es que asumo que la corriente que va a la batería en paralelo se divide uniformemente entre ellos, lo que no es correcto. Por ejemplo, medí una batería de 550 mAh mientras que la otra era de 550 mAh y nominalmente deberían ser de 500 mAh.
Dado que no puedo medir la corriente que entra en cada batería individualmente sino en toda la combinación en paralelo, esto daría lugar a imprecisiones. También he notado que el total de culombios descargados es ligeramente mayor que los culombios usados ​​para cargar la batería, por lo que también hay algún error con las mediciones.
La forma en que estoy tratando de implementar el equilibrio y SOC es esta. Constantemente mido el voltaje de cada batería para verificar que no superen los 3,6 V durante la carga y no estén por debajo de los 2,5 V durante la descarga y las descargo/cargo según sea necesario, las balanceo de manera que cuando estén conectadas deben estarlo inicialmente. en algún lugar cerca del 100% completamente cargado, alrededor de 3.6V. Eso cubre el equilibrio. Para SOC, encuentro el SOC inicial y luego, dependiendo de si se están cargando o descargando, realizo el recuento integrando (más como sumando) la corriente y restando o agregando al SOC inicial según sea necesario.
Para la carga de voltaje constante, ¿simplemente coloca artificialmente un cierto voltaje en la batería? si es así, ¿cómo determina cuál debería ser este voltaje? Perdón por el spam, solo quería explicar lo que estaba haciendo.
¿Cómo mide la corriente de su arreglo mostrado? Se infiere de V_bat_OC/R_losd o ???
@RussellMcMahon El sensor de corriente mide la corriente, luego se conecta a un pin analógico en el Arduino. El pin analógico se lee cada segundo y se registra la corriente.
@fred Su circuito de medición actual no parece mostrarse (en su diagrama). Presumiblemente, tiene una resistencia de detección en serie siempre conectada desde la fuente FET a tierra con un cable de detección a la entrada ADC de medición de Arduno conectada al drenaje.
Para una medición del ADC lo más precisa posible, es ESENCIAL que el lado de tierra de la resistencia de detección y la tierra analógica del procesador estén conectados por una pista de PCB sin ningún otro conductor de corriente que se bifurque. ¿Qué resistencia de sentido usas? ¿Qué es ADC Vref y cuántos bits ADC? He visto errores significativos de ADC debido a prácticas de retorno a tierra.

Respuestas (1)

Dado que no sabe cuánta carga hay en cada batería, en realidad no puede encontrar el estado de carga, ¿cómo soluciona este problema?

Cargue completamente la batería, luego 'cuente los coulombs' hasta que el voltaje muestre que está casi vacío. Esto se puede usar como referencia para futuras cargas y descargas parciales, pero es posible que deba repetirse de vez en cuando si la batería normalmente no tiene un ciclo completo.

¿Necesitamos siquiera encontrar la corriente que entra en cada uno, si están en paralelo, no distribuirían esto uniformemente entre ellos?

Si las celdas son todas iguales (número de pieza, edad, capacidad medida, etc.), entonces deberían compartir la corriente aproximadamente por igual hasta que alcancen la carga completa . Si las capacidades no son casi iguales, deben compartir la corriente de acuerdo con sus capacidades individuales.

Cuando una LiFePO4 alcanza la carga completa, su consumo de corriente disminuye (en comparación con otras celdas con el mismo voltaje). Dado que una celda está destinada a llegar primero, las otras se cargarán a una corriente más alta hacia el final. Siempre que las celdas estén bien emparejadas y la corriente de carga no sea demasiado alta, esto no debería ser un problema.

Tenga en cuenta que cualquier exceso de resistencia entre las celdas hará que algunas reciban más corriente de carga que otras. Por lo tanto, deben conectarse entre sí con correas de baja resistencia soldadas o soldadas, no colocarse en portapilas.

Tabla de búsqueda de voltaje... Miré la hoja de datos como se muestra en el enlace y no puedo encontrar nada como esto

Eso puede deberse a que una tabla de búsqueda de voltaje no es útil con LiFePO4, porque la curva de descarga es muy plana durante la mayor parte del ciclo.

Cuando encuentre este gráfico, ¿puedo usar la tabla de búsqueda para todas las baterías, ya que las diferencias entre ellas son lo suficientemente insignificantes como para usar el mismo gráfico para todas o tendría que producir un gráfico diferente para cada una?

Una vez que encuentre ese gráfico, probablemente comprenderá por qué no funciona. Las diferencias entre marcas pueden ser 'insignificantes', pero también lo es el cambio de voltaje. Aquí hay algunos ejemplos de curvas de descarga en varias corrientes: -

ingrese la descripción de la imagen aquí

Tenga en cuenta la escala Y truncada. Con un drenaje de corriente de bajo a moderado, el voltaje cae muy lentamente hasta que la batería está casi vacía y podría verse abrumada fácilmente por las variaciones del consumo de corriente.

Solo quiero aclarar acerca de cómo encontrar el punto de referencia para hacer el conteo de coulomb. Usted menciona cargar completamente la batería. Actualmente estoy cargando las baterías usando un dólar sincrónico que está conectado a una entrada de 5V. La razón por la que hago esto es porque puedo controlar la corriente del inductor, que es básicamente la corriente que ingresa a la batería y es de 250 mA. Supongo que para encontrar el punto de referencia necesitaría hacer una carga de voltaje constante. para ver cuándo la corriente cae realmente bajo, lo que indica que alcanzó el 100% SOC?
esta es la carga y descarga de la celda: prnt.sc/13nhilr (el eje y es mV y el eje x es el tiempo en que alcanza los 3,6 V y luego baja a alrededor de 3,4 V debido a la ESR y la capacitancia de la celda. El fabricante afirma no debe cargarlo a más de 3.6 V. Supongo que para alcanzar el 100% de SOC, ¿podría pasar por encima de eso?
Mirando la descarga (ocurre después de 3.4V hasta 2.5V) ¿en realidad no es tan plana como podría pensarse?
Disculpas, por el exceso, estoy confundido sobre cómo "cargar completamente" la batería para obtener un punto de referencia para el 100% de SOC. Suponiendo que lo cargo por completo, ahora empiezo a descargarlo, ¿cómo puedo saber cuándo llega a 0 SOC y cómo hago esto antes de matar la batería (por debajo de 2,5 V). Estas baterías son muy sensibles al sobrevoltaje y al subvoltaje.
Llevar una batería al 0% de carga es una forma segura de matarla. A su gráfico de alta le falta información importante. ¿Cuál es la escala de tiempo? ¿Cuál fue la corriente de descarga? 3.6V es en realidad más alto de lo necesario. 3,5 V es suficiente y 3,4 V es suficiente si no te importa esperar lygte-info.dk/info/BatteryLiFePO4Charging%20UK.html
La escala de tiempo está en segundos, por lo que ese ciclo duró alrededor de 2,7 horas. La corriente de descarga también está configurada en 250 mA, esto está controlado por un PID, por lo que oscila alrededor de él y no constantemente alrededor de 250 mA. El caso es que aunque llega a los 3,6V en realidad no son 3,6V. se pierden alrededor de 0,2 V debido a la ESR y las capacidades de la batería, por lo que en realidad solo carga hasta 3,4 V. Creo que para cargarlo hasta 3,6 V, debe usar una carga de corriente constante de hasta 3,4 V y luego usar una carga de voltaje constante de hasta 3,6 V, pero no sé cómo implementar esto.
siguiendo el gráfico que te envié, registré la corriente cada segundo utilizada al descargar. entonces, en una forma de integrarlo, simplemente hice current*1 y sumé todas las corrientes para obtener el área que es básicamente lo mismo que integrar. esto resultó ser 1763 As (C), ¿parece esto razonable? esta es la cantidad descargada pasando de los 3.4V a los 2.5V
Eso da como resultado 490 mAh, que está muy cerca de la capacidad nominal. Sin embargo, la caída de voltaje en la última mitad de la descarga es mucho peor de lo que esperaba. O son celdas de mala calidad o hubo algún problema con la configuración de la prueba. Por lo general, el cargador aplica una corriente constante de hasta 3,6 V, lo que hace que el voltaje se dispare justo antes del final. La carga a 3,4 V aún alcanza su máxima capacidad, pero lleva mucho más tiempo.
@BruceAbbott Si el BMS (o la falta de él) da como resultado que una batería se agote hasta 0 V, de forma regular, todo lo que necesitan hacer es usar una batería que esté bien con eso ... NO litio NO plomo-ácido. NiFe y NiCd son felices como almejas funcionando a 0V todos los días... así es como funcionan las "luces de camino" solares baratas. Tengo una gran configuración solar de celdas húmedas de NiCd de la que se abusa ampliamente; por mucho que lo intenten, no pueden dañarlo jajaja.
@Harper-ReinstateMonica Nicads están prohibidos en el mercado de consumo de la UE, y las baterías NiFe solo están disponibles en tamaños 'industriales'. Para todos los demás tipos de batería (utilizados en la gran mayoría de los equipos de consumo), la descarga a 0 V no es buena para ellos.