This will surely seem, at least at first sight, a completely stupid idea, seeing the usual “space isn't high away, it's fast away”, and that the heat shields which actually are used need to withstand temperatures around 2000°C. I certainly can't expect a parachute to withstand such violent conditions?
No I don't, however I also don't quite see why it would need to: the standard idea behind reentry seems to be that the more drag you develop, the less heat you need to withstand – thus the blunt shape of reentry vehicles, or else lifting-body capability. A parachute would create much more drag than any reentry capsule, so it would do most of the braking very high up in the atmosphere where the density is still extremely low. Even there, it would gather a “cushion” of air inside it, that should divert most of the actual air from touching the chute itself. And the heat the parachute does capture would be radiated away much better than from a small heat shield because of the large surface area. Basically, every square centimeter of the chute would be responsible for slowing down only a small fraction of the capsule's mass and thus of its kinetic energy.
This way of thinking seems to be also popular at JP Aerospace, whose orbital air ship is supposed to descend simply by re-entering the upper atmosphere and thus getting slowed down without damaging the extremely delicate structure. (Somewhat discussed here.)
Mind, I have a lot of doubts if this air ship is actually plausible; OTOH parachutes are a mainstay of spaceflight – but they were always only used after the vehicle had slowed down from the hypersonic entry, or in case of the Shuttle only on the ground.
Is there a fundamental reason for this, other than “slow boring descent” or “just has never been tried”? I'm sure that somebody must have considered it in the early days of spaceflight.
I seem to have not properly explained why “too violent deceleration” should not be an issue here. Some curves for the process, using the script by uhoh from the other question:
Sure, that's a strong braking like any reentry is, but it's definitely survivable. And this is still just with a single parachute with zero lift-to-drag ratio.
What's crucial here is to actually start out at near-orbital velocity, so the initial entry angle is shallow. It will inevitably get steeper when the speed is reduced, but at that point the speed is already reduced, so...
What would further help is to tweak the drag during entry, to avoid the strongest peaks. The easiest way would be to use different-size chutes at different heights (which, as Uwe comments, would probably be necessary anyway). Or to actually add some lift, which also doesn't seem completely implausible (paraglider).
def deriv(X, t):
x, v = X.reshape(2, -1)
earthRotation = np.hstack((-x[1], x[0])) / (24*3600)
airVelo = v - earthRotation
r, speed, airSpeed = [ np.sqrt((qtty**2).sum())
for qtty in [x, v, airVelo]]
acc_g = -x * GMe *((x**2).sum())**-1.5
alt = r - re
rho = rho0 * np.exp(-alt/hscale)
Fdrag = -0.5 * airVelo * airSpeed * CD * Area(alt) * rho
n_lift = np.hstack((-v[1], v[0]))/speed # definition of lift
Flift = LDR * 0.5 * n_lift * airSpeed**2 * CD * Area(alt) * rho
acc_d = (Fdrag + Flift)/m0
return np.hstack((v, acc_g + acc_d))
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint
pi = np.pi
GMe = 3.986E+14
alt = 120000. # meters
re = 6378000. # meters
v0 = 7560. # m/s
hscales = [7500.] # meters
CDs = [1.7] # https://www.grc.nasa.gov/www/k-12/VirtualAero/BottleRocket/airplane/rktvrecv.html
LDRs = [0]
def Area(alt):
return pi * 15**2 # m^2
m0 = 7800. # kg
rho0 = 1.25 # kg/m^3
X0 = np.array([0, re+alt, v0, 0])
dt = 1.0 # seconds per reported value by the solver (internally variable timesteps)
time = np.arange(0, 501, dt)
answers = []
for CD in CDs:
for hscale in hscales:
for LDR in LDRs:
answer, info = ODEint(deriv, X0, time, full_output = True)
answers.append(answer)
km = 1E-03
gee = 9.8 # m/s^2
plt.figure()
for answer in answers:
x, y, vx, vy = answer.T
r = np.sqrt( x**2 + y**2 )
v = np.sqrt(vx**2 + vy**2)
KE = 0.5 *m0 * v**2
plt.subplot(3, 1, 1)
plt.plot(time, km*vx)
plt.plot(time, km*vy)
plt.plot(time, km*v )
plt.title('vx, vy, vtot (km/s) versus time (seconds)', fontsize=16)
plt.subplot(3, 1, 2)
plt.plot(time, km*(r-re))
plt.title('altitude (km) versus time (seconds)', fontsize=16)
plt.subplot(3, 1, 3)
plt.plot(time[:-1], np.sqrt(((vx[:-1] - vx[1:])/dt)**2
+ ((vy[:-1] - vy[1:])/dt - gee)**2)/gee)
plt.title('gees', fontsize=16)
plt.show()