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

  1. function [ain,bin,cin,din,ainp,binp,cinp,dinp,aout,bout,cout,dout] = iofc(Z1,Z2,Z3,Z4)
  2. % [SS_IN,SS_INP,SS_OUT] = IOFC(SS_) or
  3. % [AIN,BIN,CIN,DIN,AINP,BINP,CINP,DINP,AOUT,BOUT,COUT,DOUT] = IOFC(A,B,C,D) 
  4. %   produces an inner-outer factorization of a 
  5. %   m x n transfer function G: SS_ = MKSYS(A,B,C,D) (m<n)
  6. %     such that
  7. %                      G = |M  0| |Th |
  8. %                                 |Thp|
  9. %     where
  10. %                     |Th |: square and inner
  11. %                     |Thp|
  12. %
  13. %                      M : outer factor.
  14. %
  15. %     The resulting state-space quadruples are accumulated in
  16. %     (ain,bin,...) or
  17. %
  18. %            ss_in  = mksys(ain,bin,cin,din); 
  19. %            ss_inp = mksys(ainp,binp,cinp,dinp);
  20. %            ss_out = mksys(aout,bout,cout,dout); 
  21. %
  22. %     The standard state-space can be recovered by "branch".
  23.  
  24. % R. Y. Chiang & M. G. Safonov 8/85
  25. % Copyright (c) 1988 by the MathWorks, Inc.
  26. % All Rights Reserved.
  27. % ---------------------------------------------------------------
  28. %
  29.  
  30. inargs = '(a,b,c,d)';
  31. eval(mkargs(inargs,nargin,'ss'))
  32.  
  33. [ain,bin,cin,din,ainp,binp,cinp,dinp,aout,bout,cout,dout] = iofr(a',c',b',d');
  34. % Trnaspose the state-spaace:
  35. ain = ain'; temp = bin; bin = cin'; cin = temp'; din = din';
  36. ainp = ainp'; temp = binp; binp = cinp'; cinp = temp'; dinp = dinp';
  37. aout = aout'; temp = bout; bout = cout'; cout = temp'; dout = dout';
  38.  
  39. if xsflag
  40.   ain = mksys(ain,bin,cin,din);
  41.   bin = mksys(ainp,binp,cinp,dinp);
  42.   cin = mksys(aout,bout,cout,dout);
  43. end
  44. %
  45. % ------ End of IOFC.M ---- RYC/MGS 8/85 %
  46.