home *** CD-ROM | disk | FTP | other *** search
- % function sys = pck(a,b,c,d)
- %
- % Pack state-space data into a SYSTEM matrix
- %
- % See also: MINFO, ND2SYS, PSS2SYS, SYS2PSS, UNPCK,
- % VPCK, VUNPCK, and ZP2SYS.
-
- function sys = pck(a,b,c,d)
- if nargin < 3
- disp('usage: sys = pck(a,b,c,d)')
- return
- end
- [atype,arows,acols,anum] = minfo(a);
- [btype,brows,bcols,bnum] = minfo(b);
- [ctype,crows,ccols,cnum] = minfo(c);
- if atype ~= 'cons' | btype ~= 'cons' | ctype ~= 'cons'
- error('state space data should be CONSTANT matrix')
- return
- end
- if nargin == 3
- d = zeros(crows,bcols);
- drows = crows;
- dcols = bcols;
- else
- [dtype,drows,dcols,dnum] = minfo(d);
- if dtype ~= 'cons'
- error('state space data should be CONSTANT matrix')
- return
- end
- end
- if arows == 0 & acols == 0
- sys = d;
- elseif arows == acols
- if brows == arows & ccols == arows & bcols == dcols & crows == drows
- rs = [arows ; zeros(arows+crows-1,1)];
- bs = [zeros(1,acols+bcols) -inf];
- sys = [a b;c d];
- sys = [sys rs;bs];
- else
- error('ABCD dimensions are not compatible')
- return
- end
- else
- error('A matrix must be square')
- return
- end
- %
- % Copyright MUSYN INC 1991, All Rights Reserved
-