Skip to content

Duffing Oscillator Response Analysis (DORA) - v1.0

Latest

Choose a tag to compare

@maneesh51 maneesh51 released this 11 Feb 14:10
· 1 commit to main since this release
a2e04ed

🔹 Release v1.0 - Duffing Oscillator Response Analysis (DORA)

This release provides a collection of benchmark tasks and datasets, accompanied by minimal code to generate, import, and plot the data. The primary focus is on the Duffing Oscillator Response Analysis (DORA) prediction task, which evaluates machine learning models' ability to generalize system responses in unseen parameter regimes.

🚀 Key Features:

  • Duffing Oscillator Response Analysis (DORA) Prediction Task:

    • Objective: Predict the response of a forced Duffing oscillator using a minimal training dataset. This task assesses a model's capability to extrapolate system behavior in unseen parameter regimes, specifically varying amplitudes of external periodic forcing.
    • Expectation: A proficient model should qualitatively capture the system's response, such as identifying the exact number of cycles in a limit-cycle regime or chaotic trajectories when the system transitions to a chaotic regime, all trained on limited datasets.
  • Comprehensive Dataset:

    • Training Data (DORA_Train.csv): Contains data for two external forcing amplitudes, ( f $\in$ [0.46, 0.49] ).
    • Testing Data (DORA_Test.csv): Includes data for five forcing amplitudes, ( f $\in$ [0.2, 0.35, 0.48, 0.58, 0.75] ).
  • 📊 Data Description:

    • Each dataset comprises five columns:

      Column Description
      t Time variable
      q1(t) Time evolution of the Duffing oscillator's position
      q2(t) Time evolution of the Duffing oscillator's velocity
      f(t) Time evolution of external periodic forcing
      f_amplitude Constant amplitude during system evaluation (default: 250)

🛠 Utility Scripts and Notebooks:

  • Data Generation and Visualization:

    • DORA_generator.py: Generates, plots, and saves training and testing data.
      Usage:
      python DORA_generator.py -time 250 -plots 1
    • DORA.ipynb: A Jupyter Notebook for dataset generation, loading, and plotting.
  • Data Loading and Plotting:

    • ReadData.py: Loads and plots the provided datasets (DORA_Train.csv and DORA_Test.csv).

📈 Model Evaluation:

The prediction model's success is determined by its ability to extrapolate system behavior outside the training data.
System response characteristics for external forcing are quantified in terms of amplitude and mean of ( q1^2(t) ).
These can be obtained using the provided Signal_Characteristic function.

🔹 Performance Metrics:

  • Response Amplitude Error:
    MSE[max(q1_prediction²(t > t*)), max(q1_original²(t > t*))]

  • Response Mean Error:
    MSE[Mean(q1_prediction²(t > t*)), Mean(q1_original²(t > t*))]

  • Note: ( t* = 20s ) denotes the steady-state time.

📌 Reference Implementation:

An exemplar solution using reservoir computing is detailed in:
📖 Yadav et al., 2025 – Springer Nonlinear Dynamics

📄 Citation:

If you utilize this dataset or code in your research, please cite:

@article{Yadav2025,
  author  = {Yadav et al.},
  title   = {Generalizing Duffing Oscillator Dynamics Using Reservoir Computing},
  journal = {Nonlinear Dynamics},
  year    = {2025},
  doi     = {10.1007/s11071-024-10720-w}
}