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

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(*)

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

**Mode Parameters**

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

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.

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.

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.

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

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

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

None

**Program Text**

None

None

None