• No results found

Real-Time Embedded Convex Optimization

N/A
N/A
Protected

Academic year: 2021

Share "Real-Time Embedded Convex Optimization"

Copied!
49
0
0

Loading.... (view fulltext now)

Full text

(1)

Real-Time Embedded Convex Optimization

Stephen Boyd

joint work with Michael Grant, Jacob Mattingley, Yang Wang Electrical Engineering Department, Stanford University

(2)

Outline

• Real-time embedded convex optimization

• Examples

• Parser/solvers for convex optimization

(3)

Embedded optimization

• embed solvers in real-time applications

• i.e., solve an optimization problem at each time step

• used now for applications with hour/minute time-scales

– process control

– supply chain and revenue management

(4)

What’s new

embedded optimization at millisecond/microsecond time-scales

millions thousands tens pr ob le m si ze − → ← our focus traditional problems →

(5)

Applications

• real-time resource allocation

– update allocation as objective, resource availabilities change

• signal processing

– estimate signal by solving optimization problem over sliding window

– replace least-squares estimates with robust (Huber, ℓ1) versions

– re-design (adapt) coefficients as signal/system model changes

• control

– closed-loop control via rolling horizon optimization

– real-time trajectory planning

• all of these done now, on long (minutes or more) time scales

(6)

Outline

• Real-time embedded convex optimization

• Examples

• Parser/solvers for convex optimization

(7)

Multi-period processor speed scheduling

• processor adjusts its speed st ∈ [smin, smax] in each of T time periods

• energy consumed in period t is φ(st); total energy is E = PTt=1 φ(st)

• n jobs

– job i available at t = Ai; must finish by deadline t = Di

– job i requires total work Wi ≥ 0

• Sti ≥ 0 is effective processor speed allocated to job i in period t

st = n X i=1 Sti, Di X t=Ai Sti ≥ Wi

(8)

Minimum energy processor speed scheduling

• choose speeds st and allocations Sti to minimize total energy E

minimize E = PTt=1 φ(st)

subject to smin ≤ st ≤ smax, t = 1, . . . , T st = Pni=1 Sti, t = 1, . . . , T

PDi

t=Ai Sti ≥ Wi, i = 1, . . . , n

• a convex problem when φ is convex

• more sophisticated versions include

– multiple processors

– other constraints (thermal, speed slew rate, . . . )

(9)

Example

• T = 16 periods, n = 12 jobs

• smin = 1, smax = 6, φ(st) = s2t

• jobs shown as bars over [Ai, Di] with area ∝ Wi

0 5 10 15 20 25 30 35 40 φt (s t ) 0 2 4 6 8 10 12 jo b i

(10)

Optimal and uniform schedules

• uniform schedule: Sti = Wi/(Di − Ai); gives Eunif = 374.1

• optimal schedule Sti⋆ gives E⋆ = 167.1

0 1 2 3 4 5 6 st optimal 0 1 2 3 4 5 6 st uniform

(11)

Minimum time control with active vibration supression

F

T

• force F (t) moves object modeled as 3 masses (2 vibration modes)

• tension T (t) used for active vibration supression

• goal: move object to commanded position as quickly as possible, with

(12)

Ignoring vibration modes

• treat object as single mass; apply only F

• analytical (‘bang-bang’) solution

−20 0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 2.5 3 y3 (t ) t −2 0 2 4 6 8 10 12 14 16 18 20 −1 −0.5 0 0.5 1 −2 0 2 4 6 8 10 12 14 16 18 20 −0.1 −0.05 0 0.05 0.1 t t F (t ) T (t )

(13)

With vibration modes

• no analytical solution, but reduces to a quasiconvex problem

• can be solved by solving a small number of convex problems

−20 0 2 4 6 8 10 12 14 16 18 20 0.5 1 1.5 2 2.5 3 y3 (t ) t −2 0 2 4 6 8 10 12 14 16 18 20 −1 −0.5 0 0.5 1 −2 0 2 4 6 8 10 12 14 16 18 20 −0.1 −0.05 0 0.05 0.1 t t F (t ) T (t )

