17
SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

Embed Size (px)

Citation preview

Page 1: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

SeDuMi InterfaceA tool for solving LMI problems with SeDuMi

Yann labit,

Dimitri Peaucelle

Didier Henrion

LAAS-CNRS, Toulouse, France

Page 2: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

2

Motivation

Importance of Linear matrix Inequalities (LMI) in Control theory and applications

Limitations of existing tools:– Problem size– Computation time– Convivial, relevant display

Build together an adapted software

Page 3: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

3

Solver & Interface objectives

Selected solver : SeDuMi. Necessity to write an Interface. Not a GUI tool.

Page 4: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

4

SeDuMi : not ideal nor definitive but

Low computational complexity Sparse data format Works with Matlab Free software LMI and equality constraints Complex valued constraints Work in progress

Jos F. Sturm

Page 5: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

5

Interface to build canonical expressions for optimisation tools

LMIs and LMEs are matrix dependent expressions.

Optimisation tools use vectors of decision variables

E.g.

2221

213

12

12111

122211

22112120

2

0

0

22

20

aa

aF

a

aaF

aaa

aaaFF

00

0 im1 pppp i

m

i

FF

032

21

2221

1211

AA

aa

aaA

PP

pp

ppP

Page 6: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

6

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

Page 7: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

7

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

Page 8: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

8

Using SeDuMi Interface : An example

- state feedback

Optimal controller Optimal norm

H

0''''

0'

max

'''

IDC

DCBBBBAA

γYQ

YQYYQQQQ

γ

1YQK γ

Page 9: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

9

Step 1 : Name the LM problem

The LM problem = a Matlab object

>> quiz = sdmpb(‘Hinfty state feedback’)LM problem: Hinfty state feedbackno matrix variableno equality constraintno inequality constraintno linear objectiveUnsolved>> whos quiz Name Size Bytes Class quiz 1x1 3358 sdmpb object

Page 10: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

10

Step 2 : declare matrix variables

Symmetric, diagonal, hermitian, structured…

>> [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 constraintno inequality constraintno linear objectiveunsolved

Page 11: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

11

Step 3 : declare inequalities

Symmetric terms automatically addedPossible to define Kronecker products

>> [quiz, lmi1] = sdmlmi(quiz, n, 'Q>0');>> quiz = sdmineq(quiz, -lmi1, Qindex);

>> [quiz, lmi2] = sdmlmi(quiz, [n p], 'Hinfty');>> quiz = sdmineq(quiz, [lmi2 1 1], Qindex, A, 1);>> quiz = sdmineq(quiz, [lmi2 1 1], Yindex, B, 1);>> quiz = sdmineq(quiz, [lmi2 1 1], 0, Bi);>> quiz = sdmineq(quiz, [lmi2 2 1], Qindex, Ci, 1);>> quiz = sdmineq(quiz, [lmi2 2 1], Yindex, Di, 1);>> quiz = sdmineq(quiz, [lmi2 2 2], gindex);

Page 12: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

12

Step 4 : declare the objective

Possible to define :

>> 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 constraintinequality constraints: index meig name 1 -Inf Q>0 2 -Inf Hinftymaximise objective: gammaunsolved

)(or XX Mtraceee rl

Page 13: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

13

Step 5 : solve the LM problem

>> quiz = sdmsol(quiz) ... computation ...LM problem: Hinfty state feedback matrix variables: index name 1 Y 2 gamma 3 Q=Q’ no equality constraintinequality constraints: index meig name 1 eps Q>0 2 eps Hinftymaximise objective: gamma = -27.3feasible

Page 14: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

14

Step 6 : analyse the result

inequality constraints: index meig name 1 eps Q>0 2 eps Hinftymaximise objective: gamma = -27.3feasible

Feasibility margins on each constraints:

Matrix formatted result:>> K = quiz(Yindex)/quiz(Qindex)K = 1.0e+03 * -2.5989 -8.5124 -0.1898 -4.0176

Page 15: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

15

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

Page 16: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

16

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, , …) – State and Output feedback– …

H 2H

Page 17: SeDuMi Interface A tool for solving LMI problems with SeDuMi Yann labit, Dimitri Peaucelle Didier Henrion LAAS-CNRS, Toulouse, France

17

Conclusion

http://www.laas.fr/~peaucell/sedumiint

mailto:[email protected]