Value Function Approximation for Direct Control of
Switched Power Converters
arXiv:1601.05115v1 [cs.SY] 19 Jan 2016

Nicholas Moehle∗

Stephen Boyd†

January 21, 2016

Abstract
We consider the problem of controlling switched-mode power converters using model
predictive control. Model predictive control requires solving optimization problems in
real time, limiting its application to systems with small numbers of switches and a
short horizon. We propose a technique for using off-line computation to approximate
the model predictive controller. This is done by dividing the planning horizon into
two segments, and using a quadratic function to approximate the optimal cost over the
second segment. The approximate model predictive algorithm minimizes the true cost
over the first segment, and the approximate cost over the second segment, allowing
the user to adjust the computational requirements by changing the length of the first
segment. We conclude with two simulated examples.

1

Introduction

Predictive control. Model predictive control (MPC) is emerging as a powerful tool for
controlling switched-mode power converters. A model predictive control scheme uses a planning model to predict the effects of control decisions on the converter over some finite planning horizon. It then compares the outcomes of these decisions using a cost criterion, choosing
an optimal control input sequence, i.e., one that minimizes the cost over the horizon. The
controller then uses the first control input in the trajectory, waits a specified time, then repeats the process. Model predictive control is now widely used in many control applications,
particularly those that are sampled slowly enough that the required minimization problem
can be solved in the sample time.
Finite-control-set MPC (FCS-MPC) refers to the case in which the control input takes on
a finite number of values. This is particularly relevant for switched-mode power converters,
where the control inputs typically represent allowable switch configurations. In this case,
solving the optimization problem only requires evaluating the objective function a finite
∗
†

Mechanical Engineering Department, Stanford University. moehle@stanford.edu
Electrical Engineering Department, Stanford University. boyd@stanford.edu

1

number of times and choosing the control inputs that achieve the lowest cost. When the
total number of control inputs over the planning horizon is small, this can be done quickly
on modest computational platforms, which is attractive for embedded control.
Unfortunately, the computational cost of solving the FCS-MPC problem increases exponentially with the length of the planning horizon, which means that checking all combinations
of control input trajectories becomes very difficult for discrete horizon lengths of more than,
say, four or five. In practice, this means FCS-MPC is only useful for converters with simple
dynamics, for which short planning horizons (and myopic controllers) suffice, or converters
with powerful processors available for control. Even worse, many converter topologies have
dynamics that inherently require a long planning horizon for FCS-MPC to work well, such
as those with inverse response (i.e., non-minimum phase behavior). For example, to increase
the steady-state output voltage of an ideal boost converter, it may be necessary to charge
the inductor, which can have the short-term effect of decreasing the output voltage. A long
planning horizon may be necessary for the controller to predict the benefits of charging the
inductor before increasing the output voltage. We illustrate this behavior for a boost converter in §7.1. (For further discussion on non-minimum phase behavior in power converters,
see [EM07, Ch. 9] and [KGM14].)
Our approach. In this paper, we provide a technique for approximately solving the optimization problems arising in FCS-MPC with a long planning horizon, with very low computational cost. This allows the resulting approximate FCS-MPC controller to make near-optimal
decisions, with long prediction horizons, at only a tiny fraction of the computational cost of
traditional long-horizon FCS-MPC.
To do this, we split the planning horizon into two segments. The dynamics and cost
function over the first segment are represented exactly, and the problem is solved by exhaustive search, as in traditional FCS-MPC. The optimal cost over the second (typically
much longer) segment is approximated using a multivariate quadratic function, called the
approximate value function. This function is determined during a pre-solve phase (i.e., during controller synthesis), using a desktop computer or server. The controller itself simply
compares a relatively small number of possible input sequences with a short horizon, and
chooses the best one, taking into account the approximate value function. Our method
therefore shifts computational burden from real-time execution to an off-line, precomputation phase, which allows us to execute FCS-MPC-like controllers with very long horizon
lengths on very modest computational hardware.
The resulting control algorithm, which we call value function approximation model predictive control, which we shorten to approximate model predictive control (A-MPC) in this
paper, is very similar to short-horizon FCS-MPC, differing only by the addition of an extra cost term (given by the approximate value function), which represents the approximate
long-term cost. This resemblance is a practical and pedagogical advantage, as our method
can be explained and implemented as a simple modification of short-horizon FCS-MPC that
imparts better dynamics on the closed-loop system, since it has the advantage of a long
planning horizon.
2

The price of doing this is decreased flexibility: because deriving an approximate value
function often requires extensive offline precomputation, our formulation does not handle
gross changes in the objective function or dynamics, although some moderate changes, such
as changing the desired state value, can be easily accommodated. However, we suspect that
such large-scale changes in the operating requirements are rare, and in any case, can be
handled by synthesizing several controllers, and switching between them as desired. (This
is similar to gain scheduling linear controllers.)

1.1

Related work

FCS-MPC for power converters. A good introduction to FCS-MPC is given by Kuoro
[KCV+ 09] and Cortés [CKK+ 08], which include many references to practical applications
as well as tricks that can be used with FCS-MPC (e.g., shaping the switching spectrum or
controlling reactive power). These papers primarily cover short-horizon FCS-MPC, which is
easily solved by brute-force enumeration of all possible switching trajectories.
For long-horizon FCS-MPC, enumerating all switching trajectories is not computationally
feasible, and more sophisticated techniques are used to solve (or approximately solve) the
optimization problem. For example, branch and bound uses lower bounds on the optimal
cost to identify and remove suboptimal parts of the decision tree (see [BM07]). Simple lower
bounds for the FCS-MPC problem are proposed by Geyer [Gey11], by simply assuming
zero future cost starting from any node in the decision tree. Another general technique is
move blocking (i.e., artificially limiting the number of control input trajectories to obtain a
suboptimal but practical solution); an application to boost converter control can be found in
[KGM12]. Another recent approach is to use a sphere decoding algorithm to solve the FCSMPC optimal control problem [GQ13]. Additionally, techniques from hybrid system theory
can be used to explicitly write the solution of the FCS-MPC problem as a lookup table with
regions defined by linear or quadratic inqualities. (see [BBM] for details). Unfortunately,
the same exponential blowup that occurs in long-horizon FCS-MPC can appear in explicit
solutions of hybrid MPC, i.e., it is possible that there are an exponential number of regions in
the lookup table. There have been many applications of this approach to power converters;
see [QAG14] and [GPM05], and references therein.
Other control techniques. Most traditional techniques for controlling power converters
are based on linear control. Because power converters are switched nonlinear systems, it
is first necessary to linearize the system around an operating point, and use PWM, or a
similar modulation scheme, to convert the continuous control decisions of the linear controller
to discrete switching decisions. For an introduction to these techniques, see [KSV91] and
[EM07]. For a discussion of continuous MPC techniques (and others) applied to controller
power converters, see [WCY+ 14]. Deadbeat control policies attempt to drive the system
state to a desired value as quickly as possible, often using a short prediction horizon. A good
summary can be found in [QAG14]; applications to power converters can be found in the
references of [KCV+ 09].

