Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

System realization via Hankel singular value decomposition

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

`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 *H*_{0},
..., *H _{N}* of an

`nu`

-input, `ny`

-output
system stored row-wise:*y* = [*H*_{0}(:)′;*H*_{2}(:)′; *H*_{3}(:)′;
... ;*H _{N}*(:)′

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=[{\overline{\sigma}}_{1},{\overline{\sigma}}_{2},\mathrm{...}{]}^{\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\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ {H}_{N}& 0& \dots & \dots & 0s\end{array}\right]$$

Denoting by *G _{N}* a high-order
exact realization of

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

where

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

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:

Form the Hankel matrix Γ from the data

*y*.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.*U*_{1}and*V*_{1}have*ny*and*nu*columns, respectively.Partition the matrices

*U*_{1}and*V*_{1}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 $${U}_{11},{U}_{13}\in {C}^{ny\text{}\times \text{}n}$$ and $${V}_{11},{V}_{13}\in {C}^{nu\text{}\times \text{}n}$$.

A discrete state-space realization is computed as

$$\begin{array}{l}A={\sum}_{1}^{-\text{}{\scriptscriptstyle \frac{1}{2}}}\overline{U}{\sum}_{1}^{-\text{}{\scriptscriptstyle \frac{1}{2}}}\\ B={\sum}_{1}^{-\text{}{\scriptscriptstyle \frac{1}{2}}}V{*}_{11}\\ C={U}_{11}{\sum}_{1}^{-\text{}{\scriptscriptstyle \frac{1}{2}}}\\ D={H}_{0}\end{array}$$

where

$$\overline{U}={\left[\begin{array}{c}{U}_{11}\\ {U}_{12}\end{array}\right]}^{\prime}\text{}\left[\begin{array}{c}{U}_{12}\\ {U}_{13}\end{array}\right]$$

If the sample time

*t*is greater than zero, then the realization is converted to continuous time via the inverse of the Tustin transform$$s=\frac{2}{t}\frac{z-1}{z+1}\text{}.$$

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

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

Was this topic helpful?