NASA Logo, National Aeronautics and Space Administration

Open Source Software

A number of software products have been released under the NASA Open Source Agreement on the NASA Github page.

Users employ the software products at their own risk. NASA does not assume any liability for the use of the software or any system developed using the software.

Prognostics Model Library and Prognostics Algorithm Library

The Prognostics Model Library is a modeling framework implemented in MATLAB and focused on defining and building models for prognostics of engineering systems, and provides a set of prognostics models for select components developed within this framework, suitable for use in prognostics applications for these components. Current posted components include models for batteries, valves, and pumps. The implementation in the library consists of a set of utilities for defining a model (specifying variables, parameters, and equations), simulating the model, and embedding it within common model-based prognostics algorithms.

The Prognostics Algorithm Library is a suite of algorithms implemented in the MATLAB programming language for model-based prognostics (remaining life computation). It includes algorithms for state estimation and prediction, including uncertainty propagation. The algorithms take component models developed in MATLAB as inputs and perform estimation and prediction functions. The library allows the rapid development of prognostics solutions for given models of components and systems. Different algorithms can be easily swapped to do comparative studies and evaluations of various algorithms in order to select the best algorithm for the application at hand.

The models and algorithms had all been previously published in conference and journal papers as pseudo-code and mathematical formulae and were originally developed under the auspices of the Aeronautics Research Mission Directorate (ARMD) Integrated Vehicle Health Management and System-wide Safety Assurance Technologies projects.

Links to the code on github are here:

Prognostics Model Library and Prognostics Algorithm Library

Publications making use of software products obtained from this repository are requested to acknowledge the assistance received by using this repository. Please cite: "M. Daigle; Prognostics Model Library and Prognostics Algorithm Library [Computer software]. (2016). Retrieved from https://ti.arc.nasa.gov/tech/dash/pcoe/opensourcecode/"

Generic Software Architecture for Prognostics (GSAP)

The Generic Software Architecture for Prognostics (GSAP) is a generic, extendable, flexible, modular C++ framework for applying prognostics technologies. GSAP manages top-level control, communications, logging, configuration, integration, and other general activities. A simple, standard interface is provided for integrating prognostics algorithms and models, minimizing the work required to deploy prognostics technologies. The standard interface allows for prognosers developed for GSAP to be reused anywhere GSAP is used.

The code is available here: GSAP on NASA Github

Publications making use of software products obtained from this repository are requested to acknowledge the assistance received by using this repository. Please cite: "C. Teubert, M. Daigle, S. Sankararaman, J. Watkins, and K. Goebel; Generic Software Architecture for Prognostics (GSAP) [Computer software]. (2016). Retrieved from https://ti.arc.nasa.gov/tech/dash/pcoe/opensourcecode/"

Random Variable Toolbox

The Random Variable Library is a C++ software library that provides a framework for uncertainty representation using probability distributions. The presence of uncertainty poses significant challenges for calculating predictions and decision-making, particularly in the context of operation of engineering systems. Many existing tools for prediction do not include the impact of uncertainty or make assumptions regarding the different sources of uncertainty. The Random Variable Library presents a solution to overcome these challenges and represent various forms of uncertainty. In particular, standard parametric distributions such Gaussian, Lognormal, etc. are supported, in addition to non-parametric representations such as unweighted/weighted samples, percentiles, etc. It is extendable, allowing for the addition of additional distributions. Beyond representation, the library includes basic capabilities for multivariate sampling and fitting using several methods. This can be used to facilitate certain uncertainty management activities such as uncertainty propagation and likelihood calculations.

The code is available here: RVLib on NASA Github

Publications making use of software products obtained from this repository are requested to acknowledge the assistance received by using this repository. Please cite: " S. Sankararaman, A. Cullo, and C. Teubert; Random Variable [Computer software]. (2017). Retrieved from https://ti.arc.nasa.gov/tech/dash/pcoe/opensourcecode/"

First Gov logo
NASA Logo - nasa.gov