3

Many control methods are based on explicitly defining the switching boundaries in state
space, usually defined using first- or second-order equations; this idea originated with Burns
and Wilson [IW76], [IW77]. For some simple converters, these boundaries can be derived
as solutions to certain optimal control problems using Pontryagin’s maximum principle. For
example, the solution to the minimum-time state transfer problem for a buck converter has
a switching boundaries defined by second-order equations. However, this approach becomes
unwieldy for even slightly more complicated systems (see [DKDG+14] for a discussion).
Dynamic programming. Recovering optimal control policies through value function approximation, which is the basis of the approach in this paper, is the subject of approximate
dynamic programming, and has been studied extensively in operations research, control,
robotics, and other fields (see [Ber05] and [Pow07] for an introduction). The general method
of exactly solving an optimal control problem over some time steps, and using an approximation of the value function for the rest of the horizon, is well known in the dynamic
programming literature, with names such as roll-out policy or look-ahead policy. Adaptive
versions of these methods, which change the approximate value function during operation of
the system, are possible; algorithms of these types are the subject of reinforcement learning;
see [SB98] and [Ber05].
Our algorithm relies on quadratic approximate value functions, obtained by simple function fitting techniques; other methods for obtaining quadratic approximate value functions
for switched-affine systems can be found in [Ran06] and [WOB15]. Fast evaluation of control
policies involving quadratic value functions (as well as much more general problems) can be
found in [WB11], [MWB11], and [WB10].
Mixed-integer nonlinear programming. The optimal control problem solved in an
FCS-MPC control policy is a special case of mixed-integer nonlinear programming (MINLP).
MINLP problems are difficult to solve in general, but algorithms exist that appear to work
well in practice. Several special cases, such as mixed integer linear programming [Wol98],
and mixed integer second-order cone programming [BS13], have dedicated solvers (see Gurobi
[Inc15], Mosek [AA00], and CPLEX), which often outperform general MINLP solvers. In
many cases, small problems (such as the FCS-MPC problem for power converters) can be
solved on a desktop in a few seconds. Furthermore, these solvers can often be interfaced
through modeling languages, such as CVXPY [DCB14], and CVX [GB14, GB08], which
increase accessibility and decrease development time.

1.2

Contributions

In this paper we present a tractable approximate method for solving long-horizon predictive
control (FCS-MPC) problems for switched-mode power converters. We provide a theoretical justification for our method, as well as practical approach for computing this added
extra cost term. We give simulated results for controlling a boost converter control and an
inverter, and we show that our method performs markedly better short-horizon predictive
4

control and performs comparably to long-horizon predictive control, at a tiny fraction of the
computational cost.
We contrast our method with other methods to achieve long-horizon FCS-MPC. Many
methods attempt to solve the optimal control problem on the fly, which often necessitates
a fast control processor. Our method, by contrast, can be viewed as a simple modification
of short-horizon (or even one-step) FCS-MPC. This allows our method to work with very
low computational cost, so that our method can be executed in microseconds or less on
modest computational platforms, while still achieving some of the benefits of long-horizon
MPC methods.

1.3

Outline

In §2, we present the theoretical basis for our method, starting with the mathematical optimal
control problem to be solved by the controller, and our general approach for approximately
solving it. In §3 we show how to numerically derive the controller by approximating the
value cost as a quadratic function. In §4, we show how to implement the controller, including several special cases in which extra computational savings can be attained. In §7, we
demonstrate our approach on two example converters, a boost converter and an inverter. In
§8, we conclude with some ideas for extending our method, and alternative techniques for
computing the extra cost term.

2

Model predictive control

Switched dynamical systems. We consider the switched dynamical system
xt+1 = f (xt , ut ),

t = 0, 1, . . . ,

(1)

with state xt ∈ Rn and (finite) control input ut ∈ {1, . . . , K}. The subscript t denotes
(sampled) time.
In a converter, the state typically consists of physical variables such as inductor currents
and capacitor voltages, but it can also include other, non-physical variables such as a running
sum of errors. The input corresponds to the allowed switch configurations, and K is the
number of allowed switch positions. The dynamics function f gives the state at the next
sample time, given the current state and choice of switch configuration.
Control. Our task is to choose a control policy φ : Rn → {1, . . . , K} that maps the system
state xt at time t to a control input ut , so that
ut = φ(xt ).
We design the policy according to some objectives, such as maintaining the state near some
desired value, or minimizing the converter power loss. The policy divides the state space
into K (possibly disconnected) regions, so that if the state is in the ith region, the controller
5

