# Model Based Controllers

Model-based control uses information about the dynamics of the system’s structure and its behavior in time to obtain a better control result regarding stability and performance of the controlled system. Take the following simple example:

Let \(\frac{d^2x}{dt^2}= f(x)+u\)

be the system to be controlled, where x - state vector, f(x) - nonlinear vector function, u - control vector. Suppose we have some estimation est(x) than we use a control law like

\(u = -est(x)+u_{st}\)

where u_{st} be some maybe linear PID control law

\(u_{st} = K_px + K_d\frac{dx}{dt} + K_i\int xdt\)

So we get

\(\frac{d^2x}{dt^2} = \Delta f + K_px + K_d\frac{dx}{dt} + K_i\int xdt\)

where

\(\Delta f =f(x) - est(x)\)

If the model uncertainties are small enough we get a linear system with a disturbance Delta f which can be stabilized using appropriate control gains K_{p}, K_{d}, K_{I}. Above given is just an example of model based controller in real life model based controller are way more complex than this.

**Model Predictive Control(MPC)** is the most widely known model based controller. Model Predictive Controllers rely on the dynamic models of the process, most often linear empirical models obtained by system identification.

Model predictive control offers several important advantages:

(1) the process model captures the dynamic and static interactions between input, output, and disturbance variables,

(2) constraints on inputs and outputs are considered in a systematic manner,

(3) the control calculations can be coordinated with the calculation of optimum set points, and

(4) accurate model predictions can provide early warnings of potential problems.

The mathematics and concepts involved in MPC are a bit complex and require a decent understanding of mathematics of control theory.

To study more about MPC controller read this material by NTNU

You can also check this video by Steve Brunton to get a more detailed idea

Some of the other resources you should check to understand control theory and various controllers in more detail are: