Preprocesses time-domain data for PO-MOESP subspace identification of discrete-time LTI state-space models. Delivers an order-estimate.


[S,R] = dordpo(u,y,s)

[S,R] = dordpo(u,y,s,Rold)


This function performs the initial data compression for PO-MOESP subspace identification based on measured input-output data [1]. In addition, it delivers information usuable for determining the required model order. The model structure is the following

$$ x(k+1) = Ax(k) + Bu(k) + w(k) $$

$$ y(k)   = Cx(k) + Du(k) + v(k) $$

Here, w(k) and v(k) is zero-mean noise of arbitary color, independent of the noise-free input u(k) . Several data batches can be concatenated, as shown below. This function acts as a preprocessor to dmodpo.


u,y is the measured input and output data of the system to be identified. DORDPO does handle empty inputs.

s is the block-size parameter. This scalar should be >n.

Rold is the (optional) data-matrix resulting from a previous call to dordpo.


S is the first s singular values of the rank-deficient R32 matrix (see below).

R is a compressed data matrix containing information about the measured data, as well as information regarding the system dimensions.


The data matrix R generated by the M-file implementation of dordpo is incompatible with the R matrix generated by the MEX-implementation of dordpo. Therefore, either the M-files should be used for both dordpo and dmodpo, or the MEX-files should be used for both functions.

The MEX-implementation of dordpo uses the IB01MD and IB01ND functions from the SLICOT library.

The MEX-implementation may return the warning:

Warning: Cholesky failed: using QR for this and any subsequent batches

This implies that a fast Cholesky algorithm failed and that the function has fallen back onto a slower QR algorithm. This warning does not imply that results are invalid; the results can be used without problems.


The discrete-time data compression algorithm in [1] is used. In the M-file implementation, the following RQ-factorization is made:

The meaning of the various matrices can be found in the cited article. In the MEX-implementation, the following Cholesky-factorization is attempted first:

If this factorization fails, the algorithm falls back on the above RQ-factorization. In all cases, a weighted SVD of the R32 matrix is made, and its left singular vectors are appended to the R -matrix. Its first s singular values are returned in S.

Used By

This a top-level function that is used directly by the user.

Uses Functions

SLICOT-functions IB01MD and IB01ND


(All built into the executable)

See Also

dmodpo, dordpi, dmodpi, dordrs, dmodrs


[1] M. Verheagen, "Identification of the deterministic part of MIMO state space models given in innovations form from input-output data", Automatica, vol. 30, no. 1, pp. 61-74, 1994.