(14)

Grasp force optimization

• choose K grasping forces on object to

– resist external wrench (force and torque)

– respect friction cone constraints

– minimize maximum grasp force

• convex problem (second-order cone program or SOCP):

minimize maxikf(i)k2 max contact force

subject to P

i Q(i)f(i) = fext force equillibrium

P

i p(i) × (Q(i)f(i)) = τext torque equillibrium

µifz(i) ≥ 

fx(i)2 + fy(i)2

1/2

friction cone constraints variables f(i) ∈ R3, i = 1, . . . , K (contact forces)

(15)
(16)

Grasp force optimization solve times

• example with K = 5 fingers (grasp points)

• reduces to SOCP with 15 vars, 6 eqs, 5 3-dim SOCs

(17)

Robust Kalman filtering

• estimate state of a linear dynamical system driven by IID noise

• sensor measurements have occasional outliers (failures, jamming, . . . )

• model: xt+1 = Axt + wt, yt = Cxt + vt + zt

– wt ∼ N (0, W ), vt ∼ N (0, V )

– zt is sparse; represents outliers, failures, . . .

• (steady-state) Kalman filter (for case zt = 0):

– time update: xˆt+1|t = Aˆxt|t

– measurement update: xˆt|t = ˆxt|t−1 + L(yt − C ˆxt|t−1)

(18)

Measurement update via optimization

• standard KF: ˆxt|t is solution of quadratic problem

minimize vTV −1v + (x − ˆxt|t−1)TΣ−1(x − ˆxt|t−1)

subject to yt = Cx + v

with variables x, v (simple analytic solution)

• robust KF: choose ˆxt|t as solution of convex problem

minimize vTV −1v + (x − ˆxt|t−1)TΣ−1(x − ˆxt|t−1) + λkzk1

subject to yt = Cx + v + z

(19)

Example

• 50 states, 15 measurements

• with prob. 5%, measurement components replaced with (yt)i = (vt)i

(20)

State estimation error

kx − ˆxt|tk2 for KF (red); robust KF (blue); KF with z = 0 (gray)

(21)

Robust Kalman filter solve time

• robust KF requires solution of QP with 95 vars, 15 eqs, 30 ineqs

• automatically generated code solves QP in 120 µs (SDPT3: 120 ms)

(22)

Linearizing pre-equalizer

• linear dynamical system with input saturation

∗h y

• we’ll design pre-equalizer to compensate for saturation effects

equalizer ∗h y

(23)

Linearizing pre-equalizer

equalizer v

u e

∗h ∗h

• goal: minimize error e (say, in mean-square sense)

(24)

• system: xt+1 = Axt + B sat(vt), yt = Cxt

• (linear) reference system: xreft+1 = Axreft + But, ytref = Cxreft

• et = Cxreft − Cxt

• state error ˜xt = xreft − xt satisfies ˜

xt+1 = A˜xt + B(ut − vt), et = C ˜xt

• to choose vt, solve QP

minimize Pt+Tτ =t e2τ + ˜xTt+T +1P ˜xt+T +1

subject to x˜τ +1 = A˜xτ + B(uτ − vτ), eτ = C ˜xτ, τ = t, . . . , t + T |vτ| ≤ 1, τ = t, . . . , t + T

(25)

Example

• state dimension n = 3; h decays in around 35 samples

• pre-equalizer look-ahead T = 15 samples

(26)

Outputs

desired (black), no compensation (red), equalized (blue)

−2.5 0 2.5

(27)

Errors

no compensation (red), with equalization (blue)

−0.75 0 0.75

(28)

Inputs

no compensation (red), with equalization (blue)

−2.5 0 2.5

(29)

Linearizing pre-equalizer solve time

• pre-equalizer problem reduces to QP with 96 vars, 63 eqs, 48 ineqs

(30)

Constrained linear quadratic stochastic control

