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
setsdpvar. 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);setsdpvar(P,P0);
K = sdpvar(1,2);setsdpvar(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.
|