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 [1], [2].References
[1] Zhou, K., Doyle, J.C., and Glover, K. Robust and Optimal Control. Prentice-Hall, Upper Saddle River, NJ, 1996. [2] 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.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None