## SB01FY

### Inner denominator of a right-coprime factorization of an unstable system of order 1 or 2

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

Purpose

      To compute the inner denominator of a right-coprime factorization
      of a system of order N, where N is either 1 or 2. Specifically,
      given the N-by-N unstable system state matrix A and the N-by-M
      system input matrix B, an M-by-N state-feedback matrix F and
      an M-by-M matrix V are constructed, such that the system
      (A + B*F, B*V, F, V) is inner.

Specification

          SUBROUTINE SB01FY( DISCR, N, M, A, LDA, B, LDB, F, LDF, V, LDV,
         $                   INFO )
    C     .. Scalar Arguments ..
          LOGICAL           DISCR
          INTEGER           INFO, LDA, LDB, LDF, LDV, M, N
    C     .. Array Arguments ..
          DOUBLE PRECISION  A(LDA,*), B(LDB,*), F(LDF,*), V(LDV,*)

Arguments

Mode Parameters

      DISCR   LOGICAL
              Specifies the type of system as follows:
              = .FALSE.:  continuous-time system;
              = .TRUE. :  discrete-time system.

Input/Output Parameters

      N       (input) INTEGER
              The order of the matrix A and also the number of rows of
              the matrix B and the number of columns of the matrix F.
              N is either 1 or 2.

      M       (input) INTEGER
              The number of columns of the matrices B and V, and also
              the number of rows of the matrix F.  M >= 0.

      A       (input) DOUBLE PRECISION array, dimension (LDA,N)
              The leading N-by-N part of this array must contain the
              system state matrix A whose eigenvalues must have positive
              real parts if DISCR = .FALSE. or moduli greater than unity
              if DISCR = .TRUE..

      LDA     INTEGER
              The leading dimension of array A.  LDA >= N.

      B       (input) DOUBLE PRECISION array, dimension (LDB,M)
              The leading N-by-M part of this array must contain the
              system input matrix B.

      LDB     INTEGER
              The leading dimension of array B.  LDB >= N.

      F       (output) DOUBLE PRECISION array, dimension (LDF,N)
              The leading M-by-N part of this array contains the state-
              feedback matrix F which assigns one eigenvalue (if N = 1)
              or two eigenvalues (if N = 2) of the matrix A + B*F in
              symmetric positions with respect to the imaginary axis
              (if DISCR = .FALSE.) or the unit circle (if
              DISCR = .TRUE.).

      LDF     INTEGER
              The leading dimension of array F.  LDF >= MAX(1,M).

      V       (output) DOUBLE PRECISION array, dimension (LDV,M)
              The leading M-by-M upper triangular part of this array
              contains the input/output matrix V of the resulting inner
              system in upper triangular form.
              If DISCR = .FALSE., the resulting V is an identity matrix.

      LDV     INTEGER
              The leading dimension of array V.  LDF >= MAX(1,M).

Error Indicator

      INFO    INTEGER
              = 0:  successful exit;
              = 1:  if uncontrollability of the pair (A,B) is detected;
              = 2:  if A is stable or at the stability limit;
              = 3:  if N = 2 and A has a pair of real eigenvalues.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index