# Model Predictive Control

Webpage Authors: Charles Meehan and Zirui Xu

## Summary of Model Predictive Control

An example of Model Predictive Control (MPC) is given in the article "What is Model Predictive Control (MPC)?" by Mitesh Agrawal where he explains that MPC is similar to a person in a dark room that predicts the best path in the direction of a goal, but only takes one step at a time and repeats the cycle after every step [1]. From this example, we note that MPC is a predictive control strategy as well as an iterative strategy. Further, MPC uses the iterative process to optimize its predictions in a limited horizon while manipulating inputs for a given horizon [1]. A key to MPC is having a model of the dynamic behaviors of your system that you are trying to control. These models will have errors in forecasting due to the nonlinear and uncertain behavior of certain systems, so this is why MPC only takes action on the first computed control input and recalculates a prediction for the future behavior based on feedback [1]. Figure 1 shows the basic working principle of MPC where the system has a reference trajectory to follow. The current state of the system is taken in as input to the MPC controller and control inputs are predicted for steps k to k+p where p is the prediction horizon. The algorithm then implements the first predicted control input and recalculates the predicted control inputs again once it receives the updated current state of the system.

**Figure 1.** Example of the MPC algorithm. [1]

The advantages of using MPC is being able to use the system dynamics to predict the control inputs necessary to control the system especially for multi-input and multi-output systems. Another advantage is being flexible in achieving complex goals and implementing robust constraints which lends MPC to produce a simple control policy for complex systems [1]. A major disadvantage to MPC is the time required to complete the iterative calculations at each time step due to the fact that MPC solves an optimization problem during each step. Further, MPC requires a dynamic model of the system which may not be easy to derive for complex systems. However, with the ever increasing computation power of today and the increasing capability of sensors, MPC is becoming more attractive to apply to various systems. Some applications of MPC include industrial processes such as oil refineries or chemical plants [1]. It has been used more recently for robots in manufacturing where the environment is controlled and precise movements can be guaranteed with MPC [1]. Another application in robotics is with autonomous vehicles and space robots [1].

Before we get into the formal definition of MPC, MathWorks has a seven part series on understanding MPC which is a great resource for more background information and to get up to speed on MPC [2]. The seven videos are listed in the next section [2]. The first 5 videos provide background information about MPC and the last two videos show how to implement MPC using MATLAB and Simulink.

### MathWorks Series on MPC [2]

**Part 1: Why Use MPC? **

**Part 2: What is MPC? **

**Part 3: MPC Design Parameters**

**Part 4: Adaptive, Gain-Scheduled, and Nonlinear MPC**

**Part 5: How to Run MPC Faster**

**Part 6: How to Design and MPC Controller with Simulink and MPC Toolbox**

**Part 7: Adaptive MPC Design with Simulink and MPC Toolbox**

### Formal Definition of MPC

Due to the fact that understanding the linear quadratic regulator (LQR) and the linear quadratic Gaussian regulator (LQGR) is important to understanding the theory behind MPC, we will start this section by introducing the theory of LQR/LQGR [3].

In order to guarantee that a solution exists, is unique, and asymptotically stabilizes a closed-loop system, components of the matrices of A, B, Q, and R need to satisfy that the system is stabilizable and detectable [3]. Now given the dynamics and performance measure as given in equations 1 and 2, we can add the following constraints as part of MPC. These practical constraints on the state and control inputs as formulated in [3] are

For MPC, the performance measure given in equation 2 and the constraints can not be taken to infinity. The time limit needs to be a finite time limit such as N which means that the resulting optimal control problem consists of a set of linear equations with variables {x(1),x(2),...x(N); u(0), u(1), ..., u(N-1)}, a performance measure that is a quadratic function of those same variables, and a set of linear constraints on the same variables [3]. Therefore, MPC is a control theory that solves the following optimization problem.

### Key Results

MPC originated in the late 1970s, and its success can be attributed to the fact that it is the most general way of posing the control problem in the time domain [4]. Articles starting appearing from the end of the 1970s having to do with Model Predictive Heuristic Control (later known as Model Algorithmic Control), and those of Cutler and Ramakter with Dynamic Matrix Control (DMC) [4]. These algorithms use dynamic models of the system to predict the future control actions at the output. Later, MPC became popular in the chemical process industries due to the simplicity of the algorithm [4]. Further, MPC is considered a mature technique for linear and rather slow systems like the ones encountered in a process industry [4]. However, during the past few years, applications of MPC to nonlinear and to hybrid processes have appeared in literature where the majority of the applications have been in the area of refining [4]. Although MPC has not penetrated deeply into areas of nonlinear processes, the number of nonlinear MPC applications is increasing [4]. MPC's potential is very strong and using it especially for nonlinear models is likely to become more common as users demand higher performance and new software tools are their to support more nonlinear models [4].

A major feature of MPC has been its adaptability to various applications some which are explained in the Variants, Applications, and Open Problems tab of this site. Some of the applications and systems that use MPC are listed below:

Nonlinear MPC

Hybrid MPC

Engine Control

Large scale operation control problems

Vehicle path planning and control.

Spacecraft rendezvous with space station.

Underwater vehicle guidance.

Missile guidance.