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

  1. function [a,b,c,d] = addss(Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8)
  2. %
  3. % [SS_] = ADDSS(SS_1,SS_2) or
  4. % [A,B,C,D] = ADDSS(A1,B1,C1,D1,A2,B2,C2,D2) add two state-space realization:
  5. %
  6. %                                           -1
  7. %             G(s) = G1(s) + G2(s) = C(Is-A)  B + D
  8. %       where
  9. %                              -1
  10. %             G1(s) = C1(Is-A1)  B1 + D1,  SS_1 = SYSTEM(A1,B1,C1,D1)
  11. %
  12. %                              -1
  13. %             G2(s) = C2(Is-A2)  B2 + D2,  SS_2 = SYSTEM(A2,B2,C2,D2);
  14.  
  15. % R. Y. Chiang & M. G. Safonov 8/85
  16. % Copyright (c) 1988 by the MathWorks, Inc.
  17. % All Rights Reserved.
  18.  
  19. inargs='(a1,b1,c1,d1,a2,b2,c2,d2)';
  20. eval(mkargs(inargs,nargin,'ss'))
  21.  
  22. [rb1,cb1] = size(b1);
  23. [rc1,cc1] = size(c1);
  24. [rb2,cb2] = size(b2);
  25. [rc2,cc2] = size(c2);
  26. %
  27. if (cb1 ~= cb2) + (rc1 ~= rc2)
  28.    ERROR = 'TWO SYSTEMS ARE NOT COMPATIABLE !'
  29.    return
  30. end
  31. %
  32. a = [a1 zeros(rb1,cc2); zeros(rb2,cc1) a2];
  33. b = [b1;b2];
  34. c = [c1 c2];
  35. d = d1 + d2;
  36.  
  37. if xsflag 
  38.    a = mksys(a,b,c,d);
  39. end
  40. %
  41. % ----- End of ADDSS.CTR ---- RYC/MGS 8/85%
  42.