A control system for controlling the supply of power from an energy storage system to a DC bus of a vehicle propulsion system, the control system comprising a controller programmed to: monitor real-time operating parameters of a plurality of energy storage units (14, 16) of the energy storage system; access degradation models for the plurality of energy storage units (14, 16) used to: determine a change in a state-of-charge, SOC, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and a current power allocation which defines how the total power demand of the propulsion system is to be divided between the energy storage units for a given operating period; determine a change in a state-of-health, SOH, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and said current power allocation; and determine a maximum power available of the plurality of energy storage units (14, 16); determine a future power demand of the vehicle propulsion system based on a user input or a predetermined vehicle duty cycle; define a power allocation between the plurality of energy storage units (14, 16) during real-time operation of the vehicle propulsion system based on the power demand, the monitored real-time operating parameters at the time, the determined change in state-of-charge, change in state-of-health, and maximum power available; determine if operating in accordance with the power allocation would violate at least one system constraint; if operating in accordance with the power allocation would not violate at least one system constraint, assess a change in the SOC and a change in the SOH of the plurality of energy storage units (14, 16) resulting from operation at the power allocation so as to validate the power allocation by verifying whether the change in the state-of-health of the plurality of energy storage units (14, 16) and change in the state-of-charge of the plurality of energy storage units (14, 16) exceed respective predefined thresholds; and if operating in accordance with the power allocation would violate at least one system constraint, modify the power allocation so that the at least one system constraint is not violated. monitor real-time operating parameters of a plurality of energy storage units (14, 16) of the energy storage system; access degradation models for the plurality of energy storage units (14, 16) used to: determine a change in a state-of-charge, SOC, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and a current power allocation which defines how the total power demand of the propulsion system is to be divided between the energy storage units for a given operating period; determine a change in a state-of-health, SOH, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and said current power allocation; and determine a maximum power available of the plurality of energy storage units (14, 16); determine a change in a state-of-charge, SOC, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and a current power allocation which defines how the total power demand of the propulsion system is to be divided between the energy storage units for a given operating period; determine a change in a state-of-health, SOH, of the plurality of energy storage units (14, 16) based on the real-time operating parameters and said current power allocation; and determine a maximum power available of the plurality of energy storage units (14, 16); determine a future power demand of the vehicle propulsion system based on a user input or a predetermined vehicle duty cycle; define a power allocation between the plurality of energy storage units (14, 16) during real-time operation of the vehicle propulsion system based on the power demand, the monitored real-time operating parameters at the time, the determined change in state-of-charge, change in state-of-health, and maximum power available; determine if operating in accordance with the power allocation would violate at least one system constraint; if operating in accordance with the power allocation would not violate at least one system constraint, assess a change in the SOC and a change in the SOH of the plurality of energy storage units (14, 16) resulting from operation at the power allocation so as to validate the power allocation by verifying whether the change in the state-of-health of the plurality of energy storage units (14, 16) and change in the state-of-charge of the plurality of energy storage units (14, 16) exceed respective predefined thresholds; and if operating in accordance with the power allocation would violate at least one system constraint, modify the power allocation so that the at least one system constraint is not violated.