The Multiple Object Orbital Dynamics Simulation (MOODS) computer program is a general, extensible, easily modifiable, and reusable software system for use in simulating the dynamics of such diverse engineering systems as aircraft, missiles, automobiles, industrial process-control systems, or other systems wherein time-dependent physical processes (e.g., unsteady chemical reactions) occur. MOODS contains a generic and reusable kernel, plus a large base of high-quality reusable primitives, utility subprograms, and models that assist it in rapidly prototyping extensions of itself and of other system-analysis application programs.

Among the components of MOODS are the following:

  1. Primitive objects, mathematical types, and functions (vector, matrix, complex, and quaternion operators);
  2. Statistical utilities (e.g., random-number generators);
  3. Numerical methods; and
  4. Data-structure and computer-science utilities (stacks, queues, dynamic arrays, and queued interface mechanisms).

Unlike other simulation programs, MOODS, was not designed to support high-data-volume production runs — although it can be modified to be driven with external input files.

The MOODS Software System is general, extensible, easily modifiable, and reusable. In the configuration depicted here, MOODS is used to simulate trajectories of many orbital objects.

MOODS can be modified easily to support changing analysis requirements. Its kernel set of software tools is exhaustive; this facilitates extensions of the program. If a developmental code is based largely on pre-existing reusable components, then only a minimal amount of new code is needed. Moreover, MOODS requires frequent recompilation of its input unit; this makes initialization of a MOODS simulation extremely flexible.

MOODS must be flexible because it works in a rapidly changing environment; more specifically, in its original application in the U.S. space program, it simulates the trajectories of a large number of orbital objects. The main subsystems of MOODS as configured for this application (see figure) are (1) a simulation executive subsystem, (2) an environment subsystem, (3) a set of reusable utilities, (4) a hardware subsystem, and (5) a flight-software subsystem. The machine-independent MOODS kernel comprises the first three mentioned subsystems.

The MOODS kernel is a collection of roughly 211 Ada units. Its source code is partitioned on a VAC computer into 347 files that occupy 1.9MB of memory space. The object code occupies 602KB of memory space. Because each kernel utility is generic and reusable, extension of the capability of the program involves only a minimal amount of development of new code.

The uniqueness and greatest strength of MOODS lie in its suitability for system- analysis and -development projects in which frequent changes in dynamics-simulating computer codes are necessary. MOODS is user-friendly. Its flexibility and reusability should prove as valuable to industry as they have already proved in the U.S. space program.

This work was done by Roger W. Corson, Michael J. Little, and Jeffrey S. Patterson of McDonnell Douglas for Johnson Space Center. MSC-22527

NASA Tech Briefs Magazine

This article first appeared in the December, 1998 issue of NASA Tech Briefs Magazine.

Read more articles from the archives here.