home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 7.ddi / ROBUST.DI$ / YOULA.M < prev   
Encoding:
Text File  |  1993-03-11  |  2.8 KB  |  137 lines

  1. %
  2. %         YOULA produces a state space realization of T11, T12, T21,
  3. %         T12p, T21p via Youla lemma - parameterization of 
  4. %         stabilizing controller.
  5. %         Program inputs : argumented plant (A,B1,B2,C1,C2,D11,
  6. %                          D12,D21,D22).
  7. %         Program outputs: state-space of T11, T12, T12p, T21, T21p
  8. %                          full-state LQR: kx,x,f
  9. %                          observer LQR  : ky,y,h
  10.  
  11. % R. Y. Chiang & M. G. Safonov 6/86
  12. % Copyright (c) 1988 by the MathWorks, Inc.
  13. % All Rights Reserved.
  14. %--------------------------------------------------------------------
  15.  
  16. %
  17. % II). Small Gain Problem :
  18. %
  19. %      Parametrize all stabilizing controller (Youla lemma) 
  20. %
  21. disp('  ')
  22. disp('      << Working on Phase II: Youla parametrization >>')
  23. disp('   ')
  24. %
  25. [rrrra,rrrra] = size(A);
  26. twoN = 2*rrrra;
  27. %
  28. [D12p] = ortc(D12);
  29. qrnx = [C1'*C1 C1'*D12;(C1'*D12)' D12'*D12];
  30. [kx,x,xerr] = lqrc(A,B2,qrnx);
  31. f = - kx;
  32. [D21p] = ortr(D21);
  33. qrny = [B1*B1' B1*D21';(B1*D21')' D21*D21'];
  34. [ky,y,yerr] = lqrc(A',C2',qrny);
  35. h = - ky';
  36. %
  37. % ------------------------------------ Normalization terms :
  38. %
  39. mr = (D12'*D12)^(0.5);
  40. ml = (D21*D21')^(0.5);
  41. %
  42. % ------------------------------------ State Space of T12 :
  43. %
  44. at12 = A + B2 * f;
  45. bt12 = B2 * inv(mr);
  46. ct12 = C1 + D12 * f;
  47. dt12 = D12 * inv(mr);
  48. %
  49. % ------------------------------------ State Space of T12p :
  50. %
  51. xp = pinv(x);
  52. at1p = A + B2 * f;
  53. bt1p = -xp * C1' * D12p;
  54. ct1p = C1 + D12 * f;
  55. dt1p = D12p;
  56. %
  57. % ------------------------------------ State Space of T21 :
  58. %
  59. at21 = A + h * C2;
  60. bt21 = B1 + h * D21;
  61. ct21 = inv(ml) * C2;
  62. dt21 = inv(ml) * D21;
  63. %
  64. % ------------------------------------ State Space of T21p : 
  65. %
  66. yp = pinv(y);
  67. at2p = A + h * C2;
  68. bt2p = B1 + h * D21;
  69. ct2p = -D21p * B1' * yp;
  70. dt2p = D21p;
  71. %
  72. % ------------------------------------ State Space of T11 :
  73. %
  74. at10 = A + B2 * f;
  75. [rat1,cat1] = size(at10);
  76. at00 = A + h * C2;
  77. [rat0,cat0] = size(at00);
  78. at11 = [at10 -B2*f;zeros(rat0,cat1) at00];
  79. bt11 = [B1;B1+h*D21];
  80. ct11 = [C1+D12*f -D12*f];
  81. dt11 = D11;
  82. %
  83. [rbt2,cbt2] = size(bt21);
  84. [rct2,cct2] = size(ct21);
  85. [rbt1,cbt1] = size(bt12);
  86. [rct1,cct1] = size(ct12);
  87. %
  88. % --------------------------------------------------------
  89. %
  90. % III). Interpolation Problem :
  91. %
  92. % ------------------------------------- Assign execution :
  93. %
  94. [rbt2,cbt2] = size(bt21);
  95. [rct2,cct2] = size(ct21);
  96. [rbt1,cbt1] = size(bt12);
  97. [rct1,cct1] = size(ct12);
  98. %
  99. if (cbt2 == rct2) & (cbt1 == rct1)
  100.    case = 1.;
  101. end
  102. %
  103. if (cbt2 == rct2) & (cbt1 ~= rct1)
  104.    case = 2.;
  105. end
  106. %
  107. if (cbt2 ~= rct2) & (cbt1 == rct1)
  108.    case = 3.;
  109. end
  110. %
  111. if (cbt2 ~= rct2) & (cbt1 ~= rct1)
  112.    case = 4.;
  113. end
  114. %
  115. sqrmtx
  116. %
  117. % ------- Default setting of "no" and "MRtype":
  118. %         
  119. MRtype = 2;
  120. tol = 0.01;
  121. %
  122. % ------- End of YOULA.M ---- RYC/MGS %
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.