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.

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/"*

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/"*

VirtualADAPT is a high-fidelity, MatlabĀ® SimulinkĀ®-based simulation testbed that emulates the ADAPT hardware for running offline health management experiments. This simulation testbed models all components of the ADAPT hardware within the power storage and power distribution subsystems. The physical components of the testbed, i.e., the batteries, relays, and the loads, are replaced by simulation modules that generate the same dynamic behaviors as the hardware test bed.

The Advanced Diagnostic and Prognostic Testbed (ADAPT), developed at NASA Ames Research Center, is functionally representative of an electrical power system (EPS) on an exploration vehicle, and has been developed to:

- Serve as a technology-neutral basis for testing and evaluating software and hardware diagnostic systems,
- Allow accelerated testing of diagnostic algorithms by manually or algorithmically inserting faults,
- Provide a real-world physical system such that issues that might be disregarded in smaller-scale experiments and simulations are exposed,
- Act as a stepping stone between pure research and deployment in aerospace systems, thus creating a concrete path to maturing diagnostic technologies, and
- Develop analytical methods and software architectures in support of the above goals.

The ADAPT hardware includes components that can generate, store, distribute, and monitor electrical power. The EPS can deliver AC (Alternating Current) and DC (Direct Current) power to loads. A data acquisition and control system sends commands to and receives data from the EPS. The testbed operator stations are integrated into a software architecture that allows for nominal and faulty operations of the EPS, and includes a system for logging all relevant data to assess the performance of the health management applications.

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 NASA NRA Grant NNX07AD12A and NSF Grant CNS-0615214 and with incremental support from Aeronautics Mission Directorate (ARMD) Integrated Vehicle Health Management and System-wide Safety Assurance Technologies projects.

Links to the code on github are here: VirtualADAPT

Publications making use of software products obtained from this repository are requested to acknowledge the assistance received by using this repository. Please cite: *" I. Roychoudhury, M. Daigle, G. Biswas, and X. Koutsoukos; VirtualADAPT [Computer software]. (2017). Retrieved from https://ti.arc.nasa.gov/tech/dash/pcoe/opensourcecode/"*

**Publications**

I. Roychoudhury, M. Daigle, G. Biswas, and X. Koutsoukos, "Efficient Simulation of Hybrid Systems: A Hybrid Bond Graph Approach," SIMULATION: Transactions of the Society for Modeling and Simulation International, vol. 87, no. 6, pp. 467-498, June 2011. Published online on April, 2010 as doi:10.1177/0037549710364478

M. Daigle, I. Roychoudhury, G. Biswas, X. Koutsoukos, "A Comprehensive Diagnosis Methodology for Complex Hybrid Systems: A Case Study on Spacecraft Power Distribution Systems," IEEE Transactions on System, Man, and Cybernetics, Part A: Special issue on "Model-based Diagnosis: Facing Challenges in Real-world Applications", vol. 4, no. 5, pp. 917-931, September 2010.

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/"*

The Simulation of Cryogenic Tank with Temperature Stratification is a MATLAB based simulation of temperature stratification effects for cryogenic fluid in a tank. A reduced-order physics model of a cryogenic tank was developed. It consists of a set of lumped-parameter, ordinary differential equations, and uses known heat transfer correlations. As such, it is an efficient model that can be used for real-time analyses. Computational efficiency and accuracy can be traded off by adjusting the number of control volumes used in the simulation. It accounts for storage, loading, and unloading of cryogenic fluid. Analysis capabilities include simulating the system under different operating conditions, different system parameters, and different numbers of control volumes. Only the basic MATLAB programming language is used.

For details on the system being simulated and the physics models, see: M. Daigle, J. Boschee, M. Foygel, and V. Smelyanskiy, "Temperature Stratification in a Cryogenic Fuel Tank,"" AIAA Journal of Thermophysics and Heat Transfer, vol. 27, no. 1, pp. 116-126, January 2013.

The code is available here: Cryo Sim 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: M. Daigle, M. Foygel, V. Smelyanskiy, J. Boschee; LH2Sim [Computer software]. (2017). Retrieved from https://github.com/nasa/LH2Sim.