Welche Formeln verwende ich, um die Gravitations- und Widerstandskräfte auf ein Objekt zu berechnen, das von der Erdoberfläche aufsteigt?

Ich versuche, buchstäblich einen Schleuderstart in den Weltraum zu modellieren, und ich verwende zwei grundlegende Formeln. Um mein Modell zu vereinfachen, wird ein Objekt mit einer (wirklich großen) Anfangsgeschwindigkeit von der Erdoberfläche am Äquator gestartet und vom Luftwiderstand und der Schwerkraft beeinflusst. Ich verwende folgende Formeln:

Luftwiderstand:

F = C D 2 ρ EIN v 2

A = Bezugsfläche C = Widerstandsbeiwert F = Widerstandskraft, N. V = Geschwindigkeit, m/s. ρ = Dichte des Fluids (Flüssigkeit oder Gas), kg/m3.

Und : universelle Gravitationskraft:

F = G m 1 m 2 r 2

aber ich bekomme einige seltsame Ergebnisse.

Ich möchte wissen, ob ich die richtigen Formeln für ein Objekt verwende, das im Vergleich zur Erde wirklich wenig Masse hat.

Mehr Info:

Ich verwende ein Python-Programm, um eine Grafik zu zeichnen, die die X- und Y-Position wäre. Für die Methode, die ich verwende (Odeint), brauche ich die Differentialgleichung (weiß nicht, ob der Name auf Englisch korrekt ist), da F = ma:

F / m 1 = G m 2 r 2

wenn m 1 = meine Objektmasse

also meine Geschwindigkeitsvariation / Zeitvariation = G M 2 / r 2 (wobei M2 = Erdmasse)

(Ich denke, es macht Sinn, weil die Schwerkraftbeschleunigung eines Objekts nicht von der Masse dieses Objekts abhängt.)

Ich bin mir fast sicher, dass ich hier einen grundlegenden und schrecklichen Fehler mache, aber ich bin in meinem ersten Jahr am College und brauche wirklich Hilfe, danke.

Starten Sie nicht vom Äquator! Der Gewinn aus der Erdrotation sind kleine Kartoffeln im Vergleich zu dem, was Sie an Luftwiderstand verlieren werden. Setzen Sie Ihren Launcher auf den höchsten Berg, den Sie können.
Ihre Widerstandsformel erscheint mir verdächtig - im Hyperschallbereich gelten andere Regeln.
v 2 nicht v 3 , vorausgesetzt Ihr " P „ist Kraft.
@LorenPechtel: Mount Kilimanjaro, 5.895 m, Koordinaten: 3°S 37°E. Chimborazo, 6.268 m, Koordinaten: 1°S 78°W
Außerdem ist noch eine Gleichung zu berücksichtigen: Staulufttemperatur , die Sie dann in die Wärmeübertragungsfunktion einsetzen müssen. Bei 8 km/s steigt die Umgebungstemperatur (gemessen in Kelvin) um das 100-fache. Also, 0C = 273,15K wird über 27300K.

Antworten (2)

Eine Sache, die Sie vielleicht stolpern lässt, ist, dass der dTerm in der Gravitationsformel der Abstand zwischen den Massenschwerpunkten der Objekte ist, nicht die Höhe über der Erdoberfläche.

Die andere Sache, die Sie im Auge behalten sollten, sind Ihre Einheiten. Die große G-Gravitationskonstante beträgt ~6,67 x 10 -11 m 3 kg -1 s -2 ; Wenn Sie diesen Wert verwenden, stellen Sie sicher, dass Sie beispielsweise konsequent kg und m anstelle von Gramm und cm verwenden.

Sie haben Recht, dass die Masse eines Objekts berücksichtigt wird, wenn Sie seine Beschleunigung unter der Schwerkraft berücksichtigen. In der Nähe der Erdoberfläche sollten Sie eine Beschleunigung von ~9,8 ms -2 erhalten .

Eine nicht angetriebene ballistische Flugbahn, die den Weltraum von der Erdoberfläche aus erreichen kann, wird einen erschreckenden Luftwiderstand verursachen. Ich weiß, dass der maximale dynamische Druck für eine startende Rakete normalerweise im Bereich von 20 bis 30 kPa liegt, aber Ihr Fall wird viel höher sein, da die maximale Geschwindigkeit - der Moment des Starts) - mit der maximalen Luftdichte zusammenfällt, was nicht der Fall ist für Raketen.

Der Luftwiderstand ist brutal, aber für ein ausreichend großes Fahrzeug können Sie es tun.
@LorenPechtel: Zumindest auf dem Papier. Mit der Größe steigen die strukturellen Anforderungen geometrisch. Ein Boot, das groß genug ist, wird unter Belastungen auseinanderbrechen.
@SF. Ja, tatsächlich etwas zu bauen, das es überleben kann, wird nicht einfach sein. Sie müssen ein im Grunde für Waffen zugelassenes Fahrzeug bauen - da wir für Waffen zugelassenes Zeug bauen können, ist dies möglich.

Dies könnte Ihnen beim Einstieg helfen . Es ist nur ein 1D - Radiallöser , aber Sie können mit der Mathematik spielen. Ich habe eine 3D-Version der Ableitungsfunktion eingefügt, um eine Möglichkeit zu zeigen, die Beschleunigung in NumPy zu einem Vektor zu machen. Vergessen Sie nicht, die Rotation der Erde hinzuzufügen.

Die Idee , auf einem Berg wie dem Mt. Kilimenjaro zu beginnen , ist es sicher wert, erkundet zu werden.

Ich habe einfach einen Wert für die Skalenhöhe gewählt , die 1/e-Länge der Abnahme der Dichte mit der Höhe. Es ist nicht wirklich so einfach, und natürlich wird Drag viel komplizierter und viel schlimmer sein! als diese einfache Gleichung, aber es ist zumindest ein Anfang, und Sie können Mathematik hinzufügen / ändern, wenn Sie mehr über den Überschallwiderstand erfahren.

Sie können den dramatischen Geschwindigkeitsverlust noch in der Atmosphäre sehen.

Geben Sie hier die Bildbeschreibung ein

# 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()