chooses input i. The boundaries of these surfaces are often known as switching surfaces or
switching boundaries; when the state of the system crosses a switching surface, the input
(i.e., switch configuration) changes. Implicit here is that we can measure the state; when
this is not the case, the state can be estimated using, for example, a Kalman filter.
Model predictive control. Under a model predictive control policy φmpc , the control
input is chosen by solving an optimal control problem: to find φmpc (z), we first solve the
finite-horizon optimal control problem
PT −1
minimize
t=0 g(x̃t ) + h(x̃T )
(2)
subject to x̃t+1 = f (x̃t , ũt )
x̃0 = z.
The decision variables are the predicted system states x̃0 , . . . , x̃T and the planned control
inputs ũ0 , . . . , ũT −1. The integer T is the horizon; it determines how far ahead in time we
plan when we choose the current input. The function g : Rn → R is the stage cost function,
and the function h : Rn → R is the terminal cost function. Then φmpc (z) is chosen to be
ũ0 , where ũ is any solution of the optimal control problem (2).
To specify an MPC policy, the designer must choose the horizon T , the stage cost function
g, and the terminal cost h. The main difficulty of implementing the MPC policy φmpc is
quickly solving (2), which is (in general) a mixed-integer nonlinear program (MINLP). In
principle the problem can be solved by checking the objective value for each possible control
input trajectory, i.e., for each of the K T possible trajectories, and simply simulating the
dynamics for each choice of input sequence. However, for large values of K and T (larger
than, say K = 3 and T = 5), this approach is not practical. In this case, (2) is very difficult
to solve exactly on an embedded processor at sub-millisecond speeds, required for real-time
control of switched power converters. We note, however, that many effective algorithms
exist to solve MINLP problems reasonably quickly (if not at sub-millisecond time scale) on
desktop computers or servers, which we will return to later.
A large value of the planning horizon T allows a receding-horizon controller to consider the
impact of current actions far in the future, and almost always results in a superior control
law. Using a short planning horizon results in a myopic controller, which can seriously
degrade performance. Unfortunately, our desire for long horizon directly contradicts our
desire to easily solve (2) using low-cost, embedded processors, because a large value of T
makes (2) much more difficult to solve numerically. This effectively limits receding-horizon
controllers based on (2) to converters with simple dynamics (for which myopic controllers
perform well) or converters with powerful processors available for control. In the following
sections we discuss an alternative approach to approximately solve (2), with a long planning
horizon T , in a manner suitable for real-time, embedded control. We will do this by moving
most of the computational burden offline (i.e., to controller synthesis, not execution), using
value function approximation.

6

2.1

Value functions

We will use a standard trick in dynamic programming to express the problem (2) as a similar
one, with a shorter time horizon τ < T . Define Vτ (z) as the optimal value of the problem
PT −1
minimize
t=τ g(x̃t ) + h(x̃T )
(3)
subject to x̃t+1 = f (x̃t , ũt )
x̃τ = z,
with variables uτ , . . . , uT −1, x̃τ , . . . , x̃T . Thus Vτ (z) is the optimal value of the control problem (2), starting from state z at time τ . It is also called the (Bellman) value function.
We can use the value function to rewrite (2) as
Pτ −1
minimize
t=0 g(x̃t ) + Vτ (x̃τ )
(4)
subject to x̃t+1 = f (x̃t , ũt )
x̃0 = z,
with variables x̃0 , . . . , x̃τ and ũ0 , . . . , ũτ −1 .
Note that the new problem (4) has the same form as the MPC problem (2), but with
shorter horizon length τ and terminal cost Vτ . We can solve it by evaluating the cost of K τ
input sequences, a far smaller number than the original problem, which requires evaluating
K T input sequences. In the general case this advantage is an illusion, since the cost of
evaluating Vτ (x̃τ ) is K T −τ evaluations of value input sequences. But if the value function Vτ
were known explicitly, with a simple form, solving (4) would be easier than solving (2). For
example, if n is very small, say, 2 or 3, we could evaluate Vτ on a fine grid of points offline
and store the values in a table.
If we take τ = 1, we have

φmpc (z) = argmin V1 f (z, u) .
u

In this case, the control policy can be carried out using just K evaluations of V1 and f . If
V1 were easy to evaluate (which it is not in general), this would give a very simple way to
evaluate the MPC policy.

2.2

Approximate value functions

Unfortunately, computing, storing, and evaluating Vτ is difficult in all but a few special cases.
We therefore settle for an approximate or surrogate value function V̂τ which approximates
Vτ . We consider the problem
Pτ −1
minimize
t=0 g(x̃t ) + V̂τ (x̃τ )
(5)
subject to x̃t+1 = f (x̃t , ũt )
x̃0 = z,
which is an approximation to (4) with the same decision variables. This optimization problem
is the basis for the approximate MPC (A-MPC) policy, φampc . We define φampc (z) as an
7

optimal value of ũ0 for (5). If we have V̂τ = Vτ (i.e., V̂τ is a perfect approximation), we
recover the MPC policy, regardless of the shortened horizon length τ . Alternatively, if we
take τ = T and V̂T (z) = h(z), we recover the MPC policy.

3

Obtaining an approximate value function

In order to use an approximate MPC policy, we first need to synthesize an approximate
value function V̂τ . In practice, good control can be obtained with very simple forms for V̂τ ,
even when V̂τ is not a particularly good estimate of Vτ . (Indeed, the success of short-horizon
predictive control suggests that even a greedy policy, obtained using V̂τ = g, works well in
some cases.)
Quadratic functions. We limit our attention to quadratic value function approximations,
i.e., functions of the form
V̂τ (x) = (x − xdes )T P (x − xdes ) + r,

(6)

where P ∈ Rn×n is a symmetric positive definite matrix, r ∈ R is a scalar, and xdes is a
desired system state, representing an area of the state space with low cost. The scalar r has
no effect on the A-MPC control policy, but is included since we will choose it and P so that
V̂τ ≈ Vτ .
For example, one simple quadratic approximate value function is given by
V̂τ (x) = (x − xdes )T Penergy (x − xdes ),

(7)

where the symmetric matrix Penergy is such that xT Penergy x gives the total energy stored in
the converter. Control policies based on the energy function appear to have good stability
properties; for details, see [SV92] and [MK92].
Function fitting. We first choose state vectors x(1) , . . . , x(N ) , which are points at which
we desire an accurate approximation. Then for each state vector x(i) , we compute the
value function Vτ (x(i) ) by solving problem (2) with z = x(i) . This is done offline, possibly
using substantial computational resources. We then choose the parameters P and r of the
approximate value function as the solution to the least-squares approximation problem
N

