Angle de phase d’une fenêtre de lancement Hohmann
Ce calculateur détermine la position requise de la planète cible par rapport à la planète de départ au début d’un transfert de Hohmann.
Lancer gratuitement
Saisissez la durée prévue du transfert et la période orbitale de la cible dans la même unité. L’outil calcule le déplacement de la cible pendant le vol, le soustrait aux 180 degrés de la géométrie d’arrivée et fournit l’angle normalisé ainsi que les valeurs intermédiaires.
Signification de l’angle de phase au lancement
Un transfert de Hohmann ne vise pas la position occupée par la planète cible au départ. Le véhicule parcourt la moitié d’une orbite elliptique tandis que la cible poursuit sa révolution autour du corps central ; une séparation angulaire précise est donc nécessaire au lancement. Ici, l’angle correspond à la longitude héliocentrique de la cible moins celle de l’origine, mesurée dans le sens du mouvement orbital et ramenée entre 0 et moins de 360 degrés. Une valeur proche de 44 degrés signifie que la cible doit précéder l’origine d’environ 44 degrés. Une valeur supérieure à 180 degrés est la représentation normalisée d’un angle brut négatif : 300 degrés équivaut à un retard de 60 degrés. Le modèle suppose des orbites circulaires et coplanaires et une géométrie idéale où le véhicule balaie 180 degrés autour du corps central. Il fournit une estimation de planification, et non une trajectoire opérationnelle complète.
Méthode de calcul
Employez une seule unité de temps pour les deux entrées : jours avec jours, années avec années ou secondes avec secondes. Le rapport entre durée de transfert et période de la cible est sans dimension. Le calcul multiplie d’abord ce rapport par 360 degrés afin d’obtenir le déplacement angulaire de la cible pendant le voyage. Il soustrait ensuite ce déplacement à 180 degrés, séparation entre les extrémités de départ et d’arrivée de l’ellipse de Hohmann. Dans certains scénarios hypothétiques, l’angle brut peut être négatif ou dépasser un tour. Une valeur normalisée entre 0 et moins de 360 degrés est donc également fournie pour faciliter la comparaison avec des longitudes d’éphémérides. Le déplacement de la cible, la fraction d’orbite et l’angle non normalisé restent visibles. Ces résultats permettent de contrôler le calcul et de repérer des unités temporelles incompatibles.
Hypothèses et utilisation du résultat
Cette formule convient à une première estimation d’une fenêtre interplanétaire. Elle suppose des trajectoires circulaires et coplanaires, des vitesses angulaires constantes et une injection instantanée sur l’ellipse idéale. Les planètes réelles ont des orbites excentriques et inclinées, leur vitesse varie et les missions retiennent parfois un transfert plus rapide ou plus lent. Des éphémérides et un solveur de Lambert restent indispensables avant de considérer une date comme exploitable. L’outil ne convertit pas non plus l’angle en date, ne déduit pas la durée depuis les rayons orbitaux et n’intègre ni répétition synodique ni orbite de parking. Comparez les longitudes héliocentriques de la cible et de l’origine dans le même référentiel et à la même époque, recherchez la différence orientée correspondant au résultat, puis affinez la date avec des contraintes de trajectoire et de site de lancement.
Cas d’usage
Estimer une géométrie de départ interplanétaire
Transformez une durée de vol Hohmann et l’année de la cible en séparation angulaire au lancement.
Vérifier un exercice de mécanique orbitale
Contrôlez le déplacement de la cible et l’angle final grâce à toutes les valeurs intermédiaires.
Présélectionner des dates d’éphémérides
Utilisez l’angle idéal comme premier filtre avant un solveur de Lambert et des contraintes détaillées.
Questions fréquentes
Quelle équation est appliquée ?
Le calcul effectue 180 degrés moins 360 degrés multipliés par transfer_time divisé par target_orbital_period, puis normalise le résultat entre 0 et moins de 360 degrés.
Quelle unité de temps faut-il choisir ?
Toute unité convient si elle est identique pour les deux valeurs. Mélanger jours et années fausse le rapport et l’angle.
Pourquoi fournir un angle brut et un angle normalisé ?
La valeur brute expose directement la formule ; la valeur normalisée exprime la même direction par un angle positif sur un tour.
Pourquoi une période orbitale nulle provoque-t-elle une erreur ?
La période se trouve au dénominateur du mouvement angulaire. Une division par zéro est indéfinie et dépourvue de sens physique.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le navigateur emploie la même logique analytique déterministe.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/astro/launch-window-phase-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"transfer_time":258.9,"target_orbital_period":686.98}'const res = await fetch("https://api.kit.forhosting.com/astro/launch-window-phase-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"transfer_time": 258.9,
"target_orbital_period": 686.98
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/launch-window-phase-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"transfer_time": 258.9,
"target_orbital_period": 686.98
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/launch-window-phase-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"transfer_time":258.9,"target_orbital_period":686.98}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"transfer_time":258.9,"target_orbital_period":686.98}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/launch-window-phase-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"transfer_time": 258.9,
"target_orbital_period": 686.98
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.launch_window_phase_angle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |