Local solution of bilinear matrix inequalities (BMIs)


This example requires the solver PENBMI

BMI problems are solved locally just as easy as standard SDP problems, by using the solver PENBMI. As an example, the decay-rate estimation problem that we earlier solved using a bisection, is solved with the following code.

A = [-1 2;-3 -4];
t = sdpvar(1,1);
P = sdpvar(2,2);
F = set(P>eye(2))+set(A'*P+P*A < -2*t*P);
solvesdp(F,-t);

PENBMI seem to perform better if variables are constrained, so the following code is often recommended (see the advanced programming examples).

A = [-1 2;-3 -4];
t = sdpvar(1,1);
P = sdpvar(2,2);
F = set(P>eye(2))+set(A'*P+P*A < -2*t*P);

F = F + set(-100 < recover(depends(F)) < 100);

solvesdp(F,-t);

As another example, the code below calculates an LQ optimal feedback. (of-course, this can be solved much more efficiently by first recasting it as a convex problem)

A = [-1 2;-3 -4];B = [1;1];
P = sdpvar(2,2);K = sdpvar(1,2);
F = set(P>0)+set((A+B*K)'*P+P*(A+B*K) < -eye(2)-K'*K);
solvesdp(F,trace(P));

More interesting, we can solve the LQ problem with constraints on the feedback matrix.

A = [-1 2;-3 -4];B = [1;1];
P = sdpvar(2,2);K = sdpvar(1,2);
F = set(K<0.1)+set(K>-0.1)+set(P>0)+set((A+B*K)'*P+P*(A+B*K) < -eye(2)-K'*K);
solvesdp(F,trace(P));

Reasonable initial guesses is often crucial in non-convex optimization. The easiest way to specify initial guesses in YALMIP is to use the field usex0 in sdpsettings and the command assign. Consider the constrained LQ example above, and let us specify an initial guess using a standard LQ feedback.

A = [-1 2;-3 -4];B = [1;1];
[K0,P0] = lqr(A,B,eye(2),1);
P = sdpvar(2,2);assign(P,P0);
K = sdpvar(1,2);assign(K,-K0);
F = set(K<0.1)+set(K>-0.1)+set(P>0)+set((A+B*K)'*P+P*(A+B*K) < -eye(2)-K'*K);
solvesdp(F,trace(P),sdpsettings('usex0',1));

PENBMI supports non-convex quadratic objective functions. Hence you can (locally) solve non-convex quadratically constrained quadratic programming using PENBMI.

YALMIP will automatically convert higher order polynomial programs to bilinear programs, hence YALMIP+PENBMI can be used to address general polynomial problems.