Similarly, the internal code of the support system cannot be written as efficiently as a mission-specific system because of its need to maintain generality within the limited capabilities provided. Ideally, a graphic support system provides all necessary graphic services without the complex protocol required by a generalized package.

The Graphic Executive Support System. An example of a graphic support system is the Graphic Executive Support System, GESS, which has been used in various forms for attitude support at Goddard Space Flight Center since 1972 [Hoover, et a!., 1975]. GESS provides execution sequence control, data management, error recovery, and graphic services. Execution sequence control allows the display operator to transfer control to alternative subroutines at given points in the processing flow, to move backward or forward in the program, or to skip entire subsystems. Data management includes such functions as data compression to delete bad data elements, scrolling to add recent data to an. array and to discard old data, and graphic data entry under operator control. Error recovery allows a job to continue processing after an abnormal termination condition has been detected by the operating system. Graphic capabilities are the most commonly used features of GESS and consist of plot, tabular, and message displays.

A GESS plot display contains up to six functions plotted on a rectangular coordinate system and graphically displayed. A typical GESS plot is illustrated in Fig. 20-1. Each function may be plotted as discrete points, connected points, or characters. The functions to be plotted and the method for plotting each function

«!'!'•: ». ■ ;-!'■< ' >, ' i: • ■ '. •. ' ! »■ MO. SLN5CP »> . r. SP^ sli-iiatL^ j c5. -f. v .1.». pp.ii1 ■ i .rhjj'j t i'7'.u' ¿'jnc.1 V,-» • r'£": M1P i nf i j

Fig. 20-1. Typical GESS Plot. The words underlined were added by the display operator and serve to identify various characteristics of the plots.

are described in a plot display table which allows the programmer to create complex, multipurpose plots with only a few lines of code. For example, the complete code used to define the display image illustrated in Fig. 20-1 is as follows:


'TIME IN MINUTES FROM START TIME','ROTATION ANGLE (DEG) ' , CCTIM1,-999999. ),CTIM2,-999999.)), CCZ1,,-999999.,,,1),(Z2,,-999999.,, ,1), CZ3,,-999999-,,,1),CA1,POINT,-999999-,,,,2), CA2,POINT,-999999.,,,,2))

Here, five functions are plotted: arrays Zl, Z2, and Z3 (as connected lines) versus TIM1 and A1 and A2 (as sets of discrete points) versus TIM2. "-999999" is a flag which identifies points which are not to be plotted.

The actual data included in the functions may vary from run to run. Once the plot has been displayed, the display operator may modify the appearance of the plot or change the value of any plotted data element. The plot modifications are made available to the display operator through the option menu to the right of the plot (IDENT, EXPAND, REMOVE, FETCH, etc.) These options include identification of plotted functions, expansion of a selected area of the plot, removal of functions, data flagging, and retrieval of numeric values.

A GESS tabular display consists of control parameters displayed next to descriptive text or data arrays displayed in columns with descriptive headings. The descriptive text and headings, the formats for displaying the data, and the location of the data are described in a tabular display table similar to Uiat used for plots. The table entries for control parameters may contain criteria against which the parameter is to be validated. For example, a parameter may be required to lie within a certain range or to match one of a list of values equated to words. In the latter case, the word is substituted for the value in the display image and the operator changes the value by entering a different word (e.g., "USE OB-LATENESS MODEL (YES, NO) YES" for which the operator may leave the "YES" response unchanged or replace "YES" with "NO," thus changing the control option). Displayed data which do not conform to the validation criteria must be corrected by the display operator before processing can proceed.

A GESS message display consists of as many as 814 characters of text and is normally used to inform the display operator of conditions detected by the program, such as the processing status, errors encountered, or the starting time of a data block. The text of a message is defined through a subroutine calling sequence instead of a table.

All displays may be printed by the display operator on a line printer or a CalComp plotter (Fig. 20-1). All displays may also be presented strictly for information and require no modification or action by the display operator. Displays presented in this mode do not cause the system to wait for operator response.

GESS facilitates the incorporation of graphic capabilities into an attitude support software system and provides graphic support on any of several display devices. The operational and flow control restrictions have not made GESS unacceptable for any existing attitude support system, but the very ease of display creation which has made the system successful has also caused some attitude support systems to be designed for strictly graphic processing. Any graphic support system can be more effectively and efficiently used as the graphic vehicle for a system which requires graphic capability on option but which is capable of operating without it.

203 Utility Subroutines

Myron A. Shear

This section briefly describes several utility routines used frequently in attitude calculations. The source code for each routine described here, including internal documentation explaining input and output parameters, is available from

COSMIC Barrow Hall University of Georgia Athens, GA 30601

by asking for Program Number GSC 12421, Attitude Determination and Control Utilities. The routines are divided into four categories: vector and matrix algebra, time conversion, ephemeris calculations, and plotting. As discussed in Section 2.2, most of the computer routines use vector components in rectangular coordinate systems; however, conversion routines between spherical and rectangular coordinates are provided.

Single- and double-precision versions of the same routine are not provided. For this and other reasons, some users may find it advisable to modify the standard routines provided. However, before developing another routine to perform any of these functions, the reader should understand the routines as they exist, because they have been extensively tested and are designed to provide a combination of accuracy, reliability, compactness, and speed.

The routines described here are written in FORTRAN IV-H for the IBM System 360. The basic algorithms should be easily implemented for any other compiler or machine, with the possible exception of the printer plot routine, which depends on character manipulation features, and the spherical grid plotting routine, which requires the use of a CalComp plotting package.

203.1 Vector and Matrix Algebra Routines

Routine Function

Vector Routines

UNVEC Unitizes a vector and computes its magnitude.

RADECM Computes the right ascension and declination in degrees of a vector and the magnitude of the vector.

VEC Converts right ascension and declination in degrees to the three components of a unit vector.

ANGLED Computes the angle in degrees between two unit vectors. For vectors which are nearly parallel, the cross product is used for greater accuracy.

Routine Function

PHASED Computes the rotation angle, in degrees defined by three unit vectors as shown in Fig. 20-2.

CROSSP Computes a vector cross product

VPHASE Computes the unit vector defined by a given arc lengthy 9, and rotation angle, $, with respect to two known unit vectors, A and B, as shown in Fig. 20-2-

Fig. Fig. 20-2. Given A, B, 0, and 9, Subroutine VPHAZE Computes C. Given A, B, C, Subroutine PHASED Computes <J>.

CONES8 Computes the two unit vectors defined by the intersections of two cones, where each cone is defined by a unit vector and a half-cone angle.

Matrix Algebra Routines

MATMPY Multiplies two matrices of arbitrary dimensions.

INVERT Inverts a matrix and/or solves a set of linear equations, using the Gauss-Jordan method with optimal pivoting.

Least-Squares Routines

POLYFT Performs a least-squares polynomial fit to a set of data points.

Execution is substantially faster than many common techniques.

Given a user-supplied function and a set of data points, DC performs a standard differential correction to obtain a least-squares fit for a state vector of from 1 to 20 parameters. Requires a user-supplied routine to compute derivatives and predicted observations.

Was this article helpful?

0 0

Post a comment