KYP problems


This example requires KYPD and an SDP-solver capable of calculating dual variables.

Many problems in control and system theory can be formulated using the celebrated Kalman-Yakubovic-Popov lemma (KYP). By using this lemma, a large number of problems can be formulated using LMIs. Unfortunately, many practical problems leads to LMIs far too big to be efficiently solved using standard semidefinite solvers.

YALMIP can be used with the dedicated solver KYPD to efficiently solve some problems with large-scale KYP constraints. In our setting, a KYP is a matrix of the form [ATP+PA PB;BTP 0] + M(x), with P and the x being the free variables, and M a linear operator.

The following code calculates the L2-gain of a random stable system with 40 states, using the dedicated KYPD-solver, and a standard SDP-solver.

n = 40;
A = randn(n);A = A - max(real(eig(A)))*eye(n)*1.5; % Stable dynamics
B = randn(n,1);
C = randn(1,n);

t = sdpvar(1,1);
P = sdpvar(n,n);

F = set(kyp(A,B,P,blkdiag(C'*C,-t)) < 0)

sol1 = solvesdp(F,t,sdpsettings('solver','kypd'));
sol2 = solvesdp(F,t);

sol1.solvertime/sol2.solvertime % Compare solution time

  The variable P may only enter in 1 constraint if you intend to use KYPD, i.e. you cannot use KYPD if you want to impose explicit constraints (including 
positive definiteness) of P. However, positive definiteness of P is in some cases implied by the KYP constraint.  You can have multiple KYP constraints with different P variables.