¿Qué fórmulas utilizo para calcular las fuerzas de gravedad y arrastre sobre un objeto que asciende desde la superficie de la Tierra?

Estoy tratando de modelar un lanzamiento de honda al espacio, literalmente, y estoy usando 2 fórmulas básicas. Simplificando mi modelo, un objeto con una velocidad inicial (realmente grande) se lanza desde la superficie de la Tierra en el ecuador, y se ve afectado por la resistencia del aire y la gravedad. Estoy usando las siguientes fórmulas:

Resistencia del aire:

F = C D 2 ρ A v 2

A = Área de referencia C = Coeficiente de arrastre F = Fuerza de arrastre, N. V = Velocidad, m/s. ρ = Densidad del fluido (líquido o gas), kg/m3.

Y : fuerza gravitatoria universal:

F = GRAMO metro 1 metro 2 r 2

pero estoy obteniendo algunos resultados extraños.

Quiero saber si estoy usando las fórmulas correctas para un objeto que tiene una masa realmente baja en comparación con la Tierra.

Más información:

Estoy usando un programa de Python para trazar un gráfico que sería la posición X e Y. Para el método que estoy usando (Odeint) necesito la ecuación diferencial (no sé si el nombre es correcto en inglés), como F = ma:

F / metro 1 = GRAMO metro 2 r 2

si metro 1 = la masa de mi objeto

entonces mi variación de velocidad/variación de tiempo = GRAMO METRO 2 / r 2 (siendo M2 = masa terrestre)

(Creo que tiene sentido porque la aceleración de la gravedad de un objeto no depende de la masa de ese objeto).

Estoy casi seguro de que estoy cometiendo un error básico y terrible aquí, pero estoy en mi primer año en la universidad y realmente necesito ayuda, gracias.

¡No lances desde el ecuador! La ganancia de la rotación de la Tierra es poca cosa en comparación con lo que vas a perder con la resistencia. Pon tu lanzador en la montaña más alta que puedas.
Su fórmula de arrastre me parece sospechosa: las reglas son diferentes en el reino hipersónico.
v 2 no v 3 , asumiendo su " PAG "es fuerza.
@LorenPechtel: Monte Kilimanjaro, 5895 m, coordenadas: 3°S 37°E. Chimborazo, 6.268 m, coordenadas: 1°S 78°O
Además, una ecuación más a considerar: la temperatura del aire ram , que luego debe conectar a la función de transferencia de calor. A 8 km/s, la temperatura ambiente (medida en Kelvin) aumenta más de 100 veces. Entonces, 0C = 273.15K se convierte en más de 27300K.

Respuestas (2)

Una cosa que puede estar haciéndote tropezar es que el dtérmino en la fórmula gravitatoria es la distancia entre los centros de masa de los objetos, no la altitud sobre la superficie de la Tierra.

La otra cosa a tener en cuenta son tus unidades. La gran constante gravitatoria G es ~6,67 x 10 -11 m 3 kg -1 s -2 ; si está usando ese valor, asegúrese de usar constantemente kg y m en lugar de gramos y cm, por ejemplo.

Tienes razón en que la masa de un objeto se descuenta cuando consideras su aceleración bajo la gravedad. Cerca de la superficie de la Tierra debería obtener una aceleración de ~9,8 ms -2 .

Una trayectoria balística sin motor que puede llegar al espacio desde la superficie de la Tierra va a incurrir en una cantidad aterradora de resistencia. Sé que la presión dinámica máxima para un cohete de lanzamiento suele estar en el rango de 20-30 KPa, pero su caso será mucho mayor, porque la velocidad máxima (el momento del lanzamiento) coincidirá con la densidad máxima del aire, que no es el caso. para cohetes.

La resistencia es brutal, pero para una embarcación lo suficientemente grande puedes hacerlo.
@LorenPechtel: Al menos en papel. Con el tamaño, los requisitos estructurales aumentan geométricamente. Una embarcación lo suficientemente grande se romperá bajo estrés.
@SF. Sí, en realidad construir algo que pueda sobrevivir no va a ser fácil. Vas a tener que construir una embarcación básicamente con clasificación de armas, ya que podemos construir cosas con clasificación de armas, es posible.

Esto podría ayudarlo a comenzar . Es solo un solucionador radial 1D , pero puedes jugar con las matemáticas. Incluí una versión 3D de la función derivada para mostrar una forma de convertir la aceleración en un vector en NumPy. No olvides sumar la rotación de la tierra.

La idea de comenzar en la cima de una montaña como el monte Kilimenjaro vale la pena explorarla.

Simplemente elegí un valor para la altura de la escala , la longitud 1/e de la disminución de la densidad con la altitud. En realidad no es tan simple y, por supuesto , ¡el arrastre será mucho más complicado y mucho peor! que esta simple ecuación, pero es al menos un comienzo, y puede agregar/modificar matemáticas a medida que aprende más sobre la resistencia supersónica.

Puedes ver la dramática pérdida de velocidad mientras aún estás en la atmósfera.

ingrese la descripción de la imagen aquí

# FROM: https://space.stackexchange.com/questions/16581/what-formulas-do-i-use-to-calculate-the-gravity-and-drag-forces-on-an-object-asc

def deriv(X, t):

    r, v = X
    acc_grav = -GMe / r**2
    acc_drag = -0.5 * rhocalc(r) * v**2 * Cd * A / mass

    return [v, acc_grav + acc_drag]

def rhocalc(r):

    altitude = r - re
    rho      = rho_0 * np.exp(-altitude / h_scale)

    return rho

def deriv3D(X, t):

    r, v = X[:3], X[3:] # 3D state vector np.array([x, y, z, vx, vy vz])

    acc_grav = -GMe * r * ((r**2).sum(axis=0))**-1.5
    acc_drag = -0.5 * rhocalc(r) * v*np.sqrt((v**2).sum()) * Cd * A / mass

    return np.hstack((v, acc_grav + acc_drag))

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint

GMe = 3.986E+14   # m^3/s^2

mass = 1000       # kg
Cd   = 1.0
A    = 0.1        # m^2
rho_0   = 1.3     # kg/m^3  or  mg/cm^3
h_scale = 7600    # m   scale height 

re  = 6371000.    #m     radius of earth
alt = 0.          #m     launch altitude
v0  = 3000.       #m/s   launch velocity

X0 = [re+alt, v0]  # 1D state vector

print deriv(X0, 0)

t = np.linspace(0, 90, 1000)

tol = 1E-9

answer, blob = ODEint(deriv, X0, t, rtol=tol, atol=tol, full_output=True)

plt.figure()

r, v = answer.T

plt.subplot(4, 1, 1)
plt.plot(t, r-re)
plt.title('altitude (m)')
plt.subplot(4, 1, 2)
plt.plot(t, v)
plt.title('velocity (m/s)')
plt.subplot(4, 1, 3)
plt.plot(t, rhocalc(r))
plt.title('density (kg/m^3)')
plt.subplot(4, 1, 4)
plt.plot(t[:-1], blob['hu'])
plt.title('step size (sec)')
plt.yscale('log')
plt.show()