ABSTRACT

The ORACLS programming system is a collection of FORTRAN-coded subroutines to formulate, manipulate, and solve various multivariable and LQG design problems [l-l]. In order to apply ORACLS, the user is required to provide an executive (driver) program which inputs the problem coefficients, formulates and selects the system subroutines to be used to solve a particular problem, and outputs desired information. ORACLS is constructed to allow the user considerable flexibility at each operational state. This flexibility is accomplished by providing primary subroutines at four levels: input-output, basic vector-matrix operations, analysis of linear time-invariant systems, and multivariable control synthesis. ORACLS provides a means of controlling program size by employing dynamic (vector) data storage. For the most part, data arrays in all ORACLS subroutines are treated as packed one-dimensional arrays which can easily be passed between subroutines without a maximum array size parameter appearing as an argument of the calling sequence. This dynamic storage capability allows program size to be specified and controlled through the user's driver program. In addition, ORACLS only loads those programs from the library which are called by the executive program, making the total machine requirements very flexible. As a result, ORACLS can be made to execute efficiently on a wide variety of computing machinery.