Understanding Model Predictive Control, Part 1: Why Use MPC?
From the series: Understanding Model Predictive Control
Melda Ulusoy, MathWorks
Learn about the benefits of using model predictive control (MPC). MPC uses the model of a system to predict its future behavior, and it solves an optimization problem to select the best control action.
MPC can handle multi-input multi-output (MIMO) systems that have interactions between their inputs and outputs. Due to these interactions, it is often challenging to design MIMO systems using traditional controllers such as PID. However, MPC can simultaneously control all the outputs while taking into account input-output interactions.
MPC can also handle constraints. Constraints are important, as violating them may lead to undesired consequences. MPC has preview capabilities (similar to feed-forward control). If set point changes are known in advance, the controller can better react to those changes and improve its performance.
Engineers have used MPC controllers in process industries since the 1980s. With the increasing computing power of microprocessors, its use has spread to many other fields including the automotive and aerospace industries.
Have you ever noticed that control engineers really like 3 letter acronyms? In this series, we’ll focus on MPC, which might be the most popular control for some engineers. But what it really stands for is model predictive control. In this video, we’ll discuss the reasons why you’d use it. But first, let’s briefly look at the basic idea behind MPC. MPC is a feedback control algorithm that uses a model to make predictions about future outputs of a process.
Here’s an analogy to explain what we mean: Say that you’re driving and your goal is to keep the car within the lane. The decisions you make to achieve this goal are very similar to how a model predictive controller works. You know your car’s characteristics: how fast it goes or how much it turns based on the control actions you take. Using this model of the car, you do simulations in your head. These give you predictions about your future trajectory based on the control actions you choose. Then you select the optimal action that drives the predicted trajectory as close as possible to the desired trajectory. This is a simplistic example to give you the general idea, but in the next video we’ll have a much more detailed discussion about how MPC works.
Here are some of the reasons why you’d want to use model predictive control. MPC can handle multi-input multi-output systems that might have interactions between their inputs and outputs. For example, in this MIMO system, a change in the second output also affects the first output. If we were to use PID controllers, designing them would be challenging because the two control loops would operate independent of each other as if there are no interactions between the two loops. And designing larger systems would be even more challenging, as they would require tuning too many controller gains. The advantage of MPC is that it’s a multivariable controller that controls the outputs simultaneously by taking into account all the interactions between system variables. Another strength of MPC is that it can handle constraints. Constraints are important, because violating them can lead to undesired consequences. For example, some of the safety constraints while driving are that cars must obey speed limits and maintain a safe distance from other cars. There are also constraints due to physical limitations of the car such as limits on acceleration. If this was an autonomous car controlled by MPC, the controller would track a desired trajectory while satisfying all these constraints.
Another feature of MPC is its preview capability, which is similar to feedforward control. Let’s say the autonomous car travels on a curvy road. If the controller doesn’t know that there’s a corner coming ahead, it will be only able to apply brakes while it’s taking the corner. However, if the car has a camera in the front which provides information about the future trajectory, the controller will know in advance about the upcoming corner. So, it can brake sooner to safely stay in the lane. MPC can easily incorporate future reference information into the control problem to improve controller performance.
Model predictive controllers have been used in the process industry since the 1980s. With the increasing computing power of microprocessors, their use has spread to other fields as well. Some of these areas are listed here.
MPC has all these benefits, but something to note is that it requires a powerful, fast processor with a large memory. And the reason is that MPC solves an online optimization problem at each time step, which we’ll talk in much more detail in the next video.
In summary, MPC utilizes the model of a system to predict its future behavior, and it solves an online optimization algorithm to select the best control action that drives the predicted output to the reference. It can control multi-input multi-output systems that might have interactions between inputs and outputs. MPC can handle constraints, and it has preview capability. It is also widely used in many industries. In the next video, we will discuss how model predictive controllers work.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
- América Latina (Español)
- Canada (English)
- United States (English)
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- United Kingdom (English)
- Australia (English)
- India (English)
- New Zealand (English)
- 日本Japanese (日本語)
- 한국Korean (한국어)