SB01BY

Pole placement for systems of order 1 or 2

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

Purpose

  To solve an N-by-N pole placement problem for the simple cases
  N = 1 or N = 2: given the N-by-N matrix A and N-by-M matrix B,
  construct an M-by-N matrix F such that A + B*F has prescribed
  eigenvalues. These eigenvalues are specified by their sum S and
  product P (if N = 2). The resulting F has minimum Frobenius norm.

Specification
      SUBROUTINE SB01BY( N, M, S, P, A, B, F, TOL, DWORK, INFO )
C     .. Scalar Arguments ..
      INTEGER           INFO, M, N
      DOUBLE PRECISION  P, S, TOL
C     .. Array Arguments ..
      DOUBLE PRECISION  A(N,*), B(N,*), DWORK(*), F(M,*)

Arguments

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, if a single real eigenvalue is prescribed
          or 2, if a complex conjugate pair or a set of two real
          eigenvalues are prescribed.

  M       (input) INTEGER
          The number of columns of the matrix B and also the number
          of rows of the matrix F.  M >= 1.

  S       (input) DOUBLE PRECISION
          The sum of the prescribed eigenvalues if N = 2 or the
          value of prescribed eigenvalue if N = 1.

  P       (input) DOUBLE PRECISION
          The product of the prescribed eigenvalues if N = 2.
          Not referenced if N = 1.

  A       (input/output) DOUBLE PRECISION array, dimension (N,N)
          On entry, this array must contain the N-by-N state
          dynamics matrix whose eigenvalues have to be moved to
          prescribed locations.
          On exit, this array contains no useful information.

  B       (input/output) DOUBLE PRECISION array, dimension (N,M)
          On entry, this array must contain the N-by-M input/state
          matrix B.
          On exit, this array contains no useful information.

  F       (output) DOUBLE PRECISION array, dimension (M,N)
          The state feedback matrix F which assigns one pole or two
          poles of the closed-loop matrix A + B*F.
          If N = 2 and the pair (A,B) is not controllable
          (INFO = 1), then F(1,1) and F(1,2) contain the elements of
          an orthogonal rotation which can be used to remove the
          uncontrollable part of the pair (A,B).

Tolerances
  TOL     DOUBLE PRECISION
          The absolute tolerance level below which the elements of A
          and B are considered zero (used for controllability test).

Workspace
  DWORK   DOUBLE PRECISION array, dimension (M)

Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          = 1:  if uncontrollability of the pair (A,B) is detected.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index