## SB08GD

### State-space representation of a left coprime factorization

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

Purpose

      To construct the state-space representation for the system
      G = (A,B,C,D) from the factors Q = (AQR,BQ,CQR,DQ) and
      R = (AQR,BR,CQR,DR) of its left coprime factorization
                    -1
               G = R  * Q,

      where G, Q and R are the corresponding transfer-function matrices.

Specification

          SUBROUTINE SB08GD( N, M, P, A, LDA, B, LDB, C, LDC, D, LDD, BR,
         $                   LDBR, DR, LDDR, IWORK, DWORK, INFO )
    C     .. Scalar Arguments ..
          INTEGER           INFO, LDA, LDB, LDBR, LDC, LDD, LDDR, M, N, P
    C     .. Array Arguments ..
          DOUBLE PRECISION  A(LDA,*), B(LDB,*), BR(LDBR,*), C(LDC,*),
         $                  D(LDD,*), DR(LDDR,*), DWORK(*)
          INTEGER           IWORK(*)

Arguments

Input/Output Parameters

      N       (input) INTEGER
              The order of the matrix A. Also the number of rows of the
              matrices B and BR and the number of columns of the matrix
              C. N represents the order of the systems Q and R.  N >= 0.

      M       (input) INTEGER
              The dimension of input vector, i.e. the number of columns
              of the matrices B and D.  M >= 0.

      P       (input) INTEGER
              The dimension of output vector, i.e. the number of rows of
              the matrices C, D and DR and the number of columns of the
              matrices BR and DR.  P >= 0.

      A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
              On entry, the leading N-by-N part of this array must
              contain the state dynamics matrix AQR of the systems
              Q and R.
              On exit, the leading N-by-N part of this array contains
              the state dynamics matrix of the system G.

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

      B       (input/output) DOUBLE PRECISION array, dimension (LDB,M)
              On entry, the leading N-by-M part of this array must
              contain the input/state matrix BQ of the system Q.
              On exit, the leading N-by-M part of this array contains
              the input/state matrix of the system G.

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

      C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
              On entry, the leading P-by-N part of this array must
              contain the state/output matrix CQR of the systems
              Q and R.
              On exit, the leading P-by-N part of this array contains
              the state/output matrix of the system G.

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

      D       (input/output) DOUBLE PRECISION array, dimension (LDD,M)
              On entry, the leading P-by-M part of this array must
              contain the input/output matrix DQ of the system Q.
              On exit, the leading P-by-M part of this array contains
              the input/output matrix of the system G.

      LDD     INTEGER
              The leading dimension of array D.  LDD >= MAX(1,P).

      BR      (input) DOUBLE PRECISION array, dimension (LDBR,P)
              The leading N-by-P part of this array must contain the
              input/state matrix BR of the system R.

      LDBR    INTEGER
              The leading dimension of array BR.  LDBR >= MAX(1,N).

      DR      (input/output) DOUBLE PRECISION array, dimension (LDDR,P)
              On entry, the leading P-by-P part of this array must
              contain the input/output matrix DR of the system R.
              On exit, the leading P-by-P part of this array contains
              the LU factorization of the matrix DR, as computed by
              LAPACK Library routine DGETRF.

      LDDR    INTEGER
              The leading dimension of array DR.  LDDR >= MAX(1,P).

Workspace

      IWORK   INTEGER array, dimension (P)

      DWORK   DOUBLE PRECISION array, dimension (MAX(1,4*P))
              On exit, DWORK(1) contains an estimate of the reciprocal
              condition number of the matrix DR.

Error Indicator

      INFO    INTEGER
              = 0:  successful exit;
              < 0:  if INFO = -i, the i-th argument had an illegal
                    value;
              = 1:  the matrix DR is singular;
              = 2:  the matrix DR is numerically singular (warning);
                    the calculations continued.

Method

      The subroutine computes the matrices of the state-space
      representation G = (A,B,C,D) by using the formulas:

                       -1              -1
      A = AQR - BR * DR  * CQR,  C = DR  * CQR,
                       -1              -1
      B = BQ  - BR * DR  * DQ,   D = DR  * DQ.

References

      [1] Varga A.
          Coprime factors model reduction method based on
          square-root balancing-free techniques.
          System Analysis, Modelling and Simulation,
          vol. 11, pp. 303-311, 1993.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to index