2
1 X
(i)
(i)
minimize
+ λ(P − αPenergy )2 .
Vτ x
− V̂τ x
N i=1

(8)

The decision variables are the approximate value function parameters P and r, as well as
the scaling factor α. Note that P and r enter linearly in V̂τ , which allows us to solve this
problem as a least-squares problem. The parameter λ > 0 is a regularization parameter; if
we choose λ to be small, the optimal P and r almost minimize mean-squared error between
the approximate value function and the sampled values, thus returning a good value function
8

approximation at the points. By choosing λ large, we force P to be close to (a scaled version
of) Penergy ; this tends to make the resulting control more robust, especially if we have few
samples.
With values of P and r that solve (8), we expect that V̂τ (z) ≈ Vτ (z) in areas of the
state space that are well represented by the state samples. Because the flexibility (and
therefore, accuracy) of the approximate value function is a limited resource, it is important
to chose state samples that are likely to be encountered in normal operation, and not to
include samples far from relevant areas of the state space, since including them may decrease
accuracy in relevant areas.
We can explicitly add the constraints that P be positive definite, and α ≥ 0; the approximation problem above is no longer a least-squares problem but it is still convex and
readily solved [BV04]. But when the parameter λ and the sample points are appropriately
chosen, these constraints are typically satisfied automatically. We also note that since we
are approximating the value function, we do not need to evaluate Vτ (x(i) ) exactly; good
approximations are good enough.

4

Evaluating the approximate policy

In this section we first show how to evaluate the A-MPC policy in general; we then discuss
several special cases in which this process can be simplified, often with great computational
benefits. We also discuss how to (approximately) handle switching costs.

4.1

General f and g

To carry out the approximate MPC policy, we first measure the current system state. We
then solve (5), with z set to the current state, by first finding the state trajectory (simulating
the system for each of the K τ different input trajectories), and evaluating the cost function
for each simulated trajectory. Once we have obtained the input trajectory that attains the
lowest cost, we apply the optimal first control input ũ0 . The process is then repeated at the
next sample time. This is the same process that can be used to solve the MPC problem (2)
when the horizon length is short enough, and reflects the fact that (2) and (5) have the same
form.
Evaluating the value function requires finding a full desired state xdes . This contrasts
with the MPC problem (2), in which a full desired state is not required, and often only a few
(but not all) state variables appear in the cost function. One might ask why state variables
appear in the value function that do not appear in any cost function. This is because,
although some state variables do not appear explicitly in the value function, they can play
an important role in the future evolution of the system, so that deviation of these state
variables from ‘good’ values may result in high cost in the future, i.e., result in deviation of
other, explicitly penalized variables from ‘good’ values.
For example, for the boost converter example in §7, we explicitly penalize only output
voltage deviation from a desired value, and not inductor current deviation. However, we
9

expect the approximate value function to penalize inductor current deviation, because the
inductor current has a substantial effect on future values of the output voltage; a deviation
of the inductor current from ‘good’ values results in a future deviation of capacitor voltage
from the desired target in the future.
Finding appropriate values of xdes is case specific, but usually involves only simple computations; in the boost converter example, we take the desired inductor current to simply
be equal to the load current when the output voltage is equal to the desired value.
One-step horizon. In the case τ = 1, we can simplify (5) by eliminating the states as
variables, allowing us to write the policy as

φampc (x) = argmin V̂1 f (x, u) .
u

In this case the approximate MPC policy requires only K evaluations of f and V1 .

4.2

Switched-affine systems

In this section we present a solution approach for switched-affine dynamics and quadratic
costs. More specifically, we assume the system dynamics (1) can be written as
xt+1 = Aut xt + but ,
for matrices A1 , . . . , AK and vectors b1 , . . . , bK , and that the stage costs g are quadratic, so
that
g(x) = (x − xdes )T Q(x − xdes ).
where we have xdes = Cx + d, i.e., the desired state is an affine function of the current state.
In this case, the optimization problem (5) can be written as:
minimize z T P̃ (u)z + q̃(u)T z + r̃(u).
The variable is the vector u = (ũτ −1 , . . . , ũ0 ). The functions P̃ , q̃, r̃ are given by

10

(9)

P̃ (u) =

τ
X

xT0 ΦT0,t (I − C)T Pt (I − C)Φ0,t x0

t=0
τ
X

q̃(u) = 2

eTt Pt (I − C)Φ0,t x0

t=0

r̃(u) =

τ
X

eTt Pt et

t=0

et = (I − C)

t−1
X

Φs+1,t bus − xdes .

s=0

Φs,t



0
= I

 t−1
A · · · As

t<s
t=s.
t>s

We use the shorthand Pt = Q if t < τ , and Pt = P if t = τ .
We can precompute the parameters of these functions for each of the K τ different values
of u. To solve (9), we evaluate each of the K τ different quadratic functions at z and note
which quadratic function attains the lowest value; the corresponding index u is a solution
to (9). By precomputing P̃ , q̃, and r̃, we can acheive significant computational savings
compared to a simulation-based approach.

4.3

Linear systems with switched input

We consider a special case of the switched-affine systems. We assume quadratic stage costs
and dynamics of the form
xt+1 = Axt + but .

(10)

Because this is a special case of the switched affine case above, the A-MPC problem (2) can
also be written as (9). However, because the parameter P̃ does not depend on the control
input u, it can be dropped from the optimization problem without affecting the optimal
decision variables, so that the A-MPC problem (2) is equivalent to
minimize q̃(u)T z + r̃(u).

(11)

The variable is the vector u = (ũτ −1 , . . . , ũ0 ). The functions q̃, r̃ are given above. As before,
we can precompute the parameters of the affine functions in the objective of (11) for each
of the K τ different values of u.
One-step horizon. If we have τ = 1 in addition to linear systems with switched inputs
and quadratic costs, then (5) can be written as
φampc (x) = argmin F x + g.
11

