[37] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
---|
| 2 | <html> |
---|
| 3 | |
---|
| 4 | <head> |
---|
| 5 | <meta http-equiv="Content-Language" content="en-us"> |
---|
| 6 | <title>YALMIP Example : Efficient solution of KYP problems</title> |
---|
| 7 | <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> |
---|
| 8 | <meta content="Microsoft FrontPage 6.0" name="GENERATOR"> |
---|
| 9 | <meta name="ProgId" content="FrontPage.Editor.Document"> |
---|
| 10 | <link href="yalmip.css" type="text/css" rel="stylesheet"> |
---|
| 11 | <base target="_self"> |
---|
| 12 | </head> |
---|
| 13 | |
---|
| 14 | <body leftMargin="0" topMargin="0"> |
---|
| 15 | |
---|
| 16 | <div align="left"> |
---|
| 17 | <table border="0" cellpadding="4" cellspacing="3" style="border-collapse: collapse" bordercolor="#000000" width="100%" align="left" height="100%"> |
---|
| 18 | <tr> |
---|
| 19 | <td width="100%" align="left" height="100%" valign="top"> |
---|
| 20 | <h2>KYP problems</h2> |
---|
| 21 | <hr noShade SIZE="1"> |
---|
| 22 | <p> |
---|
| 23 | <img border="0" src="exclamationmark.jpg" align="left" width="16" height="16">This |
---|
| 24 | example requires <a href="solvers.htm#kypd">KYPD</a> and |
---|
| 25 | an SDP-solver capable of calculating dual variables.</p> |
---|
| 26 | <p>Many problems in control and system theory can be formulated using the celebrated |
---|
| 27 | Kalman-Yakubovic-Popov lemma (KYP). By using this lemma, a large number of |
---|
| 28 | problems can be formulated using LMIs. Unfortunately, many |
---|
| 29 | practical problems leads to LMIs far too big to be efficiently solved |
---|
| 30 | using standard semidefinite solvers.</p> |
---|
| 31 | <p>YALMIP can be used with the dedicated solver <a href="solvers.htm#kypd"> |
---|
| 32 | KYPD</a> to efficiently solve some problems with large-scale KYP constraints. |
---|
| 33 | In our setting, a <a href="reference.htm#kyp">KYP</a> is a matrix of the |
---|
| 34 | form <b><font face="Tahoma">[A<sup>T</sup>P+PA PB;B<sup>T</sup>P 0] + M(x)</font></b>, |
---|
| 35 | with <b>P</b> and the <b>x</b> being the free variables, and <b>M</b> a |
---|
| 36 | linear operator.</p> |
---|
| 37 | <p>The following code calculates the L<sub>2</sub>-gain of a random stable |
---|
| 38 | system with 40 states, using the dedicated <a href="solvers.htm#kypd">KYPD</a>-solver, |
---|
| 39 | and a standard SDP-solver.</p> |
---|
| 40 | <table cellPadding="10" width="100%"> |
---|
| 41 | <tr> |
---|
| 42 | <td class="xmpcode"> |
---|
| 43 | <pre>n = 40; |
---|
| 44 | A = randn(n);A = A - max(real(eig(A)))*eye(n)*1.5; % Stable dynamics |
---|
| 45 | B = randn(n,1); |
---|
| 46 | C = randn(1,n); |
---|
| 47 | |
---|
| 48 | t = sdpvar(1,1); |
---|
| 49 | P = sdpvar(n,n); |
---|
| 50 | |
---|
| 51 | F = set(kyp(A,B,P,blkdiag(C'*C,-t)) < 0) |
---|
| 52 | |
---|
| 53 | sol1 = solvesdp(F,t,sdpsettings('solver','kypd')); |
---|
| 54 | sol2 = solvesdp(F,t); |
---|
| 55 | |
---|
| 56 | sol1.solvertime/sol2.solvertime % Compare solution time</pre> |
---|
| 57 | </td> |
---|
| 58 | </tr> |
---|
| 59 | </table> |
---|
| 60 | <p><img border="0" src="demoicon.gif" width="16" height="16"> The |
---|
| 61 | variable <b>P </b>may only enter in 1 constraint if you intend to use |
---|
| 62 | <a href="solvers.htm#kypd">KYPD</a>, i.e. you cannot use |
---|
| 63 | <a href="solvers.htm#kypd">KYPD</a> if you want to impose explicit |
---|
| 64 | constraints (including <br> |
---|
| 65 | positive definiteness) of <b>P</b>. However, positive definiteness of <b>P </b> |
---|
| 66 | is in some cases implied by the KYP constraint. You can have multiple KYP constraints with different <b>P </b>variables.</p> |
---|
| 67 | </td> |
---|
| 68 | </tr> |
---|
| 69 | </table> |
---|
| 70 | </div> |
---|
| 71 | |
---|
| 72 | </body> |
---|
| 73 | |
---|
| 74 | </html> |
---|