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