## AB13AX

### Hankel-norm of a stable system with the state dynamics matrix in real Schur form

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

```  To compute the Hankel-norm of the transfer-function matrix G of
a stable state-space system (A,B,C). The state dynamics matrix A
of the given system is an upper quasi-triangular matrix in
real Schur form.

```
Specification
```      DOUBLE PRECISION FUNCTION AB13AX( DICO, N, M, P, A, LDA, B, LDB,
\$                                  C, LDC, HSV, DWORK, LDWORK,
\$                                  INFO )
C     .. Scalar Arguments ..
CHARACTER         DICO
INTEGER           INFO, LDA, LDB, LDC, LDWORK, M, N, P
C     .. Array Arguments ..
DOUBLE PRECISION  A(LDA,*), B(LDB,*), C(LDC,*), DWORK(*), HSV(*)

```
Function Value
```  AB13AX  DOUBLE PRECISION
The Hankel-norm of G (if INFO = 0).

```
Arguments

Mode Parameters

```  DICO    CHARACTER*1
Specifies the type of the system as follows:
= 'C':  continuous-time system;
= 'D':  discrete-time system.

```
Input/Output Parameters
```  N       (input) INTEGER
The order of the state-space representation, i.e. the
order of the matrix A.  N >= 0.

M       (input) INTEGER
The number of system inputs.  M >= 0.

P       (input) INTEGER
The number of system outputs.  P >= 0.

A       (input) DOUBLE PRECISION array, dimension (LDA,N)
The leading N-by-N part of this array must contain the
state dynamics matrix A in a real Schur canonical form.

LDA     INTEGER
The leading dimension of array A.  LDA >= MAX(1,N).

B       (input) DOUBLE PRECISION array, dimension (LDB,M)
The leading N-by-M part of this array must contain the
input/state matrix B.

LDB     INTEGER
The leading dimension of array B.  LDB >= MAX(1,N).

C       (input) DOUBLE PRECISION array, dimension (LDC,N)
The leading P-by-N part of this array must contain the
state/output matrix C.

LDC     INTEGER
The leading dimension of array C.  LDC >= MAX(1,P).

HSV     (output) DOUBLE PRECISION array, dimension (N)
If INFO = 0, this array contains the Hankel singular
values of the given system ordered decreasingly.
HSV(1) is the Hankel norm of the given system.

```
Workspace
```  DWORK   DOUBLE PRECISION array, dimension (LDWORK)
On exit, if INFO = 0, DWORK(1) returns the optimal value
of LDWORK.

LDWORK  INTEGER
The length of the array DWORK.
LDWORK >= MAX(1,N*(MAX(N,M,P)+5)+N*(N+1)/2).
For optimum performance LDWORK should be larger.

```
Error Indicator
```  INFO    INTEGER
= 0:  successful exit;
< 0:  if INFO = -i, the i-th argument had an illegal
value;
= 1:  the state matrix A is not stable (if DICO = 'C')
or not convergent (if DICO = 'D');
= 2:  the computation of Hankel singular values failed.

```
Method
```  Let be the stable linear system

d[x(t)] = Ax(t) + Bu(t)
y(t)    = Cx(t)                               (1)

where d[x(t)] is dx(t)/dt for a continuous-time system and x(t+1)
for a discrete-time system, and let G be the corresponding
transfer-function matrix. The Hankel-norm of G is computed as the
the maximum Hankel singular value of the system (A,B,C).
The computation of the Hankel singular values is performed
by using the square-root method of [1].

```
References
```  [1] Tombs M.S. and Postlethwaite I.
Truncated balanced realization of stable, non-minimal
state-space systems.
Int. J. Control, Vol. 46, pp. 1319-1330, 1987.

```
Numerical Aspects
```  The implemented method relies on a square-root technique.
3
The algorithms require about 17N  floating point operations.

```
```  None
```
Example

Program Text

```  None
```
Program Data
```  None
```
Program Results
```  None
```