Text this: Optimal BP neural network algorithm for state of charge estimation of lithium-ion battery using PSO with PCA feature selection