rn42v
New Member
Posts: 1
|
Post by rn42v on Jul 22, 2022 1:53:23 GMT -8
Is there a simple way to approximate the state of charge for a battery connected to SunControl? An accuracy of +-5% would suffice.
|
|
|
Post by SDL on Aug 14, 2022 16:01:26 GMT -8
My gosh! I missed this question. Yes, you can do that. It is a non-linear equation. This is from SDL_Pi_SkyWeather on GitHub.com/switchdoclabs:
def returnPercentLeftInBattery(currentVoltage, maxVolt):
if(config.SolarMAX_Type == "LEAD"):
returnPercent = ((currentVoltage - 11.00)/(2.6)) * 100.00 if (returnPercent > 100.00): returnPercent = 100.0 if (returnPercent < 0.0): returnPercent = 0.0
return returnPercent else:
scaledVolts = currentVoltage / maxVolt
if (scaledVolts > 1.0): scaledVolts = 1.0
if (scaledVolts > .9686): returnPercent = 10*(1-(1.0-scaledVolts)/(1.0-.9686))+90 return returnPercent
if (scaledVolts > 0.9374): returnPercent = 10*(1-(0.9686-scaledVolts)/(0.9686-0.9374))+80 return returnPercent
if (scaledVolts > 0.9063): returnPercent = 30*(1-(0.9374-scaledVolts)/(0.9374-0.9063))+50 return returnPercent
if (scaledVolts > 0.8749): returnPercent = 20*(1-(0.8749-scaledVolts)/(0.9063-0.8749))+11
return returnPercent
if (scaledVolts > 0.8437): returnPercent = 15*(1-(0.8437-scaledVolts)/(0.8749-0.8437))+1 return returnPercent
if (scaledVolts > 0.8126): returnPercent = 7*(1-(0.8126-scaledVolts)/(0.8437-0.8126))+2 return returnPercent
if (scaledVolts > 0.7812): returnPercent = 4*(1-(0.7812-scaledVolts)/(0.8126-0.7812))+1 return returnPercent
return 0
|
|