Closed 0Yassine0 closed 1 month ago
Merci.
Ping @PierreMartinon
@ocots @PierreMartinon. En réglant le problème de syntaxe j'obtiens des meilleurs résultats avec OC il résout le problème de Hang Glider.
Mais vu que l'initialisation de OC ne prend pas en compte les matrices et que le temps final tf
est variable, je ne sais pas comment ça sera possible de faire l'équivalent par exemple entre:
0.0 <= x[k=0:nh], (start=x_0 + vx_0*(k/nh))
et
t -> x_0 + vx_0*t
Je pense que ça peut causer des résultats différents entre JuMP
et OptimalControl
.
@ocots @PierreMartinon. En réglant le problème de syntaxe j'obtiens des meilleurs résultats avec OC il résout le problème de Hang Glider. Mais vu que l'initialisation de OC ne prend pas en compte les matrices et que le temps final
tf
est variable, je ne sais pas comment ça sera possible de faire l'équivalent par exemple entre:0.0 <= x[k=0:nh], (start=x_0 + vx_0*(k/nh))
ett -> x_0 + vx_0*t
Je pense que ça peut causer des résultats différents entreJuMP
etOptimalControl
.
Alors pour les matrices normalement tu peux passer les fonctions interpolees a partir des matrices.
De facon generale, les fonctions donnees en initialisation seront tout simplement evaluees sur la grille de temps initiale. A tf libre cette grille initiale sera une subdivision reguliere de [t0,tf] a n intervalles, avec comme valeur de tf la valeur initiale de la variable d'optimisation correspondante. Par exemple si tf est la premiere variable, tu peux prendre
init=(state=(t->x0+vx0*t, t->...), control=..., variable=[tf_init, ...])
Une astuce: en faisant un solve avec l'option max_iter=0
et un plot derriere, tu dois retrouver l'initialisation (a quelque chose pres, car avant l'optimisation ipopt va par exemple projeter a l'interieur des bornes si besoin).
Il est possible maintenant de fournir un vecteur de vecteurs pour l'initialisation. Voir ce tutoriel : https://control-toolbox.org/docs/optimalcontrol/stable/tutorial-initial-guess.html#Vector-initial-guess-(interpolated)
Il est possible maintenant de fournir un vecteur de vecteurs pour l'initialisation. Voir ce tutoriel : https://control-toolbox.org/docs/optimalcontrol/stable/tutorial-initial-guess.html#Vector-initial-guess-(interpolated)
C'est parfait. Notebook. L'update améliore les valeurs obtenues. Il y a juste une petite différence au début de chaque figure de la vitesse. Les valeurs sont symétriques dans les 10 premières valeurs.
On a plus ce problème avec les nouvelles updates. Je ferme cette issue.
@ocots J'ai oublié qu'il y a aussi le problème de Hang Glider qui ne se résout pas avec
OptimalControl.jl
Modelisation en JuMP : gliderJMP Modelisation en OC : gliderOC Le notebook de comparison : testGlider