This repository contains experimental datasets and scripts for identifying and validating models of two Disturbance Observer (DOB) controllers tested on the IC2D bench test.
The data include raw experimental logs, processed .mat files, and the identified models used for performance analysis and metric computation.
📦 ic2d-dob-force-benchmark/
│
├── 📁 experimental_logs/ # Raw CSV logs + Python scripts for conversion to .mat
│├── controller_DOB1/
│└── controller_DOB2/
│
├── 📁 processed_mat_files/ # Compiled .mat datasets for each test condition
│├── controller_DOB1/
│└── controller_DOB2/
│
├── 📁 results/ # Final identified models and transfer functions
│└── 📁 ID_models/
│ ├── controller_DOB1/
│ └── controller_DOB2/
│
├── 📁 scripts/ # MATLAB functions and scripts for ID and analysis
│ ├── 📁 model_ID/ # System identification and validation
│ └── 📁 metrics/ # Metrics calculation
│
└── README.mdA short demonstration of the IC2D setup used for the experiments, showing the sinusoidal reference tracking tests.
All scripts were developed and tested using:
- MATLAB R2024b or newer
- Toolboxes:
- System Identification Toolbox
- Control System Toolbox
- Signal Processing Toolbox (optional, for data pre-processing)
The complete pipeline from experimental logs to final metrics is summarized below:
Each folder in experimental_logs/controller_DOBx/ contains:
- 10
.csvfiles (raw logs for each repetition) - One Python script (
read_data.py) that merges them into a single.matfile.
Run:
python read_data.pyOutput: processed_mat_files/controller_DOBx/<test_name>.mat`
Use the MATLAB script:
sripts/model_ID/model_ID.mThis script:
-
Loads the
.matdatasets fromprocessed_mat_files/ -
Runs model identification routines using helper functions in
model_ID/ -
Produces:
- Environment models (
Y_*.mat) - System models (
Z_*.mat)
- Environment models (
Output:
`results/ID_models/controller_DOBx/*.mat`Run:
scripts/model_ID/ID_validation.mThis script:
- Loads the identified transfer functions.
- Simulates and compares model responses with experimental step data.
- Generates validation plots (
ValidationID_Step_DOB.pdf) andTFs_Final.mat.
Output:
`results/ID_models/controller_DOBx/TFs_Final.mat`Run:
scripts/metrics/Metrics.mThis step:
- Loads the final transfer functions (
TFs_Final.mat). - Computes performance and stability metrics
- Saves summary results and figures.
- Identified models per controller:
results/ID_models/controller_DOBx/ - Validation plots and figures: generated by
ID_validation.m - Metric evaluations and performance comparisons:
scripts/metrics/
Elisa G. Vergamini, Victor Shime, Cícero Zanette, Lucca Maitan, Leonardo F. dos Santos and Matheus A. do Carmo Alves.
Legged Robotics Group
Free to use, modify, and distribute with proper attribution.