• linear dynamical system: xt+1 = Axt + But + wt

– xt ∈ Rn is state; ut ∈ U ⊂ Rm is control input

– wt is IID zero mean disturbance

• ut = φ(xt), where φ : Rn → U is (state feedback) policy

• objective: minimize average expected stage cost (Q ≥ 0, R > 0)

J = lim T →∞ 1 T T −1 X t=0 E xT t Qxt + uTt Rut 

(31)

Constrained linear quadratic stochastic control

• optimal policy has form

φ(z) = argmin v∈U

{vTRv + E V (Az + Bv + wt)}

where V is Bellman function

– but V is hard to find/describe except when U = Rm

(in which case V is quadratic)

• many heuristic methods give suboptimal policies, e.g.

– projected linear control

– control-Lyapunov policy

(32)

Control-Lyapunov policy

• also called approximate dynamic programming, horizon-1 model

predictive control

• CLF policy is

φclf(z) = argmin

v∈U

{vTRv + E Vclf(Az + Bv + wt)}

where Vclf : Rn → R is the control-Lyapunov function

• evaluating ut = φclf(xt) requires solving an optimization problem at

each step

• many tractable methods can be used to find a good Vclf

(33)

Quadratic control-Lyapunov policy

• assume

– polyhedral constraint set: U = {v | F v ≤ g}, g ∈ Rk

– quadratic control-Lyapunov function: Vclf(z) = zTP z

• evaluating ut = φclf(xt) reduces to solving QP

minimize vTRv + (Az + Bv)TP (Az + Bv)

(34)

Control-Lyapunov policy evaluation times

• tclf: time to evaluate φclf(z)

• tlin: linear policy φlin(z) = Kz

• tkf: Kalman filter update

• (SDPT3 times around 1000× larger)

n m k tclf (µs) tlin (µs) tkf (µs)

15 5 10 35 1 1

50 15 30 85 3 9

100 10 20 67 4 40

(35)

Outline

• Real-time embedded convex optimization

• Examples

• Parser/solvers for convex optimization

(36)

Parser/solvers for convex optimization

• specify convex problem in natural form

– declare optimization variables

– form convex objective and constraints using a specific set of atoms

and calculus rules (disciplined convex programming)

• problem is convex-by-construction

• easy to parse, automatically transform to standard form, solve, and

transform back

• implemented using object-oriented methods and/or compiler-compilers

(37)

Example: cvx

• parser/solver written in Matlab

• convex problem, with variable x ∈ Rn; A, b, λ, F , g constants

minimize kAx − bk2 + λkxk1

subject to F x ≤ g

• cvx specification:

cvx begin

variable x(n) % declare vector variable

minimize (norm(A*x-b,2) + lambda*norm(x,1))

(38)

when cvx processes this specification, it

• verifies convexity of problem

• generates equivalent cone problem (here, an SOCP)

• solves it using SDPT3 or SeDuMi

• transforms solution back to original problem

(39)

The same example, transformed by ‘hand’

transform problem to SOCP, call SeDuMi, reconstruct solution:

% Set up big matrices.

[m,n] = size(A); [p,n] = size(F);

AA = [speye(n), -speye(n), speye(n), sparse(n,p+m+1); ... F, sparse(p,2*n), speye(p), sparse(p,m+1); ...

A, sparse(m,2*n+p), speye(m), sparse(m,1)]; bb = [zeros(n,1); g; b];

cc = [zeros(n,1); gamma*ones(2*n,1); zeros(m+p,1); 1];

K.f = m; K.l = 2*n+p; K.q = m + 1; % specify cone

xx = sedumi(AA, bb, cc, K); % solve SOCP

(40)

Outline

• Real-time embedded convex optimization

• Examples

• Parser/solvers for convex optimization

(41)

General vs. embedded solvers

• general solver (say, for QP)

– handles single problem instances with any dimensions, sparsity pattern

– typically optimized for large problems

– must deliver high accuracy

– variable execution time: stops when tolerance achieved

• embedded solver

