# 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, tol``` are optional; if not present 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}.$

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