This automatic control CDIO-project was performed during fall 2019 in a collaboration between LiU and Volvo Cars AB. The goal was to control an internal combustion engine using a model predictive controller in real time. During the project a simulation environment was developed and the controller was implemented in an engine laboratory.
Constantly increasing emission requirements in the automotive industry creates the need for new solutions in engine development. New technology solutions often add new actuators which provide more degrees of freedom that can be used to minimize emissions and fuel consumption. But the new technology must also work together with existing technology. Multi variable, model based control is therefore interesting in order to handle the upcoming challenges.
The model was complemented with the Ohata model described as
Where u = u_0 + \Delta u and u_0 is the linearization point. Three states were used in the MPC: \text{ } x = [p_{im}, \alpha, I_e] and the performance signals was: \text{ } z= Mx = [p_{im}, I_e]^T
Where the third state is used for integration of error. This state is the difference between reference and output, which is controlled to zero to get rid of steady state error. For the MPC to find the optimal solution a QP-solver is needed. The QPsolver used in this project was qpOASES, an open source solver which supports real time code generation. It was important that all control elements could be code generated to make it work in the engine laboratory. The following figure illustrates the structure of the controller.
Furthermore, an observer was crucial for the controller to work in the engine laboratory and for the full engine model in the simulation environment. An Extended Kalman Filter was used to estimate the states p_{im} and \alpha.
The controller in the engine laboratory also performed well. See the figure below.