Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forward profile crossing the MVC #4

Open
stephane-caron opened this issue Nov 19, 2013 · 2 comments
Open

Forward profile crossing the MVC #4

stephane-caron opened this issue Nov 19, 2013 · 2 comments
Labels

Comments

@stephane-caron
Copy link
Collaborator

I guess this is related to the "variable ds" enhancement proposal, but since it results in an incorrect answer I file it as a bug here. With the following settings in torques_pendulum_rave.py:

discrtimestep = 5e-3
sdbeg_min, sdbeg_max = 0.0 , 0.0001
trajectorystring = """1.000000
2
0.0 -0.000441411097554 -0.16346942929 0.109925764182
0.0 -0.0902570804637 -0.811688277595 0.600976616276"""

The forward profile crosses the MVC, then drops to zero. The good answer (obtained with e.g. discrtimestep=1e-4) is that sd_end=(0., 4.39101), with solutions going below the singular point.

crossing

@quangounet
Copy link
Owner

Usuellement je teste si sd>MVC uniquement la fin d'un timestep. Pour resoudre ce bug, il faudrait tester si pour tous les points entre deux timestep, sd<MVC, ce qui peut potentiellement etre time-consuming.

@stephane-caron
Copy link
Collaborator Author

On ne peut pas résoudre l'équation générale MVC'(s') = beta|alpha(s, sd) pour tester l'intersection, mais on pourrait échantillonner un point au milieu et vérifier les valeurs des dérivées discrètes de la MVC. (On aura de toute façon à échantillonner un point de plus si on implémente un algo avec ds adaptatif.)

Au passage, dans l'exemple ci-dessus, on peut déjà se douter que ça sent le roussi car il y a un point singulier au milieu du pas d'intégration.

D'ailleurs, comment se fait-il que le profil d'intégration fasse un saut aussi long (au moins 2e-2 = 4*discrtimestep), est-ce parce que discrtimestep correspond au dt et non au ds ? Et dans ce cas, ne vaudrait-il pas mieux fixer ds plutôt que dt ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants