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