Purpose
To convert the descriptor state-space system
E*dx/dt = A*x + B*u
y = C*x + D*u
into regular state-space form
dx/dt = Ad*x + Bd*u
y = Cd*x + Dd*u .
Specification
SUBROUTINE SB10JD( N, M, NP, A, LDA, B, LDB, C, LDC, D, LDD, E,
$ LDE, NSYS, DWORK, LDWORK, INFO )
C .. Scalar Arguments ..
INTEGER INFO, LDA, LDB, LDC, LDD, LDE, LDWORK, M, N,
$ NP, NSYS
C .. Array Arguments ..
DOUBLE PRECISION A( LDA, * ), B( LDB, * ), C( LDC, * ),
$ D( LDD, * ), DWORK( * ), E( LDE, * )
Arguments
Input/Output Parameters
N (input) INTEGER
The order of the descriptor 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.
A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the leading N-by-N part of this array must
contain the state matrix A of the descriptor system.
On exit, the leading NSYS-by-NSYS part of this array
contains the state matrix Ad of the converted system.
LDA INTEGER
The leading dimension of the array A. LDA >= max(1,N).
B (input/output) DOUBLE PRECISION array, dimension (LDB,M)
On entry, the leading N-by-M part of this array must
contain the input matrix B of the descriptor system.
On exit, the leading NSYS-by-M part of this array
contains the input matrix Bd of the converted system.
LDB INTEGER
The leading dimension of the array B. LDB >= max(1,N).
C (input/output) DOUBLE PRECISION array, dimension (LDC,N)
On entry, the leading NP-by-N part of this array must
contain the output matrix C of the descriptor system.
On exit, the leading NP-by-NSYS part of this array
contains the output matrix Cd of the converted system.
LDC INTEGER
The leading dimension of the array C. LDC >= max(1,NP).
D (input/output) DOUBLE PRECISION array, dimension (LDD,M)
On entry, the leading NP-by-M part of this array must
contain the matrix D of the descriptor system.
On exit, the leading NP-by-M part of this array contains
the matrix Dd of the converted system.
LDD INTEGER
The leading dimension of the array D. LDD >= max(1,NP).
E (input/output) DOUBLE PRECISION array, dimension (LDE,N)
On entry, the leading N-by-N part of this array must
contain the matrix E of the descriptor system.
On exit, this array contains no useful information.
LDE INTEGER
The leading dimension of the array E. LDE >= max(1,N).
NSYS (output) INTEGER
The order of the converted state-space system.
Workspace
DWORK DOUBLE PRECISION array, dimension (LDWORK)
On exit, if INFO = 0, DWORK(1) contains the optimal value
of LDWORK.
LDWORK INTEGER
The dimension of the array DWORK.
LDWORK >= max( 1, 2*N*N + 2*N + N*MAX( 5, N + M + NP ) ).
For good performance, LDWORK must generally be larger.
Error Indicator
INFO INTEGER
= 0: successful exit;
< 0: if INFO = -i, the i-th argument had an illegal
value;
= 1: the iteration for computing singular value
decomposition did not converge.
Method
The routine performs the transformations described in [1].References
[1] Chiang, R.Y. and Safonov, M.G.
Robust Control Toolbox User's Guide.
The MathWorks Inc., Natick, Mass., 1992.
Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None