Given a state space system $(A,B,C)$: $$\dot{x}=Ax+Bu\\y=Cx$$ Is there any method to obtain a reduced system $(A_r,B_r,C_r)$, where $$\dot{x}=A_rx+B_ru\\y=C_rx,$$ such that the eigenvalues of $A_r$ are a subset of the eigenvalues of $A$?

I know the reduced system can be calculated from a transformation by choosing matrices $L,R$ such that $$A_r=LAR,\quad B_r=LB, \quad C_r=CR,\quad LR=I$$

the question is how to find the matrices $L,R$?



Suppose $T$ is a similarity transformation matrix and $T=V$, where $V$ is the matrix of right eigenvectors of $A$.

The system can be transformed into


and I can reduce the above system by retaining the modes of interest.

The question is what if $V$ is a complex matrix? I don't want the realization $(V^{-1}AV, V^{-1}B, CV)$ to contain complex matrices. How can I avoid this problem?


The basics of model order reduction: select and order to order to reduce to, $r$, define $W=[I_{r\times r}\ 0_{r\times n-r}]$ and $V=\begin{bmatrix}I_{r\times r}\\ 0_{n-r\times r}\end{bmatrix}$, where $I$ is the identity matrix, and 0 is a matrix filled with zeros, and a similarity transformation, $T$.

The similarity transformation maps $(A,B,C,D)\mapsto (T^{-1}AT,T^{-1}B,CT,D)$, and now we can define the Petrov-Galerkin truncation as $(A_r,B_r,C_r,D_r)=(WT^{-1}ATV,WT^{-1}B,CTV,D)$. This truncation will guarantee that the initial transient matches perfectly (in transfer function notation: $G(\infty)=G_r(\infty)$, the full and reduced order transfer functions match at infinity).

A second, and in general more useful truncation is singular perturbation truncation for systems with vastly different scales. Singular perturbation truncation guarantees that the DC-gain, or steady state matches (or $G(0)=G_r(0)$ in transfer function notation). To derive the truncation we start by conformally partitioning the $A,B,C,D$ matrix into: \begin{eqnarray} \begin{bmatrix} \dot{x}_1\\ \varepsilon\dot{x}_2 \end{bmatrix}&=&\begin{bmatrix} A_{11} & A_{12}\\ A_{21} & A_{22} \end{bmatrix}\begin{bmatrix} {x}_1\\ {x}_2 \end{bmatrix}+\begin{bmatrix} B_1\\B_2\end{bmatrix} u,\\ y&=& \begin{bmatrix}C_1 & C_2 \end{bmatrix}\begin{bmatrix} {x}_1\\ {x}_2 \end{bmatrix} + Du, \end{eqnarray} where $A_{22}$ is assumed to be invertible, $x_2$ are "fast" states that reach steady state quickly, and $x_1$ are "slow" states. Setting $\varepsilon=0$, we get that \begin{equation} x_2=-A_{22}^{-1}A_{12}^{}x_1-A_{22}^{-1}B_2^{}u, \end{equation} and substitute back into $\dot{x}_1$ and $y$ to get \begin{eqnarray} \dot{x}_1&=&(A_{11}^{}-A_{12}^{}A_{22}^{-1}A_{21})x_{1}+(B_1-A_{12}A_{22}^{-1}B_{2})u,\\ y&=&(C_1-C_2A_{22}^{-1}A_{21})+(D-C_{2}A_{22}^{-1}B_2)u, \end{eqnarray} yielding $(A_r,B_r,C_r,D_r)=(A_{11}^{}-A_{12}^{}A_{22}^{-1}A_{21},B_1-A_{12}A_{22}^{-1}B_{2},C_1-C_2A_{22}^{-1}A_{21},D-C_{2}A_{22}^{-1}B_2).$

$\ $

Now, matching eigenvalues is, in general, not a good approximation to dynamics. But if you are sure that is what you want, then you would use the eigenvalue decomposition, and $T$ is the matrix of eigenvectors.

Instead, what is most often done is to place the system into "balanced coordinates", making it so that states are ordered by how much energy is passed through the subspace from input to output. This is covered in Moore's seminal paper from 1981: "Principal Component Analysis in Linear Systems: Controllability, Observability, and Model Reduction." This paper discusses how to find $T$. This method can also be used in conjunction with singular perturbations by partitioning $(T^{1}AT,T^{-1}B,CT,D)$.

To obtain the transformation for singular perturbations, one would typically use the LK-transformation.

Another approach is Hankel optimal reduction, and was proposed above. This was published in 1984 by Glover and is entitled "All optimal Hankel-norm approximations of linear multivariable systems and their $L^{\infty}$-error bounds." This is a must read, it is phenomenal, and one of my all-time favorite papers.

More recently, there was a method proposed for controller reduction by Choroszucha, Sun, and Butts titled: "Closed-loop model order reduction and MPC for diesel engine airpath control" that focuses on keeping only states that are hard to control.

  • $\begingroup$ Thanks for your incredibly rich information! If I use the eigenvalue decomposition, and $T$ is the matrix of eigenvectors with complex entries, then the $T^{−1}B,CT$ would be complex matrices. How can I ensure that $T^{−1}B,CT$ are real? $\endgroup$ – Life Gem Mar 24 '16 at 2:33
  • $\begingroup$ If we start with the assumption that $A$ is real, then eigenvalues/eigenvectors occur in complex conjugate pairs, and this will allow us to use the Real Jordan Form (the key word being real). In the real Jordan form the columns of $T$ occur in pairs: real part of the eigenvector, then the imaginary part (up to a sign), and for complex pair of eigenvalues $a\pm bi$, your A matrix will look like: $\begin{bmatrix} a & -b\\b & a \end{bmatrix}$. $\endgroup$ – riboch Mar 24 '16 at 3:35

You can write $A$ in jordan normal form. See https://en.m.wikipedia.org/wiki/Jordan_normal_form. This would give you $L$ and $R$. Followingly you can truncate the system and preserve certain eigenvalues which you want to keep.


You can try Hankel norm based approximation, such that you can preserve the characteristics of the system (along with your eigen values). This can give a very close approximation of the higher order model. For further reference, you can see,

Antoulas, Athanasios C. Approximation of large-scale dynamical systems. Vol. 6. Siam, 2005.

In this literature, several other tools are also given, which you may find useful.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.