https://github.com/aria-systems-group/fault-identification-via-bayesian-inference

Our implementation of a M-ary Bayesian Hypothesis Testing framework for online autonomous system validation in the presence of process and sensor noise.

https://github.com/aria-systems-group/fault-identification-via-bayesian-inference

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.9%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Our implementation of a M-ary Bayesian Hypothesis Testing framework for online autonomous system validation in the presence of process and sensor noise.

Basic Info
  • Host: GitHub
  • Owner: aria-systems-group
  • License: isc
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 40.7 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 3 years ago · Last pushed over 3 years ago

https://github.com/aria-systems-group/Fault-Identification-via-Bayesian-Inference/blob/main/

# Fault-Identification via Bayesian Inference
This Model-Based Fault Identification (MBFID) framework was designed by ARIA Systems Research as part of the AFRL STTR Research Contract. It utilizes **Bayesian Hypothesis Testing** by quantifying the uncertainty present in measurements observed by the system. The framework can identify known faults as well as detect _anomalous_ behavior (AKA unknown faults). 

Although it was initially designed to identify modeled satellite faults triggered during [Basilisk](https://hanspeterschaub.info/basilisk/) simulations the implementation is general enough to be used for any dynamical system one wishes to test. All that is required by the user is a well formatted simulation database as well as truth telemetry data. See [1-2] for more details on the inner workings of the framework.

## Requirements
The MBFID framework is built using **Python 3.9** with the following requirements:
- [Numpy](https://numpy.org/) version 1.23.5
- [Pandas](https://pandas.pydata.org/) version 1.5.2

You are welcome to install these libraries however you want. However, we provided some useful tools that will make this process very easy.  
**Note**: This framework **may** work with different versions. However, we have yet to test them and, thus, cannot claim to support them.

## Setup
### Installing Required Packages
You can install the [Requirements](#requirements) any way you'd like (e.g. `pip`). However, we have provided a simple way to manage this project using [Conda Environments](https://docs.conda.io/projects/conda/en/stable/). Conda is a language-agnostic virtual environment and package manager that replaces native `venv`. 
#### Installing Miniconda
If you have not done so already, install miniconda [here](https://docs.conda.io/en/latest/miniconda.html). Verify your installation succeeded by running 
```
conda --version
```
Once you have `conda` running on your machine, create a conda environment for this project by running the following. 
```
cd Model-Based-Fault-Identification/
conda env create -f environment.yml
```
This will create a virtual environment with all the required dependencies installed. To activate the virtual environment, run 
`conda activate MBFID-Env`. Once you are done using it, enter `conda deactivate` to close the virtual environment.  
**Note**: You do not need to `create` the conda environment every time. Only when the `environment.yml` is updated.

### Running the Project
The MBFID tool requires two command line arguments to run properly. 
1. A path to a *directory* representing the simulation database for a particular example .
2. A path to *telemetry.csv* representing the truth telemetry data for a particular example.  

Instructions for providing these requirements can be found in the help module. 
```
python3 main.py --help
```
We included two example cases in the `examples/` directory. The examples can either be ran individually by calling `main.py` **or** ran all at once by running
```
bash run_tests.sh
```

## References
[1] Andersson, S. B., Hristu-Varsakelis, D., & Lahijanian, M. (2008). Observers in language-based control.  
[2] Levy, B.C. (2008). Binary and Mary Hypothesis Testing. In: Principles of Signal Detection and Parameter Estimation. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-76544-0_2

Owner

  • Name: ARIA Systems Group
  • Login: aria-systems-group
  • Kind: organization
  • Location: Smead Aerospace Engineering Sciences at the University of Colorado Boulder

GitHub Events

Total
Last Year