Calcular SOC de la bateria
Recurro de nuevo a vosotros para ver si podéis ayudarme, tengo un inversor Axpert, y tengo conectada un Raspberry P (RPi) con la que monitorizo los datos de Vbat, Pout_inversor, etc y con estos datos controlo la depuradora de la piscina. Para mejorar este control quiero calcular el SOC de la batería (tengo un monitor Victron BMV-700 que ya me marca el SOC y ahora me gustaría calcularlo con la RPi). He estado buscando por el foro y por google y no termino de aclararme, he hecho mi propio "algoritmo" para calcular el SOC.
Vendría a ser algo así:
Código PHP:
In_bat = Cb * (6.5/60/60)# Calculo de la energia que entra a la bateria (6.5s es el tiempo entre muestra y muestra)
Out_bat =Db * (6.5/60/60)# Calculo de la energia que sale de la bateria
# El factor "fk" es un factor que he obtenido experimentalmente, para "saber" cuantos Ah tienen que entrar para cada
# "Ah" que sale del bateria
bal_bat = In_bat - (Out_bat * fk) # Balance de energia (que puede ser positivo o negativo segun si entra o sale)
if Vbat >28: # Cuando el voltaje supera los 28 V considero que la bateria esta cargada
Ins_bat0 = Bat_max # "Bat max" es la capacidad de la bateria en Ah
else:
Ins_bat0 = Ins_bat # Guardo el valor de los Ah de la bateria de la anterior medida
Ins_bat = Ins_bat0 + bal_bat
# Actualizacion de los Ah restantes
# el valor "bal_bat" puede ser [+] o [-] segun entre o salga energia. "Ins_bat" es el valor de Ah que tenia la bateria
# en la anterior medicion, y el "Ins_bat" el de la medicion actual.
SOC_b = (Ins_bat/Bat_max)/100 # SOC de la bateria en [%]
Dudas que tengo:
Calcular el SOC solo haciendo el balance de la energía que sale/entra de la batería es correcto?
Poniendo la batería al SOC = 100% cuando el V de la batería supera los 28v es correcto o se tiene que cumplir algo más?
Otra cosa que creo que no es correcta es suponer que la capacidad de la batería (la que dice el fabricante en C10) "Bat max" es 420Ah, la batería tiene casi 3 años, con lo cual habrá perdido un poco de capacidad, ¿Como "calculo" la capacidad real, se puede? ¿O tengo que suponerla?
Gracias de antemano por vuestra ayuda!
Re: Calcular SOC de la bateria
Creo que la capacidad de la bateria o estado de carga, la obtendrás midiendo la tensión, que para el plomo no tengo datos.
Otra cosa es conocer los ciclos de la misma, para ello tendrás que saber la capacidad en Ah, al evaluarlos, sabrás lo que ha entrado, considerarás el coeficiente de pérdidas (creo que en plomo es del 1,2) y tendrás la energía disponible, que dividida por la capacidad te dará el estado del ciclo, conociendo el número de ciclos, sabrás el SOH.
Saludos
Re: Calcular SOC de la bateria
Gracias por la respuesta, pero con el voltaje creo haber leido que no es muy fiable estimar el SOC. No termino de entender lo del SOH.
Re: Calcular SOC de la bateria
En el brico de mi pie de firma hacemos el calculo del SOC utilizando la cuenta de los AH que entran o salen de la batería
Para un mejor ajuste utilizamos la Ley de Peukert en descarga y un coeficiente de eficiencia en carga
Esta hecho en Python pero creo que se lee bien el concepto:
Código PHP:
### CALCULO SOC% A C20
if ibat < 0 :
Ip1 = -ibat
Ip1 = Ip1**CP
Ip1 = AH*Ip1
Ip2 = AH / 20
Ip2 = (Ip2**CP)*20
Ip= -Ip1/Ip2
else :
Ip = ibat * EC
if (ibat>0 and ibat<1 and abs(vbat-vflotacion)<0.2) :
DS = DS + (AH-DS)/50
else :
DS = DS + (Ip * t_muestra/3600)
if DS > AH :
DS = AH
if DS < 0 :
DS = 0
soc = round(DS/AH*100,2)
### FIN CALCULO SOC%
La variable DS es donde se va almacenando el valor en Amperios Hora que tiene la batería
Lógicamente SOC= DS/AH*100 ...siendo AH la capacidad nominal de la batería...en mi caso a C20
CP: es el coeficiente de Peukert de la batería para descarga
EC: es el coeficiente de eficiencia en carga
ibat: es la intensidad de batería con la lógica de ser positiva si carga y negativa si se descarga
Como veras hay un pequeño ajuste para que se sincronice mas rápidamente al 100% de SOC si se esta cerca de Vflot con una entrada de Ibat pequeña (síntoma evidente de batería cargada)
Re: Calcular SOC de la bateria
Cita:
Iniciado por
Mleon
En el brico de mi pie de firma hacemos el calculo del SOC utilizando la cuenta de los AH que entran o salen de la batería
Para un mejor ajuste utilizamos la Ley de Peukert en descarga y un coeficiente de eficiencia en carga
Esta hecho en Python pero creo que se lee bien el concepto:
Código PHP:
### CALCULO SOC% A C20
if ibat < 0 :
Ip1 = -ibat
Ip1 = Ip1**CP
Ip1 = AH*Ip1
Ip2 = AH / 20
Ip2 = (Ip2**CP)*20
Ip= -Ip1/Ip2
else :
Ip = ibat * EC
if (ibat>0 and ibat<1 and abs(vbat-vflotacion)<0.2) :
DS = DS + (AH-DS)/50
else :
DS = DS + (Ip * t_muestra/3600)
if DS > AH :
DS = AH
if DS < 0 :
DS = 0
soc = round(DS/AH*100,2)
### FIN CALCULO SOC%
La variable DS es donde se va almacenando el valor en Amperios Hora que tiene la batería
Lógicamente SOC= DS/AH*100 ...siendo AH la capacidad nominal de la batería...en mi caso a C20
CP: es el coeficiente de Peukert de la batería para descarga
EC: es el coeficiente de eficiencia en carga
ibat: es la intensidad de batería con la lógica de ser positiva si carga y negativa si se descarga
Como veras hay un pequeño ajuste para que se sincronice mas rápidamente al 100% de SOC si se esta cerca de Vflot con una entrada de Ibat pequeña (síntoma evidente de batería cargada)
Muchas gracias por la explicación y el ejemplo!!
Entiendo que desde la linea, "if ibat<0:" hasta la de "Ip= -Ip1/Ip2" es la propia corrección de la intensidad de descarga de peukert, verdad?
Re: Calcular SOC de la bateria
Si... he aplicado la formula para calcular la intensidad modificada por Peukert en varios pasos
Re: Calcular SOC de la bateria
Cita:
Iniciado por
Mleon
Si... he aplicado la formula para calcular la intensidad modificada por Peukert en varios pasos
Perfecto, voy a aplicar tu metodo. Muchas gracias por la ayuda
Re: Calcular SOC de la bateria
Empieza midiendo la densidad de las baterias y sabrás el SOC/capacidad (DS) con el que debes empezar...
Re: Calcular SOC de la bateria
Cita:
Iniciado por
pac0
Empieza midiendo la densidad de las baterias y sabrás el SOC/capacidad (DS) con el que debes empezar...
Buena idea, así lo hare
Gracias!