Specify term content of LMIs
lmiterm specifies the
term content of an LMI one term at a time. Recall that LMI
term refers to the elementary additive terms involved in
the block-matrix expression of the LMI. Before using
the LMI description must be initialized with
the matrix variables must be declared with
lmiterm command adds one extra term to the
LMI system currently described.
LMI terms are one of the following entities:
constant terms (fixed matrices)
variable terms AXB or AXTB where X is a matrix variable and A and B are given matrices called the term coefficients.
When describing an LMI with several blocks, remember to specify only the terms in the blocks on or below the diagonal (or equivalently, only the terms in blocks on or above the diagonal). For instance, specify the blocks (1,1), (2,1), and (2,2) in a two-block LMI.
In the calling of
a four-entry vector of integers specifying the term location and the
matrix variable involved.
where positive p is for terms on the left-side of the p-th LMI and negative p is for terms on the right-side of the p-th LMI.
Recall that, by convention, the left side always refers to the
smaller side of the LMI. The index
p is relative
to the order of declaration and corresponds to the identifier returned
x is the identifier of the matrix variable
the numerical data and are set according to:
Type of Term
outer factor N
matrix value of N
constant term C
matrix value of C
AXB or AXTB
matrix value of A
(1 if A is absent)
matrix value of B
(1 if B is absent)
Note that identity outer factors and zero constant terms need not be specified.
The extra argument
flag is optional and concerns
only conjugated expressions of the form
(AXB) + (AXBT) = AXB + BTX(T)AT
in diagonal blocks. Setting
= 's' allows you to specify such expressions with a single
lmiterm([1 1 1 X],A,1,'s')
adds the symmetrized expression AX + XTAT to the (1,1) block of the first LMI and summarizes the two commands
lmiterm([1 1 1 X],A,1) lmiterm([1 1 1 -X],1,A')
Aside from being convenient, this shortcut also results in a more efficient representation of the LMI.
Consider the LMI
where X1, X2 are matrix variables of Types 2 and 1, respectively, and x3 is a scalar variable (Type 1).
After you initialize the LMI description using
declare the matrix variables using
the terms on the left side of this LMI.
lmiterm([1 1 1 X2],2*A,A') % 2*A*X2*A' lmiterm([1 1 1 x3],-1,E) % -x3*E lmiterm([1 1 1 0],D*D') % D*D' lmiterm([1 2 1 -X1],1,B) % X1'*B lmiterm([1 2 2 0],-1) % -I
the variable identifiers returned by
you declare the variables.
Similarly, specify the term content of the right side.
lmiterm([-1 0 0 0],M) % outer factor M lmiterm([-1 1 1 X1],C,C','s') % C*X1*C'+C*X1'*C' lmiterm([-1 2 2 X2],-f,1) % -f*X2
Note that CX1CT + CX1TCT is
specified by a single
lmiterm command with the
's' to ensure proper symmetrization.