A mixed-integer linear programming approach for the optimization of residential PV-battery energy storage system