--- language: - en license: apache-2.0 tags: - pytorch - timeseries - power-systems - fault-detection - computer-vision - s-transform pipeline_tag: image-classification --- # ChronoGrid FusionNet: IEEE 9-Bus Fault Detection ## Model Description ChronoGrid FusionNet is a highly specialized deep learning architecture designed for the classification of electrical transmission line faults in the IEEE 9-Bus (WSCC) test system. It processes time-series electrical signals that have been transformed into 2D S-Transform heatmaps to detect and classify 11 different fault conditions. The architecture is a fusion of three core components: 1. **1D CNN Backbone:** Extracts multi-band temporal distortions from the frequency dimension. 2. **BiLSTM Sequence Modeler:** Captures bidirectional evolution of the electrical transient over time. 3. **Self-Attention Mechanism:** Dynamically focuses on the most critical time-steps of the fault clearing process. ## Intended Uses - **Academic Research:** Benchmarking fault detection algorithms on power systems. - **Power System Analysis:** Classifying Single Line to Ground (SLG), Line to Line (LL), Double Line to Ground (LLG), and Three Phase (LLL) faults. ## How to Get Started with the Model Because this is a custom PyTorch architecture, you must pass `trust_remote_code=True` when loading the model from Hugging Face. ```python import torch from transformers import AutoModel, AutoConfig from PIL import Image import numpy as np # 1. Load the model and configuration repo_id = "Sanath2709/chronogrid-fusionnet" config = AutoConfig.from_pretrained(repo_id, trust_remote_code=True) model = AutoModel.from_pretrained(repo_id, config=config, trust_remote_code=True) model.eval() # 2. Preprocess an S-Transform Heatmap Image image_path = "path/to/your/s_transform_heatmap.jpg" img = Image.open(image_path).convert('L').resize((227, 227)) arr = np.array(img, dtype=np.float32) / 255.0 x = torch.tensor(arr).unsqueeze(0) # 3. Run Inference with torch.no_grad(): logits = model(x)[0] probs = torch.softmax(logits, dim=1).squeeze().numpy() # 4. Display Results FAULT_CLASSES = ['AG','BG','CG','AB','AC','BC','ABG','ACG','BCG','ABCG','NF'] print("Predictions:", {FAULT_CLASSES[i]: float(probs[i]) for i in range(len(FAULT_CLASSES))}) ``` ## Training Data The model was trained on synthetic data generated using the **WSCC 9-Bus system** in Simulink, simulating various fault locations, inception angles, and loads. The raw voltage and current signals were converted into 227x227 time-frequency heatmaps using the discrete S-Transform. ## License & Citation If you use this model in your research, please refer to the attached manuscript or citation details once published.