Purpose
To convert the linear discrete-time system given as its output normal form [1], with parameter vector THETA, into the state-space representation (A, B, C, D), with the initial state x0.Specification
SUBROUTINE TB01VY( APPLY, N, M, L, THETA, LTHETA, A, LDA, B, LDB,
$ C, LDC, D, LDD, X0, DWORK, LDWORK, INFO )
C .. Scalar Arguments ..
CHARACTER APPLY
INTEGER INFO, L, LDA, LDB, LDC, LDD, LDWORK, LTHETA, M,
$ N
C .. Array Arguments ..
DOUBLE PRECISION A(LDA,*), B(LDB,*), C(LDC,*), D(LDD,*),
$ DWORK(*), THETA(*), X0(*)
Arguments
Mode Parameters
APPLY CHARACTER*1
Specifies whether or not the parameter vector should be
transformed using a bijective mapping, as follows:
= 'A' : apply the bijective mapping to the N vectors in
THETA corresponding to the matrices A and C;
= 'N' : do not apply the bijective mapping.
The transformation performed when APPLY = 'A' allows
to get rid of the constraints norm(THETAi) < 1, i = 1:N.
A call of the SLICOT Library routine TB01VD associated to
a call of TB01VY must use the same value of APPLY.
Input/Output Parameters
N (input) INTEGER
The order of the system. N >= 0.
M (input) INTEGER
The number of system inputs. M >= 0.
L (input) INTEGER
The number of system outputs. L >= 0.
THETA (input) DOUBLE PRECISION array, dimension (LTHETA)
The leading N*(L+M+1)+L*M part of this array must contain
the parameter vector that defines a system (A, B, C, D),
with the initial state x0. The parameters are:
THETA(1:N*L) : parameters for A, C;
THETA(N*L+1:N*(L+M)) : parameters for B;
THETA(N*(L+M)+1:N*(L+M)+L*M) : parameters for D;
THETA(N*(L+M)+L*M+1:N*(L+M+1)+L*M): parameters for x0.
LTHETA INTEGER
The length of array THETA. LTHETA >= N*(L+M+1)+L*M.
A (output) DOUBLE PRECISION array, dimension (LDA,N)
The leading N-by-N part of this array contains the system
state matrix corresponding to the output normal form with
parameter vector THETA.
LDA INTEGER
The leading dimension of array A. LDA >= MAX(1,N).
B (output) DOUBLE PRECISION array, dimension (LDB,M)
The leading N-by-M part of this array contains the system
input matrix corresponding to the output normal form with
parameter vector THETA.
LDB INTEGER
The leading dimension of array B. LDB >= MAX(1,N).
C (output) DOUBLE PRECISION array, dimension (LDC,N)
The leading L-by-N part of this array contains the system
output matrix corresponding to the output normal form with
parameter vector THETA.
LDC INTEGER
The leading dimension of array C. LDC >= MAX(1,L).
D (output) DOUBLE PRECISION array, dimension (LDD,M)
The leading L-by-M part of this array contains the system
input/output matrix corresponding to the output normal
form with parameter vector THETA.
LDD INTEGER
The leading dimension of array D. LDD >= MAX(1,L).
X0 (output) DOUBLE PRECISION array, dimension (N)
This array contains the initial state of the system, x0,
corresponding to the output normal form with parameter
vector THETA.
Workspace
DWORK DOUBLE PRECISION array, dimension (LDWORK)
LDWORK INTEGER
The length of the array DWORK.
LDWORK >= N*(N+L+1).
Error Indicator
INFO INTEGER
= 0: successful exit;
< 0: if INFO = -i, the i-th argument had an illegal
value.
Method
The parameters characterizing A and C are used to build N orthogonal transformations, which are then applied to recover these matrices.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None