(Real time MPC)
Prepared by : Kamal Reza Varhoushi
December – 2011
The philosophy behind MPC
Manipulated variables : u(k-1)
Controlled variables : y(k)
The model of sys used to
The critical step of the
predictive control
open-loop optimization problem
practical disadvantage of MPC
Robust MPC
The uncertainty representation
Polytopic Uncertainty
Structured Feedback Uncertainty
Real time MPC
For each MPC problem, we need to solve an
optimization problem for each sampling. So MPC
limited to applications with slow dynamics (sampling
time in seconds or minutes). A well-known technique
for implementing fast MPC is to compute the entire
control law offline (explicit MPC), in which case the
online controller can be implemented as a lookup
table. The control action is then implemented online
in the form of a lookup table. The major drawback
here is that the number of entries in the table can
grow exponentially with the horizon, state, and input
dimensions, so that “explicit MPC” can only be
applied reliably to small problems (where the state
dimension is no more than around five). So this
method is not applicable for more complex problems.
The new methods for fast MPC, develops by
professor Boyd research group in Stanford university.
These methods are based on combination of MPC
with automatic code generation.
This report describe the capabilities and
implementation of CVXGEN software package.
CVXGEN takes a high level description of a
convex optimization family, and automatically
generate flat, library-free C code that can be
compiled into high speed custom solver for the
problem family
 The main disadvantages of CVXGEN are:
1. It reduced to quadratic programming(QPs)
2. It is suitable for small and medium size
Problem statement
energy storage system that can be charged or
discharged from a source with varying energy
price. A simple example is a battery connected
to a power grid
The goal is to alternate between
charging and
discharging in order to maximize
the average revenue
Let first introduce problem variables and parameters:
the energy price at time t
time horizon T=50
denote discourage
excessive charging and
The easiest way to use
this interface is via the
‘Matlab’ screen in
CVXGEN's online
interface, Go to the
“” and
create new project,
then impose your
project data’s to the
blank spaces shown in
The second step is creating custom C codes for using in Matlab :
Download and extract the
‘’ archive for your
problem. This will create a
subdirectory called CVXGEN.
Inside the cvxgen/ folder in
Matlab, call make_csolve. This
will use the mex command to
compile and build your custom
solver and creates a csolve.mex*
As shown in figures, the variation of uc and ud between max and min
values, determine this agreement that process has been done in optimal
CVXGEN implementation
Once the problem is in canonical
form, we use a standard primal dual
point method to find the solution
we introduce slack variables to
solve equivalent problem
we find analytically the solution of the pair of primal and dual problems:
For duality formulation :
Karush-Kuhn-Tucker (KKT) conditions
Each of the primal and dual
algorithms require two
solves with the so-called
KKT matrix
to find the solution (L) for
the system KL = R.
Thank you

similar documents