In this case we interpret argmin to give minimum over all indices of the vector F x + g. The
matrix F ∈ RK×n and the vector g ∈ RK can be precomputed as




(b1 − xdes )T P (b1 − xdes )
2b1T P A1




..
..
g=
F =
.
,
.
.
(bK − xdes )T P (bK − xdes )
2bKT P AK
Note that if xdes changes during the operation of the converter, only g needs to be updated.

5

Summary of approximate MPC method

Here we summarize the steps needed to use the approximate MPC policy.
First, the parameters of the underlying MPC policy are determined. This means that a
dynamics model (1) of the system is derived and the cost function and horizon length are
determined. The dynamics model should be simple enough, and the horizon length modest
enough, for problem (2) to be solved fairly quickly on a desktop computer, so that many
(hundreds or thousands) of samples can be generated reasonably quickly.
Second, the reduced horizon length τ is chosen, based on the computational capabilities
of the embedded control platform (i.e., a large value of τ results in a more accurate approximation of the MPC problem, but also in a higher computational burden, as the controller
will need to evaluate K τ different trajectories each time step.) Sample states likely to be
encountered in normal operation are then chosen, and the value function Vτ (x(i) ) = Vτ (x(i) )
is evaluated for each sample x(i) by solving (3). Once the value function has been evaluated for all sample points, we choose the regularization tradeoff parameter λ and solve the
approximation problem (8) to obtain the approximate value function parameters P and r.
Once the approximate value function is obtained, the control policy can be evaluated by
solving the short-horizon policy (5), implementing the optimal first control input u0 , waiting
until the next sampling time, and repeating, as discussed in §4.

6
6.1

Extensions
Switching cost

In this section, we describe how to include switching costs, i.e., a cost associated with
switching from one control input to another, so that (2) becomes

PT −1
g(x̃
)
+
ℓ(u
,
u
)
+ h(x̃T )
minimize
t
t−1
t
t=0
(12)
subject to x̃t+1 = f (x̃t , ũt )
x̃0 = z.
where ℓ is a switching cost function, and the parameter ut−1 represents the control input
most recently implemented. In theory, this problem can be put into the form of problem (2)
by encoding the switch position as a state variable.
12

L
−
+

Vdc

RL
u

C

Rload

Figure 1: Boost converter model.
However, a more convenient way to handle the switching cost is to include it in the first
τ time steps and simply ignore it during the last T − τ time steps. By doing this, the process
of deriving the value function (see §3) remains the same, but the control policy is modified
to reflect the switching costs:

Pτ −1
minimize
t=0 g(x̃t ) + ℓ(ut−1 , ut ) + V̂τ (x̃τ )
(13)
subject to x̃t+1 = f (x̃t , ũt )
x̃0 = z.
Trivial modifications to this setup allow us to include many of the standard tricks for FCSMPC can be applied directly, such as using a frequency-based switching cost to enforce
a constant switching frequency. (See [KCV+ 09, CKK+ 08], for details.) We expect this
approach to work well for converters in which the switching dynamics do not have a significant
long-term effect, e.g., converters with a high switching frequency.

7
7.1

Examples
Boost converter example

We consider the ideal boost converter shown in figure 1. The system state is
 
i
xt = L,t .
vC,t
where iL,t and vC,t are the inductor current and capacitor voltage at discrete epoch t. We
(approximately) discretize the converter dynamics to have the form (1). The details of the
discretization are given appendix A.
We use the cost function to penalize deviation of the capacitor voltage from a desired
value:
g(xt ) = |vC,t − vdes |.
With this cost function, and with the discretized dynamics, problem (2) can be written as a
mixed-integer linear program (MILP).
We used the parameters of [KGM13], so that Vdc = 10 V, L = 450 µH, RL = 0.3
Ω, C = 220 µF, and Rload = 73 Ω. We took vdes = 30 V (instead of vdes = 15 V, as
in [KGM13]), because this increased target voltage means that the controller must charge
13

900

1400

800
1200

700
1000

600
800

V̂τ

V

500
400

600

300
400

30

30

200
20
100
10

0
60

50

40

30

v (V)

20

10

0
0

20

200
10

0

i (A)

60

50

40

30

v (V)

20

10

0
0

i (A)

Figure 2: For the boost converter example, the 100 sampled points of the value function are
shown on the left, and the fitted quadratic approximate value function V̂τ is shown on the
right, as a function of the inductor current i and the capacitor voltage v.
up the inductor at the cost of temporarily increasing voltage error. (For vdes = 15 V, the
controller can simply turn off the switch, charging the inductor and capacitor simultaneously
until the output voltage reaches the desired value.)
Following §3, we randomly generated 100 initial states by sampling uniformly over a
box with a lower bound of (0 A, 0 V) and an upper bound of (10 A, 50 V), which are
reasonable limits for normal operation of the converter. We then solved problem (2) for
each of the initial states, to within one percent accuracy. Using these sample points, we
solved the regularized approximation problem (8) to obtain an approximate value function,
with parameter λ = 100, using a positive semidefinite constraint on P . The resulting value
function is shown in figure 2 along with the 100 randomly sampled values. To evaluate
the ADP policy, we must explicitly define a desired state vector xdes , which we take to be
(vdes /Rload , vdes ).
In figure 3 we show the closed-loop response of the system under FCS-MPC controllers
with horizon lengths of 1, 5, and 30, with initial condition x0 = (0, 0) (i.e., zero inductor
current and capacitor voltage). To evaluate the FCS-MPC control policy, (2) was solved to
one percent accuracy. With a horizon length of T = 1, the controller does not reach the
desired steady-state value of 30 V and for T = 5, the desired steady-state value is reached,
but only slowly. For T = 30, the desired steady-state value is reached very quickly; however,
using such a long planning horizon is not practical. (In our desktop implementation, each
MPC evaluation took around 10 minutes on average.)
In figure 4, we show the response using the A-MPC controller, using τ = 1 and using
the approximate value function derived from function fitting. We can see that the A-MPC
controller outperforms the MPC controllers with short horizons (T = 1 and T = 5), and is
on par with the long-horizon MPC policy (T = 30).

