This project is a small ML prototype for health monitoring of a liquid-propellant rocket engine using synthetic telemetry data.
The goal is to:
- simulate realistic telemetry of a rocket engine (chamber pressure, turbopump speed, injector temperature, vibrations);
- model several fault scenarios (pressure decay, turbopump overspeed, temperature rise, vibration increase);
- train a classifier to distinguish normal and faulty regimes;
- visualize telemetry and model results (time series, correlations, feature importance).
data/ # CSV files with synthetic runs (generated)
src/
__init__.py
generate_telemetry.py # generation of synthetic telemetry runs
preprocessing.py # feature engineering & dataset preparation
train_classifier.py # model training & evaluation
visualization.py # plotting helpers (time series, correlations, feature importance)
figures/ # plots generated by visualization code
requirements.txt
README.md
.gitignore
Note: folders data/ and figures/ are created/filled automatically by the scripts.
Installation
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
Usage
1. Generate synthetic telemetry
python src/generate_telemetry.py
This script creates several CSV files in the data/ directory for:
normal runs;
pressure_decay;
turbopump_overspeed;
temp_rise;
vibration_increase.
2. Prepare features and train the classifier
python src/train_classifier.py
The script:
loads all CSV files from data/,
computes rolling statistics (mean/std) for each channel,
trains a RandomForestClassifier,
prints a classification report on the validation set,
optionally uses visualization.py to save plots into figures/:
time series by regime;
correlation matrix of telemetry channels;
feature importance.
Visualization
src/visualization.py contains helpers to generate plots:
Time series by label
plot_time_series_with_labels(df, channel="Pc")
→ saves figures/time_series_Pc.png
Correlation matrix
plot_correlation_matrix(df)
→ saves figures/correlation_matrix.png
Feature importance (RandomForest)
plot_feature_importance(model, feature_names)
→ saves figures/feature_importance.png
These plots demonstrate how the engine parameters evolve in time, how channels correlate and which features are most important for the classifier.
Tech stack
Python 3.10+
numpy, pandas
scikit-learn
matplotlib
The project is intentionally small and readable to be used as a portfolio / interview example for ML/AI in aerospace telemetry monitoring.