SB16CY

Cholesky factors of controllability and observability Grammians of coprime factors of a state-feedback controller

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

Purpose

  To compute, for a given open-loop model (A,B,C,0), and for
  given state feedback gain F and full observer gain G,
  such that A+B*F and A+G*C are stable, the Cholesky factors
  Su and Ru of a controllability Grammian P = Su*Su' and of
  an observability Grammian Q = Ru'*Ru corresponding to a
  frequency-weighted model reduction of the left or right coprime
  factors of the state-feedback controller.

Specification
      SUBROUTINE SB16CY( DICO, JOBCF, N, M, P, A, LDA, B, LDB, C, LDC,
     $                   F, LDF, G, LDG, SCALEC, SCALEO, S, LDS, R, LDR,
     $                   DWORK, LDWORK, INFO )
C     .. Scalar Arguments ..
      CHARACTER        DICO, JOBCF
      INTEGER          INFO, LDA, LDB, LDC, LDF, LDG, LDR, LDS, LDWORK,
     $                 M, N, P
      DOUBLE PRECISION SCALEC, SCALEO
C     .. Array Arguments ..
      DOUBLE PRECISION A(LDA,*), B(LDB,*), C(LDC,*), DWORK(*),
     $                 F(LDF,*), G(LDG,*), R(LDR,*), S(LDS,*)

Arguments

Mode Parameters

  DICO    CHARACTER*1
          Specifies the type of the open-loop system as follows:
          = 'C':  continuous-time system;
          = 'D':  discrete-time system.

  JOBCF   CHARACTER*1
          Specifies whether a left or right coprime factorization
          of the state-feedback controller is to be used as follows:
          = 'L':  use a left coprime factorization;
          = 'R':  use a right coprime factorization.

Input/Output Parameters
  N       (input) INTEGER
          The order of the open-loop state-space representation,
          i.e., the order of the matrix A.  N >= 0.

  M       (input) INTEGER
          The number of system inputs.  M >= 0.

  P       (input) INTEGER
          The number of system outputs.  P >= 0.

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

  LDA     INTEGER
          The leading dimension of 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
          input/state matrix B of the open-loop system.

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

  C       (input) DOUBLE PRECISION array, dimension (LDC,N)
          The leading P-by-N part of this array must contain the
          state/output matrix C of the open-loop system.

  LDC     INTEGER
          The leading dimension of array C.  LDC >= MAX(1,P).

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

  LDF     INTEGER
          The leading dimension of array F.  LDF >= MAX(1,M).

  G       (input) DOUBLE PRECISION array, dimension (LDG,P)
          The leading N-by-P part of this array must contain a
          stabilizing observer gain matrix.

  LDG     INTEGER
          The leading dimension of array G.  LDG >= MAX(1,N).

  SCALEC  (output) DOUBLE PRECISION
          Scaling factor for the controllability Grammian.
          See METHOD.

  SCALEO  (output) DOUBLE PRECISION
          Scaling factor for the observability Grammian.
          See METHOD.

  S       (output) DOUBLE PRECISION array, dimension (LDS,N)
          The leading N-by-N upper triangular part of this array
          contains the Cholesky factor Su of frequency-weighted
          cotrollability Grammian P = Su*Su'. See METHOD.

  LDS     INTEGER
          The leading dimension of the array S.  LDS >= MAX(1,N).

  R       (output) DOUBLE PRECISION array, dimension (LDR,N)
          The leading N-by-N upper triangular part of this array
          contains the Cholesky factor Ru of the frequency-weighted
          observability Grammian Q = Ru'*Ru. See METHOD.

  LDR     INTEGER
          The leading dimension of the array R.  LDR >= MAX(1,N).

Workspace
  DWORK   DOUBLE PRECISION array, dimension (LDWORK)
          On exit, if INFO = 0, DWORK(1) returns the optimal value
          of LDWORK.

  LDWORK  INTEGER
          The length of the array DWORK.
          LDWORK >= MAX(1, N*(N + MAX(N,M) + MIN(N,M) + 6)),
                                                    if JOBCF = 'L';
          LDWORK >= MAX(1, N*(N + MAX(N,P) + MIN(N,P) + 6)),
                                                    if JOBCF = 'R'.
          For optimum performance LDWORK should be larger.
          An upper bound for both cases is
          LDWORK >= MAX(1, N*(N + MAX(N,M,P) + 7)).

Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          < 0:  if INFO = -i, the i-th argument had an illegal
                value;
          = 1:  eigenvalue computation failure;
          = 2:  the matrix A+G*C is not stable;
          = 3:  the matrix A+B*F is not stable;
          = 4:  the Lyapunov equation for computing the
                observability Grammian is (nearly) singular;
          = 5:  the Lyapunov equation for computing the
                controllability Grammian is (nearly) singular.

Method
  In accordance with the type of the coprime factorization
  of the controller (left or right), the Cholesky factors Su and Ru
  of the frequency-weighted controllability Grammian P = Su*Su' and
  of the frequency-weighted observability Grammian Q = Ru'*Ru are
  computed by solving appropriate Lyapunov or Stein equations [1].

  If JOBCF = 'L' and DICO = 'C', P and Q are computed as the
  solutions of the following Lyapunov equations:

         (A+B*F)*P + P*(A+B*F)' +  scalec^2*B*B' = 0,  (1)

         (A+G*C)'*Q + Q*(A+G*C) +  scaleo^2*F'*F = 0.  (2)

  If JOBCF = 'L' and DICO = 'D', P and Q are computed as the
  solutions of the following Stein equations:

         (A+B*F)*P*(A+B*F)' - P +  scalec^2*B*B' = 0,  (3)

         (A+G*C)'*Q*(A+G*C) - Q +  scaleo^2*F'*F = 0.  (4)

  If JOBCF = 'R' and DICO = 'C', P and Q are computed as the
  solutions of the following Lyapunov equations:

         (A+B*F)*P + P*(A+B*F)' +  scalec^2*G*G' = 0,  (5)

         (A+G*C)'*Q + Q*(A+G*C) +  scaleo^2*C'*C = 0.  (6)

  If JOBCF = 'R' and DICO = 'D', P and Q are computed as the
  solutions of the following Stein equations:

         (A+B*F)*P*(A+B*F)' - P +  scalec^2*G*G' = 0,  (7)

         (A+G*C)'*Q*(A+G*C) - Q +  scaleo^2*C'*C = 0.  (8)

References
  [1] Liu, Y., Anderson, B.D.O. and Ly, O.L.
      Coprime factorization controller reduction with Bezout
      identity induced frequency weighting.
      Automatica, vol. 26, pp. 233-249, 1990.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index