14

Ind. current (A)

10
8
6
4
2
0

0

1

2

3

4

5

6
−3

x 10

Cap. voltage (V)

35
30
25
20
15
10
5
0

0

1

2

3

time (s)

4

5

6
−3

x 10

Figure 3: Closed-loop trajectories for the boost converter example with the MPC policy, for
different values of the planning horizon T . The desired output voltage value is 30 V.

15

Ind. current (A)

10
8
6
4
2
0

0

1

2

3

4

5

6
−3

x 10

Cap. voltage (V)

35
30
25
20
15
10
5
0

0

1

2

3

time (s)

4

5

6
−3

x 10

Figure 4: Closed-loop trajectories for the boost converter example, using the A-MPC policy.
The desired output voltage value is 30 V.

16

−
+

Vdc

L1

L2

L1

L2

L1

L2
C

C

C

Figure 5: Inverter model.

7.2

Inverter example

In this example, we consider a three-phase inverter with an LCL filter. The input is a
constant DC source, and the output is a three-phase AC voltage load. The goal is to
maintain a sinusoidal output current waveform with a desired amplitude and a high power
factor.
Model. The inverter is shown in figure 5. The AC output voltage signals are sinusoidal,
between them. The control
each with amplitude of Vload and with a phase difference of 2π
3
input to the system is the positions of the six switches; we assume the two switches in each
bridge cannot both be open or closed.
The inverter dynamics can be expressed in the form of (10), i.e., as a linear system with
a switched input. For the full derivation of the dynamics, see appendix B. We note here that
to put the dynamics in this form, we include in the state vector not only the currents of the
six inductors and the voltages of the three capacitors, but also the values sin ωt and cos ωt.
These extra state variables are used to express both the time-varying output voltage signal
and desired output current signals in a linear, time-invariant form.
We use the cost function to penalize deviation of the load currents from desired values:


g(xt ) = |i4,t − Ides sin ωt| + i5,t − Ides sin ωt − 2π
+ i6,t − Ides sin ωt − 4π
.
3
3

where Ides is the desired peak current value, and i4,t , i5,t , and i6,t are the values of the
output currents (i.e., the currents through the inductors on the righthand side of figure 5).
Because each of the three sinusoidal terms can be written as a linear combination of sin ωt
and cos ωt, including these values as state variables allows us to write the righthand side in
terms of the state vector, independent of t. With this cost function, and with the discretized
dynamics given in appendix B, problem (2) can be written as a mixed-integer quadratic
program (MIQP).
We used the parameters Vdc = 700 V, L1 = 6.5 µH, L2 = 1.5 µH, C = 15 µF, Vload = 300
V, and Ides = 10 A.
ADP controller. Following §3, we randomly generated 1000 initial states by sampling
uniformly over a box. The bounds of the box were chosen to be −20 A and 20 A for state
17

Control policy
ADP policy, τ = 1
FCS-MPC policy, T = 5
FCS-MPC policy, T = 10

State cost Switching cost
0.70
0.66
0.45
0.50
0.30
0.53

Table 1: The average state cost and the average switching cost (i.e., the average values of
g(xt ) and ℓ(ut−1 , ut) over the simulation), for different control policies.
variables representing inductor currents, −300 V and 300 V for state variables representing
capacitor voltages, and −1 and 1 for the state variables sin ωt and cos ωt. We solved problem
(2) for each of the initial states, to within one-percent accuracy. Using these sample points,
we then solved the regularized approximation problem (8) to obtain an approximate value
function, with parameter λ = 1 and no constraints on P or α. The energy corresponding of
the terms sin ωt and cos ωt, used to define the matrix E in (8), was taken to be 0.
When evaluating the controllers (using (13)), we incorporate a switching cost into the control. We use a constant switching cost, so that ℓ(ut−1 , ut ) = 0 if ut−1 = ut , and ℓ(ut−1 , ut ) = 1
otherwise.
To use (6), we must find a desired state vector xdes , as an affine function of the current
state. Note that for a given value of sin ωt and cos ωt, there is a unique set of load currents
i4,t , i5,t , and i6,t that result in zero cost. Corresponding other inductor currents and capacitor
voltages are found using phasor calculations, and expressed as an affine function of the state
variables (namely sin ωt and cos ωt).
Results. In figure 6 we show the closed-loop response of the system under the ADP controller with horizon length T = 1. The initial condition was taken to be in steady-state, i.e.,
by choosing an initial state x0 , computing the corresponding desired state xdes = Cx0 + d,
and starting the simulation from xdes .
We compare the 1-step ahead ADP controller to the FCS-MPC policy with T = 10 and
T = 30, solved to one percent accuracy. We note that the system is unstable for T < 5, and
that a brute force solution of problem (5) for T ≥ 5 requires comparing 16807 trajectories,
which is not computationally feasible for real-time control. In table 1, we see the accumulated
stage costs and switching costs over the simulation horizon, for each of the the three control
policies. We see that the ADP controller performs comparably to the FCS-MPC policies,
both in terms of cumulative stage costs and switching costs. In figure 6, we show the response
using the A-MPC controller.

8

Conclusion

We propose a method for approximately solving long-horizon FCS-MPC problems that avoids
extensive computation on the control processor. Our method relies on estimating a quadratic
approximate value function, which we do by sampling.
18

Input curr. (A)
Cap. voltage (V)
Output curr. (A)

20
10
0
−10
−20

0

0.005

0.01

0.015

0.02

0.025

0.03

0

0.005

0.01

0.015

0.02

0.025

0.03

0

0.005

0.01

0.015

0.02

0.025

0.03

400
200
0
−200
−400

20
10
0
−10
−20

time (s)
Figure 6: Closed-loop trajectories for the inverter example with the ADP policy, for τ = 1.

19

