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 AP 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
© Copyright 2026 Paperzz