cainv Dual of abinv Calling Sequence [X,dims,J,Y,k,Z]=cainv(Sl,alfa,beta,flag) Arguments Sl syslin list containing the matrices [A,B,C,D]. alfa real number or vector (possibly complex, location of closed loop poles) beta real number or vector (possibly complex, location of closed loop poles) flag (optional) character string 'ge' (default) or 'st' or 'pp' X orthogonal matrix of size nx (dim of state space). dims integer row vector dims=[nd1,nu1,dimS,dimSg,dimN] (5 entries, nondecreasing order).If flag='st', (resp. 'pp'), dims has 4 (resp. 3) components. J real matrix (output injection) Y orthogonal matrix of size ny (dim of output space). k integer (normal rank of Sl) Z non-singular linear system (syslin list) Description cainv finds a bases (X,Y) (of state space and output space resp.) and output injection matrix J such that the matrices of Sl in bases (X,Y) are displayed as: The partition of X is defined by the vector dims=[nd1,nu1,dimS,dimSg,dimN] and the partition of Y is determined by k. Eigenvalues of A11 (nd1 x nd1) are unstable. Eigenvalues of A22 (nu1-nd1 x nu1-nd1) are stable. The pair (A33, C13) (dimS-nu1 x dimS-nu1, k x dimS-nu1) is observable, and eigenvalues of A33 are set to alfa. Matrix A44 (dimSg-dimS x dimSg-dimS) is unstable. Matrix A55 (dimN-dimSg,dimN-dimSg) is stable The pair (A66,C26) (nx-dimN x nx-dimN) is observable, and eigenvalues of A66 set to beta. The dimS first columns of X span S= smallest (C,A) invariant subspace which contains Im(B), dimSg first columns of X span Sg the maximal "complementary detectability subspace" of Sl The dimN first columns of X span the maximal "complementary observability subspace" of Sl. (dimS=0 if B(ker(D))=0). If flag='st' is given, a five blocks partition of the matrices is returned and dims has four components. If flag='pp' is given a four blocks partition is returned (see abinv). This function can be used to calculate an unknown input observer: See Also abinv dt_ility ui_observer