-
Notifications
You must be signed in to change notification settings - Fork 0
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
Code direct #4
Comments
@alesiagr dispo à partir de 17:30 pour un point ? |
Yes! 17h30 me va :) |
Join Zoom Meeting Meeting ID: 896 6545 6865 |
J'y suis! :) |
Point du 3/7/2024
x = (r₁, r₂, v₁, v₂) ∈ R^4, state
|
Merci beaucoup @jbcaillau! Juste 2 choses qui manquent:
|
@alesiagr yes. sur le deuxième point, c'est soit ça, soit ça la régularisation en |
@ldellelc wants to give some advice 🙂 |
I am all ears |
energie plus petite = demi-grand axe plus petit.. peut etre que cela est fait pour aller plus proche au soleil justemment: "reculer pour mieux sauter!" :) Pour voir si c'est le cas essaie de plotter la norme de r en fonction du temps (pour les deux trajectoires.. mais rescale l'axe y pour mieux observer ce qu'il se passe en proximité du passage au perihelion) ainsi que l'altitude du perihelion en fonction du temps aussi |
Point du 8/7/2024
par exemple avec ta propre fonction norme : my_norm(x; eps=1e-9) = sqrt(sum(x.^2) + eps^2)
|
@jbcaillau Voici le code simple pour JuliaCon: https://github.com/mctao-inria/sail-therm/blob/main/interstellar_sail2D_JuliaCon.jl
|
@alesiagr Super, je teste et reviens vers toi. |
@jbcaillau J'AI LA TRAJECTOIRE ENTIÈRE!!!!!!! bon, c'était l'ancien run, donc avec la contrainte non convexifiée (sum(u^2) == 1), et avec la time_grid toujours uniforme. Donc le code est très lent, mais je pense une dois la question de time_grid réglée, je pourrais le rendre plus efficace. De même pour la convexification de la contrainte. |
@ldellelc @jbcaillau c'est intéressant la structure, on refait un tour supprimé pour regagner de l'énergie à la fin. De plus on remarque bien les bangs, mais aussi (probablement) des touch-points de la contrainte. |
👍🏽 @alesiagr intéressant ce tour supplémentaire. voyons si tu peux améliorer le calcul / la vitesse en passant en cartésiennes sur le contrôle, et en raffinant la grille au fur et à mesure. en tout cas, c'est forcément assez délicat car la trajectoire trouvée est très différente de l'initial guess. |
@alesiagr quelle est la valeur de l'énergie juste avant que le tour ne soit rajouté, et juste après ? si c'est (beaucoup) moins bon juste après, c'est probablement un min local (ou un cas de bifurcation plus sérieux, mais bon) |
c'est très proche. mais on perd de l'énergie, donc je me dis qu'on reste bloqué dans un local min 1.0993742095119743 juste avant le rajout du 2 arc |
Mais, encore une fois, je pense ça ira mieux une fois la grid raffinée. Parce que j'ai vraiment la traj très linéarisée en passant proche du soleil, ce qui est un soucis majeur à mon avis |
Hello @jbcaillau . La time-grid variable fonctionne bien, je fais les simulations. Mon inquiétude est que j'obtiens des résultats où les adjoints sont fortement oscillants. Je voulais donc te demander ce que t'en penses : |
@alesiagr une question concernant le comportement oscillatoire des approximations des adjoints (par les multiplicateurs de Lagrange), sachant que c'est vraisemblablement dû à la contrainte d'état : est-ce que c'est comme ça sur toutes tes simus ? (je me souviens plus de tes premiers plots.) |
@jbcaillau tu as raison: non. C'est depuis que j'ai la time_grid non-uniforme on dirait |
@jbcaillau de plus, avant j'avais bien le saut dans les adjoint exactement au même endroit que le potentiel |
@alesiagr essaie stp de régénérer une simu de ce style, même avec un petit bout d'arc |
@jbcaillau Je pense que le pb est pas le time_grid, mais plutot u = [cos β , sin β ] Regarde une des simus que j'avais quand u = β : |
Je viens de refaire les sims avec u = β : c'est encore oscillatoire.... |
OK. Donc tout à la fin de JuliaCon, juste avant que je commence à faire du grid nonuniforme, c'était pas oscillatoire, bien avec u = [cos β, sin β ] |
Le soucis était que j'avais pas assez de points et tout à la fin je restais coincée dans le local minimum avec des passages au perihelion supplémentaires. |
Du coup c'est juste après la mis à jour de OptimalControl.jl 😅 Est-ce possible que c'est lié? |
A priori non :
Footnotes
|
Ok, je vois. |
Je vois pour le cas Goddard oscillatoire... Et c'est quoi BVP-DAE? |
Une discrétisation du problème aux deux bouts par collocation plutôt que tir, en laissant la maximisation du Hamiltonien implicite (ça te rappellera qqchose 🙂) |
Ah oui, je vois :) Bon j'essaie quand même de réfléchir sur cette histoire, mais ça me surprend que les adjoint ont décidé d'un coup de devenir oscillants...
|
@jbcaillau on vient de faire une réunion avec notre stagiaire Vincent, qui travaille également sur Julia avec OptimalControl.jl. Il s'avère qu'il a le même problème que moi: les adjoints sont devenus fortement oscillatoires après la mise à jour de la toolbox. |
|
@alesiagr ça donne quoi les nouveaux résultats ? sachant que le bug de récupération des adjoints (qui n'affectait pas le calcul de l'optimimum, c'était un post-traitement) ajoutait non seulement des oscillations, mais décalait aussi les valeurs (ce qui explique que le saut de l'adjoint ne coïncidait plus avec le supposé touch point). |
@jbcaillau je n'ai pas encore fait la simulation entière, mais ça donne bien selon les résultats préliminaires! |
On dirait même que c'est pas vraiment un saut dans les adjoint. En vrai si on "sauter" la partie de l'adonis à perihelion, on dirait que sa dynamique est bien continue |
heu... adonis ? tu es sûre 😅 ? |
@alesiagr essaie de bouger la vapeur de la contrainte pour voir si ça change |
fausse alerte, erreur trouvée, je remets les résultats d'ici peu
The text was updated successfully, but these errors were encountered: