Optimal Charging of Li-ion Batteries Physics-based modelling framework PyBaMM Model Predictive Control solver OSQP