This repository provides all code and data to reproduce the simulations and experiments from the paper:
Neural‑Network State‑Space Estimators Minxing Sun, Li Miao, Qingyu Shen, Yao Mao*, Qiliang Bao
Matlab/ # Main MATLAB scripts
├─ Test.m # 1. PROBLEM STATEMENT validation
├─ NNSSE_Sin.m # 2. SIMULATION on noisy sine wave
├─ NNSSE_DR.m # 3. EXPERIMENT 1: dual‑reflection mirror
├─ NNSSE_Drone.m # 4. EXPERIMENT 2: UAV trajectory
├─ StateSpaceModel_*.m # NNSSM variants
└─ Estimator_*.m # EKF / UKF / PF implementations
└─ NNSSE_*.mat # All data to reproduce result in paper
Python/ # Neural‑network training scripts
├─ 01_RNN_train_2025.py# Format: <id>_<net>_<task>_<date>.py
├─ … # Other network types
├─ config.json # Paths & hyper‑parameters
└─ NN_*.bat # One‑click training on Windows
EstimationResult/ # Prediction results for MATLAB comparisons
├─ Data_1 # limited‑training nets (Exp‑1)
├─ Data_2 # full‑training nets (Exp‑1)
├─ Data_3 # limited‑training nets (Exp‑2)
├─ Data_4 # full‑training nets (Exp‑2)
└─ Data_5 # NNSSEs for Sin nets (Sim-0)
Reproduces Fig. 2. Compares classical Kalman filters on states [p_i], [p_i,v_i], [p_i,v_i,a_i], [p_i,v_i,a_i,ẍ_i] against position-stack estimators (E2P, E3P, E4P, E4PVW, E4PRW, E4PTRW). Gaussian noise is regenerated each run, so individual results vary slightly.
Emulates a manoeuvring target with:
- Ground truth: 1 Hz sine, amplitude 10
- Sampling: 200 Hz, latency 0.15 s → 3‑frame prediction
- Noise: zero‑mean Gaussian, unit covariance
The script picks a StateSpaceModel_*.m and an Estimator_*.m to assemble each NNSSE variant.
Bench setup: laser, CCD camera, fast steering mirror, validation mirror. Camera at 200 Hz with 0.015 s latency → 3‑frame prediction. Baseline NN predictions are loaded from:
EstimationResult/Data_1 # limited‑training
EstimationResult/Data_2 # full‑training
Yaw data from a real UAV, including zenith‑crossing reversals. Scripts load neural baselines from:
EstimationResult/Data_3 # limited‑training
EstimationResult/Data_4 # full‑training
-
Edit
config.jsonto set paths and parameters (train/test/estimate). -
Run training scripts, e.g.:
cd Python python 00011_RNN_Train_20241129.pyor on Windows:
NN_FullTrain.bat
-
Copy generated files into
Matlab/EstimationResult/Data_Xfor MATLAB.
Contact: sunminxing20@gmail.com
© 2025 Minxing Sun et al. Licensed under MIT.