home *** CD-ROM | disk | FTP | other *** search
- %
- % YOULA produces a state space realization of T11, T12, T21,
- % T12p, T21p via Youla lemma - parameterization of
- % stabilizing controller.
- % Program inputs : argumented plant (A,B1,B2,C1,C2,D11,
- % D12,D21,D22).
- % Program outputs: state-space of T11, T12, T12p, T21, T21p
- % full-state LQR: kx,x,f
- % observer LQR : ky,y,h
-
- % R. Y. Chiang & M. G. Safonov 6/86
- % Copyright (c) 1988 by the MathWorks, Inc.
- % All Rights Reserved.
- %--------------------------------------------------------------------
-
- %
- % II). Small Gain Problem :
- %
- % Parametrize all stabilizing controller (Youla lemma)
- %
- disp(' ')
- disp(' << Working on Phase II: Youla parametrization >>')
- disp(' ')
- %
- [rrrra,rrrra] = size(A);
- twoN = 2*rrrra;
- %
- [D12p] = ortc(D12);
- qrnx = [C1'*C1 C1'*D12;(C1'*D12)' D12'*D12];
- [kx,x,xerr] = lqrc(A,B2,qrnx);
- f = - kx;
- [D21p] = ortr(D21);
- qrny = [B1*B1' B1*D21';(B1*D21')' D21*D21'];
- [ky,y,yerr] = lqrc(A',C2',qrny);
- h = - ky';
- %
- % ------------------------------------ Normalization terms :
- %
- mr = (D12'*D12)^(0.5);
- ml = (D21*D21')^(0.5);
- %
- % ------------------------------------ State Space of T12 :
- %
- at12 = A + B2 * f;
- bt12 = B2 * inv(mr);
- ct12 = C1 + D12 * f;
- dt12 = D12 * inv(mr);
- %
- % ------------------------------------ State Space of T12p :
- %
- xp = pinv(x);
- at1p = A + B2 * f;
- bt1p = -xp * C1' * D12p;
- ct1p = C1 + D12 * f;
- dt1p = D12p;
- %
- % ------------------------------------ State Space of T21 :
- %
- at21 = A + h * C2;
- bt21 = B1 + h * D21;
- ct21 = inv(ml) * C2;
- dt21 = inv(ml) * D21;
- %
- % ------------------------------------ State Space of T21p :
- %
- yp = pinv(y);
- at2p = A + h * C2;
- bt2p = B1 + h * D21;
- ct2p = -D21p * B1' * yp;
- dt2p = D21p;
- %
- % ------------------------------------ State Space of T11 :
- %
- at10 = A + B2 * f;
- [rat1,cat1] = size(at10);
- at00 = A + h * C2;
- [rat0,cat0] = size(at00);
- at11 = [at10 -B2*f;zeros(rat0,cat1) at00];
- bt11 = [B1;B1+h*D21];
- ct11 = [C1+D12*f -D12*f];
- dt11 = D11;
- %
- [rbt2,cbt2] = size(bt21);
- [rct2,cct2] = size(ct21);
- [rbt1,cbt1] = size(bt12);
- [rct1,cct1] = size(ct12);
- %
- % --------------------------------------------------------
- %
- % III). Interpolation Problem :
- %
- % ------------------------------------- Assign execution :
- %
- [rbt2,cbt2] = size(bt21);
- [rct2,cct2] = size(ct21);
- [rbt1,cbt1] = size(bt12);
- [rct1,cct1] = size(ct12);
- %
- if (cbt2 == rct2) & (cbt1 == rct1)
- case = 1.;
- end
- %
- if (cbt2 == rct2) & (cbt1 ~= rct1)
- case = 2.;
- end
- %
- if (cbt2 ~= rct2) & (cbt1 == rct1)
- case = 3.;
- end
- %
- if (cbt2 ~= rct2) & (cbt1 ~= rct1)
- case = 4.;
- end
- %
- sqrmtx
- %
- % ------- Default setting of "no" and "MRtype":
- %
- MRtype = 2;
- tol = 0.01;
- %
- % ------- End of YOULA.M ---- RYC/MGS %
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-