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

```
```  None
```
Example

Program Text

```  None
```
Program Data
```  None
```
Program Results
```  None
```