## Contents

## DORDPO

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

## Syntax

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

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

## Description

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

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`.

## Inputs

`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`.

## Outputs

`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.

## Remarks

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.

## Algorithm

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`

LAPACK-function `DPOTRF`

(All built into the executable)

## See Also

`dmodpo`, `dordpi`, `dmodpi`, `dordrs`, `dmodrs`

## References

[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.