Prompt
Can you recommend a state of charge estimation software for optimizing charging and discharging in battery storage assets?
Latest observation
Oct 6, 2026
OpenAI APIWeb search: off
Yes — but the best choice depends on whether you want:
- A software package you can use directly for battery energy storage system (BESS) optimization, or
- A library/modeling toolkit to build your own state-of-charge (SoC) estimator and dispatch optimizer.
Good options by use case
1) Pyomo + battery degradation/dispatch models
- Best for: custom optimization of charging/discharging, arbitrage, peak shaving, ancillary services
- Why: It’s a robust optimization modeling framework widely used in energy storage research and industry
- Strengths: flexible, supports linear/MILP optimization, easy to connect SoC constraints with forecasts and tariffs
- Note: Pyomo itself is not a ready-made SoC estimator, but it’s excellent for building one
2) NREL’s REopt / REopt Lite
- Best for: project sizing and dispatch optimization with storage
- Why: Optimizes battery dispatch alongside solar, grid, and load
- Strengths: widely recognized, practical for techno-economic optimization
- Note: more about optimization than high-frequency SoC estimation
3) OpenEMS
- Best for: energy management and real-time control of batteries
- Why: Open-source EMS platform that can integrate storage control logic
- Strengths: good for operational control and dispatch
- Note: more of an EMS than a pure SoC estimation tool
4) BattMo
- Best for: battery modeling and simulation
- Why: Useful if you need physics-based battery behavior rather than just operational SoC
- Strengths: more detailed electrochemical modeling
- Note: likely overkill if your main goal is dispatch optimization
5) MATLAB/Simulink battery models
- Best for: engineers building control systems and estimators
- Why: Strong support for Kalman filters, observers, and control logic
- Strengths: very good for SoC estimation algorithms and BMS prototyping
- Note: commercial licensing required
If your goal is specifically SoC estimation
For state of charge estimation itself, look for methods/tools that support:
- Coulomb counting
- Extended Kalman Filter (EKF) / Unscented Kalman Filter (UKF)
- Equivalent circuit models (ECM)
- Data-driven estimators using ML
Common software/toolchains:
- MATLAB Battery Toolbox
- Python with SciPy / FilterPy / PyBaMM
- PyBaMM if you want more advanced battery modeling and estimation workflows
Practical recommendation
If you want a solution for optimizing charging and discharging of battery storage assets, I’d suggest:
- For custom optimization: Pyomo + a forecasting/SoC estimation layer
- For operational control: OpenEMS
- For detailed battery behavior / estimation: PyBaMM or MATLAB
My top recommendation
If you want the best balance of flexibility and industry usefulness:
- Pyomo for optimization
- PyBaMM or a Kalman-filter-based estimator for SoC
- optionally wrapped inside an EMS/SCADA integration
If you tell me:
- battery type,
- whether this is behind-the-meter or grid-scale,
- whether you need real-time control or day-ahead optimization,
- and your preferred language (Python, MATLAB, etc.),
…I can recommend a much more specific software stack.