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.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index