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.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None