We conclude by noting some other ways to obtain a quadratic approximate value function
V̂ . For example, if we minimize a quadratic cost function over an approximate, linearized
system, a quadratic value function can be obtained by solving a Riccatti equation; this
method can be used instead of the function fitting method described in §3. Another possible
way involves solving linear matrix inequalities corresponding to a relaxed Bellman equation;
for details, see [Ran06] or [WOB15].

20

References
[AA00]

E. D. Andersen and K. D. Andersen. The Mosek interior point optimizer for
linear programming: An implementation of the homogeneous algorithm. In
High Performance Optimization, pages 197–232. Springer, 2000.

[BBM]

F. Borrelli, A. Bemporad, and M. Morari.
Predictive Control for Linear and Hybrid Systems.
Preprint available at
http://www.mpc.berkeley.edu/mpc-course-material/MPC_Book.pdf.

[Ber05]

D. P. Bertsekas. Dynamic programming and optimal control, volume 1. Athena
Scientific Belmont, MA, 3 edition, 2005.

[BM07]

S. Boyd and J. Mattingley.
Branch and bound
http://stanford.edu/class/ee364b/lectures/bb_notes.pdf,
Course notes for EE364b, Stanford University.

[BS13]

H. Y. Benson and U. Saglam. Mixed-integer second-order cone programming:
A survey. Tutorials in Operations Research, pages 13–36, 2013.

[BV04]

S. Boyd and L. Vandenberghe. Convex optimization. Cambridge university
press, 2004.

[CKK+ 08]

P. Cortés, M. P. Kazmierkowski, R. M. Kennel, D. E. Quevedo, and
J. Rodrı́guez. Predictive control in power electronics and drives. Transactions
on Industrial Electronics, 55(12):4312–4324, 2008.

[DCB14]

S. Diamond, E. Chu, and S. Boyd. CVXPY: A Python-embedded modeling
language for convex optimization, version 0.2. http://cvxpy.org/, May 2014.

methods.
2007.

[DKDG+ 14] S. V. Dhople, K. A. Kim, A. D. Domı́nguez-Garcı́a, et al. Time-optimal control
in DC-DC converters: A maximum principle perspective. In Proceedings of the
IEEE Applied Power Electronics Conference and Exposition, 2014.
[EM07]

R. W. Erickson and D. Maksimovic. Fundamentals of power electronics.
Springer Science & Business Media, 2007.

[GB08]

M. Grant and S. Boyd. Graph implementations for nonsmooth convex programs. In V. Blondel, S. Boyd, and H. Kimura, editors, Recent Advances in
Learning and Control, Lecture Notes in Control and Information Sciences, pages
95–110. Springer-Verlag Limited, 2008.

[GB14]

M. Grant and S. Boyd. CVX: Matlab software for disciplined convex programming, version 2.1. http://cvxr.com/cvx, March 2014.

[Gey11]

T. Geyer. Computationally efficient model predictive direct torque control.
IEEE Transactions on Power Electronics, 26(10):2804–2816, 2011.
21

[GPM05]

T. Geyer, G. Papafotiou, and M. Morari. Model predictive control in power
electronics: A hybrid systems approach. In Conference on Decision and Control, European Control Conference, pages 5606–5611. IEEE, 2005.

[GQ13]

T. Geyer and D. E. Quevedo. Multistep direct model predictive control for
power electronics—part 1: Algorithm. In Energy Conversion Congress and
Exposition, pages 1154–1161. IEEE, 2013.

[Inc15]

Gurobi Optimization Inc. Gurobi optimizer reference manual, 2015.

[IW76]

W. W. Burns III and T. G. Wilson. State trajectories used to observe and
control dc-to-dc converters. IEEE Transactions on Aerospace and Electronic
Systems, 12(6):706–717, 1976.

[IW77]

W. W. Burns III and T. G. Wilson. Analytic derivation and evaluation of a
state-trajectory control law for DC-to-DC converters. In IEEE Power Electronics Specialists Conference, pages 70–85. IEEE, 1977.

[KCV+ 09]

S. Kouro, P. Cortés, R. Vargas, U. Ammann, and J. Rodrı́guez. Model predictive control—a simple and powerful method to control power converters.
Transactions on Industrial Electronics, 56(6):1826–1838, 2009.

[KGM12]

P. Karamanakos, T. Geyer, and S. Manias. Direct model predictive current
control of dc-dc boost converters. In 15th International Power Electronics and
Motion Control Conference, 2012.

[KGM13]

P. Karamanakos, T. Geyer, and S. Manias. Direct model predictive current
control strategy of DC–DC boost converters. Journal of Emerging and Selected
Topics in Power Electronics, 1(4):337–346, 2013.

[KGM14]

P. Karamanakos, T. Geyer, and S. Manias. Direct voltage control of dc–dc boost
converters using enumeration-based model predictive control. Power Electronics, IEEE Transactions on, 29(2):968–978, 2014.

[KSV91]

J. G. Kassakian, M. F. Schlecht, and G. C. Verghese. Principles of power
electronics. Addison-Wesley Reading, USA, 1991.

[MK92]

P. Midya and P. T. Krein. Optimal control approaches to switching power
converters. In Power Electronics Specialists Conference, pages 741–748. IEEE,
1992.

[MWB11]

J. Mattingley, Y. Wang, , and S. Boyd. Receding horizon control: Automatic
generation of high-speed solvers. IEEE Control Systems Magazine, 31(3):5265,
June 2011.

[Pow07]

W. B. Powell. Approximate Dynamic Programming: Solving the curses of dimensionality, volume 703. John Wiley & Sons, 2007.
22

[QAG14]

D. E. Quevedo, R. P. Aguilera, and T. Geyer. Predictive control in power
electronics and drives: Basic concepts, theory, and methods. In Advanced and
Intelligent Control in Power Electronics and Drives, pages 181–226. Springer,
2014.

[Ran06]

A. Rantzer. Relaxed dynamic programming in switching systems. IEE Proceedings, Control Theory and Applications, 153(5):567–574, 2006.

[SB98]

R. S. Sutton and A. G. Barto. Introduction to reinforcement learning, volume
135. MIT Press Cambridge, 1998.