– solves many instances of the same problem family (dimensions,

sparsity pattern) with different data

– solves small or smallish problems

– can deliver lower (application dependent) accuracy

(42)

Embedded solvers

• (if a general solver works, use it)

• otherwise, develop custom code

– by hand

– automatically via code generation

• can exploit known sparsity pattern, data ranges, required tolerance at

solver code development time

• we’ve had good results with interior-point methods;

other methods (e.g., active set, first order) might work well too

(43)

Convex optimization solver generation

• specify convex problem family in natural form, via disciplined convex

programming

– declare optimization variables, parameters

– form convex objective and constraints using a specific set of atoms

and calculus rules

• code generator

– analyzes problem structure (dimensions, sparsity, . . . )

– chooses elimination ordering

– generates solver code for specific problem family

• idea:

– spend (perhaps much) time generating code

(44)

Parser/solver vs. code generator

Problem instance Parser/solver x⋆ replacements Source code Code generator Problem family description Custom solver Custom solver Compiler Problem instance x ⋆

(45)

cvxgen

code generator

• handles problems transformable to QP

• accepts high-level problem family description

• generates flat C source, auxiliary files, documentation

– no libraries, almost branch-free

• primal-dual interior-point method with iteration limit

– direct LDLT factorization of KKT matrix

– regularization and iterative refinement for extreme reliability

– (slow) method to determine static variable ordering

(46)

cvxgen

example specification

dimensions

n = 30 # assets.

parameters

alpha (n) # mean returns.

lambda nonnegative # risk aversion.

Sigma (n,n) psd # covariance.

eta nonnegative # limit on total short position.

variables

w (n) # asset weights. maximize

alpha’*w - lambda*quad(w,Sigma) # risk adjusted mean return.

subject to

sum(w) == 1 # budget constraint.

(47)

Sample solve times for cvxgen generated code

Scheduling Battery Suspension

Variables 279 153 104

Constraints 465 357 165

CVX, Intel i7 4.2 s 1.3 s 2.6 s

CVXGEN, Intel i7 850 µs 360 µs 110 µs

(48)

Conclusions

• can solve convex problems on millisecond, microsecond time scales

– (using existing algorithms, but not using existing codes)

– there should be many applications

• parser/solvers make rapid prototyping easy

• new code generation methods yield solvers that

– are extremely fast, even competitive with ‘analytical methods’

(49)

References

• Automatic Code Generation for Real-Time Convex Optimization

(Mattingley, Boyd)

• Real-Time Convex Optimization in Signal Processing

(Mattingley, Boyd)

• Code Generation for Receding Horizon Control (Mattingley, Boyd)

• Fast Evaluation of Quadratic Control-Lyapunov Policy (Wang, Boyd)

• Fast Model Predictive Control Using Online Optimization (Wang, Boyd)

• cvx (Grant, Boyd, Ye)

References

Related documents

In fact, the New Catechism of the Catholic Church should be read and understood in light of its history, especially Catechesi Tradendae and General Catechetical

Associate Professor, Utah Valley University; LL.M. Taxation, Utah State University; B.S., Utah State University.. Analysis of Pre- Banks Case Law. Attorney’s Lien Statutes. Is

This approach is highly adaptive, proving efficient when the environment is optimal (e.g., happy emotions), and a means of defence when there is a threat of danger (e.g., fear

A model based on texture metrics, gradient information, Hessian matrix eigenvalues, and local statistics showed good results with accuracies up to 88.2%, an area under the ROC

The conclusion of the novelty in this research is that the transformational leadership with the mediation of social competence and self-efficacy had significant positive effect

The African Network of Basin Organization (ANBO) and the Global Water Partnership (GWP) will organize, with their partners, a training workshop on “ Financing of

• Potential cause: Print head heat levels are too high Solution: Reduce the energy/heat setting of the printer.. • Potential cause: Print speed is

Printed in the United States of America Library of Congress Cataloging in Publication Data Hayes, John R„ 1940-.. The complete