Source Code from Classic Subspace Identification Papers

Resource Overview

Implementation of foundational subspace identification algorithms with MATLAB code examples

Detailed Documentation

Subspace identification is a widely used technique in system identification that estimates state-space models of linear dynamic systems from input-output data. These methods employ matrix decomposition and projection operations to reveal the internal state structure of systems, making them suitable for multivariable systems without requiring prior assumptions about model order.

Classic subspace identification papers typically provide accompanying MATLAB source code to facilitate algorithm reproduction and theoretical validation. The code implementation generally includes several core modules: data preprocessing (such as mean removal and data segmentation), projection operations (like orthogonal or oblique projections), matrix factorization (particularly singular value decomposition - SVD), and state-space model estimation using algorithms like MOESP (Multivariable Output Error State Space) or N4SID (Numerical algorithms for Subspace State Space System IDentification). The MATLAB implementation often utilizes built-in functions such as svd() for matrix decomposition and lstsq() for least-squares solutions.

This source code is invaluable for understanding practical implementation of subspace identification, especially for researching robustness improvements, computational efficiency optimization, or extensions to nonlinear systems. Researchers can build upon this foundation for secondary development, such as adding regularization terms, enhancing numerical stability through perturbation techniques, or adapting algorithms for real-time identification requirements. The code structure typically follows the mathematical workflow: data conditioning -> projection matrix construction -> SVD-based order determination -> system matrix estimation.

It's important to note that implementation details vary significantly between different subspace algorithms, particularly in handling closed-loop data, balancing estimation bias and variance, and managing numerical conditioning. Users should therefore reference the corresponding theoretical derivations in the original papers to ensure correct interpretation of each step's mathematical meaning and implementation nuances.