home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS1.DI$ / SYSBAL.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  1.6 KB  |  56 lines

  1. % function [sysout,sig] = sysbal(sys,tol)
  2. %
  3. %   Finds a truncated balanced realization of the system
  4. %   state-space model. Eigenvalues of A must have negative
  5. %   real part. The result is truncated to retain all Hankel-
  6. %   singular values greater than TOL. If TOL is omitted
  7. %   then it is set to max(sig(1)*1.0E-12,1.0E-16).
  8. %
  9. %   See also: HANKMR, REORDSYS, FRWTBAL, SFRWTBLD, SNCFBAL,
  10. %             SRELBAL, SRESID, SVD, and TRUNC.
  11.  
  12. function [sysout,sig] = sysbal(sys,tol)
  13.    if nargin == 0
  14.      disp(['usage: [sysout,sig] = sysbal(sys,tol)']);
  15.      return
  16.    end %if nargin<1
  17.  
  18.    [A,B,C,D]=unpck(sys);
  19.    [n,m]=size(B); [p,n]=size(C);
  20.    [T,A]=schur(A);
  21.    B = T'*B;
  22.    C = C*T;
  23.  % find observability Gramian, S'*S (S upper triangular)
  24.    S = sjh6(A,C);
  25.  % find controllability Gramian R*R' (R upper triangular)
  26.    perm = n:-1:1;
  27.    R = sjh6(A(perm,perm)',B(perm,:)');
  28.    R = R(perm,perm)';
  29.  % calculate the Hankel-singular values
  30.    [U,T,V] = svd(S*R);
  31.    sig = diag(T);
  32.  % balancing coordinates
  33.    T = U'*S;
  34.    B = T*B; A = T*A;
  35.    T = R*V; 
  36.    C = C*T; A = A*T;
  37.     % calculate the truncated dimension nn
  38.    if nargin<2 tol=max([sig(1)*1.0E-12,1.0E-16]);end;
  39.    nn = n;
  40.    for i=n:-1:1, if sig(i)<=tol nn=i-1; end; end;
  41.    if nn==0, sysout=D;
  42.      else
  43.      sig = sig(1:nn);
  44.      % diagonal scaling  by sig(i)^(-0.5)
  45.      irtsig = sig.^(-0.5);
  46.      onn=1:nn;
  47.      A(onn,onn)=A(onn,onn).*(irtsig*irtsig');
  48.      B(onn,:)=(irtsig*ones(1,m)).*B(onn,:);
  49.      C(:,onn)=C(:,onn).*(ones(p,1)*irtsig');
  50.      sysout=pck(A(onn,onn),B(onn,:),C(:,onn),D);
  51.     end
  52.  
  53.  
  54. %
  55. % Copyright MUSYN INC 1991,  All Rights Reserved
  56.