# imp2ss

System realization via Hankel singular value decomposition

## Syntax

[a,b,c,d,totbnd,hsv] = imp2ss(y)
[a,b,c,d,totbnd,hsv] = imp2ss(y,ts,nu,ny,tol)
[ss,totbnd,hsv] = imp2ss(imp)
[ss,totbnd,hsv] = imp2ss(imp,tol)

## Description

The function imp2ss produces an approximate state-space realization of a given impulse response

imp=mksys(y,t,nu,ny,'imp');

using the Hankel SVD method proposed by S. Kung [2]. A continuous-time realization is computed via the inverse Tustin transform (using bilin) if t is positive; otherwise a discrete-time realization is returned. In the SISO case the variable y is the impulse response vector; in the MIMO case y is an N+1-column matrix containing N + 1 time samples of the matrix-valued impulse response H0, ..., HN of an nu-input, ny-output system stored row-wise:

y = [H0(:)′;H2(:)′; H3(:)′; ... ;HN(:)′

The variable tol bounds the H norm of the error between the approximate realization (a, b, c, d) and an exact realization of y; the order, say n, of the realization (a, b, c, d) is determined by the infinity norm error bound specified by the input variable tol. The inputs ts, nu, ny, and tol are optional. If omitted, they default to the values ts = 0, nu = 1, ny = (number of rows of y)/nu, tol = $0.01{\overline{\sigma }}_{1}$. The output $hsv=\left[{\overline{\sigma }}_{1},{\overline{\sigma }}_{2},...{\right]}^{\prime }$returns the singular values (arranged in descending order of magnitude) of the Hankel matrix:

$\Gamma =\left[\begin{array}{ccccc}{H}_{1}& {H}_{2}& {H}_{3}& \dots & {H}_{N}\\ {H}_{2}& {H}_{3}& {H}_{4}& \dots & 0\\ {H}_{3}& {H}_{4}& {H}_{5}& \dots & 0\\ ⋮& ⋮& ⋮& \ddots & ⋮\\ {H}_{N}& 0& \dots & \dots & 0s\end{array}\right]$

Denoting by GN a high-order exact realization of y, the low-order approximate model G enjoys the H norm bound

${‖G-{G}_{N}‖}_{\infty }\le totbnd$

where

$totbnd=2\sum _{i=n+1}^{N}{\overline{\sigma }}_{i}.$

collapse all

### Algorithms

The realization (a, b, c, d) is computed using the Hankel SVD procedure proposed by Kung [2] as a method for approximately implementing the classical Hankel factorization realization algorithm. Kung's SVD realization procedure was subsequently shown to be equivalent to doing balanced truncation (balmr) on an exact state-space realization of the finite impulse response {y(1),....y(N)} [3]. The infinity norm error bound for discrete balanced truncation was later derived by Al-Saggaf and Franklin [1]. The algorithm is as follows:

1. Form the Hankel matrix Γ from the data y.

2. Perform SVD on the Hankel matrix

$\Gamma =U\sum V*=\left[{U}_{1}{U}_{2}\right]\left[\begin{array}{cc}{\sum }_{1}& 0\\ 0& {\sum }_{2}\end{array}\right]\left[\begin{array}{c}V{*}_{1}\\ V{*}_{2}\end{array}\right]={U}_{1}{\sum }_{1}V{*}_{1}$

where Σ1 has dimension n × n and the entries of Σ2 are nearly zero. U1 and V1 have ny and nu columns, respectively.

3. Partition the matrices U1 and V1 into three matrix blocks:

$U1=\left[\begin{array}{c}{U}_{11}\\ {U}_{12}\\ {U}_{13}\end{array}\right]\left[\begin{array}{c}{V}_{11}\\ {V}_{12}\\ {V}_{13}\end{array}\right]$

where and .

4. A discrete state-space realization is computed as

where

5. If the sample time t is greater than zero, then the realization is converted to continuous time via the inverse of the Tustin transform

Otherwise, this step is omitted and the discrete-time realization calculated in Step 4 is returned.

## References

[1] Al-Saggaf, U.M., and G.F. Franklin, "An Error Bound for a Discrete Reduced Order Model of a Linear Multivariable System," IEEE Trans. on Autom. Contr., AC-32, 1987, p. 815-819.

[2] Kung, S.Y., "A New Identification and Model Reduction Algorithm via Singular Value Decompositions," Proc. Twelfth Asilomar Conf. on Circuits, Systems and Computers, November 6-8, 1978, p. 705-714.

[3] Silverman, L.M., and M. Bettayeb, "Optimal Approximation of Linear Systems," Proc. American Control Conf., San Francisco, CA, 1980.