## 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