SeDuMi Interface - LAAS-CNRS

SeDuMi Interface
A tool for solving LMI problems with SeDuMi
Yann labit,
Dimitri Peaucelle
Didier Henrion
LAAS-CNRS, Toulouse, France
Motivation


Importance of Linear matrix Inequalities (LMI)
in Control theory and applications
Limitations of existing tools:
–
–
–

2
Problem size
Computation time
Convivial, relevant display
Build together an adapted software
Solver & Interface objectives



3
Selected solver : SeDuMi.
Necessity to write an Interface.
Not a GUI tool.
SeDuMi : not ideal nor definitive but





Jos F. Sturm


4
Low computational complexity
Sparse data format
Works with Matlab
Free software
LMI and equality constraints
Complex valued constraints
Work in progress
Interface to build canonical
expressions for optimisation tools
LMIs and LMEs are
matrix dependent
expressions.
Optimisation tools use vectors of
decision variables
m
p  p1 pm  F0   Fi p i  0
i 0
E.g.
 p1
 a11 a12 
A
 P  p
a
a
22 
 21
 2
AP  PA  0
5
p2 
p 3 
F0  0
 2a11  a12 
F1  
0 
  a12
 a11  a22 
  2a21
F2  
 2a12 
 a11  a22
 a21 
 0
F3  

 a21  2a22 
Existing Interfaces/Parsers


LMIlab, LMITOOL, sdpsol, YALMIP
Some critiques
–
–
–
–
Lack of functionalities (LMIlab, sdpsol)
Slow conversion (LMITOOL,sdpsol)
Difficulties to create Matlab functions to generate
LMI problems (LMITOOL, sdpsol)
Difficulties to analyse the obtained solution…
not a GUI and no symbolic declarations
6
Interface dedicated to LMIs

Simplified declaration
–
–
–
–

Software constraints
–
–
–
7
Structured variables : symmetric, diagonal, Hermitian…
Structured constraints : block decomposition, Kronecker…
Predefined objectives : trace, log(det)…
Analysis of the solution : margin on constraints, matrix format...
Speed : simple algebaric manipulations
Memory space : sparse format
Open to modifications : Matlab free source code
Using SeDuMi Interface :
An example
H  - state feedback
max γ
Q  Q'  0
 AQ  QA' BY  Y ' B ' B B '
 


C Q  D Y

QC'  Y ' D' 
0
γI

Optimal controller K  YQ 1 Optimal norm
8
γ
Step 1 : Name the LM problem

The LM problem = a Matlab object
>> quiz = sdmpb(‘Hinfty state feedback’)
LM problem: Hinfty state feedback
no matrix variable
no equality constraint
no inequality constraint
no linear objective
Unsolved
>> whos quiz
Name
Size
Bytes
Class
quiz
1x1
3358
sdmpb object
9
Step 2 : declare matrix variables
>> [quiz, Yindex] = sdmvar(quiz, m, n, 'Y');
>> [quiz, gindex] = sdmvar(quiz, 1, 1, 'gamma');
>> [quiz, Qindex] = sdmvar(quiz, n, 's', 'Q=Q’’')
LM problem: Hinfty state feedback
matrix variables:
index
name
1
Y
2
gamma
3
Q=Q’
no equality constraint
no inequality constraint
no linear objective
unsolved
Symmetric, diagonal, hermitian, structured…
10
Step 3 : declare inequalities
>> [quiz, lmi1] = sdmlmi(quiz, n, 'Q>0');
>> quiz = sdmineq(quiz, -lmi1, Qindex);
>>
>>
>>
>>
>>
>>
>>
[quiz,
quiz =
quiz =
quiz =
quiz =
quiz =
quiz =
lmi2] = sdmlmi(quiz, [n p], 'Hinfty');
sdmineq(quiz, [lmi2 1 1], Qindex, A, 1);
sdmineq(quiz, [lmi2 1 1], Yindex, B, 1);
sdmineq(quiz, [lmi2 1 1],
0, Bi);
sdmineq(quiz, [lmi2 2 1], Qindex, Ci, 1);
sdmineq(quiz, [lmi2 2 1], Yindex, Di, 1);
sdmineq(quiz, [lmi2 2 2], gindex);
Symmetric terms automatically added
Possible to define Kronecker products
11
Step 4 : declare the objective
>> quiz = sdmobj(quiz, gindex, 1, 1, ‘gamma’)
LM problem: Hinfty state feedback
matrix variables:
index
name
1
Y
2
gamma
3
Q=Q’
no equality constraint
inequality constraints: index
meig
name
1
-Inf
Q>0
2
-Inf
Hinfty
maximise objective: gamma
unsolved
Possible to define :
12
el Xer or trace( MX)
Step 5 : solve the LM problem
>> quiz = sdmsol(quiz)
... computation ...
LM problem: Hinfty state feedback
matrix variables:
index
1
2
3
no equality constraint
inequality constraints: index
meig
1
eps
2
eps
maximise objective: gamma = -27.3
feasible
13
name
Y
gamma
Q=Q’
name
Q>0
Hinfty
Step 6 : analyse the result
Feasibility margins on each constraints:
inequality constraints: index
meig
1
eps
2
eps
maximise objective: gamma = -27.3
feasible
Matrix formatted result:
>> K = quiz(Yindex)/quiz(Qindex)
K = 1.0e+03 *
-2.5989
-8.5124
-0.1898
-4.0176
14
name
Q>0
Hinfty
Other features of the Interface





Matrix equalities
Complex valued constraints
Complex valued variables
Radius on the vector of decision variables
Adapted tuning of SeDuMi options
Acknowledgements to K. Taitz
15
Future evolutions





Warm-start with feasible solution
Pre-conditioning of the optimisation problem
Other predefined options (user’s feedback)
Platform incorporating other solvers
Predefined LM problems for Automatic control
–
–
–
–
16
Robust analysis
Performance (pole location, H  , H 2 …)
State and Output feedback
…
Conclusion
http://www.laas.fr/~peaucell/sedumiint
mailto:[email protected]
17