💡 Neural Network-Based Fault identification and Reinforcement Learning for Spacecraft Fault-Tolerant Control
TIM2025: Paper Link
Fault detection and identification, Fault-tolerant control, Neural Network, Reinforcement learning.
Abstract: Active fault-tolerant systems are crucial for ensuring the reliability and safety of spacecraft attitude control, especially when dealing with actuator faults that could jeopardize mission success. This paper introduces a comprehensive framework for fault detection and identification (FDI) and fault-tolerant control (FTC) tailored to meet stringent real-time processing requirements and limited onboard resources. We propose a neural network-based fault identification approach, termed FaultNet, which utilizes LSTM architectures to achieve millisecond-level fault estimation. This method overcomes the long convergence times associated with traditional observer-based FDI techniques, enabling accurate identification of both constant and time-varying faults, including effectiveness loss and additive bias. For fault-tolerant attitude control in spacecraft, we develop a reinforcement learning (RL)-based controller, incorporating carefully designed state representations and reward functions to ensure robust performance. The proposed methods are rigorously evaluated across four customized fault scenarios, encompassing both constant and time-varying fault types. The results demonstrate the framework's effectiveness in swiftly stabilizing spacecraft attitude and precisely compensating for actuator faults. Simulation outcomes validate the neural network-based FDI's efficiency and accuracy, as well as the RL-based FTC's reliability, showcasing minimal fault estimation errors and consistent fault recovery performance.
Step 1: Download trainset and testset from Google Drive.
(This step is unnecessary since you can directly run dataset_generate.py.)
Step 2: Train or Test FaultNet.
# train FaultNet
cd fault_detection
python run.py --is_train=1
# test FaultNet
cd fault_detection
python run.py --is_train=0Step 3: Need to reproduce experimental results?
The pretrained FaultNet model can be found here.
Step 1: Modify the parameters in metadata.py.
Step 2: Train the Hybrid Reward-SAC.
python run_SAC.pyStep 3: Need to reproduce experimental results?
(use the pretrained SAC model)
Set the seed to 240202.
Set the mode to ‘test’.
Set the scenario_id to 1/2/3/4.
python run_SAC.py@article{lu2025neural,
title={Neural Network-Based Fault Identification and Reinforcement Learning for Spacecraft Fault-Tolerant Control},
author={Lu, Wenlong and Geng, Ziyao and Zhuang, Hongji and Shen, Qiang and Wu, Shufan and Razoumny, Vladimir Yu and Razoumny, Yury N},
journal={IEEE Transactions on Instrumentation and Measurement},
year={2025},
publisher={IEEE}
}