mathworks / mathworks/MATLAB-Simulink-Challenge-Project-Hub

TD3 Tracking Performance Issue in a Nonlinear Control System

Open
#179 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
2.2k
Forks
416
PR merge metrics
No merged PRs in 30d

Description

Hello,

I am working on a research project involving TD3-based trajectory tracking of a nonlinear Twin Rotor MIMO System (TRMS) in MATLAB.

I found the “Machine Learning for Motor Control” project and its suggested TD3-based PMSM control workflow. Although my system is different (TRMS rather than PMSM), I am using TD3 for continuous control and I am facing a tracking-performance issue.

For a step reference of 0.8 rad (pitch) and 0.9 rad (yaw), my TD3 agent eventually learns partial tracking, but the performance is inconsistent.

My latest results are:

Ep 400 | Reward = -5852.5 | StepErr = 0.7652
Ep 450 | Reward = -1785.0 | StepErr = 0.0472
Ep 500 | Reward = -1743.4 | StepErr = 0.1594
Ep 550 | Reward = -3019.5 | StepErr = 0.1932
Ep 600 | Reward = -1553.3 | StepErr = 0.0674

Final evaluation:

  • Step RMSE: Pitch = 0.1200 rad, Yaw = 0.0784 rad
  • Low-frequency sine RMSE: Pitch = 0.1502 rad, Yaw = 0.1045 rad
  • High-frequency sine RMSE: Pitch = 0.1494 rad, Yaw = 0.1170 rad

Current TD3 settings:

  • Gamma = 0.99
  • Actor learning rate = 1e-3
  • Critic learning rate = 1e-3
  • Batch size = 256
  • Tau = 0.005
  • Policy noise = 0.2
  • Noise clip = 0.5
  • Action limit = ±2.5 V
  • Observation dimension = 15

My reward function is:

R = -10(e_pitch² + e_yaw²) - 0.001(u1² + u2²)

The main question is: what would you recommend checking first in a TD3 implementation when the agent can sometimes achieve good tracking during training but does not maintain it consistently?

In particular, I would appreciate guidance on whether I should investigate the reward function, learning rates, exploration noise, observation design, or the TD3 implementation itself.

I can provide the relevant MATLAB code and additional results if needed.

Thank you.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file, test, or entry point is named, and no MATLAB code is included. Start by reviewing the TD3 implementation, reward function, exploration noise, and observation design against the reported training and evaluation metrics. Done would require identifying and documenting a reproducible cause of the inconsistent tracking, with consistently improved RMSE results.

Written by the indexing model from the issue text.

Assessment

Tech stack
matlab
Domain
machine-learning, robotics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.