Académique Documents
Professionnel Documents
Culture Documents
Uncertain Systems
Cristiano M. Agulhari, Ricardo C. L. F. Oliveira and Pedro L. D. Peres
Abstract
A toolbox to construct linear matrix inequality (LMI) conditions from parameter-dependent LMI
conditions, named Robust LMI Parser, is proposed. The toolbox is developed for Matlab and works
jointly with YALMIP, returning the entire set of LMIs through simple commands that describe the
structure of the matrices involved and the robust LMI conditions to be programmed. As an illustration,
an example of H guaranteed cost computation for an uncertain linear system is presented.
1 Introduction
In the last decades, problems formulated in terms of Linear Matrix Inequality (LMI) conditions and solved
by Semidefinite Programming (SPD) techniques became more and more common in several fields related to
engineering and applied mathematics. Specifically in control theory, the growing usage of such important
tools have led to important results on the analysis of systems stability, synthesis of stabilizing robust
controllers for uncertain systems and synthesis of optimal control models, just to name a few [1].
Accompanying the growth of the usage of LMI conditions, a large number of solvers based on interior
point methods were developed, as well as interfaces for parsing the LMIs, most of them free and easily
accessible. Thanks to such remarkable advance in the computational tools to define, manipulate and solve
LMIs, in many cases one can say that if a problem can be cast as a set of LMIs, then it can be considered as
solved [1]. Unfortunately, this is not completely true for large scale systems, since LMI solvers are limited
to a few thousands of variables and LMI rows, but progresses are being made.
Usually, LMIs are solved in two steps: first, an interface for parsing the conditions is used, for example
the YALMIP parser [2] or the LMI Control Toolbox from Matlab [3]; a LMI solver is then applied to find
a solution (if any), for example SeDuMi [4] or SDPT3 [5]. Some auxiliary toolboxes may also be used in
addition to the parser and the solver, for example the SOSTOOLS [6], which is used to transform a sum of
squares problem into a SDP formulation, and the GLOPTIPOLY [7], used to handle optimization problems
over polynomials.
Consider, for instance, the problem of analyzing the stability of a discrete-time linear system given by
with x(k) Rn being the state vector of the system and A Rnn being the dynamic matrix. Using the
Lyapunov stability theory, such system is stable if and only if there exists a symmetric matrix P Rnn
such that the LMI
P A P
>0 (2)
PA P
holds. Such LMI can be easily programmed and solved using, respectively, any LMI parser and solver
available.
Consider now that system (1) is affected by uncertainties, i.e., the system matrix is parameter-dependent
and is given by A(). The robust stability analysis of such system can be realized by rewriting the LMI
condition (2) as
P () A() P ()
>0 (3)
P ()A() P ()
School of Electrical and Computer Engineering, University of Campinas UNICAMP, 13083-852, Campinas, SP, Brazil.
(e-mails: {agulhari,ricfow,peres}@dt.fee.unicamp.br)
1
but, in this case, (3) must hold for all admissible . In order to transform the parameter-dependent LMI
into a finite set of standard LMIs, some information about A() must be added, as well as some structure
must be imposed to the unknown variable P (). For instance, consider that A() and P () have a polytopic
structure
X N N
X
A() = i Ai , P () = i Pi , N , (4)
i=1 i=1
being Ai and Pi the vertices of the respective polytopes, N the number of vertices and N the set known
as unit simplex, given by
N
X
N
N = R : i = 1 , i 0 , i = 1, . . . , N . (5)
i=1
Applying the definition of A() and the chosen structure for P (), given by (4), to the robust stability
condition expressed in the parameter-dependent LMI (3), one gets the following homogeneous polynomial
matrix inequality, of degree 2 on ,
XN
P () A() P () 2 Pi Ai Pi
= i +
P ()A() P () Pi Ai Pi
i=1
(6)
N 1 N
X X Pi + Pj Ai Pj + Aj Pi
+ i j > 0.
Pi Aj + Pj Ai Pi + Pj
i=1 j=i+1
A sufficient (but not necessary) way to guarantee that (3) holds is to impose that all the matrix coefficients
of the monomials are positive definite. This has been done, for instance, in [8] (discrete-time systems) and [9]
(continuous-time systems). A less conservative set of conditions may be obtained by modeling the variable
P () in (6) as a homogeneous polynomial with generic degree g > 1 and then imposing the positivity of
all matrix coefficients [10, 11]. Programming these LMIs requires an a priori knowledge on the formation
law of the monomials, which depends on the number N of uncertain parameters and on the degree of the
polynomial variable P (). In [12], a systematic way to deal with such cases has been developed, but in
the context of robust LMIs presenting at most products between two parameter-dependent matrices. When
the LMIs to be solved are more complex and have products involving three or more parameter-dependent
matrices, the rules to compose the monomials become more complicated. Moreover, each new case demands
the manipulation of different polynomials. Such task, as well as programming the resulting LMIs, is tedious,
time-demanding and can be a source of programming errors.
The toolbox presented in this paper, called Robust LMI Parser1 , intends to overcome these problems
by automatically computing all the coefficients of the monomials of a given parameter-dependent LMI. The
toolbox is developed for Matlab and works jointly with YALMIP, returning the entire set of LMIs through
a few simple commands that describe the structure of the known matrices and variables involved in the
parameter-dependent LMIs to be investigated.
The paper is organized as follows. Section 2 presents the assumptions considered in the toolbox and
the notation used throughout the paper. The details on the syntaxes of the commands are presented in
Sections 3, 4, 5 and 6. An example is presented in Section 7 and Section 8 concludes the paper.
2 Preliminaries
The Robust LMI Parser currently considers the following assumptions:
The matrices are described as homogeneous polynomials on the uncertain parameters;
The vector of parameters belong to the unit simplex N , defined in (5);
All parameter-dependent matrices in a given condition have the same number of vertices.
Several examples illustrating the usage of the commands are presented throughout the paper. Such
commands are displayed using the Typewriter font and start with >>.
1
Available at http://www.dt.fee.unicamp.br/~ agulhari/softwares/robust_lmi_parser.zip
2
3 Defining the polynomial structure
The first step for using the Robust LMI Parser is to define all the variables and constants used in the LMIs
through the procedure poly struct, which has basically three possible syntaxes. If the coefficients of the
monomials are already defined, the related polynomial structure is obtained by
The output poly is a structured variable that fully describes the polynomial variable, whose fields are
given by:
poly.label: String with the label used to refer the polynomial in the procedure parser poly;
poly.data(n): Structure with the data corresponding to the n-th monomial. This structure has two
fields:
poly.opcode: Cell array that contains a representation of the operations performed to generate the
monomials. This field is used only to generate the Matlab executable files.
All the terms used in the LMIs must be defined through the poly struct procedure, even the scalars and
the precisely known matrices. Since the variables defined by poly struct are automatically stored by the
Robust LMI Parser, the output poly is not mandatory.
The variable M corresponds to the coefficients of the monomials of the homogeneous polynomial to be
defined. If the polynomial has a number r of monomials, all the r components must be given in M. For
example, consider that matrix A() has the following structure
A() = 1 A1 + 2 A2 , 1 + 2 = 1, 1 0, 2 0
Informing, on the cell array M, the exponent of the monomial to which each matrix is related.
When the monomial is not informed, it is supposed that the elements are informed using a predefined order.
Such order can be obtained by the command
The number r of monomials that must be provided in M depends on the number N of vertices and on the
degree g of the polynomial [12], being calculated by
(N + g 1)!
r= .
g!(N 1)!
3
Note that the number of vertices and the degree are also input parameters of the poly struct procedure.
If the variable to be defined is not parameter-dependent, the parameters vertices and degree may be
omitted.
The variable label is a string and consists of a name used to refer the variable when defining the
polynomial operations, described later. The string is case sensitive and must correspond to a valid variable
of Matlab.
NOTE: A constant matrix may be defined by setting vertices with the number of vertices of the
considered system and degree = 0. However, the structure will be more complex and may result on more
expensive computations.
NOTE: According to the assumptions made in Section 2 all the matrix variables must have the same
number of vertices. The only exception is for constant matrices, where the number of vertices may be set
to zero or does not need to be informed, as well as the degree.
If the coefficients of the monomials are variables of the problem, one may use the following syntax:
The matrix coefficients M with dimensions rows cols will be internally declared, being the output variable
M a cell array that contains the variables as coefficients. The argument param is a string that indicates if the
variable is symmetric (symmetric), rectangular (full), symmetric Toeplitz (toeplitz), symmetric
Hankel (hankel) or Skew-symmetric (skew). The matrices will be declared as symmetric if param is
not informed. Note that such command is similar to the SDPVAR instruction used to define the variables in
the YALMIP parser.
If the variable is a scalar one may use the syntax
which returns the structure related to the scalar M with label given by label. If the scalar is a variable the
following syntax may be used
Example 1
A polynomial matrix A() with degree g = 1 that represents a system with N = 3 vertices is given by
A() = 1 A1 + 2 A2 + 3 A3 , 3
Example 2
A polynomial matrix A() with degree g = 2 that represents a system with N = 2 vertices is given by
4
order of the exponents considered in the construction of the polynomial structures can be obtained by the
procedure
[exponents] = generate homogeneous exponents(vertices,degree)
which generates all the possible monomial combinations for such polynomial.
An easier way to define A() in the example is by using the poly struct with the following syntax.
>> A{1} = {[2 0],A20}; A{2} = {[1 1],A11}; A{3} = {[0 2],A02};
>> poly A = poly struct(A,A,2,2);
In this case, the order for the definition of A{i} is irrelevant.
Example 3
A 3 3 identity matrix can be defined using
Example 4
A symmetric polynomial variable P () R33 of degree 2, used in an uncertain system with N = 3 vertices,
can be defined by
= {1 , 2 } 2 , = {1 , 2 , 3 } 3 ,
5
Example 5
The definition of a symmetric variable P (, ) Rnn , of degree 3 in 2 and of degree 1 in 3 , is
given by
>> poly = poly struct(n,n,P,symmetric,[2 3],[3 1]);
Example 6
Considering that 2 and 3 , the matrices H() = 1 H1 + 2 H2 and G() = 1 G1 + 2 G2 + 3 G3
are defined by
M () = M 0 + M 11 + . . . + M qq , a1 1 b1, . . . , aq q bq.
The conversion of the matrix M (), affinely dependent on q parameters, to a multi-simplex representation
M (1 , . . . , q ), is performed automatically by ROLMIP when using the function affine2poly, whose syntax
is given by
>> [poly] = affine2poly(M,label,bounds).
The input M can be defined by two different syntaxes:
The input label corresponds to the label of the polynomial matrix, and bounds is a q 2 matrix
containing the bounds of the q parameters, generically given by
The output of the function affine2poly is the same polynomial obtained when using the poly struct
function.
4 Operating on polynomials
The basic mathematical operations (sum, subtraction and multiplication), as well as the transpose operation,
can be performed in polynomial variables by using the procedure parser poly, whose syntax is
The variable expr is a string that describes the operation to be performed in the polynomials. The names
of the variables used in expr must be equal to the labels given to the polynomials in their definition. The
label of the resulting polynomial will be equal to newlabel if such parameter is informed, otherwise the
label will be equal to expr.
6
Example 7
Consider the polynomial matrices A() = 1 A1 + 2 A2 ; B() = 1 B1 + 2 B2 ; C() = 1 C1 + 2 C2 .
The polynomial R() = A()C() + B()C() can be calculated by performing the following sequence of
Matlab commands
Example 8
Consider the variables A() = 1 A1 + 2 A2 ; B() = 1 B1 + 2 B2 ; C() = 1 C1 + 2 C2 . The polynomial
R() = A()B() + C() can be calculated by performing the following sequence of Matlab commands.
Note that the polynomial A()B() has degree g = 2 and C() has degree g = 1. According to the assump-
tions on Section 2, all the polynomials are considered to be homogeneous and the uncertain parameters are
considered to be in the unit simplex. In order to return a homogeneous polynomial the following operation
is automatically performed by the procedure parser poly on matrix C()
Example 9
The homogenization procedure is also automatically performed in the multi-simplex representation. For
example, consider the simplexes 2 and 2 , and the variables H() = 1 H1 + 2 H2 and
G() = 1 G1 + 2 G2. The polynomial R(, ) = H() + G() can be calculated by performing the following
sequence of Matlab commands.
7
Example 10
Consider the variables
A() = 1 A1 + 2 A2 ; B() = 1 B1 + 2 B2 , 2
The polynomial R() = B() A() can be calculated by performing the following sequence of Matlab
commands.
The variable Term is a cell array, in which Term{i,j} corresponds to the element (i, j) of the matrix
to be defined. If the matrix to be defined is square and symmetric, which is the case when working with
LMIs, it suffices to inform only the higher (or lower) triangular elements. The input param is a string
either containing an inequality symbol (>, <, >=, <=), meaning that the desired result is a set of
LMIs (defined using the command set from YALMIP [2]), or representing the label of the new polynomial
variable. The procedure construct lmi also applies a homogenization operation, assuring that all the
elements in the matrix are homogeneous polynomials with the same degree.
NOTE: If a LMI is to be defined, then the matrix represented by the variable Term must be symmetric
and, therefore, square. If the matrix is rectangular and the variable param is an inequality symbol an error
will occur.
Example 11
The LMI presented in (3), considering a system with N = 2 vertices and polynomial variables with degree
g = 1, can be implemented through the following sequence of Matlab commands
Example 12
Multiplying inequality (3) on the left by
I A()
and on the right by its transpose yields
which is, along with the inequality P () > 0, an equivalent stability condition. The above multiplication
can be performed by the following sequence of Matlab commands
8
>> poly struct(A,A,2,1);
>> poly P = poly struct(P,P,2,1);
>> Term{1,1} = parser poly(P);
>> Term{1,2} = parser poly(A*P);
>> Term{2,2} = parser poly(P);
>> construct lmi(Term,M);
>> T{1,1} = poly struct(eye(2),I);
>> T{1,2} = parser poly(-A);
>> construct lmi(T,T);
>> parser poly(T*M*T,R);
>> LMIs = construct lmi(parser poly(R),>);
>> LMIs = LMIs + construct lmi(poly P,>);
When working with auxiliar variables as in the last example, it is recommended to avoid giving the same
name to different variables.
9
Example 13
The creation of a Matlab executable file to solve the LMI presented in (3), considering a system with N = 2
vertices and polynomial variables with degree g = 1, can be done through the following sequence of Matlab
commands
with A() Rnn , B() Rnr , C() Rqn and D() Rqr . The transfer function from the
disturbance input w to the output y, for a fixed , is given by
1
H(s, ) = C() sI A() B() + D()
The bounded real lemma assures the Hurwitz stability of A() (i.e. all eigenvalues have negative real part)
for all N and a bound to the H norm of the transfer function from w to y. It can be formulated
as follows [1].
Lemma 1
Matrix A() is Hurwitz and kH(s, )k < for all N if there exists a positive definite symmetric
matrix P () = P () > 0 such that
A() P () + P ()A() + C() C()
< 0, N (12)
B() P () + D() C() D() D() 2 I
The implementation of LMI relaxations that search for a feasible solution while minimizing = 2 is
given below. The system matrices are supposed to be defined as cell arrays, as shown in (7).
10
function gama = calculate hinf(A,B,C,D,degP)
n = length(A{1});
r = size(B{1},2);
q = size(C{1},1);
vert = length(A);
poly struct(A,A,vert,1);
poly struct(B,B,vert,1);
poly struct(C,C,vert,1);
poly struct(D,D,vert,1);
poly struct(n,n,P,vert,degP);
poly struct(eye(r),Ir);
[polymu,mu] = poly struct(mu,scalar);
LMIs = construct lmi(parser poly(P),>);
Term{1,1} = parser poly(A*P+P*A+C*C);
Term{2,1} = parser poly(B*P+D*C);
Term{2,2} = parser poly(D*D - mu*Ir);
LMIs = LMIs + construct lmi(Term,<);
solvesdp(LMIs,mu,sdpsettings(solver,sedumi));
gama = sqrt(double(mu));
return
The following implementation solves the same problem, but creating also a Matlab executable file.
n = length(A{1});
r = size(B{1},2);
q = size(C{1},1);
vert = length(A);
fid = lmifiles(o,exe calculate hinf);
poly struct(A,A,vert,1);
poly struct(B,B,vert,1);
poly struct(C,C,vert,1);
poly struct(D,D,vert,1);
poly struct(n,n,P,vert,degP);
poly struct(eye(r),Ir);
[polymu,mu] = poly struct(mu,scalar);
Term{1,1} = parser poly(P);
lmifiles(i,fid,Term,>);
Term{1,1} = parser poly(A*P+P*A+C*C);
Term{2,1} = parser poly(B*P+D*C);
Term{2,2} = parser poly(D*D - mu*Ir);
lmifiles(i,fid,Term,<);
lmifiles(i,fid,mu);
lmifiles(i,fid,sdpsettings,solver,sedumi);
lmifiles(c,fid);
return
11
As illustrated, the implementation of LMI conditions using the Robust LMI Parser is simple and straight-
forward. Moreover, the different sets of LMIs for larger degrees of the homogeneous polynomial variable
P () can be readily obtained by simply changing degP. Those LMIs, that would demand complex and
tedious manipulations without using the parser, provide clear improvements in the computation of the H
guaranteed cost. Table 1 shows the values of = min subject to (12) obtained when the degree of the
variable P () increases. The example considered is a fourth-order mass-spring system, also investigated in
[14]. With g = 5, reaches the worst case value of the H norm (computed through brute force).
Table 1: Values of = min obtained when varying the degree of the polynomial variable P ().
degP
0 2.299
1 1.056
2 1.012
3 1.003
4 1.001
5 1.000
8 Conclusion
A computational package, named Robust LMI Parser, is presented in this paper. The main objective of
the toolbox is to facilitate the task of programming LMIs that are sufficient conditions for robust LMIs,
i.e. for parameter-dependent LMI conditions whose entries are algebraic manipulations of homogeneous
polynomials of generic degree with parameters in the unit simplex. The toolbox is under constant evolution
and some new features are to be implemented, such as code optimizations and the capacity of handling
uncertain parameters in the multi-simplex domain.
References
[1] S. Boyd, L. El Ghaoui, E. Feron, and V. Balakrishnan, Linear Matrix Inequalities in System and Control
Theory. Philadelphia, PA: SIAM Studies in Applied Mathematics, 1994.
[2] J. L
ofberg, YALMIP: A toolbox for modeling and optimization in MATLAB, in Proceedings of the
2004 IEEE International Symposium on Computer Aided Control Systems Design, Taipei, Taiwan,
September 2004, pp. 284289, http://control.ee.ethz.ch/ joloef/yalmip.php.
[3] P. Gahinet, A. Nemirovskii, A. J. Laub, and M. Chilali, LMI Control Toolbox Users Guide. Natick,
MA: The Math Works, 1995.
[4] J. F. Sturm, Using SeDuMi 1.02, a MATLAB toolbox for optimization over symmetric cones, Opti-
mization Methods and Software, vol. 11, no. 14, pp. 625653, 1999, http://sedumi.mcmaster.ca/.
[6] S. Prajna, A. Papachristodoulou, P. Seiler, and P. A. Parrilo, SOSTOOLS: Sum of squares optimization
toolbox for MATLAB, Available from http://www.cds.caltech.edu/sostools and http://www.mit.edu/
parrilo/sostools, 2004.
[7] D. Henrion and J. B. Lasserre, GloptiPoly: global optimization over polynomials with Matlab and
SeDuMi, ACM Transactions on Mathematical Software, vol. 29, no. 2, pp. 165194, June 2003.
[8] D. C. W. Ramos and P. L. D. Peres, A less conservative LMI condition for the robust stability of
discrete-time uncertain systems, Systems & Control Letters, vol. 43, no. 5, pp. 371378, August 2001.
12
[9] , An LMI condition for the robust stability of uncertain continuous-time linear systems, IEEE
Transactions on Automatic Control, vol. 47, no. 4, pp. 675678, April 2002.
[10] R. C. L. F. Oliveira and P. L. D. Peres, LMI conditions for robust stability analysis based on polyno-
mially parameter-dependent Lyapunov functions, Systems & Control Letters, vol. 55, no. 1, pp. 5261,
January 2006.
[13] R. C. L. F. Oliveira, P.-A. Bliman, and P. L. D. Peres, Robust LMIs with parameters in multi-simplex:
Existence of solutions and applications, in Proceedings of the 47th IEEE Conference on Decision and
Control, Cancun, Mexico, December 2008, pp. 22262231.
13