[SV92]

S. R. Sanders and G. C. Verghese. Lyapunov-based control for switched power
converters. IEEE Transactions on Power Electronics, 7(1):17–24, 1992.

[WB10]

Y. Wang and S. Boyd. Fast model predictive control using online optimization.
IEEE Transactions on Control Systems Technology, 18(2):267–278, March 2010.

[WB11]

Y. Wang and S. Boyd. Fast evaluation of quadratic control-Lyapunov policy.
IEEE Transactions on Control Systems Technology, 19(4):939946, July 2011.

[WCY+ 14]

L. Wang, S. Chai, D. Yoo, L. Gan, and K. Ng. PID and Predictive Control
of Electrical Drives and Power Converters Using MATLAB/Simulink. John
Wiley & Sons, 2014.

[WOB15]

Y. Wang, B. O’Donoghue, and S. Boyd. Approximate dynamic programming
via iterated Bellman inequalities. International Journal of Robust and Nonlinear Control, 25(10):1472–1496, 2015.

[Wol98]

L. A. Wolsey. Integer programming, volume 42. Wiley New York, 1998.

23

A

Derivation of boost converter dynamics

Here we give the discrete dynamics for the boost converter example. The discrete-time
dynamics of the converter are approximated as:

on,ccm

xt + bon,ccm ut = 1,
A
f (xt , ut ) = Aoff,ccm xt + boff,ccm ut = 2, Cxt ≥ d

 off,dcm
A
xt
ut = 2, Cxt < d
We have



on,ccm

A

0

 off,ccm
A
0

 

−1/RL L −1/L Vdc
b
−1/RC 0  ,
= exp h  1/C
1
0
0
0
 


−1/RL L
0
Vdc
on,ccm
b
0
−1/RC 0  ,
= exp h 
1
0
0
0
 

0
0
Aoff,dcm = exp h
,
0 −1/RC
on,ccm



where exp denotes the matrix exponential. The CCM/DCM threshold parameters C and
d are chosen to predict whether the inductor current drops below zero by the next time
interval:




C = 1 0 Aoff,ccm ,
d = − 1 0 b.

B

Derivation of inverter dynamics

Here we show how to write the dynamics of the inverter in figure 5 in the form (1). The
converter can be defined by the continuous-time differential algebraic equations
ẋ(t) = Ax(t) + Bin vin (t) + Bload vload (t) + F vfloat
0 = FTx
where x(t) ∈ R9 is the continuous system state, consisting of all inductor currents and
capacitor voltages in figure 5:
x(t) = (i1 , i2 , i3 , v1 , v2 , v3 , i4 , i5 , i6 ).

24

Also, vin (t) ∈ R3 is the vector of bridge voltages, vload (t) ∈ R3 is the vector of
load voltages, vfloat (t) ∈ R2 is a vector of floating node voltages. We have


1
0 0 0 − L11
0
0
0
0
0
0
L1
1

0 0 0
0 1
0 − L1
0
0
0
0 

L1


0 0 0
1
0 0
0
0
0 
0
0 − L1



1
0 0
0
0
0 − C1
0
0 
C 0 0



1
1
0
0
0
0 −C
0 ,
Bin = 
A = 0 C 0
0 0

1
1
0 0
0
0
0
0
0 −C 
0 0 C



1
0 0
0
0
0
0
0 
 0 0 0 − L2



0 0
0 − L12
0 0 0
0
0
0
0 
0 0
0
0
0
0 0 0
0
0 − L12

 1


− L1 − L11
0
0
0
− 1 − 1 
 0
0
0 

 L1


− 1 − L11 
 0

0
0
 L1
L1 




 0

0
0
0
0








0
0
0
0
0 .
Bload = 
, F = 


 0
0
0 
0 
 0
 1



− L
0
0 
 0 − L12 
 2



 0 −1
0 
 0 − L12 
L2
0
0 − L12
0 − L12

(sinusoidal)

0
0

1 
L1 
0

0
,
0

0

0
0

We can solve these differential algebraic equations to obtain:

ẋ(t) = Ax(t) + Bin vin (t) + Bload vload (t),
where A = A − MA, Bin = Bin − MBin , Bout = Bout − MBout , and M = F (F T F )−1 F T .
We now show how to represent the time varying, uncontrolled vector vload in terms of
sin ωt and cos ωt. We have






1
0
sin(ωt)
2π
2π  sin ωt
2π 


.
vload = Vload sin(ωt + 3 ) = Vload sin 3 cos 3
cos ωt
4π
4π
4π
sin 3 cos 3
sin(ωt + 3 )
By incorporating sin ωt and cos ωt as state variables, we can then express the system in a
time-invariant form:

 


A Bload
x(t)
x(t)
d 
sin ωt  = 
0 −ω   sin ωt  + Bin vin (t).
0
dt
cos ωt
cos ωt
ω 0
Because the input voltage is constant over each time epoch, we can exactly discretize this
differential equation using a matrix exponential:


 

A Bload
A Bload
= exp ∆t
0
0
0
I
25

where ∆t is the discretization timestep.
Note that in each time epoch, vin (t) can take one of seven values:
 
 
 
 
 
 
 
0
Vdc
0
0
Vdc
Vdc
0
0 ,  0  , Vdc  ,  0  , Vdc  ,  0  , Vdc  .
0
0
0
Vdc
0
Vdc
Vdc
Premultiplying these vectors by Bload yields the vectors but in equation (10).

26

9
8
7
6
5
4
3
2
1
0
0.000

0.001

0.002

0.003

0.004

0.005

0.006

0.001

0.002

0.003

0.004

0.005

0.006

35
30
25
20
15
10
5
0
0.000

20

ii

10
0
−10
−20

0

0.005

0.01

0.015

0.02

0.025

0.03

0

0.005

0.01

0.015

0.02

0.025

0.03

0

0.005

0.01

0.015
t

0.02

0.025

0.03

400
200
v

0
−200
−400

20

io

10
0
−10
−20

