PHI-CTRL F-16 Models

Trained weights for PHI-CTRL β€” Physics-Hybrid Integrity Control

GitHub Dataset DOI License: CC BY 4.0

Author: Mohammed Bello Sani (S. M. Bello) Β· Lab: Penelope Inc. Β· PHI Lab Institution: Air Force Institute of Technology (AFIT), Kaduna


What this repo holds

This is the model weights half of the PHI-CTRL project β€” the two trained artifacts that plug into the control/detection loop described in the source repo. It does not contain code or telemetry; those live in the sibling repos linked below.

File Type What it is
residual_policy/phi_ctrl_residual_f16_500000_steps.zip Stable-Baselines3 PPO checkpoint Residual control policy trained on the JSBSim F-16A gym environment, invoked only when the MMAE effectiveness bank estimates actuator degradation
phi_twin/phi_twin_cnn_bilstm.pt PyTorch CNN-BiLSTM Effectiveness/health "twin" β€” sequence classifier trained on sliding windows of fault telemetry to estimate remaining actuator effectiveness (Ξ³Μ‚)

The PHI-CTRL family β€” where everything lives

PHI-CTRL is split across three repositories, each holding a different layer of the project. This model repo is one node in that graph:

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   GitHub β€” Sm-bello/PHI-CTRL     β”‚
                    β”‚   Source code, control laws,     β”‚
                    β”‚   verification scripts, docs     β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  HF Dataset                    β”‚   β”‚  HF Model  (this repo)         β”‚
β”‚  PHI-CTRL-F16-Fault-Recovery-  β”‚   β”‚  PHI-CTRL-F16-Models           β”‚
β”‚  Telemetry                     β”‚   β”‚  Residual PPO + CNN-BiLSTM     β”‚
β”‚  Raw JSBSim F-16A telemetry:   β”‚   β”‚  twin, trained on the data     β”‚
β”‚  baseline gates, episode-level β”‚   β”‚  in the sibling dataset repo   β”‚
β”‚  fault runs, multi-seed evals  β”‚   β”‚                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚                                     β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   Zenodo archive (v1.0.0)        β”‚
                    β”‚   DOI: 10.5281/zenodo.22218809   β”‚
                    β”‚   Frozen, citable snapshot of     β”‚
                    β”‚   the GitHub release              β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Repository Role Link
Source code Control laws, plant interface, training/eval scripts, verification ladder, full docs github.com/Sm-bello/PHI-CTRL
Telemetry dataset Raw JSBSim F-16A flight data these models were trained/evaluated on huggingface.co/datasets/SM-Bello/PHI-CTRL-F16-Fault-Recovery-Telemetry
Trained weights This repo you are here
Archival record Frozen, DOI-citable snapshot of the v1.0.0 GitHub release doi.org/10.5281/zenodo.22218809

If you're citing this work, cite the Zenodo DOI for the frozen release, or the specific model/dataset repo if you're referring to just the weights or just the data.


Architecture context

These weights are two components inside a larger hybrid control loop β€” they are not meant to be used standalone. The full loop (baseline law, hybrid compensator, observer, effectiveness bank, and where these two models plug in) is documented in the source repo's README and docs/TRL_ROADMAP_PHI_CTRL.md.

Residual policy (phi_ctrl_residual_f16_500000_steps.zip)

  • Algorithm: PPO (Stable-Baselines3)
  • Environment: gym_env/jsbsim_phi_ctrl_env_f16.py β€” JSBSim F-16A 6-DOF plant, elevator-effectiveness fault injection
  • Training: curriculum schedule, 500,000 timesteps, trained via scripts/train_residual_f16.py
  • Gating: enabled only when the MMAE effectiveness bank detects degradation β€” it is not a blanket override of the baseline/hybrid law
  • Honest status: full-stack (baseline + hybrid + residual) is not yet shown to outperform hybrid-only on this checkpoint β€” see the "Non-claims" section below

PHI-Twin (phi_twin_cnn_bilstm.pt)

  • Architecture: CNN + Bidirectional LSTM
  • Task: sliding-window (50–100 step) classification/regression of remaining actuator effectiveness Ξ³ from raw telemetry
  • Trained on: the episode-level fault dataset (phi_ctrl_f16_fault/) in the dataset repo β€” 160 episodes across Ξ³ ∈ {1.0, 0.8, 0.6, 0.5}
  • Honest status: this is a learned detector trained alongside the primary GainRatio + MMAE bank detector, not (yet) the production gating signal in the control loop

Usage

pip install stable-baselines3 torch huggingface_hub
from huggingface_hub import hf_hub_download
from stable_baselines3 import PPO
import torch

# Residual PPO policy
policy_path = hf_hub_download(
    repo_id="SM-Bello/PHI-CTRL-F16-Models",
    filename="residual_policy/phi_ctrl_residual_f16_500000_steps.zip",
)
model = PPO.load(policy_path)

# PHI-Twin CNN-BiLSTM
twin_path = hf_hub_download(
    repo_id="SM-Bello/PHI-CTRL-F16-Models",
    filename="phi_twin/phi_twin_cnn_bilstm.pt",
)
twin = torch.load(twin_path, map_location="cpu")

The PPO policy expects the observation space defined in gym_env/jsbsim_phi_ctrl_env_f16.py in the source repo β€” it will not produce meaningful outputs fed arbitrary state vectors. Clone the source repo to reconstruct the environment and reproduce the training/eval pipeline end to end.


Non-claims (read before citing)

  • Not flight-certified. No DO-178C evidence package, no piloted flight test.
  • Simulation-trained only β€” JSBSim F-16A 6-DOF, not hardware-in-the-loop.
  • The residual policy is gated, not universally beneficial β€” see results/eval_multiseed/ in the source repo for the with/without-residual comparison before assuming it helps in a given regime.
  • The PHI-Twin is a research detector candidate, not the certified/primary fault-detection path in the current architecture (that's still GainRatio + MMAE bank).

Citation

@software{bello2026phictrl,
  title  = {PHI-CTRL: Physics-Hybrid Integrity Control for Fault-Tolerant Flight},
  author = {Bello, Mohammed Sani},
  year   = {2026},
  url    = {https://github.com/Sm-bello/PHI-CTRL},
  doi    = {10.5281/zenodo.22218809},
  note   = {Penelope Inc. / PHI Lab. Trained weights: https://huggingface.co/SM-Bello/PHI-CTRL-F16-Models}
}

Built by

Author Mohammed Bello Sani
Lab Penelope Inc. Β· PHI Lab
Institution Air Force Institute of Technology (AFIT), Kaduna

Part of the PHI suite (PHI-Twin, PHI-Chain, PHI-CTRL, and related frameworks).

Downloads last month
-
Video Preview
loading

Dataset used to train SM-Bello/PHI-CTRL-F16-Models