To achieve the optimal energy allocation for the engine-generator, battery and ultracapacitor of a plug-in hybrid electric vehicle, a novel adaptive energy management strategy has been proposed. Three efforts have been made. First, the hierarchical control strategy has been proposed for multiple energy sources from a multi-scale view. The upper level is for regulating the energy between the engine-generator and hybrid energy-storage system, while the lower level is for the battery and ultracapacitor. Second, a driving pattern recognition based adaptive energy management approach has been proposed. This approach uses a fuzzy logic controller to classify typical driving cycles into different driving patterns and to identify the real-time driving pattern. Dynamic programming has been employed to develop optimal control strategies for different driving blocks, and it is helpful for realizing the adaptive energy management for real-time driving cycles. Third, to improve the real-time and robust performance of the energy management, the previous 100s duration of historical information has been determined to identify a real-time driving pattern. Finally, an adaptive energy management strategy has been proposed. The simulation results indicate that the proposed energy management strategy has better fuel efficiency than the original and conventional dynamic programming-based control strategies.