Appendix B) or from the PIF library (PIFLIBO in Appendix B). This
" III. SUBROUTINE DOCUMENTATION All subroutines used by PIFCGT are from ORACLS (ORACLIB in Appendix B) or from the PIF library (PIFLIBO in Appendix B). This chapter individually documents in alphabetical order the PIF library subroutines. The documentation follows the same format at ORACLS in Ref. 2.
A. BLOCK DATA (AEROD) 1. PURPOSE Block data program AEROD initializes aerodynamic data in common blocks AERO and AERI. Other variables are initialized from common blocks listed in 2d below.
2. USAGE Under the NOS 1.3 operating system, AEROD is placed in the submit file as shown in Appendix B.
a. Calling Sequence None b. Input Arguments None c. Output Arguments None d. Common Blocks RNINFO, LABEL, EIGEN, GLAD, IDENTS, DEBUG, AERO, AER1, HDXA e. Error Messages None f. Subroutines Employed by AEROD None g.
Subroutines Employing AEROD None h. Concluding Remarks None B. SAMPLED-DATA REGULATOR (ALPHA AND BETA) 1. PURPOSE The purpose of the subroutines ALPHA and BETA is to compute the following functions depending on the values of LLL and H, If
LLL = 2, and H = 0.0 then compute
ATs As /,t fT SUM = ds Q fT e ds dT e (1) 0 0 If LLL = 1, and H = -1.0 then compute T A As f/:'t e T Q fT SUM e ds dT (2) Subroutine ALPHA calls subroutine BETA as part of its execution.
2. USAGE a. Calling Sequence CALL ALPHA (N, A, AT, ASIG, SIG, 0, GEST, EPSLO, LLL, H, SUM, AI, SSl, SS, A2, BVEC, AVEC, XMLIH) b. Input Arguments N Integer scalar value indicating matrix dimension; A, AT, ASIG, Q, SUM, AI, SSI, SS, A2, BVEC, AVEC, XMLIH - all N x N.
A Matrix packed by column in one-dimensional array; not destroyed upon return.
AT Matrix packed by column in one-dimensional array; not destroyed upon return. AT must contain the transpose of A.
ASIG, AI, SSl, SS, A2, BVEC, AVEC, XMLIH Working space vectors of dimension at least N x N SIG Real scalar indicating the sampling time /:,t.
GEST An index for starting the test of convergence in computing the integrals. A value of 5.0 is recommended.
EPSLO Real scalar indicating the convergence criterion in computing the integrals. A value of 0.00001 is recommended.
LLL, H An integer scalar and a real scalar, respectively, used to determine the integrals discussed in the PURPOSE section.
c. Output Arguments SUM An N x N matrix packed by columns into a one-dimensional array containing the evaluation of the computed integrals.
d. Common Blocks None e. Error Messages None f. Subroutines Employed by ALPHA and BETA ORACLS - MULT, UNITY g. Subroutines Employing ALPHK and BETA PIFLIB - QRMHAT h. Concluding Remarks None C. SOLUTION OF A*Y*B-X=C (AXBMXC) 1. PURPOSE Subroutine AXBMXC solves the algebraic matrix equation (1) A*X*B - X C First the matrix A is transformed to the lower real SCHUR form using the unitary transformation U. Next, the matrix B is transformed to upper real SCHUR form using the unitary transformation V. The matrix T C is transformed using U * C * V. Equation 1 reduces to (2) or (3) A*X*B-X=C g s s s s The subroutine SHRSOL is used to solve Eq. 3 for X. The solution X, s is reconstructed for X as follows s It is assumed that (5 )
A~ A~ # 1 (i=1,2, ... ,N; j=l,2, •.. ,M)
A B where A. and A. are eigenvalues of A and B respectively. If Eq. 5 1 J is true, Eq. 1 has a unique solution for X.
2. USAGE a. Calling Sequence CALL AXBMXC (A,U,B,V,C,N,NA,NU,M,NB,NV,NC,EPSA,EPSB,FAIL) b. Input Arguments Matrices stored in two-dimensional array. First dimensions A,B,C are NA, NB, and NC, respectively. Second dimensions are at least N, M, and N, respectively. Destroyed upon return.
N Order of the matrix A M Order of the matrix B NA,NB,NC, NU,NV Maximum first dimensions of the matrices A, B, C, U, and V, respectively, as given jn the dimension statement of the calling program. It is required that NA .GT.N+l, NB .GT. M+l, NC .GT. N+l, NU .GT. N+l, and NV .GT. M+l EPSA Criterion for zeroing elements in the matrix A in the subroutine SCHUR. A(I,J) is considered effectively 0 if it is less than EPSA times the infinity norm of the upper Hessenberg form of A NOTE: If EPSA .LT. 0 it is assumed that A is already in lower real SCHUR form and U is the appropriate trans- formation matrix.
EPSB Criterion for zeroing elements in the matrix B in the subroutine SCHUR. B(I,J) is considered effectively 0 if it is less than EPSA times the infinity norm of the upper Hessenberg form of B.
NOTE: If EPSB .LT. 0 it is assumed that B is already in upper real SCHUR form and V is the appropriate trans- formation matrix.
c. Output Arguments FAIL Integer flag indicating success of reduction of A and B to lower and upper real SCHUR form. If FAIL is not zero, SCHUR was unsuccessful.
U Two-dimensional array containing the orthogonal matrix which reduces A to lower real SCHUR form. First dimension is NU.
Second dimension is at least N.
v Two-dimensional array containing the orthogonal matrix which reduces B to upper real SCHUR form. First dimension is NV.
Second dimension is at least M.
A,B Two-dimensional arrays containing the original A and B matrices transformed to lower and upper real SCHUR form, respectively.
C Two-dimensional array containing the solution, X.
d. COMMON Blocks None e. Error Messages None f. Subroutines Employed by AXBMXC ORACLS - BCKMLT, HSHLDR, SCHUR, SYSSLV PIFLIB - SHRSOL g. Subroutines Employing AXBMXC PIFLIB - SOLVER h. Concluding Remarks It is recommended that the program SOLVER, which calls AXBMXC, be used to solve Eq. 1. This subroutine is a generalization of the algorithm reported in Ref. 3.
D. CREATE WEIGHTING MATRICES (CFWM) 1. PURPOSE The subroutine CFWM constructs the diagonal weighting matrices used in the PIF control law quadratic cost function. The state weights UBQ, WBQ, QBQ, THQ, XIQ, ZIQ, VHQ, RBQ, PBQ, PHQ, PSQ, YIQ are squared and placed along the Q matrix diagonal. The control weights DTH, DER, DA, and DRR are squared and placed along the R matrix diagonal. The control rate weights DTHD, DERD, DARD, DRRD are squared and placed along the RD matrix diagonal. The integrator weights ZIQ, Z2Q, Z3Q and Z4Q are squared and placed along the QZ matrix diagonal. The state rate weights UBDQ, WBDQ, QBDQ, THDQ, XIDQ, ZIDQ, VBDQ, RBDQ, PBDQ, PHDQ, PSDQ and YIDQ are squared and placed along the \.J9 (LWl) diagonal. The following matrix is constructed
G]
_Q~ 1 ~:] = [FTJ W9(LWl) [F
(1) T
[
AM I Rl G I The Ql matrix is added to Q and the Rl matrix is added to R completing the weighting matrix constructions. F and G are the continuous-time plant system matrix and control effect matrix, respectively.
2. USAGE a. Calling Sequence CALL CFWM(F, NF, G, NG, Q, NQ, R, NR, AM, NAM, RD, NRD, QZ, NQZ, W9, NW9DIM, DEBUG) b. Input Arguments F, G Matrices packed by columns into one-dimensional arrays; not destroyed upon return.
NF, NG, NQ, NR, NAM, NRD, NQZ Two dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N. Integer values must be: NF(12, 12), NG(12, 4), NQ(12, 12), NR(4, 4), NAM(4, 12,), NRD(4, 4), NQZ(12, 12).
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 4 * «NF(l) + NG(2»**2 + 1).
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
c. Output Arguments Q, R, AM, RD, QZ Weighting matrices packed by columns into one dimensional arrays.
d. COMMON Blocks QWHT e. Error Messages If the W9 matrix is insufficiently large the message "THE W9 MATRIX IS SMALL" is printed and the program stops. If DEBUG is true then Q, R, RD, QZ, and W9(LW1) (QDVE) are printed after being diagonally constructed. After the state rate construction and assimilation Q, R, RD, QZ, and W9(LWl) (QDVE) are printed again along with AM.
f. Subroutines Employed by CFWM ORACLS - JUXTC, ADD, PRNTITL, DIAGPUT, PRNT, MATBA, EXTR g. Subroutines Employing QRMHAT PIFLIB - PIFCGT h. Concluding Remarks None E. FEEDFORWARD MATRICES (CGTPIF) 1. PURPOSE Subroutine CGTPIF computes the feedforward matrices Sll' S12' S2l' S22' S3l' S32' S4l' and S42· The subroutine determines the feed- forward matrices by solving the following matrix equation The feed forward matrix equation is valid for both continuous-time models and discrete-time models. The scalar 5S in Eq. 1 is chosen by the designer under the following restrictions. ss cannot equal a transmission zero of the plant. If the dynamical models are repre- sent at ions of continuous-time systems and S12' S22' S32' or S42 is to be determined, then ss must be zero. If the dynamical models are representations of discrete-time systems and S12' S22' S32 or S42 is to be determined then 58 must be one.
The plant, disturbance, and model matrices in the feedforward matrix equations are assumed to satisfy the following dynamical equations CONTINUOUS TIMB PLANT (2)
x = Fx + Gu + Aw + Bs
y = Hx + Du + Cw + Es (3) DISTURBANCE TO BE REJECTED
w = F w + G s (4)
w- w- MODEL TO BE FOLLOWED (5) x F x + G u -m nrm nrm (6) H x + D u ~= nrm nrm DISCRETE TIME PLANT (7) ~+l F~ + G~ + A~ + B~ (8) ~ H~+D~+C~+E~ DISTURBANCE TO BE REJECTED (9) ~+l = FA + GA MODEL TO BE FOLLOWED (10) x Gu Fx k+ k -r'l,k+l m-m, nr-m, (ll) Du Hx k+ k ~,k m-m, m-m, The program begins by forming the quad partition mat~ix on the left side of Eq. 1. If the number of outputs in y equal the number of controls in~, the program attempts to invert the quad partit~on matrix using GELIM. If the quad partition matrix is not square or GELIM encountered an error in attempting to invert the quad parti- tion matrix, CGTPIF attempts to find the pseudo-inverse of the quad partition matrix using singular value decomposition (SNVDEC). If SNVDEC also encounters an error, a message is printed and the program continues.
After obtaining the inverse (or pseudo-inverse) (12) Eq. 1 is separated into eight algebraic matrix equations, (13) 0Il Sll(F -ssI) + °12 Hm Su m = (14) 0Il Sll G + 012 Dm S12 m H (15) Sll(F -ssI) + 022 S21 °21 m m (16) S11 G + S1 Dm S22 °21 m 22 (17) S31(F -ssI) + S1 A - S1 C S31 = S1 11 12 U w S1 B E (18) S31 G °ll - °12 S32 w - U S1 C (19) S31(F -ssI) + S1 A - °22 S41 21 w B (20) 021 S31 G - 021 - °22E S42 m Equations 13 and 17 are solved using SOLVER. Equations 14, 15, 16, 18, 19, and 20 are solved using matrix multiplication.
2. USAGE a. Calling Sequence CALL CGTPIF (F,G,H,D,A,B,C,E,FW,GW,FM,GM,HM,DM,W1,W2,W3,W4,W5,Oll,O12, 02l,022,Sll,S12,S21,S22,S31,S32,S4l,S42,N,M,L,NM,MM,NW,MW,TOL,ITER,SS, ICGT,ECGT,NS11,NS12,NS21,NS22,NS31,NS32,NS41,NS42) b. Input Arguments
GM,HM,DM Matrices packed by columns in one-dimensional arrays; not
F,G,H,D, A,B,C,E, FW,GW,FM, GM,HM,DM Matrices packed by columns in one-dimensional arrays; not destroyed upon return.
N,M,L, NM,MM, NW,MW Integer scalar values indicating matrix dimensions: F-NxN, G-NxM, H-LxN, D-LxM, A-NxNW, B-NxMW, C-LxNW, E-LxMW, FW-NWxNW, GW-NWxMW, FM-NMxNM, GM-NMxMM, HM-LxNM, DM-LxMM TOL Real scalar indicating convergence criteria for iterative refinement in 80LVER. Recommend 1.OE-10 for CDC machine.
ITER Integer scalar indicating maximum number of iterative refinements in SOLVER. Recommend 10.
ECGT Real scalar indicating convergence criteria in 80LVER for inverting a matrix. Recommend 1.OE-lO for CDC machine.
ICGT Five dimensional integer option vector: ICGT(l) = 1 011, 012, 021, 022 constructed.
FM,GM,HM,DM,8ll,8l2,S22,FW,GW,A,B,C,E, 831,832,S4l,842 must appear in calling sequence but are not used in program execution.
ICGT(l) = 2 811, 821 constructed.
82l,822,FW,GW,A,B,C,E,83l,832,84l,842 must appear in calling sequence but are not used in program execution.
ICGT (1) 3 Sll, S12, S2l, S22 constructed.
FW,GW,A,B,C,E,S3l,S32,S4l,S42 must appear in calling sequence but are not used in program execution.
ICGT(l) = 4 S3l, S32, S4l, S42 constructed.
FM,GM,HM,DM,Sll,S12,S2l,S22 must appear in calling sequence but are not used in program execution.
ICGT(l) = Construct 5 all feed forward matrices.
ICGT(4) = 1 Print out 011, 012, 021, 022 matrices.
ICGT(4) 2 Print out all matrices.
ICGT(5) = 1 Do not perform quad inverse. 011, 012, 021, 022, are passed in calling sequence.
SS Scalar option SS = 1.0 if ICGT(l) .GT. 2 and plant, model and disturbance are discrete time models
SS = 0.0 if ICGT(l) .GT. 2 and plant, model and disturbance
are continuous time models SS Any number if ICGT(l) .LE. 2 except plant transmission zeroes.
Wl,W2,W3 W4,W5 Working space vectors of dimension at least: WI - (2*(N+MAX(L,M)+2»**2, W2,W3,W4,W5 - (N+MAX(L,M)+2)**2 c. Output Arguments 011,012, 021,022 Matrices packed by columns into one-dimensional arrays.
Upon normal return and depending on lCGT, the matrices contain the partitioned quad inverse
012]
[011
[nll n12] =
S1 021 022 S1 21 22 Dimensions of the matrices are at least: Sl1, S12, S21,S22, S31,832, S41,S42 Matrices packed by columns into one-dimensional arrays.
Upon normal return and depending on lCGT, the matrices con- tain the feedforward matrices. Dimensions of the matrices are at least (N+MAX(NM,NW)+2)**2.
NSll,NS12, NS21,NS22, NS31,NS32, NS41,NS42 Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N. Example, N811(1) = N NSll(2) NM d. COMMON Blocks None e. Error Messages If ICGT(l) .GT. 2 and SS .NE. 1 the message "???????????? SS IS INCORRECT IN CGT ???????????? BUT PROGRAM CONTINUES SS = is printed.
"
-----
If the plant is a continuous-time model and SS = 0.0, then the error should be ignored. CGTPIF cannot determine if the dynamic models are continuous or discrete and operates under the implicit assumption that the models are discrete.
If GELIM or SNVDEC encounter an error the message "SNVDEC ERROR IN CGT IERR = " is printed.
f. Subroutines Employed by CGTPIF ORACLS - MULT, NULL, SCALE, SUBT, UNITY, ADD, NORMS, BCKMLT, HSHLDR, SCHUR, SYSSLV, GELIM, DETFAC PIFLIB - AXBMXC, SHRSOL, PRNT, PRNTITL.
g. Subroutines Employing CGTPIF PIFLIB - PIFCGT, PIFPLC h. Concluding Remarks The theory and use of feed forward matrices are discussed in Refs. & and 5.
F. CLOSED-LOOP d MODEL (CLDMOD) 1. PURPOSE Subroutine CLDMOD propagates the dynamic command model for the APR GS autopilot mode. The subroutine is similiar to the APR GS command model in the flight computer code. A discussion of the equations used in CLDMOD is given in Ref. 1.
2. USAGE a. Calling Sequence CALL CLDMOD (Dl, DO, LAMDMAX, LAMIN, DEBUG, LAMDAGS, VTP, LAMC, GKDSLP, GKDICP, GKDMAX, GKDMIN) b. Input Arguments k and k-l commanded d perpendicular position of aircraft Dl, DO from glideslope. Changed upon return.
LAMDMAX The maximum allowed flight path angle change in DELT seconds (ZDDMAX in input NAMELIST) DELT The control law sampling interval LAMAX The maximum allowed flight path angle. (ZCLMAX in input NAMELIST) LAMIN The minimum allowed flight path angle. (ZCLMIN in input NAMELIST) DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information LAMDAGS The glides lope angle (positive) VTP The total airspeed in ft/sec LAMC The commanded model dynamics flight path angle at k-l.
Changed upon return.
GKDSLP The slope gain for computing the DO feedback gain.
The intercept gain for computing the DO feedback gain.
GKDICP The maximum DO feedback gain value.
GKDMAX GKDMIN The minimum DO feedback gain value.
c. Output Arguments k+l and k commanded d perpendicular position of aircraft DI, DO from gUdeslope.
LAMC The commanded model dynamics flight path angle at k.
d. COMMON Blocks None e. Error Messages The first pass through the subroutine causes GKl, LAMAX, LAMIN and LAMDAGS to be printed out. If DEBUG is TRUE, Dl, 0.0, LAMDAGS, GKl, and LAMC are printed out during the course of the simulation.
f. Subroutines Employed by CLDMOD None g. Subroutines Employing CLDMOD PIFLIB - DPIFS h. Concluding Remarks None G. CLOSED-LOOP Y MODEL (CLYMOD) 1. PURPOSE Subroutine CLYMOD propagates the dynamic command model for the APR LOCI, APR LOCR, and APR LOCP autopilot modes. The subroutine is simi- liar to the'APR LOC command model propagation model in the flight computer code. A discussion of the equations used in CLYMOD is given in Ref. 1.
2. USAGE a. Calling Sequence CALL CLYMOD (YI, YO, PSII, PSIO, YC, PSIC, AK2, ROLLCM, GKDSLP, GKDICP, GKDMAX, GKDMIN, DELT, DEBUG RDCMAX, VTP, ROLLC) b. Input Arguments YI, YO k and k-I commanded Y position of aircraft from localizer ~ beam center line. Changed upon return.
PSII, PSIO k and k-I commanded yaw position of the aircraft relative to the runway. Changed upon return.
YC The commanded value of y which is set to 0.0.
The maximum allowed intercept angle, usually 45 deg.
PSIC AK2 The yaw error feedback gain for the roll angle command.
ROLLCM The maximum allowed value of the roll angle command during capture (ZDDMAX in input NAMELIST) GKDSLP The slope gain for computing the YO feedback gain.
GKDICP The 1ntercept gain for computing the YO feedback gain.
GKDMAX The maximum YO feedback gain value.
GKDMIN The minimum YO feedback gain value.
DELT The control law sampling interval.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information RDCMAX The maximum allowed roll angle change in DELT sec (ZCDMAX in input NAMELIST) VTP The total airspeed in ft/sec ROLLC The commanded value of roll angle at k-l. Changed upon return.
c. Output Arguments k+l and k commanded y position of aircraft from beam YI, YO center line.
PSII, PSIO k+l and k commanded yaw position of aircraft.
ROLLC The commanded value of roll angle at k.
d. COMMON Blocks None e. Error Messages The first pass through the subroutine causes PSIC, 'AK2, ROLLCM and RDCMAX to be printed out. If DEBUG is TRUE, PSICM, YO, GK2, PSIO, ROLLC, Xl, GKI and PSID are printed out during the course of the simulation.
f. Subroutines Employed by CLYMOD None g. Subroutines Employing CLYMOD PIFLIB - DPIFS h. Concluding Remarks None
R. CLOSED-LOOP W AND Z MODEL (CLXMOD)
1. PURPOSE Subroutine CLXMOD propagates the dynamic command model for the HOG SEL and ALT SEL autopilot modes. The subroutine is similiar to the RDG SEL and ALT SEL command model propagation models in the flight computer code. A discussion of the equations used in CLXMOD is given in Ref. 1.
2. USAGE a. Calling Sequence CALL CLXMOD (Zl, ZO, ZD1, ZDO, ZC1, ZCD, AK1, AK2, ZDDMAX, ACLOSE ZDOMAX, DELT, ZCLMAX, ZCLMIN, ZCDEAD, DEBUG, ZCDMAX, ICROSE, VTPO b. Input Arguments Zl, ZO k and k-l commanded z (~) position of aircraft ZD1, ZDCP k and k-1 commanded z (CP) of aircraft. .
ZC1 Commanded value of Z(~) position the model is required to track.
ZCD Commanded value of z (CP), usually 0.0.
AKl, AK2 Position and velocity feedback gains for the model
ZDDMAX The maximum allowed model acceleration (z or ¢)
DELT The sampling interval of the control law DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information ICROSE Integer scalar indicating the desired autopilot design (See RDCON) VTP Th~ total airspeed in ft/sec.
c. Output Arguments Zl, ZO k+l and k commanded z (~) position of aircraft , ZDl, ZDO k+l and k commanded z (~) of aircraft d. COMMON Blocks None e. Error Messages The first pass through the subroutine causes AKI, AK2, ZDDMAX, and ZCLOSE to be printed out. If DEBUG is TRUE then ZCI, ZO, ZDG, ZDO ZDD, Xl, GKI, and ZDOMAG are printed out.
f. Subroutines Employed by CLXMOD None g. Subroutines Employing CLXMOD PIFLIB - DPIFS h. Concluding Remarks None 1. COMBINE MATRICES (CORNER) 1. PURPOSE Subroutine CORNER inserts one matrix into another such that they have a common corner.
2. USAGE a. Calling Sequence CALL CORNER (A,NA,B,NB,IWHERE) b. Input Arguments A Matrix packed by columns; destroyed upon return.
B. Matrix packed by columns; not destroyed upon return.
NA,NB Two-dimensional vectors giving number of rows and columns of respective matrices, for example:
NA(l) = number of rows of A
NA(2) number of columns of A Not destroyed upon return.
IWHERE Option for combination of the two matrices: 1 use lower left corner as cornman, 2 use upper right corner as common.
c. Output Arguments A Matrix packed by columns containing A & B combined.
d. COMMON Blocks None e. Error Messages If either NA(l) < NB(l) or NA(2) < NB(2), or NA(l) x NA(2) < 1, or NB(l) x NB(2) < 1, the message "DIMENSION ERROR IN CORNER NA = ___ _ NB = " is printed and the program is returned to the calling point.
f. Subroutines Employed by CORNER None g. Subroutines Employing CORNER PIFLIB - PIFMODL, QRMPl, QRMHAT, PIFG, FGAERO, PIFEIG h. Concluding Remarks Matrix B replaces a portion of A. Therefore A must be as big or bigger than B. This is essentially an overlaying process. If IWHERE is 1, B is positioned such that the lower left corner element of A is replaced with the lower left corner of B and so forth. IWHERE of 2 indicates that the upper right corner of A and B are made equal. If B is smaller than A, one corner of B will occur part way into A. See Diagram below.
IWHERE 1 =
f--t ]
placed here IWHERE = 2
[ A~~r
J.
DIAGONAL PARTITION (DIAGPABt 1. PURPOSE To combine two matrices such that they become the top left and bottom right matrices of a quad partition matrix. The top right and bottom left matrices are set to zero in the quad partition matrix.
2. USAGE a. Calling Sequence CALL DIAGPAR (A,NA,B,NB,C,NC) b. Input Arguments A,B Matrices packed by columns in one-dimensional arrays; not destroyed upon return.
NA,NB Two-dimensional vectors giving the number of rows and columns of respective matrices; for example: NA(l) = Number of rows of A NA(2) = Number of columns of A Not destroyed upon return.
c. Output Arguments C Matrix packed by columns in a one-dimensional array. Upon return A becomes the upper left hand matrix and B becomes the lower left hand matrix within the quad partition matrix C. If NB(l) = 0, then C = A.
NC Two dimensional vector: Upon return, NC(l) NA(l) + NB(l)
NC(2) = NA(2) + NB(2)
unless NB(l) = 0, then
NC(l) = NA(l) NC(2) NA(2) d. COMMON Blocks None e. Error Messages None f. Subroutines employed by DIAGPAR ORACLS - NULL and EQUATE.
g. Subroutines employing DIAGPAR PIFLIB - PIFMODL, PIFG, FGAERO, PIFEIG.
h. Concluding Remarks K. FORM A DIAGONAL MATRIX (DIAGPUT) 1. PURPOSE Places elements of a vector along the diagonal of a square matrix.
2. USAGE a. Calling Sequence CALL DIAGPUT (A,NA,B,NB) b. Input Arguments A Vector of elements to be placed on diagonal of output matrix.
NA Number of elements in A.
c. Output Arguments B Matrix with diagonal elements from A packed by columns in one dimensional array, off diagonal elements are zero.
NB Two-dimensional vector containing number of rows and columns in B.
NB(l) = NA
NB(2) = NA
d. COMMON blocks None e. Error Messages None f. Subroutines employed by DIAGPUT: ORACLS - NULL g. Subroutines employing DIAGPUT: PIFLIB - CFWM, FGAERO, PIFEIG.
h. Concluding Remarks A = b, c, d, Example [ a,
eJ
B 0 0 0 b 0 0 0 c 0 0 0 d
~]
[~
0 0 0 45 L. DIMENSIONS (DIMSS) 1. PURPOSE The subroutine DIMSS loads the integer dimensions into the two dimensional vectors.
2. USAGE a. Calling Sequence CALL DIMSS (N, M, L, NM, MM, NF, NQ, NAM, NR, NG, NH, ND, NFM, NGM, NHM, NDM, NPH, NGA, NQH, NRH, NAMH, NGK, NX, NPHC, NGKQ, NGKI, NQZ) b. Input Arguments N, M, L, NM,MM Integer scalars indicating matrix dimensions. N is the number of plant states, M is the number of plant controls, L is the number of plant,commands, NM is the number of model states and MM is the number of model controls.
c. Output Arguments NQ, NAM, NR, NF, ND, NFM, NH, NG, NGM, NHM, NDM, NPH, NGA, NQH, NRH, NAMH, NGK, NX, NPHC, NGKQ, NGKI, NQZ Two dimensional integer vectors holding the number of rows and columns of the matrix shown after the letter N.
d.COMMON Blocks None e. Error Messages None f. Subroutines Employed by DIMSS PIFLIB - PRNTITL g. Subroutines Employing DIMSS PIFLIB - PIFCGT h. Concluding Remarks None M. DISCRETE MODEL CONSTRUCTION (DISCMOD) 1. PURPOSE Subroutine DISCMOD transforms the continuous-time representations of the plant Fx + Gu (1) and model x =Fx +Gu (2) -ro m-m m-m to the equivalent discrete representations (3) ~+1 = DF ~k + DG ~ x (4) DFM x k + DGM u k -ro,k+1 -ro, -ro, The controls £k and u are assumed constant over the uniform sampling -ro,k interval, DELT. The equations, using the plant dynamics as an example, are: F*DELT DF e (5)
DG = [lDELT e F*S d~J * G
(6) 2. USAGE a. Calling Sequence CALL DISCMOD (F, NF, G, NG, FM, NFM"GM, NGM, DF, DG, DFM, DGM, W9, NW9DIM, DELT, DEBUG, ICH)
GM Matrices packed by columns into one-dimensional arrays.
b. Input Arguments F, G, FM, GM Matrices packed by columns into one-dimensional arrays.
Not destroyed upon return.
NF, NG, NFM, NGM Two dimensional integer vectors holding the number of rows and columns of the matrix shown after the letter N.
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 2*(NF(1) ** 2 + 1) ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information DELT Real scalar containing the sampling time.
NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
c. Output Arguments DF, DG, DFM, DGM Matrices packed by columns into one dimensional arrays.
If ICH (3,1) is TRUE then the matrices contain the discrete plant representations. If ICH (3,1) is FALSE then DF, DG, DFM, DGM are set equal to F, G, FM, GM.
d. COMMON Blocks None e. Error Messages If DEBUG is TRUE then DFM, DGM, DF, DG are printed.
f. Subroutines Employed by DISCMOD ORACLS - NORMS, EXPINT, UNITY, EQUATE, SCALE, NULL, ADD, LNCNT, MAXEL PIFLIB - PRNTITL, PRNT g. Subroutines Employing DISCMOD PIFLIB - PIFCGT h. Concluding Remarks The ORACLS subroutine EXPINT cannot compute DFM if FM is the null matrix. Special logic is used in DISCMOD to circumvent the problem in EXPINT.
N. DISCRETE PIF CONTROL LAW SIMULATION (DPIFS) 1. PURPOSE The purpose of DPIFS is to simulate the linear PIF control law tracking the output of the chosen autopilot model being designed.
The output of DPIFS is a step by step print out of the simulation.
The discrete equations simulated by DPIFS are as follows: PLANT DYNAMICS (1) PLANT MEASUREMENTS (2) ~ RX~+DX~ MODEL DYNAMICS x (3) = DFM x k + DGM U k m,k+l m, m, OR CLXMOD, CLYMOD, or CLXMOD is called depending on the value of ICROSE PIF CONTROL LAW (4) ~k+1 = ~k + ~t ~ + S (x -x) (6) 21 -m,k+1 -m,k ,51 RELATIONSHIP BETWEEN EQUATION VARIABLES AND DPIFS'NOTATION EQUATION VARIABLE DPIFS NOTATION S11 S11 I-M' c S31 S2-f S21_ -C s32 -llt C S41 ' S42 E1 XM
2Sm-, k+1
x XM1 -ro,k x XM2 -ro,k-1' II YS(l, IP+2) -m,k+1 PU(l, IF) ~k PY(l, IP) .Yk YSS (1, IP) .Ym,k YK1 ~-1 YX{l, IF)
~~ = S112Sm~k+S12~"k+1
PX(1, IP) ~k YXK ~k EK1 ~k YU (1, IP) ~~ = S212Sm',k+S22~"k+1 EK2 ~k-1 VK1 ~ VK2 ~-1 YK Yk YMK .Ym,k YMK1 .Ym',k-l zk-1 PX(l, IF-I) The simulation begins by setting almost all state variables to zero,
the init1al condition starting point. If ICROSE = 14 (APR GS), the
initial value for d is loaded in appropriate locations. If ICROSE =
9 (APR LOCI) or ICROSE 15 (APR LOCR or APR LOCP), the initial value for y, and the intercept yaw angle are loaded in appropriate locations.
The initial values for the commands are 1n UMAG(l,l) and UMAG(2,1), as discussed in RDCON. The starting time at which the command is changed from 0.0 to the UMAG value is in USTRT(l,l) and USTRT(2,1).
The stopping t1me at which the command is returned to 0.0 is in USTP(l,l)
and USTP(2,1). The simulation is from 0.0 seconds to (IMAX-2) * DELT
seconds. All the data from the simulation are stored in two dimensional matrices (PX, YX, PU, YU, PY, YSL). The dimensions of these matrices limit the value of lMAX (300 for the NAVION autopilot designs).
2. USAGE a. Calling Sequence CALL DPIFS (DEBUG, METERS, DEBUGl, ICROSE, ZDDMAX, ZCLOSE, ZDOMAX, ZCLMIN, ZCDMAX, VTP, LAMDA, LAMDAGS, GKDSLP, GKDICP, GKDMAX, GKDMIN) b. Input Arguments ZDDMAX, ZCLOSE, ZDOMAX, AKl, AK2, ZCLMAX, ZCLMIN, LAMDA, ZCDMAX, LAMDAGS, GKDSLP, GKDICP, ~~, GKDMIN Autopilot parameters specif1ed by the designer in NAMELIST.
Definitions for these variables are provided in CLXMOD, CLYMOD, and CLDMOD documentation.
DEBUG, DEBUG 1 Logical scalars indicatlng the following: TRUE: Print out debug lnformation.
FALSE: Do not print out debug informatlon.
DEBUG is used in the subroutines CLYMOD, CLXMOD, CLDMOD.
DEBUGI is not used.
METERS If METERS is TRUE then state varlables that have units of feet are converted to units of meters before print out and plotting.
ICROSE Integer scalar indicating the desired autopilot design, (See HDCON) c. Output Arguments None d. Common Blocks DISCSV, WORKS9" MODF\ PLA, DIMNl, DIMN3, DIMN4, DIMN5, SMAT, PIFG, EIGEN, LABEL, UDIR, GLAD, DISCM, HDXA e. Error Messages If DEBUG is TRUE then the following matrices are printed out, DFM, DGM, UMAG, USTRT, USTP.
f. Subroutines Employed by DPIFS ORACLS - NULL, MULT, ADD, SUBT, EQUATE PIFLIB - PRNT2, PRNTITL, CLXMOD, CLYMOD, CLDMOD g. Subroutines Employing DPIFS PIFLIB - PIFCGT h. Concluding Remarks DPIFS does not include plotting.
O. DISCRETE RICCATI EQUATION SOLUTION (DREG) 1. PURPOSE Subroutine DREG solves the discrete Riccati equation: T (RHAT + GAMA X GAMA)-l (1) for X, then computes the feedback gain T
GK = - (RHAT + GAMA X GAMA)-l *
T (2) (GAMA X PHI + AMHAT~) The solution is obtained using NEWTON'S method as discussed in ORACLS documentation of the ASYMREG subroutine. The cross weighting matrix AMHAT is eliminated from the quadratic scalar function before solving the Riccati equation using the procedure outlined in the ORACLS sub- routine PREFIL. If ICH(2,7) is TRUE,the input gain GK must cause the closed-loop plant system matrix
PHICL = PHI + GAMA GK (3)
to be asymptotically zero. If ICH(2,7) is FALSE the subroutine at- tempts to find an initial starting stabilizing gain, GK, using the ORACLS subroutine DSTAB.
2. USAGE a. Calling Sequence CALL DREG (RHAT, NRH, AMHAT, NAM, QHAT, NQH, GAMA, NGA, X, NX, PHI, NPH, GK, NGK, PHICL, NPHC, ICH, DEBUG, ZERO, NZERO, W9, NW9DIM, lOP) b. Input Arguments RHAT, AMHAT, QHAT, GAMA, PHI Matrices packed by columns into one-dimensional arrays.
Not destroyed upon return.
GK Matrix packed by column into a one-dimensional array.
Destroyed upon return. GK is assumed to contain a stabil- izing gain if ICH(2,7) is TRUE.
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 9*(NPH(1)*NPH(2) + 1) ZERO Work matrix packed by columns into a one-dimensional array.
All elements must be zero. Dimension must be at least NPH (1) * NPH(2) + 1 ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
NGK, NX, NQH, NAM, NPH, NGA, NZERO, NPHC Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N. NZERO is the only vector destroyed upon return.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information DELT Real scalar containing the sampling time.
NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
IOP(l)=O Do not print results. Otherwise print input data, QHAT and final values of GK and X.
IOP(2)=O Do not print at each iteration. Otherwise regardless of printing specified by IOP(l), print iteration count and value of X.
IOP(3) Not Required.
IOP(4)=O Do not compute the Riccati equation residual. Otherwise compute the residual and print.
IOP(5)=O Compute but do not prlnt the eigenvalues of X, the matrix (PHI - GAMA GK) and the eigenvalues of (PHI - GAMA GK).
Otherwise print these data after computation.
c. Output Arguments X, GK, PHICL Matrices packed by columns into one-dimensional arrays containing respectively the discrete Riccati equation solution, the discrete feedback gain, and the discrete closed-loop system matrix.
NX, NGK, Two dimensional integer vectors holding the number of rows NPHC and columns of the matrix shown after the letter N.
d. COMMON Blocks None e. Error Messages If the workspace in the W9 matrix is too small the message "WORK SPACE IS TOO SMALL FOR CALCULATION". WORK SPACE =
WC =
The solution to the RICCATI equation (X) and the gain matrix (GK) are always printed out.
f. Subroutines Employed by DREG ORACLS - MULT, SUBT, TESTSTA, SCALE, RICTNWT, TRANP, ADD, EQUATE, EIGEN, JUXTC, DSTAB, UNITY, NULL, ASYMREG, PIFLIB - PRNTITL, PRNT g. Subroutines Employing DREG PFICGT h. Concluding Remarks DSTAB fails consistently in computing a stabilizing gain. An alternate method for computing the starting gain is performed by PIFCGT.
P. SUBSET OF A MATRIX (EXTR) 1. PURPOSE Subroutine EXTR extracts a matrix from within another matrix.
2. USAGE a. Calling Sequence CALL EXTR(A,NA,B,NB,I,J) b. Input Arguments Matrix packed by columns in one dimensional array. Not destroyed A upon return.
NA 2 element vector giv~ng number of rows and columns respect~vely of A. Not destroyed upon return.
NB 2 element vector giving number of rows and columns to he extracted into B. Not destroyed upon return.
I & J Define upper left hand corner position of B as a row and column position in A.
c. Output Arguments B Matrix that is extracted. Packed column w~se into one dimensional array.
d. COMMON Blocks None e. Error Messages If either NA(l) < NB(l), or NA(2) < NB(2), or NA(l) x NA(2) < 1, or NB(I) x NB(2) < 1, the message is "DIMENSION ERROR IN CORNER NA = ___ _
NB = " is printed and the program is returned to the calling
point.
f. Subroutines employed by EXTR None g. Subroutines employing EXTR PIFLIB - CFWM, PIFPLC, PIFG, HADAC.
h. Concluding Remarks This routine is useful for extracting relevant sub-matr1ces from within a part1tioned matrix as shown below.
J NB(2) + J A = I
---------[ ]
--------- .
NB(l) + I B Q. F AND G CONSTRUCTION FROM AERODYNAMIC COEFFICIENTS (FGAERO) 1. PURPOSE Subroutine FGAREO accepts nondimensional aerodynamic coefficients, trim conditions, and a desired velocity magnitude and constructs the aircraft perturbation model matrices F and G at the trim condition specified by the desired aircraft velocity, where (1) 6* = F 6x + G 6u A derivation of the perturbation aircraft dynamics based on the non- linear dynamics is summarized in Ref. 1. Information on the notation used in the following discussion can be found in Ref. 1, Appendix A.
The F and G matrices are partitioned as follows: A13 0 All A12 6i!.B 6i!.B A2l A22 0 0 6~B 6~B A32 A33 0 6~ 0 6~B -B A4l 0 A43 0 !J.X !J.X -B -B Fl Bll B2l F2 Ai; (2) 6u + + -w 0 0 0 0 state and control vectors are The T T T t,wT b.x 6y b.z] (3) [b.u b.v b.w 6p b.q b.r b.¢ M b.VJ = b.~E] [b.~B b.~B -B (4) (5) The effect of ~V is included after the above part1tions have been com- -w puted. The partitioned matrices in Eq. 2 satisfy the following: (6) All = FBV - WBI + FBAB*AU (7)
Al2 = VBT + FBW
(8) Al3 = NBV A21 IB-I*(GBV + GBAB*AU) (9) A22 IB-I*GBW - IBIB (10) I
= LB-
(11) A32 (12)
A33 = LBLB
(13)
A41 (HBI)T = HIB
=
~ A43 -(HIB*VB)*HIB*LB (14) (15) Fl 0 IB-I*GBABD (16) F2 (17) Bll FBU
=
(18) 1 o -sin (THETAO) LB = 0 COS (PHIO ) (19) sin (PHIO) cos (THETAO)
o -Sin(PHIO) COS(PHIO) COS(THETAO)
(20) LB * WB ~ SEC (THETAO)
[ 8 TAN (THETAO)
0 (21)
LBLB = -~ cos (THETAO)
:1 e SEC (THETAO)
~ TAN(THETAO) (22)
VB ~ [:J
-WO
VO]
,....J 0 = VB (23) VBT ~ [ W: -u: -VO UO (24)
~ ~ [::]
-RO
QO]
0 -PO =~ (25)
WBI ~ [ R: -QO PO o " o
sin C:HIO)] * [ CDS( :HETAO ) : sin C:HETAO) ]
cos (PHIO)
-sin (PHIO) cos (PHIO) sin (THETAO) 0 cos( THETAO )
COS PSIO sin PSIO (26)
* -sin PSIO cos PSIO
[ ,0 o (27) GG = [::] = HBI * [ :] G7 GR - (28) GB =[ G: -G6 (The subrout1ne CROSSP forms the cross produce equivalent matrix, GB, from the vector GG) (29) ~ l IBIB = IB- * [WBI*IB - (IB*WB)] (30) (31)
S = RHO * A * 0.5
AMASSI = GR/WT (32) CXO*VO
[CXO>UO CXO>WO]
FBV
= 2*S* CYO*UO CYO*VO CYO*WO (33)
CZO*UO CZO*.VO CZO*WO C*CXQ
•
[B>CXP B>CXR]
FBW =
O.5*S*VTO* B*CYP C*CYQ B*CYR (34) B*CZP C*CZQ B*CZR
[CXB
CU]
FBAB S*VTO**2 * CYB CYA
= (35)
CZB CZA CXDE CXDA
[C~T
C~R]
FBU S*VTO**2 * CYDT CYDE CYDA CYDR (36) CZDT CZDE CZDA CZDR B*CLO*VO
[B*CLO*UO B*CLO*WO]
(37) GBV = 2*S * C*CMO*UO C*CMO*VO C*CLO*WO B*CNO*UO B*CNO*VO B*CNO*WO
[B*CLB
B*CUj
GBAB = S*VTO*_*2 * C*CMB C*CMA (38) B*CNB B*CNA B*C*CLQ
B*B*CLR]
[ B**2*CLP
(39)
GBW = 0.5 *S*VTO * B*C*CMP C*C*CMQ B*C*CMR
B*C*CNQ B*B*CNR B**2*CNP B*CLDE B*CLDA
[B*CLDT
B*CLDRJ
(40)
GBU = S*VTO**2 * C*CMDT C*CMDE C*CMDA C*CMDR
B*CNDT B*CNDE B*CNDA B*CNDR B*B*CLBDOT
C*C*CLADOT J
GBABD 0.5*S*VTO * B*C*CMBDOT C*C*CMADOT (41) [ B*B*CNBDOT B*C*CNADOT 1.0 VTO o ] AU (42) [ 0 WO UO UO**2+WO**2 UO**2+WO**2 VTO ABV (43)
=
[: 0
lJ
Z I - ABV *Fl (44)
G1 = Z-1
[ABV*All ABV*A12 ABV*A13 0]
G2 = Z-1
(45)
* ABV * B1
, \ i,
The effect 6v is included to produce the final form for F and G
-w " (46) M
= Gl x + <;2 u
-w (47) F Gl
=
F+[~l
(48) G
=
G+[~i · G2
After F and G have been constructed the states are reordered as follows: (49) completing the linear time-invariant aircraft model construction. If ICH(l,S) is TRUE, the units are changed from radians to degrees.
2. USAGE a. Calling Sequence CALL FGAERO (DEBUG, ICH, HBI, NHBI, LB, NLB) b. Input Arguments DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
c. Output Arguments HBI, LB Matrices packed by columns into one dimensional arrays.
NHBI, NLB Two dimensional integer vector holding the number of rows and columns of the matrix after the letter N.
d. COMMON Blocks PLA, GLAD, DIMN4, AERO, WORKS 9 , HDXA e. Error Messages If the LB matrix is not invertible the message "LB IS A SINGULAR MATRIX" is printed and the program stops. If the Z matrix is not l.n- vertible the message lIZ IS A SINGULAR MATRIX" is printed and the program stops. If DEBUG is TRUE the following statements and matrices are printed during the course of program execution
*** s =
*** AMASSI =
LB, HBI, GB, NBV, LB-I(LBI), LBLB, IB, IB-I(IBI), IBIB, FBV, FBW, FBAB, FBU, GBV, GBAB, GBW, GBU, GBBD, All, A12, A13.
Al The F matrix in Eq. 2, before including the effect of ~v and -w the position states ~~ Bll, B2l, B3l, Bl The G matrix in Eq. 2, before including the effect of ~v and -w the position states ~E -1 Fll, F2l, F3l, Fl, Z, Z (ZINV), Gl, G2, FORD The Al matrix including the effect of ~v -w GHIA The Bl matrix including the effect of ~v -w If ICH(1,5) is TRUE then the following are printed FDEG The F matrix in Eq. 1 using degree units GDEG The G matrix in Eq. 1 using degree units f. Subroutines Employed by FGAERO ORACLS - EQUATE, MULT, UNITY, GELIM, DETFAC, GAUSEL, SUBT, SCALE, ADD, JUXTC, JUXTR PIFLIB - PRNTITL, PRNT, MOVEALL, CORNER, DIAGPAR, CROSSP, R3MAT g. Subroutines Employing FGAERO PIFLIB - PIFCGT h. Concluding Remarks None R. EIGENVALUES/EIGENVECTORS OF CLOSED-LOOP PLANTS USING CSQZ (FREEF) 1. PURPOSE The purpose of FREEF is to compute eigenvalues, A , and eigenvectors, x, of the matrix, F, where Fx = AX A = R + jI FREEF assumes F is a closed-loop plant matrix
F = A + BK
(2 ) so that eigenvalues of F are interpreted as indications of closed- loop stability. FREEF uses the NASA Langley FTNMLIB subroutine CSQZ.
CSQZ uses Householder transformations and a combination of the double shift QZ iteration and the single shift implicit QZ iteration. Consult Section 2h for further remarks.
2. USAGE a. Calling Sequence CALL FREEF (F, ER, EI, V, WK, IFREE, N) b. Input Arguments F Matrix packed by columns into one-dimensional array.
Destroyed upon return.
EFREE Integer scalar for eigenvalue computations
o No calculation in FREEF
1 - Compute and print eigenvalues 2 - Compute and print eigenvalues and eigenvectors N Integer scalar indicating row dimension of the square matrix F.
'( I WK Work matrix of dimension at least 2*(N**2+1) c. Output Arguments ER Real vector containing the real part of the eigenvalues in ascending order of magnitude EI Real vector containing the imaginary part of the eigenvalues in ascending order of magnitude WK Real matrix containing the eigenvectors packed by columns into a one-dimensioned array. A real eigenvector is placed in one column. A complex eigenvector is placed in two columns.
The real part is placed in the first column. The imaginary part of the positive complex eigenvector pair is placed in the second column. The arrangement is in ascending order of magnitude.
d. COMMON Blocks None e. Error Messages After CSQZ is called,the following is printed: OUTPUT OF CSQZ IN FREE EPSA =
EPSB =
IERR =
----- -----
-----
Eigenvalues are calculated as (a +ja )/S. EPSA is the inaccuracy level l 2 of lal+ja21. (Digits below this level are known to be inaccurate).
EPSB is the inaccuracy level of S. IERR is an error code.
IERR = a normal return.
= 11th eigenvalue ratio has not been determined after 30
iterations.
If S is zero for eigenvalue I the following is printed: EIGENVALUE PROBLEM IN CSQZ INFREE: BETA IS ZERO I Additional information for each e1genvalue is printed with the following banners: EIGENVALUES The values for the eigenvalues Rand jI TIME CONSTANT -l.O/R - Time to reach 63.212% of a step command 50 PERCENT SET TIME 0.693l472*(-1.0/R) - Time to reach 50% of a step command 10 PERCENT SET TIME 2.302582*(-1.0/R) - Time to reach 90% of a step command 2 PERCENT SET TIME 3.9l20230*(-1.0/R) - Time to reach 98% of a step command UNDAMPED NAT FREQ (R**2+I**2) - Undamped natural frequency of a complex eigenvalue RATIO -R/(R**2+I**2) - Damping ratio of a complex eigenvalue l RISE TIME 0.5*(6.28318531)/111 - TAN- (III/R)/III - time for the step response of a complex eigenvalue to cross the step command the first time.
PERIOD 6.28318531/111 - Time for a complex eigenvalue to com- plete one osc1llation.
100.0* e(0.5*R*6.283l853l/III) - The overshoot of a stable OVERSHOOT complex eigenvalue in response to a step input.
f. Subroutines Employed by FREEF ORACLS - UNITY PIFLIB - RESPON FTNMLIB - CSQZ g. Subroutines Employing FREEF None j, h. Concluding Remarks A user with access to the subroutine CSQZ should replace the call to FREEO with a call to FREEF in the following subrout1nes - PIFCGT, PIFEIG, PIFPLC, PIFFRE. A user without access to CSQZ should remove the subroutine FREEF from the software package.
S. EIGENVALUES/EIGENVECTORS OF CLOSED-LOOP PLANTS USING EIGEN (FREEO) 1. PURPOSE The purpose of FREEO is to compute eigenvalues, A, and eigenvectors, x, of the matrix, F, where Fx = AX (la, b)
, A = R + jI
FREEO assumes F is a closed-loop plant matrix (2) F A + BK so that eigenvalues of F are interpreted as indications of closed-loop stability. FREEO uses the ORACLS subroutine EIGEN. EIGEN balances the matrix and the eigenvalues are found by stabilized elementary similarity transformations and the double shift QR algorithm.
2. USAGE a. Calling Sequence CALL FREEO (F, ER, EI, V, WK, IFREE, N) b. Input Arguments F Matrix packed by columns into one-dimensional array; de- stroyed upon return.
IFREE Integer scalar for eigenvalue computations
o No calculation in FREEF
1 - Compute and print eigenvalues 2 - Compute and print eigenvalues and eigenvectors N Integer scalar indicating row dimension of the square matrix F Work matrix of dimension at least 2*(N**2+1) WI<.
c. Output Arguments ER Real vector containing the real part of the eigenvalues in ascending order of magnitude EI Real vector containing the imaginary part of the eigenvalues in ascending order of magnitude WK Real matrix containing the eigenvectors packed by columns into a one-dimensional array. A real eigenvector is placed in one column. A complex eigenvector is placed in two columns.
The real part is placed in the first column. The imaginary part of the positive complex eigenvector pair is placed in the second column. The arrangement is in ascending order of magnitude.
d. COMMON Blocks None e. Error Messages After EIGEN is called and if IERR (def1ned in EIGEN documentation) is nonzero the value of IERR is printed out. Additional information for each eigenvalue is printed with the following banners: EIGENVALUES The values for the eigenvalues R + jI TIME CONSTANT -l.O/R - Time to reach 63.212% of a step command 50 PERCENT SET TIME 0.693l472*(-1.0/R) - Time to reach 50% of a step command 10 PERCENT SET TIME 2.302582*(-1.O/R) - Time to reach 90% of a step command 2 PERCENT SET TIME 3.9l20230*(01.0/R) - Time to reach 98% of a step command UNDAMPED NAT FREQ (R**2+I**2) - Undamped natural frequency of a complex eigenvalue RATIO -R/(R**2+I**2) - Damping ratio of a complex eigenvalue RISE TIME 0.5*<6.28318531/111) - TAN- <III/R)/III - Time for the step response of a complex eigenvalue to cross the step command the first time.
PERIOD 6.28318531/111 - Time for a complex eigenvalue to com- plete one oscillation.
100.0* e(0.5*R*6.283l853l/III) - The overshoot of a OVERSHOOT stable complex eigenvalue in response to a step input.
f. Subroutines Employed by FREEF ORACLS - UNITY EIGEN PIFL1B - RESPON g. Subroutines Employing FREEF P1FCGT, P1FEIG, PIFPLC, P1FFRE h. Concluding Remarks None T. ACCELERATION AND VELOCITY VECTOR OBSERVATION MATRIX CONSTRUCTION (HADAC) 1. PURPOSE HADAC constructs the 3x13 and 3x4 observation matrices HAC and DAC and the 3x12 observation matrix HAB. HAC and DAC initially are the body-mounted perturbation accelerometer observation matrices and satisfy (1) bo2.B = HAC box + DAC bou where 62.B is the perturbation body-axis accelerometer output, T (2) 6a = [6a 6a 6a] B - x y z 6x is the perturbation aircraft state vector (3) 6u is the perturbation aircraft control vector (4) M M M] ear The units must be feet and radians.
HAB is the perturbation observation matrix for total velocity, - , boV , sideslip, boB and angle of attack, boa, where (5)
bo.!l = HAB 6x
and (6) The construction of HAC and DAC proceeds by first partitioning the 12x12 plant system matrix, F, and 12x4 control matrix, G, as follows FXW FXV FWW FWV
F = [~~
(7) FVX FVW FVV FPX FPW FPV (8)
G ~ [~~]
The expressions for HAC, DAC, and HAB become (see Ref.l for a deriva- tion) (9)
HI = FXX + TW - TSB * FWX (10)
(11)
H2 = T(TXB*W) - TW * TXB - TVB + FXW - TXB * FWW
H3 = FXV - TXB * FWV - GB * LB (12) where 0 -sin (THETAO)
[1.0
cos (PHIO)
sin (PHIO) * cos (THFTAO)] (13)
~B = : -sin (PHIO) cos (PHIO) * cso (THETAO) HBI = HIBT (14)
HIB = T * T *;T
(15) (PSIO) -sin [COS (PSIQ) '0 ]
T = sin (PISO) cos (PISO) (16)
1~0 0 0
sin [ COSO (PHIO)
:PHIO)]
= 1.0 (17)
T2 -S1n (PHIO) 0 cos (PHIO)
o
(18) cos (THETAO)
T = -sin :THETAOl]
sin (THETAO) cos (THETAO) -RO (19) o TW = [R: -QO PO (20)
TXB = [:s -:s _::]
-xs -ys 0 -WO (21) o
VBT = [:0
-UO VO (22) (23) (24) (25) DAC
= [GXU - TXB * GWU] (26)
where HAB [JW * HWB 0
= 0 0] (27)
1.0 0 1.0*DPR
JW = 0 0 (28)
VT 1.0*DPR
°
(V cosSo) T o 0
HWB = HBWT
(29) o sinS COOSSo o -SinSoj [ cosSo HBW =
1.0 o -sinS cosS (30)
o o [ o
sinS cosS 0 o
l~J
o o
DPR = 180.0/ 1T
(31)
V ~U02 + V0 '+ W0
=
(32) T
°
. -1 S1n (VO/V ) (33) So T -1 (Wa/uo) a tan
= (34)
If ICH(2,12) is TRUE, ~a observation is replaced with velocity magni- x tude, ~V, observation in HAC DAC by replacing the first row in HAC with the first row in HAB and zeroing out the first row in DAC. In a similiar manner if ICH(2,13) is TRUE, ~a observation is replaced y with s1deslipe observation, ~6, and if ICH(2,14) is TRUE, ~a observa- z tion is replaced with angle-of-attack observation, ~a.
2. USAGE a. Calling Sequence CALL HADAC (LB, NLB, VBT, NVBT, GB, NGB, DEBUG, F, NF, G, NG, XS, YS, ZS, PO, QO, RO UO, VO, WO, HAC, DAC, ICH, NGAC, NDAC, HAB, NHAB) b. Input Arguments LB, GB, F, G, VBT Matrices packed by columns into one-dimensional arrays; not destroyed upon return. These matrices are constructed in FGAERO NLB, NVBT, NGB, NF, NG Two-dimensional 1nteger vector holding the number of rows and columns of the matrix shown after the letter N.
XS, YS, ZS Real scalars containing the x, y, and z body axis position of the accelerometers with reference to the aircraft center of gravity.
PO, QO, RO, UO, VO, WO Real scalar trim conditions for roll rate, pitch rate, yaw rate, body-ax1s forward velocity, lateral velocity and vertical velocity, respectively.
ICH Two-dimensional logical matrix dimensioned lOx15.
Subroutines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
c. Output Arguments HAC, DAC, Matrices packed by columns into one-dimensional. arrays NHAC, NDAC, NHAB Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
d. COMMON Blocks WORKS 9 e. Error Messages If DEBUG if TRUE the following matrices are printed our during the course of program execution: FXX, GXU, JW*HWB(JHWB), HAB, HAC,'DAC.
f. Subroutines Employed by HADAC ORACLS - NULL, MULT, SUBT, ADD, JUXTC, TRANP, UNITY PIFLIB - CROSSP, EXTR, PRNT, PRNTITL g. Subroutines Employing Hadac PIFLIB - FGAERO h. Concluding Remarks None
:i
U. FM, GM, HM, DM, R AND D MATRIX CONSTRUCTION (RDCON) 1. PURPOSE The purpose of RDCON is to construct the FM, GM, HM, DM, Rand D matrices, to set up the XR, UR, YR, XMR, UMR logical vectors used by the REMAT subroutine, and to mod1fy the XR, UR, YR, and UMR vectors as needed to reflect changes from initial specifications in AEROD (BLOCK DATA). The program has the necessary information for each command system that is chosen by the designer using ICROSE. For each value of ICROSE supported by the program, (ICROSE - 4 1S avai1- able but not supported), the values for elements FM, GM, HM, Rand D are shown in Ref. 1, Append1x C. The program constructs the matrices assuming the aircraft states and controls have the following order, (1) (2) The order for ~y, ~Ym' ~, and u are the same as the order in Ref. 1.
~ After constructing the matrices, the states and controls which are to be eliminated are identified by setting appropriate elements in XR, UR and YR to FALSE. The order for XR and UR are the same as Eqs. 1 and 2. The f1rst two elements in YR are assumed to be longitudinal. The latter two elements in YR are assumed to be lateral.
The weighting elements for the integrator states, (ZlQ, Z2Q, Z3Q, Z4Q), have the same order as YR. Integrator states are eliminated in REMAT using the YR logical vector. The values for NM, the number of command model controls are specified in HDCON for each ICROSE value.
The values for L, N, and M are always 4, 12 and_4~ respectively. REMAT changes these values depending on XR, UR, and YR. The plotting labels in YL must be-changed to reflect different command systems. The first two rows itl YL are assumed to be-longitudinal. The -latter:two rows in-YL are assumed to be-lateral. Rows in YL are eliminated:in REMAT using the YR logical vector.
2. USAGE a. Calling Sequence- CALL HDCON (H, NH, D, ND, FM, NFM, GM, NGM, HM, NHM, DM, NDM, ICHOSE, W9, NW9DIM, un, we, QO, RO, ,VTO, THETAO, PHIO, DEBUG, METERS, XR, UR, YR, XMR, UMR, ICH, HAC, NHAC, DAC, NDAC, GR, N, M, L, NM, MM, XL, YL, GKPSI, GKY, F, LAMDA, ZETA) b. Input Arguments F The 12 'x 12 aircraft system matrix packed by columns in a_ one-dlmensional array. The F matrix is constructed in- FGAERO. The-F matrix is altered if ICHOSE = 14.
ICH Two-dimensional logical matrix dimensioned 10 x 15.
Subroutines in PIFCGT are called depending on the TRUE or- FALSE status of elements in ICH.
W9 Work matrix packed-by columns into a one-dimensional array.
Dimension must be at-least-7*(n + m-+ 1).
DEBUG Logical scalar indicating the_following: TRUE: Print out debug information FALSE: Do not print out debug information.
Integer- scalar containing the maximum dimension-of the W9 NW9DIM matrix.
UO, WO, QO, RO, TRETAO, LAMDA, ZETA, VTO, PRIO Trim values for the states. The trim vafues are obtained from linear interpolation in INTERP. LAMDA is the flight path angle in degrees (LAMDA = 0.0 deg usually). ZETA is the ground relative head1ng angle in deg (ZETA = 0.0 usually).
ICROSE Integer scalar indicating the desired autopilot designs as follows: ICROSE DESCRIPTION I-BETA HOLD Beta and roll angle constant command system for lateral dynamics. Beta and roll angle perturbation commands for DPIFS simulation are in UMAG(l,l) and UMAG(2,1), respectively.
Yaw angle outer loop turning command system 6-HOG SEL using the ROLL HOLD command system as the inner loop structure. Yaw angle and rudder position perturbation commands for DPIFS simulation are in UMAG(I,I) and UMAG(2,1).
7-ALT SEL Altitude select command system for longitudinal dynamics. Altitude perturbation command is in UMAG(I,I).
9-APR LOCI Localizer tracking model for lateral dynamics.
Perturbation lateral position offset is in UMAG(I,I). Yaw intercept angle is in UMAG(2,1).
USTRT(I,I) and USTRT(2,1) must be at 0.0.
USTP(I,I) and USTP(2,1) must be at desired final time.
12-ROLL HOLD Roll angle and rudder angle constant command system. Roll and rudder angle perturbation commands are in UMAG(l,l) and UMAG(2,1).
14-APR GS ' Glideslope posit10n error (d) tracking command system. UMAG(l,l) contains the d pas1tion offset at beginning of s1mulation. USTRT(I,I) should be 0.0. z dynamics in F and G are replaced with d dynam1cs in HDCON.
IS-APR LOCR Lateral position (y) localizer outer loop command system'using the HDG SEL command system as the inner loop structure. Same simulat~on requirements as ICHOSE = 9.
16-APR LOCP Lateral position (y) localizer outer loop command system using the ROLL HOLD command system as the inner loop structure. Same simulation requirements as ICHOSE = 9.
METERS Logical scalar indicating when units of control law should be changed to meters and radians.
HAC, DAC Matrices packed by columns into one-dimensional arrays.
These matrices are determined in HADAC.
NHAC, NDAC Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
GR Gravity in ft/sec .
N, M, L, NM,MM Integer values indicating in1tial values for dimension of matrices, N = 12, M = 4, L = 4, NM = 2, MM = 2. Changed upon return.
GKPSI Outer loop yaw angle guidance gain for HDG SEL and APR LOCR autopilot modes.
SKY Outer loop lateral position guidance gain for APR LOCR and APR LOCP autopilot modes.
XL, YL Label arrays for printout in DPIFS. Some of the elements in the array are altered upon return.
c. Output Arguments H, D, FM, GM, HM, DM Matrices packed by columns into one-dimensional arrays.
NH, ND, NFM, NGM, NHM, NDM Two-dimensional integer vector holding the number of rows and columns after the letter N.
XR, UR, YR, XMR, UMR Logical arrays containing TRUE and FALSE information for subroutine REMAT.
N, M, L, NM,MM Integer values indicating maximum dimensions for matrices.
XL, YL Label values for plots matching choise of AUTOPILOT mode.
d. Common Blocks None e. Error Messages If the W9 matr1x is too small the statement "THE W9 MATRIX IS TOO SMALL" is printed.
if ICHOSE = I and ICH(2,9) is FALSE or ICH(2,13) 1S FALSE then "ERROR ??
ICH BETA BAD" is printed.
If DEBUG is TRUE the following matrices are printed out during the course of program execution.
VXYZ - A 3 x N matrix containing the ~x, ~y, ~z dynamics extracted from the F matrix.
LAMD - A 1 x N vector containing the row in F that represents the ~d dynamics.
H(HCON), D(DCON), FM(FMCO), GH(GMCO), HM(HMCO), DM(DMCO) f. Subroutines Employed by HOCON ORACLS - MULT, NULL, PRNT, SCALE PIFLIB - PRNTITL, PRNT g. Subroutines Employing HDCON PIFLIB - PIFCGT h. Concluding Remarks None V. INTERPOLATE AERODYNAMIC DATA (INTERP) 1. PURPOSE Given the aerodynamic coefficients and trim conditions of two flight conditions at different forward velocities, the subroutine INTERP in- terpolates between the data points to find estimated intermediate aero- dynamic coefficients and trim conditions.
2. USAGE a. Calling Sequence CALL INTERP (VTP) b. Input Arguments VTP Real scalar containing the forward velocity in fps at which the interpolation is to occur c. Output Arguments None d. COMMON Blocks AERO, AER1 The interpolation overwrites the values in the AERO common block. The AERO common block is used elsewhere in the program scalled by PIFCGT e. Error Messages None f. Subroutine Employed by INTERP PIFLIB - PRNTITL g. Subroutines Employing INTERP PIFCGT h. Concluding Remarks None W. MULTIPLY A TRANSPOSE TIMES B TIMES A (MATBA) 1. PURPOSE Form Matrix Product ATBA where B must be symmetric.
2. USAGE a. Calling Sequence CALL MATBA (A,NA,B,NB,C,NC,Wl,NWl) b. Input Arguments A,B Input matrices packed by columns in one-dimensional arrays; not destroyed. B must be symmetrical.
NA,NB Two-dimensional vectors giving number of rows and columns of respective matrices; for example:
NA(l) = number of rows of A
NA(2) = number of columns of B
Not destroyed upon return.
WI Input workspace vector of length NB(l} x NA(2) or greater NWI Vector of length two for workspace c. Output Arguments C Product ATBA packed by columns in one-dimensional array.
NC Two-dimensional vector containing rows and columns in C.
NC(l) NA(2) NC(2) NA(2) d. COMMON Blocks None e. Error Messages None f. Subroutines employed by MATBA: MULT g. Subroutines employing MATBA: PIFUB - CFWM h. Concluding Remarks B is not checked to see if it is symmetric.
X. REARRANGE MATRIX (MOVEALL) 1. PURPOSE Subroutine MOVEALL rearranges the rows (columns) of a matrix with the option of taking a subset of the rows (columns).
2. USAGE a. Calling Sequence CALL MOVEALL (A,NA,B,NB,IDEX,IHOW) b. Input Arguments A Matrix to which manipulations are to be performed packed by columns in one dimensional array; not destroyed.
NA Two-dimensional vector giving number of rows and columns· in A.
NA(l) = Number of rows in A
NA(2) = Number of columns in A
Not destroyed.
IHOW Flag for type of manipulation IHOW = 1 - work with rows, IHOW = 2 - work with columns.
IDEX Position dependent index vector. IDEX(l) contains the number of the row (column) in A that will become the first row (column) in B and so forth. All unused positions in IDEX must be-zero especially when working columns. Therefore if IDEX has its first- S elements non-zero then B will contain only S rows (columns) from A. IDEX thus allows rearranging and deleting rows (columns) at the same time.
c. Output Arguments B Contains the manipulated results from A packed by columns in a one-dimensional array.
NB Two-dimensional vector contain dimensions of B
NB(l) = Number of rows in B
NB(2) = Number of columns in B
d. COMMON Blocks None e. Error Messages If NA(l) < NB(l) or NA(2) < NB(2), the message "DIMENSION ERROR IN MOVEALL NA = ___ , NB = " is printed and the program is returned
--- ------
to the calling point.
f. Subroutines employed by MOVEALL None employing MOVEALL g. Subroutl.nes FGAERO PIFLIB - REMAT, h. Concluding Remarks Example:
IDEX = [3, 1, 2, 0]
IHOW = 1
= A b c g f p q
[~
v w
n
then B p q b c = [: f g
n
It is good practice to zero out IDEX before constructing it since non-zero elements detected after a zero element causes problems.
Y. PIF EIGENVALUE PLACEMENT (PIFEIG) 1. PURPOSE The objective of PIFEIG is to compute a closed-loop model matrix, FM, with stable eigenvalues. Subroutine PIFEIG computes a desirable closed- loop model matrix for the implicit model following design method in the subroutine PIFPLC. Ultimately, PIFPLC computes an initial stabilizing feedback gain for the subroutine DREG.
If ICH(2,11) is TRUE, PIFEIG computes a random feedback gain, GK, using the subroutine RANF. If ICH(2,11) is FALSE, PIFEIG assumes GK contains an initial starting gain. The eigenvalues and eigenvectors of the closed-loop plant, F+G*GK are computed using the subroutine FREEF and satisfy the following relationship l T A T- = F + G * GK (1) A is a complex diagonal matrix containing the eigenvalues, A .. T is a complex matrix containing the eigenvectors. If IE(i) is equal to 1, the . th. 1 f'· d . d f 11 1 e1genva ue 0 A 1S a Juste as 0 ows: + • b eigenvalue Ai a - J i i
stabilized a. = -la.1
1 1 After eigenvalue stabilization, the real and imaginary parts of the eigen- vector matrix, T=W9(LW8)±jW9(LWlO), are used to form the real matrix, FM, as follows, -1
[_'-,-v9-.o.(L-,-W_8-<-) ,...-+-_W9,-(;;-...;L_Wl--:-O....:...) 1 [ W9 (LWl)
W9 (LW2 )J [ W9 (LW8) W9(LW10)l ==
L~W9(LWlO) W9(LW8) j -W9(LW2)
W9(LW1) -W9(LW10)
W9 (LW8) J
w ETMA EIMA ETMA- (2) The matrix W9(LW1) is a diagonal matrix containing the real part of the stabilized eigenvalues of F+G*GK. The matrix W9(LW2) is a diago- nal matrix containing the imaginary part of the stabilized eigenvalues.
The partitioned matrix manipulations make it possible to perform complex arithmetic without using complex numbers. The constructed FM matrix has the stable adjusted eigenvalues and the same eigenvectors as F+G*GK 2. USAGE a. Calling Sequences CALL PIFEIG (F, NF, FM, NFM, W9, NW9DIM, DEBUG, IFREIG, ER, EI, ERV, lEV, G, NG, ICH, GK, NGK) b. Input Arguments F, G, GK Matrices packed by columns into one-dimensional arrays; F and G are not destroyed upon return. If ICH (2,11) is FALSE, GK contains an initial starting gain and is not destroyed upon return.
IE Integer vector of dimension at least NF(l). If the eigen- value adjustment procedure in PIFEIG is to be performed on the ith eigenvalue then IE(i) must be 1. If IE(i) is 0, . th. l' FM 1 h . th. 1 f F+G*GK h t e 1 e1genva ue 1n equa s t e 1, e1genva ue 0 • If the ith eigenvalue is complex and the ithTl eigenvalue is the complex conjugate, then IE(i) and IE(i*l) must contain the same integer number (lor 0). The order in IE must apriori agree with the order of the eigenvalues computed by FREEF. The IE feature is useful if a plant eigenvalue is stable but uncontrollable. If ICH(2,11) is TRUE, all elements in IE are automatically set to 1.
ER, EV Real work vectors of dimension at least NF(I). During compu- tation the adjusted real parts of the eigenvalues are_placed ~ in ER and the imaginary parts of the eigenvalues~are_placed in EV.
lEV Integer vector of dimension at least NF(I). Each-of the locations must contain the integer 1. If ICH(2,II) is TRUE, all lEV elements are automatically set to 1.
ERV Real work matrix of dimension NF(I)*NF(I). ERV is not used by PIFEIG as long as lEV has alII's.
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 16*(NF(I)*NF(2)+I) ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in lCH.
NF NG NGK Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information IFRElG The results of the construction of FM can be observed by setting this variable to 0, 1, or 2 2- Compute and print eigenvalues and eigenvectors of FM' 1- Compute and print eigenvalues of FM 0- No eigenvalue computations 96, c. Output Arguments FM Matrix packed by column into a one-dimensional array. FM contains the desired closed-loop PIF plant used in PIFPLC.
NFM Two-dimensional integer vector holding the number of rows and columns of the matrix FM, NFM(l)=NF(l), NFM(2)=NF(2).
d. COMMON Blocks None e. Error Messages If the W9 matrix is insufficiently large, the message "The W9 matrix is too small" is printed and the program stops. If DEBUG is TRUE, the following matrices are printed out during the course of the computation GKRA - the random or input GK gain matrix REAL - the real part of the eigenvalues of F+G*GK lMAG - the imaginary part of the eigenvalues of F+G*GK ETMA - the 2*NF(1) x 2*NF(1) matrix containing the part- itioned eigenvectors of F+G*GK ER - the adjusted real part of the eigenvalues of F+G*GK EI - the adjusted imaginary parts of the eigenvalues of F+G*GK REAL - the real part of the eigenvalues to be placed in FM lMAG - the imaginary part of the eigenvalues to be placed in FM.
EIMA - the 2*NF(1) x 2*NF(1) matrix containing the partition- ed adjusted eigenvalues of FM.
IDEN - the inverse of ETMA is multiplied by ETMA and the result is printed out as the matrix IDEN.
The accuracy of the inversion can be determined by judging how close IDEN is to an identity matrix.
TLTI - the 2*NF(I) x 2*NF(I) matrix obtained by multiplying ETMA*EIMA*ETMA. If the subroutine GELIM produces an error in inverting ETMA,the message "GELIM IN EIGP IERR = XXXX" is printed f. Subroutines Employed by PIFEIG ORACLS - NULL, EQUATE, MULT, ADD,GELIM, UNITY, SCALE, DETFAC, EIGEN PIFLIB - DIAGPAR, DIAGPUT, CORNER, FREEF, RESPON, SMALL, PRNT, PRNTITL g. Subroutines Employing PIFEIG PIFGCT h. Concluding Remarks In all applications of PIFEIG by the program PIFCGT, the locations in IE and lEV are all set to 1. It is not necessary to use PIFEIG and PIFPLC if DSTAB in ASYMREG in DREG finds an initial stabilizing gain for the closed-loop plant.
Z. PIF CLOSED-LOOP EIGENVALUE EIGENVECTOR CALCULATIONS (PIFFRE) 1. PURPOSE PIFFRE takes the matrix log of the closed-loop PIF system matrix, PRICL, then computes the eigenvalues and eigenvectors of the resulting matrix.
2. USAGE a. Calling Sequences CALL PIFFRE (DELT, W9, DEBUG, NW9DIM, PRICL, NPRC, IFREEP, ICR, ELOG, MLOG) b. Input Arguments PRICL Matrix packed by columns into a one dimensional array; not destroyed upon return.
NPRC Two-dimensional integer vector holding the number of rows and columns of the matrix PRICL.
ELOG Real scalar convergence test for LOGX1. Recommend 1.OE-10.
MLOG Integer scalar indicating the maximum number of iterations used in the LOGX1 subroutine. Recommend 8.
IFREEP Integer scalar used to determine eigenvalue eigenvector cal- culations =0 Do not perform calculations =1 Compute eigenvalues =2 Compute eigenvalues and eigenvectors W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 3*(NPRC(1)**2+1) ICH Two-dimensional logical matrix dimensioned 10 x 15.
Subroutines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information DELT Real scalar containing the sampling time NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
c. Output Arguments None d. COMMON Blocks None e. Error Messages If the W9 matrix is insufficiently large, the message "THE W9 WORK MATRIX IS TOO SMALL" is printed and the program stops.
f. Subroutines Employed by PIFFRE ORACLS - EQUATE, EXPADE, MULT, NORMS, SCALE, SUBT, UNITY, EIGEN PIFLIB - LOGX1, FREEF, RESPON g. Subroutines Employing PIFFRE PIFCGT h. Concluding Remarks None AA. PIF GAIN COMPUTATIONS (PIFG) 1. PURPOSE Subroutine PIFG performs three functions: o The feedback gain, Riccati equation solution, and feed forward matrix solution are used to construct the matrices in the imp1ementab1e PIF control law.
o The body-axis aircraft states used for feedback are replaced with available measurements. Gain matrices in the imp1ementab1e PIF control law are reconfigured to accommodate the measurements.
o IF METERS is TRUE, the units in the PIF control law are changed from feet and degrees to meters and radians.
Gain matrices in the imp1ementab1e PIF control law are reconfigured to accommodate the change in units and printed out. The actual values of the PIF control law gains do not change units at the end of PIFG execution if METERS 1S TRUE. Program execution proceeds as follows: The feedback gain, GK, is partitioned into three gain sets and they are extracted from GK.
I GK = [K1 I K2 K3 ] (1) I The Riccati equation solution, X, is partitioned into nine individual matrices and three of them (PZZ, PUZT, PXZT) are extracted from X.
PXU PXZ] PUU PUZ (2)
X = [~~~T
PXZT PUZT PZZ The matrix A is computed l (3)
A = PZZ- * (PUZT * S22 + PXZT * S12)
and used to construct 842 (4)
842 = K3 * A - K2 * 822 - K1 * 812
The matrix HAC is computed HAC (5)
-K2 * S21
The new measurements, z, are related to the aircraft states by con- structing the T matrix, (6) (7) The feedforward matrices are reconfigured to accommodate the new measurements
HX DXJ [S11
812J 812J (8)
[ [
,0 I 821 821 822 S22 new old The feedback gains K1 and K2 are reconfigured to accommodate the new measurements (9) [Kl K2] [Kl new The PIF gains 531 and 541 are constructed (10)
531 I + DELT * K2
(11)
DELT * K3
The resulting imp1ementab1e PIF structure has the following form (12)
~k+1 = ~k + DELT * ~ + 521 (~,k+1 - ~,k)
(13)
~ = ~ - 511 ;,k
~k 531 ~k-1 + HAC(;,k - ~,k-1) + 532(~k - ~-1) + 541(H~k_1 + D~k_1 - H ,k-1 - D~,k) + S42(Em,k+1 - Em,k) (14)
nAn
The gain elements in the imp1ementab1e PIF structure are modified if the METER5 option is TRUE and printed out. The gain matrices at the end of the program execution remain in the units of feet and degrees.
2. USAGE a. Calling 5equence CALL PIFG (Sll, N511, 512, N512, S21, NS21, S22, NS22, GK, NGK, X, NX, S31, NS31, S32, NS32, HAC, NHAC, S41, NS41, S42, NS42, DELT, DEBUG, W9, NW9DIM, HX, DX, NHX, NDX, METERS, ICHOSE) b. Input Arguments S11, S12, S21, S22, GK, X, HX, DX Matrices packed by columns into one-dimensional arrays; HX, S21, DX, and S22 are not destroyed upon return NSll, NS12, NS21, NS22, NGK, NX, NHX, NDX Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
METERS Logical scalar indicating when units of the control law should be changed to meters and radians.
ICROSE Integer scalar which indicates which command system is being designed.
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 9*(NX(1)*NX(2)+1).
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug inforamtion.
DELT Real scalar containing the sampling time.
Integer scalar containing the maximum dimension of the W9- NW9DIM matrix.
c. Output Arguments Sl1, S31, S32, HAC, S41, S42, S21 Matrices packed by columns into one-dimensional arrays constituting the PIF control law feedback and feedforward gains.
NSll, NS31, NS32, NHAC, NS41, NS42, NS2l Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
d. COMMON blocks None e. Error Messages and Pr1ntout If the W9 matrix is insufficiently large the message "TRE W9 WORK MATRIX IS TOO SMALL" is printed and the program stops. If the value 1n ICROSE 1S not a recognized command system then the following 1S printed "IN PIFG WITR METERS TRUE, ICROSE = XXX IS NOT A KNOWN COMMAND MODE. CHANGE PIFG TO ACCOMMODATE ICROSE VALUE." IF DEBUG is TRUE, the follow1ng matrices are printed during the course of program execution: -1 -1 K1, K2, K3, PZZ, PZZ (PZ-1), PUZT, PXZT, A, T, T (T-l) SllB - The Sll feed forward matrix before the new measurements are accommodated.
S12B - The S12 feedforward matrix before the new measurements are accommodated.
The following are always printed out: Before changing un1ts Sll, S12, S21, S22, S31, S32, S41, S42, HAC After changing units if METERS is TRUE S31M, S21M, HACM, S32M, SllM, S41M, S42M f. Subroutines Employed by PIFG ORACLS - MULT, ADD, SUBT, SCALE, UNITY, GELIM, JUXTC, EQUATE, DETFAC PIFLIB - DIAGPAR, CORNER, PRNT, PRNTITL g. Subroutines Employing PIFG PIFLIB - PIFCGT h. Concluding Remarks The derivat10n used to obtain Eqs. 3 to 14 is shown in Chapter III of Ref. 1.
BB. CONSTRUCT THE PIF MODELS (PIFMODL) 1. PURPOSE The purpose of PIFMODL is to construct the following<matrices G
PHI ~ [~ 0
(1)
g]
H' D GAMA (2)
~m
AM QHAT R (3)
[~
n
RHAT RD (4)
HX = I (5)
DX 0 (6) HX and DX are NF(l) and NF(l) x NG(2) aircraft observation matrices.
The order of the states is ~u ~w,~q ~e ~z ~ ~v ~r ~p ~¢ ~~ ~y. If ICH(2,lO) is TRUE, ~u observation in HX and DX is replaced with ~a x observation. If ICH(2,9) is TRUE, ~v observation in HX and,DX is replaced with ~a observation. If ICH(2,lO) is TRUE, ~w observation y in HX and DX is replaced with ~a observation. Variables in XL z are changed depending on whether or not METERS, ICH(2,8),ICH(2,9) and ICH(2,lO)'are TRUE.
2. USAGE a. Calling Sequences CALL PIFMODL(F, NF, G, NG, H, NH, D, ND, PHI, NPH, GAMA, NGA, Q, NQ, R, NR, AM, NAM, QZ, NQZ, QHAT, NQH, RD, NRD, RHAT, NRH, ZERO, NZERO, I~, NHX, DX, NDX, HAC, NHAC, DAC, NDAC, W9, NW9DIM, DEBUG, METERS, ICH, XL, UL, YL) b. Input Arguments F, G, H, D, Q, AM, R, QZ, Matrices packed by columns into one-dimensional arrays; not RD destroyed upon return.
HAC, DAC Matrices packed by columns into one-dimensional arrays; not destroyed upon return. These are the observation matrices for the body mounted accelerometers computed in HADAC.
XL, UL, YL Two dimensional arrays containing plotting labels for the states, controls, and commanded outputs, respectively.
NF, NG, NH, ND, NQ, NR, NAM, NQZ, NZERO, NHAC, NDAC Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
Work matrix packed by columns into a one-dimensional array.
W9 Dimension must be at least 2 x {(NF(l) + NG(2) + NH(1»**2+1} ZERO Work matrix packed by columns into a one-dimensional array.
AII.elements must be 0.0. Dimensions must be at least
NPH(I) * NPH(2)+1
ICH Two-dimensional logical matrix dimensioned 10 x 15. < Sub- routines in PIFCGT are called depending on the TRUE'or FALSE status offelements in ICH.
DEBUG Logical scalar7indicating the following:- TRUE:- Print-out-debug information, FALSE: Do-not-print-out_debug information' NW9DIM Integer'scalar-containing the maximum dimension of the W9 matrix.
c. Output Arguments QHAT, RHAT, HX, DX, PHI, GAMA Matrices~packed by columns into one dimensional~arrays~ NQH, NRH, Two dimensional 'integer vectors holding the' number of rows NPH, NGA and"columns of the matrix shbwn- after the letter N.
Two dimensional array containing labels to ,be used'in'plot- XL ting;,some are-changed upon return depending on logical, parameters-METERS and ICH.
d. COMMON'Blocks~ None e. Error Messages· If the W9 matrix-is-insufficiently large the message "THE W9,WORK MATRIX IS TOO SMALL~ is·printed and the program stops. If DEBUG is true then-the following is printed out during program execution: PHI, GAMA, QHAT, RHAT, HX, DX f. Subroutines Employed by PIFMODL ORACLS - JUXTC, UNITY, JUXTR, TRANP, EQUATE PIFLIB - DIAGPAR, CORNER, PRNT, PRNTITL g. Subroutines employing PIFMODL PIFCGT h. Concluding Remarks The perturbation relationship between the body mounted accelerometer outputs, 6a 6a and 6a , and the aircraft body-axis states is derived x y z in Ref. 1, Appendix B.
CC. PIF EIGENVALUE PLACEMENT (PIFPLC) 1. PURPOSE In Ref. 6 a technique is given for computing a feedback gain which places eigenvalues and eigenvectors of a plant to those dictated by an ideal model. The purpose of PIFPLC is to compute a stabilizing feedback gain for the PIF control law using the eigenvalue eigenvector placement procedure in Ref. 6. The ideal model (PHICL) is computed in PIFEIG. The subroutine is only applicable to PIF model matrices. The subroutine first extracts the H matrix from the discrete PIF model matrix PHI. The discrete feedforward matrix equation
[Sl1 H PHIeL]
Sl1] =
(1)
G:1
[
S2l is solved for Sll and S2l using CGTPIF. The stabilizing feedback gain is computed as GK = S2l (2) 2. USAGE a. Calling Sequence CALL PIFPLC (PHI, NPH, NH, GAMA, NGA, W9, NW9DIM, X, PHICL, NPHC, ACL, GK, NGK, DEBUG, ELOG, MLOG, ICH, DELT. NSll, NS12, NS21, NS31 NS32, NS41, NS42, ICGT, TOL, ITER, ECGT) b. Input Arguments PHI, GAMA, Matrices packed by columns into one-dimensional arrays;.
PHICL not destroyed upon return. PHI contains the discrete PIF system matrix, GAMA contains the d1screte PIF control effect matrix, and PHICL contains the desired closed-loop plant matrix (FM in PIFEIG) NSll, NS12, NS2l, NS22, NS3l, NS32, NS4l, NS42 Two d1mensiona1 work integer vectors.
ELOG Real scalar convergence test for LOGXl subroutine.
X,ACL Work matrices of dimension at least NPH(I) * NPH (2) + 1 W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 9*(NPH(1)**2+1) + 4 *«NPH(l) + NGA(2) + 2)**2+1) + 2*«NPH(1) + NGH(2) + 1)**2+1) ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
NH, NPH, NGA, NPHC Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N.
TaL Real scalar indicating convergence criteria for iterative ref1nement in SOLVER. Recommend 1.OE-I0 ITER Integer scalar indicating maximum number of interative re- finements in SOLVER. Recommend 10.
ECGT Real scalar indicating convergence criteria in SOLVER for inverting a matrix. Recommend 1.OE-10 ICGT Five dimensional integer option vector defined in CGTPIF.
III ICGT(l) is set to 2, ICGT(4) is set to 0 and ICGT(5) is set to 0 automatically by the subroutine before calling PIFCGT. The orginial values of ICGT are restored at the end of subroutine execution.
DEBUG Logical scalar-indicating the following TRUE: Print out debug information FALSE: Do not print out debug information Real scalar containing the sampling time~ DELT Integer scalar containing the maximum dimension of the W9 NW9DIM matrix.
c. Output Arguments GK Matrix packed by columns into a one-dimensional array con- taining the stabilizing feedback gain.
Two d~mensional_integer vector holding the number of rows NGK and columns of the GK matrix.
d. COMMON Blocks None e. Error Messages If the W9 matrix is insufficiently large the message "THE W9 MATRIX IS TOO SMALL" is printed and the program stops. If the subroutine GELIM produces an error in inverting Sll, the message "GEL 1M ERROR IN PIFPLC IERR = XX" ~s printed. If DEBUG is TRUE then the following is printed out during the course of program execuation: HDO - The H matrix extracted from the PIF model matrix PHI.
Matrices from-the execution of CGTPIF (see CGTPIF document).
SllG - The Sll feedforward matrix solution of the feedforward matrix equation.
S21G - The S2l feedforward matrix solution of the feedforward matrix equation.
I~~G - S11 is multiplied timesS11- and the results, which should be an identity matrix, is printed out.
The equvalent continuous-time closed-loop eigenvalues and eigenvectors of PHI + GAMA * GK.
f. Subroutines Employed by PIFPLC ORACLS - NULL, EQUATE, UNITY, GELIM, MULT, ADD, DETFAC, SCALE, SUBT, NORMS, BCKMLT, HSHLDR, SCHUR, SYSSLV, EXPADE, EIGEN PIFLIB - PRNT, PRNTITL, EXTR, FREEF, RESPON, LOGX1, CGTPIF, AXBMXC, SHRSOL g. Subroutines Employing PIFPLC PIFLIB - PIFCGT h. Concluding Remarks It 1S not necessary to use PIFEIG and PIFPLC if DSTAB in ASYMREG in DREG f1nds an initial stab1lizing gain.
DD. OUTPUT NUMERICAL DATA (PRNT) 1. PURPOSE Subroutine PRNT prints a single matrix with a descriptive,heading on the same page. The descriptive heading is printed before each matrix and is of the form "NAM MATRIX NC(I) ROWS NA(2) COLUMNS." The matrix is printed by rows for seven columns at a time using the format, (I4,IP7EI6.7), Where the first number is an"integer depicting,the row number. A heading of integers corresponding to the column number is printed-above the matrix.
2. USAGE a. Calling Sequence CALL PRNT (A,NA,NAM;IOP) b. Input Arguments A Matrix packed ,by columns in a one-dimension array NA Two-dimensional vector giving the number of rows and columns of the matrix A: NA(I) Number of rows of A'
NA(2) = Number of columns of A
NAM Hollerith characters giving matrix name. Generally NAM should contain 4 ,Hollerith characters and be written in the argument list as 4HXXXX ..
lOP Scalar print control parameter 1. print heading and matrix on same page 2. print heading and page matrix on next c. Output Arguments None COMMON d. Blocks None e. Error Messages If NA(l) < 1 or NA(2) < 1 the message "PROBLEM WITH NUMBER OF ROWS OR NUMBER OF COLUMNS NA(l) = , NA(2) = " is printed, and the program is returned to the calling point.
f. Subroutine Employed by PRNT None g. PIFLIB subroutines Employing PRNT PIFCGT, CGTPIF, HDCON, CFWM, PIFMODL, PIFPLC, REMAT, DISCMOD, QRMPl, QRMHAT, DREG, PIFG, DPIFS, FGAERO, HADAC, PIFEIG h. Concluding Remarks None EE. PRINT TITLE (PRNTITL) [ I ,1 1. PURPOSE Subroutine PRNTITL is used to print the name of a subroutine at the beginning and end of each pass through the subroutine.
2. USAGE a. Ca11irtg Sequertce CALL PRNTITL (NAM1, NAM2) b. Input Arguments NAM1 Hollerith characters for title to be printed out. The first ten Hollerith characters in the title are placed in NAM1 in the form 10HXXXXXXXXXX.
NAM2 Hollerith characters for title to be printed out. The second ten Hollerith characters in the title are placed in NAM2 in the form 10HXXXXXXXXXX.
c. Output Arguments None d. COMMON Blocks None e. Error Messages None f. Subroutines Employed by PRNTtTL None g. PIFLIB subroutines Employing PRNTITL DIMSS, HDCON, CFWM, PIFMODL, PIFPLC, REMAT, DISCMOD, QRMP1, QRMHAT, DREG, PIFG, DPIFS, FGAERO, HADAC, PIFEIG, RUNINFO, INTERP, PIFFRE h. Conclud1ng Remarks None FF. OUTPUT LABELED NUMERICAL DATA (PRNT2) 1. PURPOSE Subroutine PRNT2 prints out one matrix in columns of seven with labels or numbers, or it prints out two matrices in columns of seven with labels for comparison. PRNT2 also has the option of printing a third one dimensional array as a counter instead of row numbers.
2. USAGE a. Calling Sequence CALL PRNT2 (A, NA, NAM, B, NB, NAMB, lOP, C, LABEL, LABELl, LABEL2, M) b. Input Arguments A Matrix packed by columns into a one-dimensional array.
A is the first matrix to be printed.
B.
Matrix packed by columns into a one-dimensional array.
B is the second matrix to be printed.
NA Two-dimensional vector giving the number of rows and columns of matrix A.
NB Two-dimensional vector giving the number of rows and columns of matrl.x B.
NA(l) - number of rows of A NA(2) - number of columns of A NB(l) - number of rows of B NA(l)
=
NB(2) - number of rows of B NA(2) NAM Hollerith characters giving matrix A's name. Generally NAM shquld contain 4 Hollerith characters and be written in the argument list as 4HXXXX.
NAMB This is the name of the matrix B and follows the same rules as NAM.
lOP Scalar print control parameter.
lOP 0 PRINT ONE MATRIX WITH LABELS - SAME PAGE lOP 1 PRINT ONE MATRIX WITH LABELS - NEW PAGE lOP 2 PRINT ONE MATRIX WITH NUMBERS - SAME PAGE PRINT ONE MATRIX WITH NUMBERS - NEW PAGE lOP 3
lOP = 4 PRINT TWO MATRICES WITH LABELS - SAME PAGE
lOP 5 PRINT TWO MATRICES WITH LABELS - NEW PAGE
One-d1mensiona1 counter array; dimension = NA(l)
C LABEL LABELS for Array A, dimensioned (M,2) LABELl LABELS for Array B, dimensioned (M,2) LABEL2 LABELS for Array C, dimensioned (1,2) M F1rst Dimension of LABEL array = NA(2) c. Output Arguments None d. COMMON Blocks None e. Error Messages If NA(l) < 1 or NA(2) < 1 the message "PROBLEM WITH THE NUMBER OF ROWS OR NUMBER OF COLUMNS NA(l) = __ , NA(2) = " is printed, and the program is returned to the call1ng point.
f. Subroutines Employed by PRNT2 None g. Subroutines Employing PRNT2 PIFLIB - DPIFS h. Concluding Remarks For printing one matrix - B, NB, NAMB and LABELl are dummy arguments, but they must be in the call to PRNT2. For printing without labels - C, LABEL, LABELl, and LABEL2 are dummy arguments, but they must be in the call to PRNT2.
GG. SAMPLED-DATA REGULATOR USING ALPHA AND BETA (QRMHAT) 1. PURPOSE The purpose of QRMHAT is to compute the sampled-data regulator corres- ponding to a linear t1me-invar1ant continuous system and its associated llnear quadratic cost funct10n (1) Fx + Gu 00 T T (2) J
b ~ ~ + ~ Ru dt
The control, ~, 1S assumed to be constant over the sampling interval ~t. The discrete plant and cost function are given by (3) ~k+ 1 = PHI ~k + GAMA ~k 00 T T T (4) J = k~O (~k QHAT ~k + 2~k AMRAT ~ + ~ RHAT ~) The matrices in the sampled-data regulator problem are computed uS1ng the following equations F~t e (5) k FT f~t
fM 'f
GAMA (FT) dT = e dT (6) o k=O k!
FTT Q FT fM QHAT e e dT (7) FTT Fs
AMRAT = [b~t e Q(lT e dS)dT]G (8)
T As
RHAT = M R + G [6~tCc~T eATs dS)Q«( e dS)dT] G (9)
QHAT is computed using the ORACLS subroutine SAMPL. PHI and GAMA are computed using the ORACLS subroutine EXPINT. AMHAT and RHAT are com- puted using the subroutine ALPHA. If ICH(2, 7) is TRUE, a matrix similar to PHI is computed using the matrix PHICL and the ORACLS subroutine EXPSER.
The continuous time model for "F" used in computing PHICL is deterrn1ned in the subroutine PIFEIG as the matrix FM. The last part of QRMHAT is specially adapted to PIF controller computation. For PIF, F and G in the calling program have the following internal form (0) (ll) After PHI and GAMA are computed using EXPINT, they are altered from GAMAB
[P~IA
PHI I (12)
~J X
Xl GAMA = (13)
[fim
to GAMAB
["~IA (14)
I PHI = 6tH 6tD
n
[ 0 - GAMA (15) ~~I 2. USAGE a. Calling Sequence CALL QRMHAT (H, NH, QHAT, NQH, D, ND, RHAT, NRH, AMHAT, NAM, PHI, NPH, GAMA, NGA, DELT, ICH, DEBUG, W9, NW9DIM, ZERO, NZERO, PHICL, NPHC) b. Input Arguments H, QHAT, D, RHAT, PHI, GAMA, PHICL Matrices packed by columns in one-dimensional arrays. Hand D are not destroyed upon return. The rest are destroyed upon return. Using the notation in the PURPOSE section, QHAT contains Q, RHAT contains R, PHI contains F, GAMA contains G, and PHICL contains the desired continuous-time closed- loop system (FM) constructed in PIFEIG.
W9 Work matrix packed by columns into a one-dimensional array.
Dimension must be at least 14* (NPH(I) * NPH(2) + 1)
ZERO Work matrix packed by columns into a one-dimensional array.
All elements must be zero. Dimension must be at least
NPH(I) * NPH(2) + 1
ICH Two-dimensional logical matrix dimensioned 10 x 15. Sub- routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
NH, NQH, ND, NRH, NAM, NPH, NGA, NZERO, NPHC Two-dimensional integer vector holding the number of rows and columns of the matrix shown after the letter N. NZERO is the only vector destroyed upon return.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information DELT Real scalar containing the sampling time.
NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
c. Output Arguments QHAT, RHAT, AMHAT, PHI, GAMA, PHICL Matrices packed by columns into one dimensional arrays containing the discrete plant representation shown in the PURPOSE section.
d. COMMON Block None e. Error Messages If the W9 matrix is insufficiently large the message "THE W9MATRIX IS TOO SMALL" is printed and the program stops. If ICH(4,2) and ICH(4,3) are both true the message "BOTH ICH(4,2) AND ICH(4,3) ARE TRUE CONFLICT IN CALCULATIONS OF GAMA, PHI, QHAT, RHAT, AND AMHAT" is printed and the program stops. If DEBUG is true the print option in ORACLS subroutines SAMPL and EXPINT are activated and the following matrices at the end of subroutine execution are printed: PHI, GAMA, QHAT, RHAT, AMHAT, (AMHA), PHICL (PHCQ).
f. Subroutines Employed by QRMHAT ORACLS - EQUATE, SAMPL, EXPINT, MULT, EXPSER, TRANP, SCALE, ADD, UNITY, JUXTC, JUXTR PIFLIB - PRNTITL, PRNT, CORNER, ALPHA, BETA g. Subroutines Employing QRMHAT PIFCGT h. Concluding Remarks ORACLS software has a problem when computing the sampled data regulator
representation when NGA(2) = 1. QRMHAT serves as backup software to
QRMPI when the latter fails.
RH. SAMPLED-DATA REGULATOR USING ORACLS (QRMP1) 1. PURPOSE The purpose of QRMPl is to compute the sampled-data regulator corres- ponding to a linear time-invariant continuous system and its associated linear quadratic cost function.
(1) Fx + Gu co T T (2) J
6 ~ ~ + ~ Ru dt
The control, u, 1S assumed to be constant over the sampling interval, ~t. The discrete plant and cost function are given by PHI ~ + GAMA ~ (3) J (4) The matrices in the sampled-data regulator problem are computed using the following equations co (F~t)k FM PHI (5) e k~O k!
FT
= f~t E (FT)k dT f~t
(6) GAMA e dT a k=O k! o (7) QHAT (8) (9) RHAT QHAT, RHAT AND AMRAT are computed using the ORACLS subroutine SAMPL.
PHI and GAMA are computed using the ORACLS subroutine EXPINT. If ICH(2,7) is TRUE a matrix similiar to PHI is computed using the matrix PHICL and the ORACLS subroutine EXPSER. The continuous time model for "F" used in computing PHICL is determined in the subroutine PIFEIG as the matr1x FM. The last part of QRMPl is specially adapted to PIF con- troller computation. For PIF, F and G in the calling program have the following form: (10) (11) After PHI and GAMA are computed they are altered from PHI (12) (13) to (14) (IS) The alteration implies the particular digital implementation used in the PIF control law as described in Ref. 1, Chapter III.
2. USAGE a. Calling Sequence CALL QRMPI (H, NH, QHAT, NQH, D, ND, RHAT, NRH, AMHAT, NAM, PHI, NPH, GAMA, NGA, DELT, ICH, DEBUG, W9, NW9DIM, ZERO, NZERO, PHICL, NPHC) b. Input Arguments H, QHAT, D, RHAT, PHI, GAMA' PHICL Matrices packed by columns in one-dimensional arrays. Hand D are not destroyed upon return. The rest are destroyed upon return. Using the notation in the PURPOSE section, QHAT contains Q, RHAT contains R, PHI contains F, GAMA con- tains G and PHICL contains the desired continuous-time closed-loop system (FM) constructed in PIFEIG.
W9 Work matrix packed by columns into a one-dimens10nal array.
Dimension must be at least 14 * (NPH(I) * NPH(2) + 1)
ZERO Work matrix packed by columns into a one-dimensional array.
All elements must be zero. Dimension must be at least
NPH(I) * NPH(2) + 1
Two-dimensional logical matrix dimensioned 10 x 15. Sub- ICH routines in PIFCGT are called depending on the TRUE or FALSE status of elements in ICH.
NH, NQH, ND, NRH, NAM, NPH, NGA, NZERO, NPHC, Two-d1mensional integer vector holding the number of rows and columns of the matrix shown after the letter N. NZERO is the only vector destroyed upon return.
DEBUG Logical scalar indicating the following: TRUE: Print out debug information FALSE: Do not print out debug information DELT Real scalar containing the sampling time.
NW9DIM Integer scalar containing the maximum dimension of the W9 matrix.
c. Output Arguments QHAT, RHAT, AMHAT, PHI, GAMA, PHICL Matrices packed by columns into one dimensional arrays containing the discrete plant representat10n shown in the PURPOSE section.
d. COMMON Blocks None e. Error Messages If the W9 matrix is insufficiently large the message "THE W9 MATRIX IS TOO SMALL" is printed and the program stops. If DEBUG is true the following matrices at the end of subroutine execution are printed: PHI, GAMA, QHAT, RHAT, AMHAT (AMHA), PRICL (PRCQ) f. Subroutines Employed by QRMP1 ORACLS - EQUATE, SAMPL, EXPINT, MULT, EXPSER, TRANP, SCALE, ADD, UNITY, JUXTC, JUXTR PIFLIB - PRNTITL, PRNT, CORNER g. Subroutines Employing QRMP1 PIFLIB - PIFCGT h. Concluding Remarks ORACLS subroutine SAMPL has a problem when computing the sampled data regulator representation when NGA(2) = 1. QRMHAT serves as back up software to QRMP1 when the later fails.
II. REDUCE MATRICES (REMAT) 1. PURPOSE The purpose of REMAT is to eliminate rows and columns of matrices, and reduce the matrix dimensions. The information used by REMAT to eliminate rows and columns is given in the logical vectors XR, UR, YR, XMR, and UMR. The values in the logical vectors are specified in the subroutine HDCON. If a logical variable entry is TRUE, the corresponding state or control or command is to be retained in the PIF design problem. If a logical variable entry is FALSE, the corresponding state or control or command is to be eliminated. The correspondance between logical vector elements and var1ables 1S as follows: t:.u t:.w t:.q t:.e t:.z t:.x t:.v XR(l) XR(2) XR(3) XR(4) XR(S) XR(6) XR(7) t:.cj) t:.r t:.p t:.\jJ t:.y XR(8) XR(9) XR(lO) XR(ll) XR(l2) MT Me UR(l) UR(2) YLONl YLON2 YLATl YLAT2 YR(l) YR(2) YR(3) YR(4) UM UM2 UM3 UMl MM UMR(l) UMR(2) UMR(3) UMR(MM) XR used eliminate in the following matrices: F, is to rows G, Q, AM, HAB PHI, QHAT, GAMA, XL, HX, XR is used to eliminate columns in the following matrices: F, Q, H, PHI, HX, DX QHAT, UR is used to eliminate rows in the following matr1ces: UL, R, RD, RHAT, PHI, GAMA, QHAT matrices: UR is used to eliminate columns in the following G, D, R, AM, RD, RHAT, GAMA, PHI, QHAT UR is used to eliminate rows in the following matrices: YL, H, D, QZ, HM, DM, PHI, GAMA, QHAT YR is used to eliminate columns in the following matrices: QZ, PHI, QHAT XMR is used to eliminate rows in the following matrices: FM, GM following matrices: FM, HM XMR is used to eliminate columns in the UMR is used to eliminate columns in the following matrices: GM, DM 2. USAGE a. Calling Sequence CALL REMAT (N, M, L, NM, MM, DEBUG) b. Input Arguments N, M, L, NM,MM Real scalars indicating matrix d1mensions before reduction; changed upon return Logical scalar indicating the following: DEBUG TRUE: Print out debug information FALSE: Do not print out debug information c. Output Arguments N, M, L, NM, MM Real scalars indicating matrix dimensions after reduction.
d. COMMON Blocks DISCSV, WORKS 9 , WGHTS, MODF, DISCM, PLA, DIMN1, DIMN2, DIMN3, DIMN4, EIGEN, LABEL e. Error Messages and Printout If DEBUG is TRUE then following sequence of matrices are printed out after they have been reduced: F, HX, HAB, Q, G, DX, R, AM, RD, H, D~ QZ, FM, HM, GM, DM, PHI, QHAT, GAMA, RHAT f. Subrout1nes Employed by REMAT ORACLS - EQUATE PIFLIB - PRNT, PRNTITL, MOVEALL g. Subroutines Employing REMAT PIFCGT h. Concluding Remarks None JJ. STEP RESPONSE EIGENVALUE INFORMATION (RESPON) 1. PURPOSE RESPON in association with FREEF and FREEO computes step response in- formation for a given eigenvalue.
2. USAGE a. Calling Sequence CALL RESPON (RR, RI, FREQNA, DAMRAT, THALF, PERIOD, TAU, T90, T98, T100, OVERSH) b. Input Arguments RR Real part of an eigenvalue RI Imaginary part of an eigenvalue c. Output Arguments FREQNA Natural frequency DAMRAT Damping ratio THALF Time to reach 50% of a step command PERIOD Time for a complex eigenvalue to complete one oscillation Time constant TAU T90 Time to reach 90% of a step command T98 Time to reach 98% of a step command T100 Time for the step response of a complex eigenvalue to cross the step command the first time.
OVERSH The overshoot of a stable complex eigenvalue in response to a step input.
d. COMMON Blocks None e. Error Messages None f. Subroutines Employed by RESPON None g. Subroutines Employing RESPON PIFLIB - FREEF, FREEO h. Concluding Remarks None KK. PRINT OUT INFORMATION (RUNINFO) 1. PURPOSE Subroutine RUN INFO prints out the values of all variables used in the PIF design. RUNINFO contains a listing of all available subroutine calls and a listing of all variables used by the PlF program along with their definitions.
2. USAGE a. Calling Sequence CALL RUNINFO (NUM) b. Input Arguments NUM Directs RUNINFO to print out one of two kinds of information =1 Print out subroutine call information =2 Print out variable input information c. Output Arguments None d. COMMON Blocks WORKS 9 , RNlNFO, RNlNFOl, ru~INF02, QWHT, ElGEN, LABLE, UDlR, GLAD, DEBG, AERO, EIGS, HDXA e. Error Messages None f. Subroutines Employed by RUNlNFO None g. Subroutines Employing RUN INFO PlFLlB - PlFCGT h. Concluding Remarks None LL. CREATE A (3XN) MATRIX FROM 3 DIFFERENT lXN MATRICES (R3MAT) 1. PURPOSE Three row vectors A, Band C are scaled by SCI, SC2, and SC3, respect- ively. The three row vectors are grouped into the matrix D, (1)
D= m
The matrix D is scaled by the scalar S.
2. USAGE a. Calling Sequence CALL R3MAT (A, B, C, D, ND, NWI, SCI, SC2, SC3, S, W9) b. Input Arguments A, B, C One dimensional vectors Two dimensional integer vector containing the number of rows NWl and columns of A, Band C: NW1(1) 1
NW1(2) = N
SC1, SC2, Scale factors for A, Band C, respect1vely SC3 S Scale factor for the matrix D after creation • W9 Work space c. Output Arguments D A 3 x N matrix packed by columns into a one-dimensional array with rows of A, Band C, respectively.
ND Number of rows and columns of D
ND(I) = Number of rows of D
ND(2) = Number of columns of D
d. COMMON 'Blocks None e. Error Messages None f. Subroutines' Employed by R3MAT ORACLS - JUXTR, SCALE g. Subroutines Employing R3MAT PIFLIB - FGAERO h. Concluding Remarks None
MM. SCHUR FORM SOLUTION OF A * X * B - X = C (SHRSOL)
1. PURPOSE Subroutine SHRSOL solves the algebraic matrix equation (1) C where it is assumed that the matrix A is in lower real SCHUR form and the matrix B is in upper real SCHUR form. Subroutine SYSSLV is used in SHRSOL to solve a system of order 2 or 4 by Crout elimination.
Common block SLVBLK is used to communicate with SYSSLV.
2. USAGE a. Calling Sequence CALL SHRSOL (A,B,C,N,M,NA,NB,NC) b. Input Arguments A,B,C Matrices stored in two-dimensional array. First dimensions are NA, NB and NC, respectively. Second dimensions are at least N, M, and N. Matrix C is destroyed upon return.
N Order of the matrix A.
Order of the matrix B.
M NA,NB, NC Maximum first dimensions of the matrices A, B, and C, resp- ective1y, as given in the DIMENSION statement of the calling program.
c. Output Arguments C Two-dimensional array containing the solution, X.
d. COMMON Blocks SLVBLK e. Error Messages If the subroutine fails to find a solution the message "ALGORITHM FAILED TO PRODUCE SOLUTION" is printed and the program terminates execution.
f. Subroutines Employed by SHRSOL ORACLS - SYSSLV g. PIFLIB subroutines Employing SHRSOL AXBMXC h. Concluding Remarks It is recommended that the program SOLVER which calls AXBMXC which subsequently calls SHRSOL be used to solve Eq. 1. This subroutine is a generalization of algorithms reported in Ref. ~.
•
NN. ROUND OFF SMALL NUMBERS (SMALL) 1. PURPOSE To zero out elements in a matrix with very small values.
2. USAGE a. Calling Sequence CALL SMALL (A,NA) b. Input Arguments A Input matrix packed by columns in a one dimensional array.
NA Two-dimensional vector contains number of rows and columns in A NA(l) = number of rows in A NA(2) number of =- columns in A c. Output Arguments A If !A(i,j)! < 1 x 10- then A(i,j) O. No action otherwise.
NA No change d. Connnon Blocks None e. Error Messages None f. Subroutines employed by SMALL None g. Subroutines employing SMALL PIFLIB - PIFEIG h. Concluding Remarks Helps in interpreting output if very small elements are zero.
00. ITERATIVE REFINEMENT SOLUTION OF A * X * B - X - C (SOLVER) 1. PURPOSE Subroutine SOLVER solves the algebraic matrix equation (1) C for the matrix X using the program AXBMXC. SOLVER is primarily used to determine a highly accurate solution to Eq. I using iterative re- finement. After AXBMXC computes the first solution to (1), the following matrices are computed using double precision,
ERROR = C + X - A*X*B (2)
(3)
A*Xl*B - Xl = ERROR
If the Euclidean norm of Xl is less than some tolerance (TOL) the iterative refinement procedure is terminated and X is the solution.
If the norm is not less then some tolerance, X is updated, X (4) X + Xl substituted back into Eq. 2 and the iterative refinement procedure is performed again. If two successive values of the Euclidean norm of Xl show the norms are increasing, the iterative refinement procedure is terminated.
2. USAGE a. Calling Sequence CALL SOLVER (A,ADUM,U,N,NA,B,DBUM,V,M,NB,C,CDUM,NC,X,WORKI,EPSA, EPSB,XDUM,TOL,ITER) b. Input arguments A,B,C Matrices packed by columns in one-dimensional arrays. Not destroyed upon return. Dimensions are A - N*N, B - M*M, ADUM, BDUM, CDUM, WORKI, XDUM, U,V Working space vectors of dimensions at least, ADUM - NA*NA, BDUM - NB*NB, CDUM - NC*NC, XDUM - N*M, WORKI - 2*(N*M), ITER Integer scalar indicating the maximum number of iterative refinements attempted by the subroutine. If ITER .LT. 0, no refinement iterations are performed.
TOL Real scalar indicating the tolerance value used to determine if the norm of the equation error matrix 1S sufficiently small.
N,M,NA, NB,NC Integer scalars indicating matrix dimensions. It is required that NA .GT. N+I, NB .GT. M+I, and NC .GT. (MAX(N,M)+l).
EPSA, EPSB See AXBMXC subroutine description.
c. Output Arguments X Upon normal return, X contains the solution to Eq. 1 packed by columns in a one-dimensional array.
d. COMMON Blocks None e. Error Messages If the number of iterative refinements exceeds ITER or the iterative refinement proceed is unstable, the message "SYSTEM FAILED TO CONVERGE AFTER _____ ITERATIONS. RESIDUAL NORM " is printed.
-----
f. Subroutines Employed by SOLVER ORACLS - ADD, NORMS, BCKMLT, HSHLDR, SCHUR, SYSSLV II PIFLIB - AXBMXC, SHRSOL g. Subroutines Employing SOLVER PIFLIB - CGTPIF h. Conclusing Remarks This subroutine is based on the algorithm reported 1n Ref. 3.
IV. SUMMARY - DESIGN PROCEDURE The design procedure for determining a PIF autopilot control law uS1ng the program PIFCGT is outlined below: Choose the control law sampling interval- DELT Specify convergence criteria- EPS, ECGT, TOL, ELOG Specify number of iterative steps- ITER MLOG, IKDGM Choose autopilot design- ICHOSE Specify ICH logicals Specify DEBUG logicals for print out Specify ICGT for feedforward matrix construction Determine the new values for the aerodynamic coefficients and reprogram AEROD accordingly Determine the BETA HOLD feedforward matrices for a number of different forward velocities. Compute a straight line approximation to the ~ to 0 feedforward matrix element c r in S22 using forward velocity as the independent variable.
Reprogram HDCON based on the new straight line approximation.
Choose the number of simulation time steps - lMAX Choose the simulation command magnitude - UMAG Choose the starting and stopping time for the simulation command - USTRT, USTP Specify the eigenvalue eigenvector printout- IFREEF, IFREEP Choose stabilization criteria • DSTAB, DREAL Choose the design flight condition by specifying forward velocity- VTP Guess at the quadratic cost weighting matrices Guess at the command model design parameters - GKDGM, GKPSI, ZDDMAX, ZCLOSE, ZDOMAX, AK1, AK2, ZCLMAX, ZCLMIN, ZCDMAX, GKMIN, GKDSLP, GKDICP, GKDMAX Iterate at guessing command model design parameters until desired command model response is obtained Iterate at guessing cost function weighting matrices until a desired tradeoff is made between gain magnitudes, command response and closed-loop eigenvalues If the NAMELISTS in Appendix A are used, the only choices that should be required by the designer are for DELT, VTP, and the quadratic weights.
AEROD and HDCON need not be modified if the NAVION aircraft is used for control design.
REFERENCES 1. Broussard, J. R., "Design, Implementation and Flight Testing of PIF Autopilot Designs for General Aviation Aircraft", NASA CR-3709, 1983.
2. Armstrong, E. S., ORACLS - A Design System for Linear Multivariable Control, Marcel - Dekher, Inc., New York, 1980. ORACLS can be obtained from the NASA sponsored Computer Software Management and Information Center (COSMIC), Suite 12, Barrow Hall, University of Georgia, Athens, GA 30602, by requesting program LAR-123l3.
T 3. Barraud, A. Y., "A Numerical Algorithm to Solve A XA-X=Q", IEEE Trans. Automatic Control, Vol. AC-22 , No.3, October 1977, pp. 883-885.
4. Broussard, J. R., and O'Brien, M. J., "Feed forward Control to Track the Output of a Forcem Model", IEEE Trans. Automatic Control, Vol. AC-25, August 1980, pp. 851-852. A longer version appears in 17th IEEE Conference on Decision and Control, San Diego, California, January 1979.
5. Maybeck, P. S., Stochastic Models, Estimation, and Control, Vol., 4, Academic Press, New York, 1982.
6. Broussard, J. R., and Berry, P. W., "The Relationship Between Im- plicit Model Following and Eigenvalue/Eigenvector Placement", IEEE Trans. Automatic Control, Vol. AC-23, February 1978, pp. 79-81.
7. CYBER LOADER VERSION 1 REFERENCE MANUAL, Control Data Corporation (CDC), Publicat10n No. 60429800, 215 Moffett Park Drive, Sunnyvale, Ca11fornia 94086.
APPENDIX A
APPENDIX A NAMELISTS FOR AUTOPILOT DESIGNS This appendix presents the nine NAMELISTS used by PIFCGT to design the autopilots in Ref. 1. Initial data values, gain values and quadratic weights are identified in the NAMELISTS.
DESIGN FOR HOLD AUTOPILOT PIF CONTROL BETA SNAH1 ,.,-4, N-9, L-4, NM-Z, MM-2, GKDGH-0.0020, GK PS 1-10.00, ICHOSE -I, IKDG"'-l, ZDOMAX-15.0, AK1-l.0, ZDDMAX- 5.0, ZCLOSE-9.00, AKZ-Z.OO, ZCLMAX-0.3, ZCLMIN-O.l, ZCDHAX-0.8, lCH-250 •• T., ICH(1I5'-.T., ICH(l,b'-.F., ICH( l,7'-.F., lCH(1,4'-.T., ICH(l,8,-.F., ICHll,9'-.F., lCH(1,10'-.T., 1 C H( 1,11' -. T. , ICHll,12'-.F., ICH( 1,13' -.F., ICH(l,14'-.F., ICH( lIlt"-. T., ICH(Z,2,-.T., ICH(Z,4'-.T., ICH( 2,5,-.T., ICH(Z,3'-.F., ICH(2,9'-.T., I C H( 2,10) - • T., ICH(2,7'-.T., lCH(2,8'-.T., lCI-I(2,13'-.T., lCH(2,14'-.F., I C H( 2, 15 , - • F • , ICH(2,12'-.F., ICH(2,1U-.T., ICH(2,lb'-.F., ICH(4,2'-.T., ICH(4,3'-.F., ICH(4,4'-.T., ICH(4,5'·.T., ICH(4,n-.T., IC1-4(4,6'-.T., ICH(4,S'-.T., ICH( 4,9'-.T., lCrl(4,10)-.F., ICH(4,lU-.F., ICH( t"lb)-.F., ICH(4,15'-.T., ICH(4,ln-.F., ICH(5,l)-.F., ICrH5,Z'-.F., ICH(5,3'-.T., ICH( 5,4'-.T., ICH(5,5,-.T., ICH(~,e,'-.T., ECGT-l.OE-IZ, TOL-l.OE-12, S5-l.0, EPS-l.OE-1Z, ITf:P-12, VTP-175.0, ICGT(5)-O, ICGT-5·1, ICGT(l'-3, ICGTC4'-Z, ELOG-l.OE-lO, MLOG-7, DREAL-0.90, lORE G.5.0, $ $NAM2 YR-4 •• F., XMR-IZ •• F., XR-12*.f., UR-4*.F., UMR-4·.F., $ SNAM3 IRUN-l, UMAG-1b.O.0, USTR T-1b.0. 0, IHAX-l92, USTP-16*0.0, UMAG (1, l' -20., USTRT(1,1'-1.O,USTP(1,1'-ZO.O, s $t-JAM4 IFREIG-O, IFREEP-2, DELT-O.l, IFREEF-O, DEBUMZ-.F., DEBUM3-.F., DE BU M4-. F., DEBUM1-.F., DfBUI4-.F., DEBU~A-.F., DEBUZZ-.T., DEBUM6-.F., DEBUZ4- .F., DEtW25-.F., DE8U2b-.F., DEBU27-.F., DEBU3l-.F., DEBU4Z-.F., DEBU43-.F., METE RS-. F., DE 8U4 4-. F., DE8U4b-. F., DESU48-. T .. DEB4lb-.T., DESU54- .F., DE:BU49-.T., DEBU53-.T., S SNAM5 0-16*0.0, F-6l*O.O, G-36*0.O, H-48*O.O, HM-a*O.O, DM-e*O.O, FM-4*0.0, GM-4*O.O, $ SNAM6 QBQ-O.OOE-OO, THQ- O.OOE-OO, UBO-O.OOE-OO, WBQ-O.OOE-OO, ZIQ-O.O, VHO-O.OOE-OO, RBO-lI.OE-OO, XIO-O.O, P8Q-O.OOE-OO, PHQ-1O.OE-OO, PSQ-IO.OE-OO, YIO-O.OOE-OO, OTH-O.OOE-OO, DER-O.OOE-OO, DA-0.10E-OO, ORR- O.lOE-OO, OTHO·O.OE-OO, OERO-O.OOE-OO, OARO-7.00E-OO, DRRO-7.00E-00, ZIQ-O.OOE-OO, Z2Q-O.OOE-OO, Z3Q-3.00E-OO, Z4Q- 2. 50E-00, UBOO-O.OOE-OO, WBDQ-O.OOE-OO, QBDQ-O.OOE-OO, THDQ-O.OOE-OO, XIOO-O.OOE-OO, ZIOQ-O.OOE-OO, VBOQ-O.OOE-OO, RBDQ-O.OOE-OO, PBOO-C.OOE-OO, PHDO-O.OOE-OO, PSOO-O.OOE-OO, Y 100 -0.0, $ $AEROl $ SAER02 $ SNAM7 EI-9*O.O, ER-9*0.O, f:I-9*0.O, ERV-400*0.O, IEV-9*O, $ PIF CONTROL DES IbN FOR ROll SEl AUTOPILOT SNAM1 N-9, M-4, l-4, NM-Z, MM-Z, I KDGM-1, 6t<DGH-O.OOZO, GKPS 1-10.00, ICIofOSE-12, ZOOMAX-ZO., ZClose-3.00, ZDOMAX-IO.O, AK1- 6.0.
ZCDMAX-0.6, AK2-9.00, ZClMAX-O.3, ZCUlIN-O.1, ICH-ZSO*.T., ICH(l,4)-.T., ICH(1I5)-.T., ICH(l,6,-.F., ICH(1,7)-.F., ICH( 1111)-. T., ICH(1,8)-.F., ICH(1,9)-.F., ICH(1J10)-.T., ICH(1,14)-.F., 1 C H( 1, 16 ) - • T • , ICHll,lZ)-.F., ICHC1,13)-.F., ICH(Z,Z)·.T., ICHCZ,3)-.F., ICHlZ,4)-.T., ICH(2,5)-.T., ICHlZ,1)·.T., ICrlCZ,8)-.T., ICH(Z,9)-.T., I C H( 2,10) - • T. , ICH(2,12)-.F., ICtH2,13)-.F., ICHCZ,14)-.F., I C H( 2, 15 ) - • F • , ICH(2,ll)-.T., ICHlZ,16)-.F., ICHC4,Z)·.T., ICH(4,3)-.F., ICHl4,4)-.T., ICH( 4,5)-.T., ICHl4,b)-.T., ICH(4,1)-.T., ICHl4,8)-.T., ICH( 4,9) -. T., ICH(4,10)-.F., ICHl4,1l)-.F., ICH(4,lS)-.T., ICH( I"lb)-.T., ICHC5,U-.F., ICH(5,2)-.F., ICH(S,3)-.T., ICH( 5,4)-.T., ICHC5,5)-.T., lCHCS,b)-.T., 5S-1.0, EPS-1.0E-1O, eCGT-l.OE-IO, TOl-1.0E-lO, ITElh 10, VTP-145.0, ICGT-5*1, lCGT(1)-3, ICGTC 4) -0, ICGT(5)-O, ElOG-1.0E-10, MlOG-7, DREAl-0.90, lORE G-5*0.
S SNAM2 XR-1Z*.F., UR-4*.F., YR-4*.F ., XMR-12*.F., UMR-4*.F., S SNAM3 IMAX-152, IRUN-1, UMAG-16*0.O, USTR T-16*0. 0, USTP-16*0.O, UMAG(l,U-S.O, USTRTll,1)-1.O,USTP(1,1)-ZO.O, S SNA,.,4 IFREEF-O, IFREIG-O, IF RE E P- 2, DEL T -0.1, i) EB UM 1- • F • , DEBUMZ-.F., DEBUM3-.F., DEBUI14-.F., DEBUM6-.F ., DEBU14-.F., DEBUI1A-.F., DEBU22-. T., DE: BUZ4-. F., DEBU25-.T., DEBUZ 6-.F., DEBU21-.F., DEBU31-.F., DEBU4Z-.F., DE BU4 3-. F., METERS-.T., DEBU44-.F., DEBU46-.F., DEBU4S-.F., DEB416-.T., OEBU49-.T., DEBUS3-. T., DEBU54-.F., S SNAM5 F-Sl*O.O, G-36*0.0, 1-1-48*0.0, 0-1& .0.0, FM-4*0.0, Gf'4-4*0.0, H"'-e*O.o, 0"'-8 to.O, $ SNM1& UBQ-O.OOE-OO, \olBQ-O.OOE-OO, QBQ-O.OOE-OO, THQ- 0.00 E-OO, XIQ-O.O, ZIO-O.O, VHO-O.OOE-OO, RBO- a.OOE-OO, PSQ-O.OOE-OO, PHQ-&.OOE-OO, PSQ-4.00E-OO, YIQ- O.OOE-OO, OTH-O.OOE-OO, OER-O.OOE-OO, OA-3.50E-OO, ORR-l.eOE-OO, OTI-IO-O.OE-OO, OERO-O.OOE-OO, OARO-3.50E-00, ORRO-4.00E-OO, ZlQ-O.OOE-OO, ZZQ-O.OOE-OO, Z3Q-3.00E-OO, Z4Q- 2.50E-OO, UBOQ-O.OOE-OO, WBOQ-O.OOE-OO, QBOQ-O.OOE-OO, THOQ-O.OOE-OO, XIOQ-O.OOE-OO, ZIDQ-O.OOE-OO, VBOQ- O. ZOE-OO, RBOO-O.OOE-OO, PBOQ-O.O~H':-OO, PHOQ-O.OOE.-OO, PSOQ-O.OOE-OO, YIOQ-O.O, $ SAEROl $ SAER02 $ SNAM7 EI- 9.0 .0, EI-9.0.0, ER-9*0.0, ERY-400*O.0, IEY-9.0, $ PIF CONTROL DESIGN FOR HOG SEL AUTOPILOT SNAMl N-9, H-4, L- 4, NH-Z, f MM-?, GKOGM-O.OOZO, GKPS 1-10.00, ICHOSE-o, IKOGM-1, ZOOHAX-15.0, AK 1- 1.0, ZDOMAX-5.0, ZCLOSE-9.00, ZCLMAX-O.3, ZCLMIN-O.l, ZC OH AX-O. 8, AKZ-Z.OO, ZCOP-lAX - 0.8, ICH-Z50*.T., ICHC1,0)-.F., ICH(1,1)-.F., ICH(l,4)-.T., ICHC1,5)-.T., ICH(l,S)-.F., ICHCl,10)-.T., I CH C 1,11) -. T ., ICrlCl,9)-.F., rCH( l,13)-.F., ICHCl,14)-.F., ICH( 1,15)-.T., ICHCl,12)-.F., ICHCl,lo)-.T., ICH(2,Z)-.T., ICH(2,3)-.F., ICHCZ,4)-.T., I C H( 2, 5 ) - • T ., ICH(Z,1)·.T., ICH(2,8)-.T., ICH(2,9)-.T., I C H( 2,10) - • T • , ICH(2,13)-.F., ICH(2,14)-.F., I C H( 2,15) - • F. , ICrl(Z,1Z)-.F., ICH(Z,1U-.T., ICIH2,10)-.F., ICHC4,4)-.T., ICHC4,5,-.T., ICH(4,Z)-.T., ICH(4,3)-.F., ICH(4,0)-.T., ICH(4,7)-.T., ICHC4,8)-.T., ICH(4,9'-.T., IC'-tC4,10)-.F., ICH(4,1U-.F., ICH(5,U-.F., ICH(5,Z)-.F., ICHC5,3)-.T., ICHC 5,4' -. T., ICH(5,0)-.T., ICHC5,5)·.T., ECGT-l.0E-1Z, TOL-l.OE-1Z, 5S-1.0, EPS-1.0E-12, ITER-12, VTP-145.0, ICGT (5)-0, ICGTCl)-3, ICGT(4)-0, ICGT-5*1, ELOG-l.OE-lO, MLOG-7, OREAl-0.90, lOR E G-5*O, $ SNAMZ XI1R-lZ*.F., XR-12*.F., UR-4*.F., YR-4*.F., Uf'lR-4*.F., $ SNAM3 US TR T-10*0. 0, If1AX-Z92, IRUN-l, U HAG-10*0. 0, UMAGCl,l)--4,., USTRTC1,1'-O.5,USTPC1,1)-30.0, USTP-lb*O.O, S SNAH4 OELT-O.1, IFREEP-Z, IFREIG·O, IFREEF-2, DEB U 114 -. F. , OEBUI'43-.F., OEBUM2-.F., OEBUfU-.F., OEBUZZ-.F., OEBUMA-.F., OEBU14-.F., OEI3UMo-.F., OEBU21-.F., DE:BU2b-.F., DEBUZ5-.F., OEBUZ4-.F., METERS-.T., OEBU43-.F., OEBU4Z-.F., DEBU3l-.F., OEB41b-.T., OEBU4S-.T., OEBU46-.F., DEBU44-.F., DEBU54-.F., OEBU53-.T., OEBU49-.F., $ SNA"'5 F-81*O.O, G-3b*O.0, H-4a*0.0, D-1b*0.O, FM-4*0.0, GM-4*0.0, HM-a*o.o, OM-a *0.0, $ SNAMb WBQ-O.OOE-OO, CSQ-O.OOE-OO, THQ- O. OOE-OO, USC-O.OOE-DO, XIQ-O.O, ZIQ-O.O, VHQ-O.OOE-OO, RaQ-Il.OE-OO, PSQ-IO.OE-OO, Y I Q- O. OOE-OO, PBQ-O.OOE-OO, PHQ-IO.OE-OO, DTH-O.OOE-OO, DER-O.OOE-OO, DA-O.IOE-OO, ORR- O.lOE-OO, DTHD-O.OE-OO, DERD-O.OOE-OO, OARO-1.00E-00, DRRD -1. OOE-OO, ZlQ-O.OOE-OO, Z2Q-O.OOE:-OO, Z3Q-3.00E-00, Z4Q- 2.S0E-OO, UBDQ-O.OOE-OO, WBDQ-O.OOE-OO, QBDQ-O.OOE-OO, THDQ-O.OOE-OO, XIOQ-O.OOE-OO, ZIDQ-O.OOE-OO, V BOO- O. OOE-OO, RBOO-O.OOE-OO, PBDQ-O.OOe-OO, PHDO-O.OOE-OO, PSDQ-O.OOE-OO, YIDQ-O.O, $ SAEROI $ SAE R 02 $ SNAM1 ER-9*0.O, I:I-9*0.O, EI-9*0.O, IEV-q*O, ERV-400*0.O, S PIF CONTROL DESIGN FOR APR LOCI AUTOPILOT SNAM1 N-9, M- 4, L-4, NM-2, MM-2, ICHOSE·9, IKDGM-10, GKDGM-0.0025, GKPS 1-5.000, ZDDMAX-10., ZCLOSe-15.0, ZDOMAX-3bO., AKI-O.114, AK2-1.20, ZCUUX-O.3, ZCLMIN-O.lI ZCDI1AX-O.5, GKDMIN - 0.11, GKDSLP--0.OO20,GKDlCP-0.20, GKDHAX-O.22, lCH-Z50*.T., ICH(l,4)-.T., ICH(l,5)-.T., ICH(l,b)-.F., lCH( 1I7)-.F., ICHU,8)-.F., ICH(l,9)-.F., rCH(1,lO)-.T., I C H( 1,11 ) -. T. , ICH(l,12)-.F., ICH(1,13)-.F., ICH(l,14)-.F., I C H( 1, 16' - • T ., ICrf(Z,2)·.T., ICH(2,3,-.F., ICH(2,4)-.T., ICHC2,5)-.T., rCH(Z,7)-.T., rCH(Z,S)- .T., ICH(2,9)-.T., Ie H( 2,10' •• T., IC ... (2,11)-.T., ICH(Z,12)-.F., lCHC2,13)-.F., ICH( 2,14)·.F., ICH(Z,15)-.F., ICH(2,lb)-.F., ICH(4,2)-.T., rCH(4,3)-.F., ICH(4,4)-.T., lCH( 4,5)-.T., ICH(4,b)-.T., lCH(4,7)-.T., ICH(4,S)-.T., lCH( 4,9)-.T., rCH(4,10)-.F., lCH(4,lU-.F., ICH(4,15)-.T., ICH(4,16)-.T., ICH(5,U·.F., lCH(5,2)-.F., ICH(S,3)-.T., ICH(5,4)·.T., ICH(5,5)-.T., lCH(5,b)-.T., 5S-1.0, EPS-l.0E-10, ECGT-l.OE-10, TOL- 1.OE-lO, ITER-10, VTP-145.0, ICGT(l)-3, ICGT(4)-O, lCGT(5)·O, ICGT-5*1, ELOG-l.OE-10, MLOG-7, DREAl-O.90, lORE G-5*O, $ SNAMZ XR-IZ*.F., UR-4*.F., YR-4*.F., XMR-IZ*. F II UMR-4*.F., SNAM3 rMAX-348, lRUN-l, UMAG-lb*O.O, USTRT-lb*O.O, UMAG(1,1)-500.,USTRT(1,1)-O.O,USTPC1,1)-30.0, USTP-1b*O.0, UMAG(2,U-45. , USTRTC2,1)-0.0,USTPC2,1)-30.0, $ $NAM4 IFREEF-O, IFRElG-O, IFREEP-l, DELT-O.l, OEaUr'1l-.F., DE aUM2-. F II DEBUH3-.F., DEBU "4-, F II DESUMb-.F., OEBU14-.F., DEBUI'U- .F., DEBU 22-. T., DEBU24-.F., DEBU25-.T., DEBU26-,F., DEBU27-.F., DERU31-.F., DEBU42-.F., OEBU43-.F., METE RS-. Til DEBU44-.F., o EBU4b-. F., OEBU4S-.F., DEB416-. T., DEBU49-.T., DEBU53-.T., DE BU54-. F., $
GM-4*0.0,
SNAM5 F-Sl*O.O,. G- 3b*0. 0, H-4S*0.0, O-lb*O.O, FM-4*0.0, HM-S*O.O, OM-S*O.O, GM-4*0.0, S $NAMb UBQ-O.OOE-OO, WBQ-O.OOE-OO, OSO-O.OOE-OO, THQ- O.OOE-OO, XIQ-O.O, ZIO-O.O, VHO-O.OOE-OO, ReO-ll.OE-OO, PBO-O.OOE-OO, PHO-IO.OE-OO, PSO-14.0E-OO, Y I Q- o. OOE-OO, OTH-O.OOE-OO, OER-O.OOE-OO, OA-O.1OE-OO, ORR- O.lOE-OO, OTHO-O.OE-OO, OERD-O.OOE-OO, OARO-7.00E-OO, ORRO-7.00E-OO, ZlQ-O.OOE-OO, Z2Q-O.OOE-OO, Z30-Z.50E-OO, Z4Q-O.50E-OO, UBDQ-O.OOf-OO, WBDQ-O.OOE-OO, QBOQ-O.OOE-OO, THOQaO.OOE-OO, XIDQ-O.OOE-OO, ZIOO-O.OOE-OO, IJBDQ-O.OOE-OO, RBDO-O.OOE-OO, PBOQ-O.OOE-OO, PHOQ-O.OOE-OO, PSOQ-O.OOE-OO, YIDQ-O.O, $ $AFROl $ SAEP02 $ SNAf'l7 EI-q*O.O, ER-q*O.O, EI-9*O.O, IEV-q*O, ERV-400*O.O, $ PIF CONTROL DESIGN FOR APR loeR AUTOPILOT SNAHI NH-2, M- 4, L-4, N-9, MM-2, GKDGM-0.0020, GKPS 1-3.00, ICrlOSE-15, IKDGM-l, ZCLOSE-15.0, ZDOMAX-360., AKl- 0.114, ZOOMAX-lO., ZC Df'UX-O. 5, AKZ-1.Z0, ZClMAX-0.3, ZClMIN-O.l, GKDH AX.O. 22, GKDMIN - 0.11, GKDSlP--0.0020,GKDICP·O.20, ICH-Z50*.T., GKY-0.30, IeH(1,4)-.T., ICH(1,5)-.T., ICH(1,6)-.F., ICHC1,7)-.F., ICH(l,8) •• F. , ICH(l,9)-.F., ICH(1,10)-.T., 1 C H( 1, 11) • • F • , ICIH1,lZ)-.F., ICH(1,13)-.F., ICH(1,14)-.F., I C H C 1, 16 ) - • T • , ICH(2,5)-.T., ICIHZ,Z)-.T., IC~H2,3)-.F., ICH(2,4)-.T., ICH(Z,7)-.T., ICH(Z,S)-.T., ICHC2,Q)-.T., I C H C 2, 1 0) -. T. , I C H( 2,15) -. F., ICH(2,12)-.T., ICH(Z,13)-.F., ICHC2,14)-.F., ICH(2,16)-.F., ICH(Z,lU-.T., ICHC4,5)-.T., ICH(4,2)-.T., ICH(4,3)-.F., ICH(4,4)-.T., lCH(4,7)-.T., ICHClt,8)-.T., ICH( '.,9)-.T., ICIi(4,6)-.T., ICtH4,lO)- .F., ICIi( It,lU-.F., ICH(lt,15)-.T., ICHC4,lb)-.T ..
ICH(5,1)-.F., ICH( 5,Z)-.F., ICHC5,3)-.T., ICH( 5,4)-.T., ICH(5,5)-.T., ICrI(5,6)-.T., 55-1.0, EPS-l.0E-10, ECGT-l.OE-lO, Tal- l.OE-IO, ITER-lO, VTP-145.0, 1CGT(l)-3, ICGT-5*1, ICGT(4)·O, ICGT(5)·O, ELOG-1.0E-IO, MlOG-7, DREAL-O.90, lORE G-5*O, s SNAM2 Xlh12*.F., UR-4*.F., YR-4*.F., XMR-l2*.F., UMR-4*.F., $ SNAM3 I to4AX- 346, IRUN-l, UMAG-16*0.O, USTRT.16*O.O, U5TP-16*0.0, UMAG(1,1)-500.,USTRT(l,l)-O.0,USTPCl,1)-30.0, lJMAG(Z,1)-45., USTRT(Z,1)-0.O,USTP(Z,1)-30.0, $ SNAM4 IFREEF-O, 1FREIG-O, IFREEP-l, DELT-O.l, DEBUMl-.F., OEBUM2-.F., OEBUM3-.F., OEBUt14-.F., DE:BUM6-. F., DEBU14-.F., DE.BU,",A-.F., oeBU 22-. T., DEBU24-.F., DEBU25-.F., DEBU26-.F., OEBU 27-. F., DEBU3l-.F., DEBU4Z-.F., DEBU43-.F., METERS-.T., DE8U44-.F., DE BU4b-. F., DEBU4S-.F., DEB4l6-. T., DEBU4Q-.T., DEBU53-. T., DEBU54-.F., S SNAH5 H-41:J*0.0, 0-16 *0. 0, F-S1*0.0, G-36*0.0, FM-4*0.0, GM-4*0.0, HM-S*O.O, OM-S *0.0, S SNAMb USO-O.OOE-OO, WSO-O.OOE-OO, OS 0-0 .OOE-OO, THO- a.OOE-OO, XIQ-O.O, ZIO-O.O, VHO-O.OOE-OO, RBO-ll.OE-OO, PSQ-O.OOE-OO, PHO-10.OE-00, P SO-II. OE-OO, Y I 0- 0.00 E-OO, OTH-O.OOE-OO, DER-O.OOE-OO, OA-O.lOE-OO, ORR- O.lOE-OO, DTHO-O.OE-OO, DERO-O.OOE-OO, DARO-7.00E-00, oRRo-7.00E-OO, llO-O.OOE-OO, Z20-0.00E-00, l 30-1. OOE-OO, l40- 2.20E-OO, UBDO-O.OOE-OO, WBoO-O.OOE-OO, QBoO-O.OOE-OO, THoO-O.OOE-OO, lIDQ-O.OOE:-OO, VBDO-O.OOE-OO, XIoo-O.OOE:-OO, RBDO-O.OOE-OO, PBDQ-O.OOE-OO, PHOQ-O.OOE-OO, P SoQ-O. OOE-OO, YIoQ -0.0, $ SAEROI $ SAER02 $ SNAM7 ER-q*O.O, EI-9*0.O, EI-q*O.O, ERV-400*0.O, I£V-q*O, S PIF CONTROL DESIGN FOR APR LOCP AUTOPILOT SNAMl N- 9, '1-4, L- 4, NM-2, MM-Z, GKOGt4-0.0020, GKPS 1-4.00, ICtiOS[-16, IKDGM-l, ZOOMAX-360., AK1- 0.114, ZDOMAX-IO., ZCLOSE-15.0, AKZ-I.ZO, ZCLHAX-0.3, ZCLMIN-O.l, ZCDMAX-0.5, zs--o.OO, Xs-o.oo, YS-O.o, ZCDt4AX - 0.5, GKDSLP--O.0020,GKDICP-O.ZO, GKDMAX-O.22, GKDMIN - 0.11, rCH-Z50*.T., GKY-0.10, ICH(l,5)-.T., ICH(l,6)-.F., I C H( 1,1) - • F ., ICIH1,4)-.T., rCH(l,8)-.F., ICH(l,lO)-.T., ICH( l,ll)-.F., IC'1(119)-.F., ICH(l,lZ)-.F., ICH(I,13)-.F., ICH(l,14)-.F., 1 C H( 1,16' -. T ., ICH(Z,Z)-.T., ICH(Z,3'-.F., ICHCZ,4)-.T., I C H( Z, 5' - • T ., ICH(Z,7)-.T., ICH(Z,8)-.T., ICH(Z,9)-.T., ICH( 2,10)-.1., rCH(Z,lZ)-.T., ICH(Z,13)-.F., ICH(Z,14)-.F., I C H( 2, 15 ) - • F • , ICH(Z,lU-.T., ICH(Z,16,-.F., IC'H4,2)-.T., ICH(4,3)-.F., ICH(4,4)-.T., ICH(4,5)-.T., 1CI1(4,6)-.T., ICH(4,1)-.T., ICH(4,8)-.T., ICH(4,9)-.T., lCH(4,lO)-.F., ICH(4,11)-.F., ICH(4,15)-.T., IC H(4, 16) -. T., ICH(5,U-.F., ICH(~,Z)-.F., ICHC!5,3)-.T., ICH( 5,4)-. T" ICH(5,5)-.T., ICH(5,b)-.T., 5S-1.0, EPS-I.OE-1O, ECGT-l.OE-lO, TOL-l.OE-lO, ITER-10, VTP-150.0, ICGT(5)-0, ICGT-S*l, ICGT(l)-3, ICGT( 4) -0, E:LOG-I.OE-lO, HL OG-1, DREAL-O.90, lORE G-5*O, $ SN~MZ XR-IZ*.F., UR-4*.F., XHR-1Z*. F., YR-4*.F., UMR-4*.F., $ $NAM3 IMAX-346, IRUN-1, UMAG-16*O.O, USTRT-lb*O.O, UHAG(l,l,-500.,USTRT(1,1)-0.0,USTPCl,l)-30.0, USTP-16*0.0, UMAG(Z,U-45., USTRT(Z,1)-0.0,USTP(Z,1)-30.0, '$ SNAM4 I FREE pel, IFREEF-O, IFREIG-O, DELT -0.1, DE8UH4-.F., DEBUM1-.F., DE8UHZ-.F., DEBUM3-.F., DEBUMA-.F., DE BU 22-. T., DE BUMb-. F., DEBUI4-.F., Of;BU24-.F., DEBU2S-.F., OE:8U2b-.F., OEBU21-.F., DEBU3l-.F., DEBU4Z- .F., METERS-.T., DEBU43- .F" DEBU44-.F., OEBU46-.F., DEBU4S-.F., DEB416-. T., DEBU4C;-.T., OEBU53-.T., OEBU54-.F., $
GM-4*0.O, HM-e*O.O,
SNAM5 F-el.O.O, G-36.0.0, 0-16 to. 0, H-4S·0.0, F~-4.0.0, D M-e .0.0, GM-4*0.O, HM-e*O.O, $ $NAM6 UBQ-O.OOE-OO, WBQ-O.OOE-OO, QBQ-O.OOE-OO, THO- O.OOE-OO, XIQ-O.O, ZIQ-O.O, VHO-O.OOE-OO, RBO-U.OE-OO, PHQ-8.00E-OO, PSQ-O.OOE-OO, PSO-14.0E-OO, YIQ- O.OOE-OO, DTH-O.OOE-OO, DER-O.OOE-OO, OA-O.1OE-OO, ORR- O.lOE-OO, DERO-O.OOE-OO, DARO-7.00E-OO, DRRD-7.00E-OO, DTHO-O.OE-OO, ZlO-O.OOE-OO, ZZQ-O.OOE-OO, Z3Q-l.00E-OO, Z 4Q- 2. ZOE-OO, UBOO-O.OOE-OO, WBOO-O.OOE-OO, QBOO-O.OOE-OO, THOO-O.OOE-OO, XIDO-O.OOE-OO, lIDO-O.OOE-OO, VBDO-O.OOE-OO, RBDO-O.OOE-OO, PBDO-O.OOE-OO, PHOQ-O.OOE-OO, PSOO-O.OOE-OO, YIOO-O.O, $ $AE ROl $ $AER02 $ SNAM7 EI-9.0.0, ER-9.0.0, EI-q·O.O, ERV-400.0.0, IEV-q*O, $ PIF CONTROL DESIGN FOR PITCrl SEL AUTOPILOT SNAMl N-9, M- 4, L -4, MI1-2, ICHOSe-4, IKDGM-l, GKDGM-O.OOZO, GKPS 1-10.00, ZDDMAX-0.75, ZCLOSE-l9.66, ZDOMAX-e.30, AKI-0.8, AKZ-Z.OO, ZCLMAX-Z.O, ZCLHIN-0.4, ZCDHAX-0.3, GKDMIN-0.04, GKDSLP--0.0004,GKDICP-0.07, GKOf1A X-O .07, ICH-250·.T., ICH(l,6)-.F., lCH(1,4)-.T., ICH(1I5)-.T., ICH(1,7'-.F., ICH(l,e)-.F., ICH(l,9)-.F., ICHU,10)-.T., ICH(lIll)-.T., ICH( 1,15)-.T., ICHU,lZ)-.F., ICH(l.l3)-.F., ICH(1,14)-.F., ICH(l,16)-.T., ICH(Z,Z)-.T., ICH(2,3)-.F., ICH(Z,4)-.T., Ie H( 2, 5 ) - • T • , ICH(Z,7)-.T., ICH(2,8)-.T., ICH(2,9)-.T., 1 C H' 2, 10 ) - • T. , ICH(Z,lZ)-.T., ICH(Z,13)-.F., ICH( 2,15'-.F., ICH'2,14)-.F., ICH(2,lU-.T., ICH(2,l6)-.F., ICH(4,Z)-.F., ICH(4,3)-.T., ICH(4,4)-.T., ICH(4,5)-.T., ICH(4,6)-.T., ICH(4,7)-.T., ICH(4,8)-.T., lCH(4,9)-.T., ICH(4,10)-.F., ICH(4,lU-.F., ICI-f(5,U-.F., ICtH5,Z)-.F., ICH(5,3)-.T., ICH( 5,4) -. T., ICH(5,5)-.T., ICH(5,b)-.T., TOL-l.OE-10, 5S-1.0, EPS-l.OE-lO, ECGT-l.OI:-lO, ITER-lO, VTP-l50.0, lCGT(1)-3, lCGT(4)-0, lCGT (5)-0, 1CGT-5·1, ELOG-l.OE-lO, MLOG-7, OREAL-0.90, lORE G-5*O, $ SNAHZ XR-lZ*.F., UR-4*.F., YR-4*.F., XMR-12*.F., UMR-4 •• F., S $NAM3 IMAX-l98, IRUN-l, UMAG-16.0.0, USTR T-16*0. 0, UMAG(1,1)-5.00,USTRT(1,l'-l.0,USlP(1,l)-30.0, USTP-lb*O.O, $ $NAf'l4 IFREEF-1, IFREIG-O, IFREEP-l, DELl-O.l, DEBUM1-.F., OEBUM2-.F., OEBUM3-.F., DEBUM4-.F., DI:BUM6-.F., DEBU14-.F., DEBU'1A- .F., DE BU 22-. T., DEBUZ4-.F., DEBU25-.F., OE8U26a.F., DEBU27-.F., DEBU3l-.F., DEBU4Z-.F., DEBU43-.T., METERS-.T., DEBU44-.F., DEBU46-.F., DEBU48-.F., DE 8416-. T., DEBU49-.F., DEBU53-.T., DEBU54-.F., s SHAH5 F-S1*0.0, G-36*0.0, H-48*0.0, 0-16*0.0" FM-4*0.0, GM-4*0.0, HM-e*O.O, OM-8 *0.0, $ SNAM6 UBQ-O.OOE-OO, WBO-O.OOE-OO, QSQ-O.OOE-OO, 1 HQ-,e.OOE-OO" )(IQ-O.O, ZIQ-O.5, VHQ-O.OOE-OO, RBQ- a.OOE-OO,·· PBO-O.OOE-OO, PHO-O.OOE-OO, PSO-O.OOE-OO, Y I Q- O.OOE-OO, DTrl-O.OOE-OO, DER-O.OOE-OO, DA-O.OOE-OO, ORR- a.OOE-OO, OT~'H'- O. OE-OO, DERO-7.00E-OO, DARO-O.OOE-OO, ORRO-O.OOE-OO, ZlQ-3.000E-00, Z2Q-3.000E-OO" Z3Q-0.OOE-00, Z4Q- o. OOE-OO, UBDg-O.OOE-OO, WBOQ-O.OOE-OO, QBOQ-O.OOE-OO, THOO-O.OOE-OO' XIOQ-O.OOE-OO, ZIOQ-O.OOE-OO, VBDQ-O.OOE-OO, RBDO-O.OOE-OO, PBDO-O.OOE:-OO, PHDO-O.OOE-OO, PSDQ-O.OOE-OO, YIDO-O.O,- S $AEROl $ SAER 02 $ SNAM7 EI-q*O.O, ER-q*O.O, EI-q*O.O, ERV-400*0.0, IEV-q*O, S PIF CONTPOL DESIGN FOR AlT SEL AUTOPILOT SHAHl N-ch H-4, L-4, NM-Z, HH-Z, ICHOSE-1, IKOGM-l, GKDGM-0.0020, GKPSI-I0.00, ZOOMAX-0.15, ZCLOSE-19.b8, ZDOHAX-S.30, AK1- o. e, AI<Z-Z.OO, ZCLHAX-Z.O, ZCLHIN-O.4, ZCOH AX-O. 3, GKDMIN-0.04, GKDMAX-O.01, GKDSlP--O.OO04,GKDICP-O.07, ICH-Z50*.T., ICHll,4)-.T., ICH(l,5)-.T., ICHU,b)-.F., ICH( 1,7)-.F~, ICHll,B)-.F., ICH(1,9)-.F., lCH(1,lO)-.T., ICH( 1,11)-.T., ICH(l,lZ)-.F., rCH(1,13)-.F., lCHC1,l4)-.F., Ie H C 1, 15 ) - • T • , ICH<l,lb)-.T., ICH(Z,Z)·.T., ICtHZ,3)-.F., ICH(2,4)-.T., rCH(2,5)-.T., rCH(Z,S)-.T., ICrHZ,7)-.T., ICHCZ,9)-.T., ICH(Z,lO)-.T., ICH(Z,IZ)-.T., ICH(2,13)-.F., lCH(Z,l4)-.F., I C H( Z, 15) -. F. , ICH(Z,lll-.T., ICH(Z,16)-.F., ICH(4,Z)-.F., ICHC4,3)-.T., ICH(4,4)-.T., ICH( 4,5)-.T., ICH(4,b)-.T., ICHC4,7)-.T., ICH(4,S)-.T., ICHC4,9)-.T., ICH(4,10)-.F., ICH(4,lU-.F., ICH(5,1)-.F., rCHCS,Z)-.F., ICH(5,3)-.T., ICH( 5,4)-.T., ICH(5,5)-.T., rCHC5,b)-.T., 5S-1.(;, EPS-l.OE-lO, ECGT-l.OE-lO, TOl- l.OE-lO, ITER-IO, VTP-lS0.0, ICGT-S*l, ICGT(U-3, ICGT(4)-O, ICGT(5)-0, ELOG-l.OE-IC, HlOG-7, DREAl-0.90, lORE G-,*O, S SNAMZ XR-IZ*.F., UR-4*.F., YR-4*.F., XHR-1Z*.F., UMR-4*.F., $ SNAM3 IMAX-Z98, IRUN-l, UHAG-lb*O.O, USTRT-lb*O.O, USTP-lb*O.O, UMAGC1,1)-lOO.,USTRTC1,1)-1.O,USTP(1,1)-30.0, $ !NA~4 IFREEF-l, IFREIG-O, IFREEP-ll DELT-O.l, DEBUH1-.F., DE BUHZ-. F., DEBUM3-.F., DEBUf14-.F., DEBUMb-.F., DEBU14-.F., DEBUHA-.F., DEBU 2Z-. T., OEBUZ4-.F., DEBU2S-.F., DEBU26-.F., DEBU 27-. T., o EBU4Z-. F., DEBU3l-.F., DEBU43-.F., METERS-.T., DEBU44-.T., DEBU4b-. F., DEBU4S-.F., DEB4lb-. T., DEBU49-. F., DEBU53-.T., DEBUS4-.F., $
GM-4*O.0,
SHAM5 F-81*O.O, G-3b*O.O, 1i-4S*O.O, 0-1b .0.0, Ff'h4*0.0, HM-e*O.O, D M-e .0.0, GM-4*O.0, $ $NAf'l6 UBO-O.OOE-OO, WSO-O.OOE-OQ, 080-0.00E-00, THO-14.0E-OO, XIOaO.O, ZIO-0.5, VHO-O.OOE-OO, RBO- O.OOE-OO, PBO-O.COE-OO, PHO-O.OOE-OO, PSO-O.OOE-OO, YIO- O.OOE-OO, DA-O.OOE-OO, DTH-O.OOE-OO, OER-O.OOE-OO, ORR- O.OOE-OO, OARO-O.OOE-OO, DTHO-O.OE-OO, OERO-7.00E-OO, ORRO -0. OOE-OO, ZZO-0.25E-00, Z3Q-O.00E-00, ZlO-O.OOE-OO, Z 40- O.OOE-OO, UBOQ-O.OOE-OO, WBOQ-O.OOE-OO, 0600-0.00E-00, THOO-O.OOE-OO, XIDO-O.OOE-OO, ZIDQ-l.OOe-OO, V8DQ-0.OOE-00, RBDO-O.OOE-OO, PBDO-O.OOE-OO, PHDO-O.OOi:-OO, PSDQ-O.OOE-OO, YIDO-O.O, $ SAEROl S SAER02 $ $~A~7 EI-q*O.O, ER-q*O.O, EI-q*O.O, ERV-400*0.O, IEV-q*O, $ PIF CONTROL DESIGN FOR APR GS AUTOPILOT SNAMl N-9, H-4, L- 4" NM-Z" MM-Z, ICHOSE-14, IKDGM-l, GKDGM-O.OOZO, GKPS 1-10.00, ZDDHAX-0.03, ZCLOSE-O.OO, ZDOHAX-O.OO" AKl- 0.04" AKZ-O.OO, ZCL~AX-O.O, ZClMIN--5.0, ZCDHAX-3.0, GKDMIN - 0.04, GKDSLP--0.0004,GKDICP-0.07" GKDHAX-0.07" ICH-250*. T., ICH(1,4)-.T., ICH(1,5)-.T., ICHCl,6)-.F., 1 C H( 1,7) -. F ., ICH(l,B)-.F., ICH(l,9)-.F., lCH(1,10)-.T., 1 C H ( 1" 11) - • T. , IC"iC1,lZ)-.F., lCHC1,13)-.F., lCHCl,14)-.F." 1 C H C 1, 16 ) - • T • , ICH(2,2)-.T., ICH(Z,3)-.F., lCH(2,4)-.T., ICH(2,5)-.T., ICHC2,7)-.T., ICHCZ,d)-.T., lCH(2,9)-.T., I C H( 2,10) -. T. , lCI-I(2,12)-.T., ICH(Z,13)-.F., ICHC 2,,15)-.F., lCHCZ,l4)-.F."
ICH(Z,lU-.T., ICtH2,l6)-.F., lCH(4,Z)-.F., lCH(4,3)-.T., lCH(4,4)-.T." I C H( 4,5) - • T ., lCH(4,6)-.T., ICH(4,7)-.T., lCH(4,S)-.T." lCHC4,9)-.T."
ICH(4,10)-.F., ICH(4,lU-.F., lCH(/.,15)-.T., lCH('.,16)-.T., ICH(5,U-.F., lCH(5,2)-.F., ICH(5,3)-.T."
ICHC 5" 4) -. T., ICH(5,5)-.T., ICHC5,6)-.T., SS-1.0, EPS-l.OE-lO, ECGT-l.OE:-lO, TOl-l.OE-10, ITER-10, VTP-l50.0, lCGT(1)-3, lCGT(4)-O, lCGT(5)-O, ICGT-5*1, ELOG-l.OE-lO, HLOG-7, OREAL-0.90, lORE G-5*0, S SNAM2 XR-12*.F., UR-4*.F., Ylh4*.F., XHR-lZ*.F., UMR-4*.F., S SNAM3 IMAX-Z92, IRUN-l, UHAG-16*0.0" USTRT-16*0.0" USTP-16*0.0, UMAG(1,1)--100.,USTRTC1,1)-0.,USTPCl,,1)-30.0, $ SNAM4 IFREEF-O, IFREIG-O, IFREEP-Z, DElT-O.l, DEBU~l-.F., DEBUMZ-.F., 0I:BUf'43-.F., DEaU tl4-. F., DEBUM6-.F., OEBU14-.F., OEBUMA-.F." DeSU 22-. T., OEBUZ4-.F., DESUZ5-.T.,
OESU26-.F." DE au 27-. F ."
DEBU31-.F., DEBU4Z-.F., OEBU43-.F., METERS-.T., DE:BU44-.F., DEBU46-.F., DE:BU4S-.F., DEB416-.T., OE8U49-.T., DE8U53-.T., DE8U' .. ·.F.,
GM 4*0.O, HP"-S*O.O, OM-a +0. 0,
SNAf15 Gn 36*0.0, Fa 81*0.0, H-4B*0.0, 0-16·0.0, a GM 4*0.O, HP"-S*O.O, OM-a +0. 0, FH-4*O.0, $ SHAMe WBOQO.OOE-OO, USO-O.OOE-OO, OBO-O.OOE-OO .. THO-12.5E-OO, XIO"O.O, Z IOn 0.5, VHO-O.OOt:-OO, RB Q- 0.00 i:-OO, PBOaO.OOE-OO, PHO"O.OOE-OO, PSO-O.OOE-OO, YI Q- O.OOE-OO, OTHaO.OOE-OO, DERoO.OOe-oo, DA-O.OOE-OO .. ORR- O. OOE-OO ..
a 7/JOOE-00, OTHOuO.OE-OO, OERD DARO-O.OOE-OO, ORRO -O.OOE-OO" n Cl Zlg-O.OOE-OO, ZZQ O.25E-OO, Z3Q O.00E-00, Z 4Q- O. OOE-OO, UBOg .. O.OOE-OO~ HBDQaO.OOE-OO, gBDQ-O.OOE-OO, THDO =0. OOE-OO" XIOO-O.OOE-OO, ZIOO-l.OOE-OO, VBOO-O.OOE-OO, R BOO -0. OOE-OO, PBOO-O.OOt-OO, PHOOaO.OO~-OO, PSOQ-O.OOE-OO, YIDQ-O.O, $ $AEROl ZETA-O.O, LAMOAGS. 3. 0, LAMOA-O.O, $ $AER02 LAMDAI-O.O, ZETAlnO.O, $ $NAM7 Elhq*O.O, EI-q*O.O, E1-q*0.0, ERV-400*0.O, IEV-q*O, $
APPENDIX B
APPENDIX B SUBMIT FILE FOR AUTOPILOT DESIGNS The following is a typical submit file containing the JOB CONTROL CARDS to execute the PIFCGT program on the NASA Langley Computer Complex using the NOS. 1.3 operating system (~ is a blank space).
/JOB PIFNAM7,T100,CM160000.~~~~~~~~~~~~~~~~~~BIN15DT DBTAYLOR USER,XXXXXX.
CHARGE,XXXXXX,LRC.
GET,TAPE20=PIFNAM7.
GET,PIFLIBO/UN=l003675C.
GET,ORACLIB/UN=017545N.
MAP,OFF.
LDSET,LIB=PIFLIBO.
LDSET,USEP=AEROD.
LDSET,LIB=ORACLIB.
LDSET,PRESETA=NGINF.
PIFCGT.
BOMB.
EXIT.
ROUTE,OUTPUT,DC=PR,ID,DEF.
SRUCOMP.
REWIND,OUTPUT.
COPY,OUTPUT,TAPE86 REWIND,TAPE86.
REPLACE,TAPE86.
BOMB.
EXIT.
DAYFILE,BADP.
REPLACE,BADP.
EXIT.
/EOR ~PIF~CONTROL~DESIGN~PROGRAM /EOF To use the subroutine FREEF, the statements ATTACH,FTNMLIB/UN=LIBRARY,NA.
LDSET,LIB=FTNMLIB must be included. To use the subroutine DPIFSP for plotting, the state- ments GET,ICSLIB/UN=004675C.
LDSET,LIB=ICSLIB.
REPLACE,TAPEl=PIFPLT7, must be included in appropriate locations.
APPENDIX C
APPENDIX C SEGMENTATION DIRECTIVES PIFCGT is a large TOP-DOWN program. Central memory would be inef- ficiently used if the entire program had to be loaded for the program to execute. With segmentation, only certain portions of the executing program need to be in central memory concurrently. Segmented loading is initiated by the execution of a SEGLOAD control statement that causes SEGLOAD directives to be processed as discussed in Ref. 7. The SEGLOAD directives for PIFCGT are (~ is a blank space).
~~INCLUDE~AEROD ~~TREE PIFCGT-(DIMSS,HDCON,CFWM,PIFMODL,PIFPLC,REMAT,DISCMOD, QRMPl, ORMHAT,DREG,PIFG.DPIFS,DPIFSP,FGAERO,PIFEIG,RUNINFO,INTERP,PIFFRE) PIFCr,T~GLOBAL~DISCSV,WORKS9,WGHTS,MODF,DISCM,PLA,DIMNl,DIMN2,DIMN3, DIMN4,DIMNS,SMAT,PFIG,QWHT,EIGEN,LABEL,GLAD,LINES,IDENTS,AERO,FORM TOL,CONV,SLVBLK,UDIR,DEBG,EIGS,HDXA,AERl,RNINFO,RNINFOl,RNINF02, STP.END,FCL.C.,Q8.IO.,FCL=ENT,FDL.COM ~END Alternate forms of memory allocation may have to be developed by a user depending on machine configuration.
1 Report No 3 Reclpllnt's Catalog No I 2. Government Accession No.
NASA CR-l66l23 4 Title and Subtitle Report Olte Decemher 1983 PIFCGT - A PIF AUTOPILOT DESIGN PROGRAM FOR GENERAL ,6 Performing OrganlZltlon Code AVIATION AIRCRAFT 7 Author(s) 8 Performing Organization Report No TR-681103 John R. Broussard Work Unit No ~ 9 Performing Organization Name and Address Information & Control Systems" Incorporated 11 Contract or Grant No ~ 28 Research Drive - NASl-l6303 Hampton, VA 23666 13 Type of Report and Period Covered 12 Sponsoring Agency Name and Address Contractor Report National Aeronautics and Space Administration 14 Sponsoring Agency Code Washington, DC 20546 15 Supplementary Notes NASA Langley Technical Monitor: Wayne Bryant 16 Abstract This report documents the computer program PIFCGT. The FORTRAN program, PIFCGT, is a computer design aid for determining Proportional-Integral-Filter (PIF) control laws for aircraft autopilots implemented with a Command Generator Tracker (CGT). The program uses Linear-Quadratic-Regulator synthesis algorithms to determine feedback gains, and includes software to solve the feedforward matrix equation which is useful in determining the command generator tracker feed forward gains. The program accepts aerodynamic stability derivatives and CQmputes the corresponding aerodynamic linear model. The nine autopilot modes that can be designed include four maneuver modes (ROLL SEL, PITCH SEL, HDG SEL, ALT SEL), four final approach models (APR GS, APR LOCI, APR LOCR, APR LOCP) , and a BETA HOLD mode. The program has been compiled and execuled on a CDC computer.
17 Key Words (Suggested by Author(s)) 18 Distribution Statement Optimal Control-Application Digital Flight Control System FEDD Distribution Software Design Package General Aviation Flight Control System Subject Category 08 19 Security aasslf (of thIS report) 20 Securtty elas"f (of thiS page) 21 No of Pages 22 Price Unclassified 1](, Unclassified