## SB10WD

### H2 optimal controller matrices using state feedback and output injection matrices (continuous-time)

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

Purpose

```  To compute the matrices of the H2 optimal controller

| AK | BK |
K = |----|----|,
| CK | DK |

from the state feedback matrix F and output injection matrix H as
determined by the SLICOT Library routine SB10VD.

```
Specification
```      SUBROUTINE SB10WD( N, M, NP, NCON, NMEAS, A, LDA, B, LDB, C, LDC,
\$                   D, LDD, F, LDF, H, LDH, TU, LDTU, TY, LDTY,
\$                   AK, LDAK, BK, LDBK, CK, LDCK, DK, LDDK, INFO )
C     .. Scalar Arguments ..
INTEGER            INFO, LDA, LDAK, LDB, LDBK, LDC, LDCK, LDD,
\$                   LDDK, LDF, LDH, LDTU, LDTY, M, N, NCON, NMEAS,
\$                   NP
C     .. Array Arguments ..
DOUBLE PRECISION   A( LDA, * ), AK( LDAK, * ), B( LDB, * ),
\$                   BK( LDBK, * ), C( LDC, * ), CK( LDCK, * ),
\$                   D( LDD, * ), DK( LDDK, * ), F( LDF, * ),
\$                   H( LDH, * ), TU( LDTU, * ), TY( LDTY, * )

```
Arguments

Input/Output Parameters

```  N       (input) INTEGER
The order of the system.  N >= 0.

M       (input) INTEGER
The column size of the matrix B.  M >= 0.

NP      (input) INTEGER
The row size of the matrix C.  NP >= 0.

NCON    (input) INTEGER
The number of control inputs (M2).  M >= NCON >= 0.
NP-NMEAS >= NCON.

NMEAS   (input) INTEGER
The number of measurements (NP2).  NP >= NMEAS >= 0.
M-NCON >= NMEAS.

A       (input) DOUBLE PRECISION array, dimension (LDA,N)
The leading N-by-N part of this array must contain the
system state matrix A.

LDA     INTEGER
The leading dimension of the array A.  LDA >= max(1,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. Only the submatrix
B2 = B(:,M-M2+1:M) is used.

LDB     INTEGER
The leading dimension of the array B.  LDB >= max(1,N).

C       (input) DOUBLE PRECISION array, dimension (LDC,N)
The leading NP-by-N part of this array must contain the
system output matrix C. Only the submatrix
C2 = C(NP-NP2+1:NP,:) is used.

LDC     INTEGER
The leading dimension of the array C.  LDC >= max(1,NP).

D       (input) DOUBLE PRECISION array, dimension (LDD,M)
The leading NP-by-M part of this array must contain the
system input/output matrix D. Only the submatrix
D22 = D(NP-NP2+1:NP,M-M2+1:M) is used.

LDD     INTEGER
The leading dimension of the array D.  LDD >= max(1,NP).

F       (input) DOUBLE PRECISION array, dimension (LDF,N)
The leading NCON-by-N part of this array must contain the
state feedback matrix F.

LDF     INTEGER
The leading dimension of the array F.  LDF >= max(1,NCON).

H       (input) DOUBLE PRECISION array, dimension (LDH,NMEAS)
The leading N-by-NMEAS part of this array must contain the
output injection matrix H.

LDH     INTEGER
The leading dimension of the array H.  LDH >= max(1,N).

TU      (input) DOUBLE PRECISION array, dimension (LDTU,M2)
The leading M2-by-M2 part of this array must contain the
control transformation matrix TU, as obtained by the
SLICOT Library routine SB10UD.

LDTU    INTEGER
The leading dimension of the array TU.  LDTU >= max(1,M2).

TY      (input) DOUBLE PRECISION array, dimension (LDTY,NP2)
The leading NP2-by-NP2 part of this array must contain the
measurement transformation matrix TY, as obtained by the
SLICOT Library routine SB10UD.

LDTY    INTEGER
The leading dimension of the array TY.
LDTY >= max(1,NP2).

AK      (output) DOUBLE PRECISION array, dimension (LDAK,N)
The leading N-by-N part of this array contains the
controller state matrix AK.

LDAK    INTEGER
The leading dimension of the array AK.  LDAK >= max(1,N).

BK      (output) DOUBLE PRECISION array, dimension (LDBK,NMEAS)
The leading N-by-NMEAS part of this array contains the
controller input matrix BK.

LDBK    INTEGER
The leading dimension of the array BK.  LDBK >= max(1,N).

CK      (output) DOUBLE PRECISION array, dimension (LDCK,N)
The leading NCON-by-N part of this array contains the
controller output matrix CK.

LDCK    INTEGER
The leading dimension of the array CK.
LDCK >= max(1,NCON).

DK      (output) DOUBLE PRECISION array, dimension (LDDK,NMEAS)
The leading NCON-by-NMEAS part of this array contains the
controller input/output matrix DK.

LDDK    INTEGER
The leading dimension of the array DK.
LDDK >= max(1,NCON).

```
Error Indicator
```  INFO    INTEGER
= 0:  successful exit;
< 0:  if INFO = -i, the i-th argument had an illegal
value.

```
Method
```  The routine implements the formulas given in , .

```
References
```   Zhou, K., Doyle, J.C., and Glover, K.
Robust and Optimal Control.
Prentice-Hall, Upper Saddle River, NJ, 1996.

 Balas, G.J., Doyle, J.C., Glover, K., Packard, A., and
Smith, R.
mu-Analysis and Synthesis Toolbox.
The MathWorks Inc., Natick, Mass., 1995.

```
Numerical Aspects
```  The accuracy of the result depends on the condition numbers of the
input and output transformations.

```
```  None
```
Example

Program Text

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