A perturbation strategy for fuel consumption minimization in polymer electrolyte membrane fuel cells: analysis, design and FPGA implementation