Stochastic dynamic programming based optimal energy scheduling for a hybrid fuel cell/PV/battery system under uncertainty