Calculadora de precesión nodal J2 para órbitas
Vea cómo el abultamiento de un planeta hace girar poco a poco una órbita: con 7000 km de semieje y 98 grados de inclinación sobre la Tierra, el nodo ascendente avanza cerca de un grado por día. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Semieje mayor
- 7 000
- Excentricidad
- 0,001
- Inclinación (grados)
- 98
- J2
- 0,0010826267
- Radio del cuerpo
- 6 378,137
- Tasa de precesión nodal (rad/s)
- 0,0000002023
- Tasa de precesión nodal (°/día)
- 1,0013270925
- Movimiento medio (rad/s)
- 0,0010780076
- Semilado recto
- 6 999,993
Esta calculadora de precesión nodal J2 estima la deriva secular del nodo ascendente de una órbita causada por el achatamiento del cuerpo central. Introduzca el semieje mayor, la excentricidad, la inclinación ecuatorial, el coeficiente J2 y el radio ecuatorial. El cálculo aplica el modelo de perturbación promediado de primer orden y entrega radianes por segundo y grados por día. El parámetro gravitacional terrestre se usa de forma predeterminada, pero usted puede indicar otro para representar cualquier cuerpo oblato.
Introduzca un modelo orbital y corporal coherente
El valor predeterminado corresponde a la Tierra en unidades basadas en kilómetros. La inclinación se mide en grados respecto al plano ecuatorial del cuerpo central, no respecto a la eclíptica ni a otro plano de misión. La excentricidad es adimensional, puede ser cero y debe ser menor que uno.
J2 también es adimensional y suele ser positivo para un planeta oblato. El semieje mayor es una distancia desde el centro, no una altitud sobre la superficie. En una órbita baja casi circular, sume el radio del cuerpo a la altitud aproximada.
Se rechaza cualquier semieje mayor no positivo porque no representa la órbita elíptica exigida por el modelo.
Comprenda el cálculo J2 de primer orden
La calculadora obtiene primero el movimiento medio como la raíz cuadrada del parámetro gravitacional dividido por el cubo del semieje mayor. Después calcula el semilatus rectum p como a multiplicado por uno menos la excentricidad al cuadrado. La tasa secular del nodo es menos tres medios por J2, por el movimiento medio, por el cuadrado de la razón entre el radio corporal y p, y por el coseno de la inclinación.
Es el resultado estándar de primer orden, promediado sobre la órbita, para la ascensión recta del nodo ascendente. El signo tiene significado físico: una órbita prograda inferior a noventa grados suele dar una tasa negativa o regresión; una órbita retrógrada superior a noventa grados suele dar una tasa positiva. En una órbita polar ideal, el término es prácticamente cero.
La respuesta incluye ambas unidades de tasa y valores intermedios para revisar el cálculo.
Utilice la estimación dentro de sus límites
Considere el resultado una estimación secular de diseño, no un propagador orbital completo. La fórmula promedia la perturbación J2 e ignora oscilaciones de periodo corto, armónicos superiores, gravedad de terceros cuerpos, arrastre atmosférico, presión de radiación solar, mareas, precesión del cuerpo y maniobras. Resulta útil para estudiar órbitas heliosíncronas, comparar inclinaciones, estimar la rotación del plano orbital y validar otra implementación.
En un estudio heliosíncrono, compare la magnitud y el signo en grados por día con el movimiento anual aparente exigido por su convención, y refine después con un propagador de alta fidelidad. No mezcle elementos medios y osculadores sin conocer la convención de los datos. Cuando importe la precisión, use constantes del mismo sistema de referencia.
Qué puede hacer con ella
Evaluar una órbita heliosíncrona
Compare altitudes e inclinaciones candidatas mediante el signo y la magnitud de la deriva nodal J2 prevista.
Explorar efectos del cuerpo central
Sustituya valores coherentes de J2, radio y parámetro gravitacional para comparar cuerpos oblatos idealizados.
Preguntas frecuentes
¿Qué ecuación utiliza la calculadora?
Aplica la ecuación secular J2 de primer orden: menos tres medios por J2, movimiento medio, el cuadrado del cociente entre radio ecuatorial y semilatus rectum, y el coseno de la inclinación.
¿Por qué la tasa es negativa en muchas órbitas progradas?
Por debajo de noventa grados el coseno es positivo, de modo que el signo menos produce una regresión hacia el oeste del nodo ascendente.
¿Puedo introducir altitud en lugar del semieje mayor?
No. Introduzca el semieje mayor desde el centro. Para una órbita casi circular, altitud más radio corporal ofrece una conversión aproximada.
¿Qué unidades debo emplear?
Use una unidad de longitud común para semieje mayor y radio, y su cubo por segundo cuadrado para el parámetro gravitacional. El valor predeterminado terrestre usa kilómetros.
¿Sustituye esto a una propagación orbital numérica?
No. Es una estimación J2 promediada de primer orden que omite otros armónicos, arrastre, terceros cuerpos, radiación, maniobras y efectos de periodo corto.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/astro/nodal-regression-rate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}'const res = await fetch("https://api.kit.forhosting.com/astro/nodal-regression-rate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/nodal-regression-rate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/nodal-regression-rate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"semi_major_axis":7000,"eccentricity":0.001,"inclination_degrees":98,"j2":0.00108262668,"body_radius":6378.137}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/nodal-regression-rate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"semi_major_axis": 7000,
"eccentricity": 0.001,
"inclination_degrees": 98,
"j2": 0.00108262668,
"body_radius": 6378.137
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.nodal_regression_rate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Introduzca un modelo orbital y corporal coherente
Use la misma unidad de longitud para semi_major_axis y body_radius. Si ambas magnitudes están en kilómetros, gravitational_parameter debe expresarse en kilómetros cúbicos por segundo cuadrado; si están en metros, use metros cúbicos por segundo cuadrado.
Utilice la estimación dentro de sus límites
El navegador y la API ejecutan el mismo algoritmo puro; cada solicitud correcta por API cuesta $0.002. Los datos inválidos devuelven invalid_input.
Casos de integración
Comprobar software de dinámica de vuelo
Use un resultado determinista de primer orden como prueba de regresión para una biblioteca de análisis orbital.