Sedumi Interface: A Tool For Solving Lmi Problems With Sedumi
Sedumi Interface: A Tool For Solving Lmi Problems With Sedumi
Yann labit,
Dimitri Peaucelle
Didier Henrion
2
Solver & Interface objectives
Selected solver : SeDuMi.
Necessity to write an Interface.
Not a GUI tool.
3
SeDuMi : not ideal nor definitive but
Low computational complexity
Sparse data format
Works with Matlab
Free software
LMI and equality constraints
Jos F. Sturm Complex valued constraints
Work in progress
4
Interface to build canonical
expressions for optimisation tools
E.g.
− 2a21 − a11 − a22
a11 a12 p1 p2 F0 = 0 F2 =
A= P= − a11 − a22 − 2a12
a21 a22 p 2 p 3 − 2a11 − a12 0 − a21
F1 = F3 =
A′P + PA 0 − a12 0 − a21 − 2a22
5
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
– Structured variables : symmetric, diagonal, Hermitian…
– Structured constraints : block decomposition, Kronecker…
– Predefined objectives : trace, log(det)…
– Analysis of the solution : margin on constraints, matrix
format...
Software constraints
– Speed : simple algebaric manipulations
– Memory space : sparse format
– Open to modifications : Matlab free source code
7
Using SeDuMi Interface :
An example
H ∞ - state feedback
max γ
Q = Q' 0
AQ + QA'+ BY + Y ' B'+ B B ' QC∞' + Y' D∞'
∞ ∞
0
C∞ Q + D∞ Y γI
−1
Optimal controller K = YQ Optimal norm −γ
8
Step 1 : Name the LM problem
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
10
Step 3 : declare inequalities
>> [quiz, lmi1] = sdmlmi(quiz, n, 'Q>0');
>> quiz = sdmineq(quiz, -lmi1, Qindex);
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
13
Step 6 : analyse the result
14
Other features of the Interface
Matrixequalities
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
– Robust analysis
– Performance (pole location, H ∞ , H 2 …)
– State and Output feedback
– …
16
Conclusion
http://www.laas.fr/~peaucell/sedumiint
mailto:[email protected]
17