Design Article
Student engineers develop and test a hybrid power train: Part 2 - the controller
Matthew DeVries, Rose-Hulman Institute of Technology
4/13/2007 1:10 PM EDT
Part 1 of this feature discussed development and modeling of the Rose-Hulman team's Challenge X hybrid vehicle architecture.
Developing the controller
The main goal of our hybrid vehicle model was not to generate data about the vehicle itself, but rather to create a platform for the development and testing of its controller. The overall vision for the controller was using state-based control in a supervisory role to instruct individual component controllers.
Controller development began with a conceptual flowchart (below) from vehicle start-up to shut-down. Vehicle speed and battery state of charge (SOC) were selected as the main criteria for determining the controller state. A total of twelve control states, based on three speed grades and four SOC grades, were the basis for the controller.

Controller programming was done in the Simulink® environment utilizing Stateflow®, which models event-driven systems. With Stateflow, we defined the twelve basic control states and created the state transition logic. Because this tool is event driven, we implemented a 100 Hz system clock for a rising-edge trigger.
System information (including vehicle speed, battery SOC and current, throttle demand, diesel engine status, and motor/generator M1 and M2 operational parameters) was fed into the controller and state changes determined. For example, when the vehicle was initially turned on, the controller would use the SOC to decide whether to start the engine to charge the battery. After shifting into forward, throttle demand, vehicle speed, and SOC would be used to determine if and when to start the engine.
Using Simulink logic in tandem with the output of our Stateflow controller increased reliability and safety. Slew rate limiters maintained safe motor acceleration, while a minimum on-time for the engine prevented its damage. Simulink logic also translated our controller output into the desired component controller input for future in-vehicle use.
Next: Controller refinement



