Optimal control and energy storage for DC electric train systems using evolutionary algorithms