YaChienChang / Neural-Lyapunov-Control

Learning Lyapunov functions and control policies of nonlinear dynamical systems
117 stars 31 forks source link

The choice of parameters of the code. #6

Closed LGM97 closed 3 years ago

LGM97 commented 3 years ago

Hi Ya-Chien Chang, I tried to verify another system with your code, but I couldn't find a ROA and Lyapunov function. I don't know if there is a problem in my choice of the parameters. Take the inverted pendulum case for example, x is (-6,6), ball_lb is 0.5, ball_ub is 6, and the parameters of Lyapunov_risk. Any suggestion on this? Thank you very much!

YaChienChang commented 3 years ago

Hi, I would suggest that you can start training with Lyapunov risk without the tuning term and verify the candidate within a small region. For example, you can use (F.relu(-V_candidate)+ F.relu(L_V+0.5)).mean()+ (X0).pow(2) first and tune the weight of each term might be helpful to find a Lyapunov function. Moreover, using F.relu(L_V+0.5) allows the learning procedure to seek a candidate Lyapunov function with a more negative Lie derivative. Once you get a valid Lyapunov function, you can use Lyapunov risk with a tuning term for achieving a large ROA. Last, depends on your system the number of the hidden neurons of the neural network also needs to be tuned. Thank you!