| | <link |
| | rel="stylesheet" |
| | - href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css" /> |
| | - </xsl:template> |
| | - |
| | - <xsl:template match="/root" mode="header"> |
| | - <h1>Orbital Launch Insertion</h1> |
| | - </xsl:template> |
| | - |
| | - <xsl:template match="/root" mode="content"> |
| | - <p> |
| | - Helps determine whether a payload can be inserted into a stable orbit. |
| | - Form field values are explained in the <a href="#equations">Equations</a> |
| | - section, below. |
| | - </p> |
| | - |
| | - <form id="calculator"> |
| | - <button class="submit">Simulate</button> |
| | - |
| | - <fieldset id="environment"> |
| | - <legend>Environment</legend> |
| | - <label for="surface_temperature">Surface temperature (℃)</label> |
| | - <input tabindex="1" |
| | - class="variable" type="number" step="1" min="-80" value="25" |
| | - id="surface_temperature" name="surface_temperature" /> |
| | - |
| | - <label for="relative_humidity">Relative humidity</label> |
| | - <input tabindex="2" |
| | - class="variable" type="number" step="0.01" min="0" value="86.34" |
| | - id="surface_temperature" name="surface_temperature" /> |
| | - </fieldset> |
| | - |
| | - <fieldset id="mission"> |
| | - <legend>Mission</legend> |
| | - <label for="initial_velocity">Initial velocity (Mach)</label> |
| | - <input tabindex="3" |
| | - class="variable" type="number" step="1" min="0" value="8" |
| | - id="initial_velocity" name="initial_velocity" /> |
| | - |
| | - <label for="initial_latitude">Initial latitude (°)</label> |
| | - <input tabindex="4" |
| | - class="variable" type="number" step="any" min="0" value="1.469167" |
| | - id="initial_latitude" name="initial_latitude" /> |
| | - |
| | - <label for="initial_altitude">Initial altitude (m)</label> |
| | - <input tabindex="5" |
| | - class="variable" type="number" step="1" min="0" value="6212" |
| | - id="initial_altitude" name="initial_altitude" /> |
| | - |
| | - <label for="target_altitude">Target altitude (km)</label> |
| | - <input tabindex="6" |
| | - class="variable" type="number" step="1" min="1" value="400" |
| | - id="target_altitude" name="target_altitude" /> |
| | - </fieldset> |
| | - |
| | - <fieldset id="rocket"> |
| | - <legend>Rocket</legend> |
| | - <label for="diameter">Diameter (m)</label> |
| | - <input tabindex="7" class="variable" type="number" |
| | - step="any" min="0" value="0.6" id="diameter" name="diameter" /> |
| | - |
| | - <label for="wet_mass">Wet mass (kg)</label> |
| | - <input tabindex="8" |
| | - class="variable" type="number" step="1" min="1" value="250" |
| | - id="wet_mass" name="wet_mass" |
| | - oninput="this.value = Math.abs(this.value)" /> |
| | - |
| | - <label for="payload">Payload mass (kg)</label> |
| | - <input tabindex="9" |
| | - class="variable" type="number" step="1" min="1" value="25" |
| | - id="payload_mass" name="payload_mass" |
| | - oninput="this.value = Math.abs(this.value)" /> |
| | - |
| | - <label for="drag_coefficient">Drag coefficient</label> |
| | - <input tabindex="10" |
| | - class="variable" type="number" step="any" min="0" value="0.219" |
| | - id="drag_coefficient" name="drag_coefficient" /> |
| | - |
| | - <label for="specific_impulse">Specific impulse (s)</label> |
| | - <input tabindex="11" |
| | - class="variable" type="number" step="1" min="1" value="1700" |
| | - id="specific_impulse" name="specific_impulse" /> |
| | - </fieldset> |
| | - |
| | - <button class="submit">Simulate</button> |
| | - |
| | - <fieldset id="result"> |
| | - <legend>Result</legend> |
| | - </fieldset> |
| | - </form> |
| | - |
| | - <a name="equations" /> |
| | - <h1>Equations</h1> |
| | - <p> |
| | - This section describes equation inputs and outputs. |
| | - </p> |
| | - |
| | - <h2>Cross-section area</h2> |
| | - <p> |
| | - Calculates the ballistic coefficient of friction, which helps |
| | - determine the drag force magnitude experienced by the rocket. |
| | - </p> |
| | - <p class="equation"> |
| | - $$A = \pi (d / 2)^2$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Input</h3> |
| | - <dl> |
| | - <dt>$d$</dt> |
| | - <dd>Rocket diameter (m)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$A$</dt> |
| | - <dd>Rocket's cross-section area (m<sup>2</sup>)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Air pressure</h2> |
| | - <p> |
| | - Calculates the amount of pressure air exerts at a given altitude. |
| | - </p> |
| | - <p class="equation"> |
| | - $$P = P_{sea} \bigg( 1 + \frac{L}{T} h \bigg) ^ {\frac{-g_0 \cdot M}{R \cdot L}}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Input</h3> |
| | - <dl> |
| | - <dt>$P_{sea}$</dt> |
| | - <dd>Sea level pressure (101325 Pa)</dd> |
| | - <dt>$L$</dt> |
| | - <dd>Lapse rate (-0.0065 K/m)</dd> |
| | - <dt>$T$</dt> |
| | - <dd>Temperature (K)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (m)</dd> |
| | - <dt>$g_0$</dt> |
| | - <dd>Gravitational acceleration constant (9.80665 m/s<sup>2</sup>)</dd> |
| | - <dt>$M$</dt> |
| | - <dd>Earth's atmospheric molar mass (0.0289644 kg/mol)</dd> |
| | - <dt>$R$</dt> |
| | - <dd>Universal gas constant (8.31432 N⋅m/mol⋅K)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$P$</dt> |
| | - <dd>Air pressure (Pa)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Tetens equation</h2> |
| | - <p> |
| | - Calculates the saturation vapour pressure of water at a given temperature. |
| | - </p> |
| | - <p class="equation"> |
| | - $$P_v = 0.61078 \cdot e ^ {17.27 T / (T + 237.31)}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$T$</dt> |
| | - <dd>Temperature (℃)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$P_v$</dt> |
| | - <dd>Vapour pressure (Pa)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Air density</h2> |
| | - <p> |
| | - Calculates the density of air at a given altitude, which helps determine |
| | - the drag force due to air experienced by the rocket. |
| | - </p> |
| | - <p class="equation"> |
| | - $$\rho = \left(\frac{P_d}{R_d \cdot T}\right) + \left(\frac{P_v}{R_v \cdot T}\right)$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$P_d$</dt> |
| | - <dd>Partial pressure of dry air (Pa)</dd> |
| | - <dt>$P_v$</dt> |
| | - <dd>Partial pressure of water vapor (Pa)</dd> |
| | - <dt>$T$</dt> |
| | - <dd>Temperature (℃)</dd> |
| | - <dt>$R_d$</dt> |
| | - <dd>Specific gas constant for dry air (287.058 J/(kg⋅K))</dd> |
| | - <dt>$R_v$</dt> |
| | - <dd>Specific gas constant for water vapour (461.495 J/(kg⋅K))</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$\rho$</dt> |
| | - <dd>Air density (kg/m<sup>3</sup>)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Earth effective radius</h2> |
| | - <p> |
| | - Calculates Earth's radius at a given latitude, which helps determine |
| | - the main gravitational force experienced by the rocket. |
| | - </p> |
| | - <p class="equation"> |
| | - $$R_f = \frac{R_e - R_{pole}}{R_e}$$ |
| | - $$R_E = R_e (1 - R_f \cdot sin^2 \varphi)$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$R_e$</dt> |
| | - <dd>Equatorial radius (m)</dd> |
| | - <dt>$R_{pole}$</dt> |
| | - <dd>Polar radius (m)</dd> |
| | - <dt>$\varphi$</dt> |
| | - <dd>Latitude (°)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Outputs</h3> |
| | - <dl> |
| | - <dt>$R_f$</dt> |
| | - <dd>Flattening ratio</dd> |
| | - <dt>$R_E$</dt> |
| | - <dd>Effective radius (m)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Rotational velocity</h2> |
| | - <p> |
| | - Calculates the rotational speed that the rocket gains by being |
| | - launched at a given latitude. |
| | - </p> |
| | - <p class="equation"> |
| | - $$\omega = R_E(\varphi) \frac{2 \pi}{T_s}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$R_E$</dt> |
| | - <dd>Effective radius (m)</dd> |
| | - <dt>$\varphi$</dt> |
| | - <dd>Latitude (°)</dd> |
| | - <dt>$T_s$</dt> |
| | - <dd>Sidereal time (86164.0905 s)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$\omega$</dt> |
| | - <dd>Rotational velocity (m/s)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Orbital velocity</h2> |
| | - <p> |
| | - Calculates the necessary speed the rocket needs to reach to enter a |
| | - stable orbit. |
| | - </p> |
| | - <p class="equation"> |
| | - $$v_{o} = \sqrt{\frac{G}{R_E(\varphi) + h}}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$G$</dt> |
| | - <dd>Standard gravitational parameter (m/s<sup>2</sup>)</dd> |
| | - <dt>$R_E$</dt> |
| | - <dd>Effective radius (m)</dd> |
| | - <dt>$\varphi$</dt> |
| | - <dd>Latitude (°)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (m)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$v_{o}$</dt> |
| | - <dd>Orbital velocity (m/s)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Gravity</h2> |
| | - <p> |
| | - Calculates the gravitational forces experienced by the rocket, which must |
| | - be overcome to reach a stable orbit. |
| | - </p> |
| | - <p class="equation"> |
| | - $$g = g_0 \big[1 + 0.0053024 \cdot sin^2(\varphi) - 0.0000058 \cdot sin^2(2\varphi)\big] + \left(-3.086 \times 10^{-6} h\right)$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$g_0$</dt> |
| | - <dd>Surface gravity (m/s<sup>2</sup>)</dd> |
| | - <dt>$\varphi$</dt> |
| | - <dd>Latitude (°)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (m)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$g$</dt> |
| | - <dd>Gravity (m/s<sup>2</sup>)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Speed of sound</h2> |
| | - <p> |
| | - Calculates the speed of sound given a velocity in Mach units. The |
| | - speed of sound varies depending on altitude and temperature. |
| | - </p> |
| | - <p class="equation"> |
| | - $$cc = cc_s \sqrt{1 + \frac{T_s - \left(\frac{6h}{1000}\right)}{273.15}}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$cc_s$</dt> |
| | - <dd>Surface speed of sound (331.3 m/s)</dd> |
| | - <dt>$T_s$</dt> |
| | - <dd>Surface temperature (℃)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (m)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Output</h3> |
| | - <dl> |
| | - <dt>$cc$</dt> |
| | - <dd>Speed of sound (m/s)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Drag force</h2> |
| | - <p> |
| | - Calculates the amount of drag experienced by the rocket, which must be |
| | - overcome to reach a stable orbit. |
| | - </p> |
| | - <p class="equation"> |
| | - $$\rho = \rho_{air}(h)$$ |
| | - $$v_n = v_h - \omega$$ |
| | - $$v_t = \sqrt{v_n^2 + v_v^2}$$ |
| | - $$D = -\frac{1}{2} \rho \cdot C_d \cdot v_t$$ |
| | - $$\left( F_{drag_h}, F_{drag_v} \right) = \left( D \cdot v_n, D \cdot v_v \right)$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$\rho_{air}$</dt> |
| | - <dd>Air density function (kg/m<sup>3</sup>)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (meters)</dd> |
| | - <dt>$v_h$</dt> |
| | - <dd>Horizontal velocity (m/s)</dd> |
| | - <dt>$\omega$</dt> |
| | - <dd>Rotational velocity (m/s)</dd> |
| | - <dt>$v_v$</dt> |
| | - <dd>Vertical velocity (m/s)</dd> |
| | - <dt>$C_d$</dt> |
| | - <dd>Ballistic coefficient</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Outputs</h3> |
| | - <dl> |
| | - <dt>$\rho$</dt> |
| | - <dd>Air density at altitude (kg/m<sup>3</sup>)</dd> |
| | - <dt>$v_n$</dt> |
| | - <dd>Net horizontal velocity (m/s)</dd> |
| | - <dt>$v_t$</dt> |
| | - <dd>Total speed (m/s)</dd> |
| | - <dt>$D$</dt> |
| | - <dd>Drag force value (N · s/m)</dd> |
| | - <dt>$F_{drag_h}$</dt> |
| | - <dd>Horizontal drag force (N)</dd> |
| | - <dt>$F_{drag_v}$</dt> |
| | - <dd>Vertical drag force (N)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - |
| | - <h2>Acceleration</h2> |
| | - <p> |
| | - Calculates how quickly the rocket increases its velocity, taking both |
| | - drag and gravitational forces into account. |
| | - </p> |
| | - <p class="equation"> |
| | - $$F_{t_v} = -F_{drag_v}$$ |
| | - $$F_{t_h} = \sqrt{F_t^2 - F_{t_v}^2}$$ |
| | - $$a_h = \frac{F_{drag_h}}{m} + \frac{F_{t_h}}{m}$$ |
| | - $$a_v = \frac{F_{drag_v}}{m} + g(\varphi, h) + \frac{F_{t_v}}{m}$$ |
| | - </p> |
| | - <div class="variables"> |
| | - <div class="input"> |
| | - <h3>Inputs</h3> |
| | - <dl> |
| | - <dt>$F_{drag_h}$</dt> |
| | - <dd>Horizontal drag force (N)</dd> |
| | - <dt>$F_{drag_v}$</dt> |
| | - <dd>Vertical drag force (N)</dd> |
| | - <dt>$F_t$</dt> |
| | - <dd>Total thrust force (N)</dd> |
| | - <dt>$m$</dt> |
| | - <dd>Rocket mass (kg)</dd> |
| | - <dt>$g(\varphi, h)$</dt> |
| | - <dd>Gravitational acceleration (m/s<sup>2</sup>)</dd> |
| | - <dt>$\varphi$</dt> |
| | - <dd>Latitude (degrees)</dd> |
| | - <dt>$h$</dt> |
| | - <dd>Altitude (m)</dd> |
| | - </dl> |
| | - </div> |
| | - <div class="output"> |
| | - <h3>Outputs</h3> |
| | - <dl> |
| | - <dt>$F_{t_v}$</dt> |
| | - <dd>Vertical thrust (N)</dd> |
| | - <dt>$F_{t_h}$</dt> |
| | - <dd>Horizontal thrust (N)</dd> |
| | - <dt>$a_h$</dt> |
| | - <dd>Horizontal acceleration (m/s<sup>2</sup>)</dd> |
| | - <dt>$a_v$</dt> |
| | - <dd>Vertical acceleration (m/s<sup>2</sup>)</dd> |
| | - </dl> |
| | - </div> |
| | - </div> |
| | - </xsl:template> |
| | - |
| | - <xsl:template name="custom-scripts"> |
| | - <script |
| | - src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.js" /> |
| | - <script |
| | - src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/auto-render.min.js" /> |
| | - <script> |
| | + href="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css" |
| | + integrity="sha512-fHwaWebuwA7NSF5Qg/af4UeDx9XqUpYpOGgubo3yWu+b2IQR4UeQwbb42Ti7gVAjNtVoI/I9TEoYeu9omwcC6g==" |
| | + crossorigin="anonymous" |
| | + referrerpolicy="no-referrer" /> |
| | + </xsl:template> |
| | + |
| | + <xsl:template match="/root" mode="header"> |
| | + <h1>Orbital Launch Insertion</h1> |
| | + </xsl:template> |
| | + |
| | + <xsl:template match="/root" mode="content"> |
| | + <p> |
| | + Helps determine whether a payload can be inserted into a stable orbit. |
| | + Form field values are explained in the <a href="#equations">Equations</a> |
| | + section, below. |
| | + </p> |
| | + |
| | + <form id="calculator"> |
| | + <button class="submit">Simulate</button> |
| | + |
| | + <fieldset id="environment"> |
| | + <legend>Environment</legend> |
| | + <label for="surface_temperature">Surface temperature (℃)</label> |
| | + <input tabindex="1" |
| | + class="variable" type="number" step="1" min="-80" value="25" |
| | + id="surface_temperature" name="surface_temperature" /> |
| | + |
| | + <label for="relative_humidity">Relative humidity</label> |
| | + <input tabindex="2" |
| | + class="variable" type="number" step="0.01" min="0" value="86.34" |
| | + id="surface_temperature" name="surface_temperature" /> |
| | + </fieldset> |
| | + |
| | + <fieldset id="mission"> |
| | + <legend>Mission</legend> |
| | + <label for="initial_velocity">Initial velocity (Mach)</label> |
| | + <input tabindex="3" |
| | + class="variable" type="number" step="1" min="0" value="8" |
| | + id="initial_velocity" name="initial_velocity" /> |
| | + |
| | + <label for="initial_latitude">Initial latitude (°)</label> |
| | + <input tabindex="4" |
| | + class="variable" type="number" step="any" min="0" value="1.469167" |
| | + id="initial_latitude" name="initial_latitude" /> |
| | + |
| | + <label for="initial_altitude">Initial altitude (m)</label> |
| | + <input tabindex="5" |
| | + class="variable" type="number" step="1" min="0" value="6212" |
| | + id="initial_altitude" name="initial_altitude" /> |
| | + |
| | + <label for="target_altitude">Target altitude (km)</label> |
| | + <input tabindex="6" |
| | + class="variable" type="number" step="1" min="1" value="400" |
| | + id="target_altitude" name="target_altitude" /> |
| | + </fieldset> |
| | + |
| | + <fieldset id="rocket"> |
| | + <legend>Rocket</legend> |
| | + <label for="diameter">Diameter (m)</label> |
| | + <input tabindex="7" class="variable" type="number" |
| | + step="any" min="0" value="0.6" id="diameter" name="diameter" /> |
| | + |
| | + <label for="wet_mass">Wet mass (kg)</label> |
| | + <input tabindex="8" |
| | + class="variable" type="number" step="1" min="1" value="250" |
| | + id="wet_mass" name="wet_mass" |
| | + oninput="this.value = Math.abs(this.value)" /> |
| | + |
| | + <label for="payload">Payload mass (kg)</label> |
| | + <input tabindex="9" |
| | + class="variable" type="number" step="1" min="1" value="25" |
| | + id="payload_mass" name="payload_mass" |
| | + oninput="this.value = Math.abs(this.value)" /> |
| | + |
| | + <label for="drag_coefficient">Drag coefficient</label> |
| | + <input tabindex="10" |
| | + class="variable" type="number" step="any" min="0" value="0.219" |
| | + id="drag_coefficient" name="drag_coefficient" /> |
| | + |
| | + <label for="specific_impulse">Specific impulse (s)</label> |
| | + <input tabindex="11" |
| | + class="variable" type="number" step="1" min="1" value="1700" |
| | + id="specific_impulse" name="specific_impulse" /> |
| | + </fieldset> |
| | + |
| | + <button class="submit">Simulate</button> |
| | + |
| | + <fieldset id="result"> |
| | + <legend>Result</legend> |
| | + <div id="plots"> |
| | + </div> |
| | + </fieldset> |
| | + </form> |
| | + |
| | + <a name="equations" /> |
| | + <h1>Equations</h1> |
| | + <p> |
| | + This section describes equation inputs and outputs. |
| | + </p> |
| | + |
| | + <h2>Cross-section area</h2> |
| | + <p> |
| | + Calculates the ballistic coefficient of friction, which helps |
| | + determine the drag force magnitude experienced by the rocket. |
| | + </p> |
| | + <p class="equation"> |
| | + $$A = \pi (d / 2)^2$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Input</h3> |
| | + <dl> |
| | + <dt>$d$</dt> |
| | + <dd>Rocket diameter (m)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$A$</dt> |
| | + <dd>Rocket's cross-section area (m<sup>2</sup>)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Air pressure</h2> |
| | + <p> |
| | + Calculates the amount of pressure air exerts at a given altitude. |
| | + </p> |
| | + <p class="equation"> |
| | + $$P = P_{sea} \bigg( 1 + \frac{L}{T} h \bigg) ^ {\frac{-g_0 \cdot M}{R \cdot L}}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Input</h3> |
| | + <dl> |
| | + <dt>$P_{sea}$</dt> |
| | + <dd>Sea level pressure (101325 Pa)</dd> |
| | + <dt>$L$</dt> |
| | + <dd>Lapse rate (-0.0065 K/m)</dd> |
| | + <dt>$T$</dt> |
| | + <dd>Temperature (K)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (m)</dd> |
| | + <dt>$g_0$</dt> |
| | + <dd>Gravitational acceleration constant (9.80665 m/s<sup>2</sup>)</dd> |
| | + <dt>$M$</dt> |
| | + <dd>Earth's atmospheric molar mass (0.0289644 kg/mol)</dd> |
| | + <dt>$R$</dt> |
| | + <dd>Universal gas constant (8.31432 N⋅m/mol⋅K)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$P$</dt> |
| | + <dd>Air pressure (Pa)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Tetens equation</h2> |
| | + <p> |
| | + Calculates the saturation vapour pressure of water at a given temperature. |
| | + </p> |
| | + <p class="equation"> |
| | + $$P_v = 0.61078 \cdot e ^ {17.27 T / (T + 237.31)}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$T$</dt> |
| | + <dd>Temperature (℃)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$P_v$</dt> |
| | + <dd>Vapour pressure (Pa)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Air density</h2> |
| | + <p> |
| | + Calculates the density of air at a given altitude, which helps determine |
| | + the drag force due to air experienced by the rocket. |
| | + </p> |
| | + <p class="equation"> |
| | + $$\rho = \left(\frac{P_d}{R_d \cdot T}\right) + \left(\frac{P_v}{R_v \cdot T}\right)$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$P_d$</dt> |
| | + <dd>Partial pressure of dry air (Pa)</dd> |
| | + <dt>$P_v$</dt> |
| | + <dd>Partial pressure of water vapor (Pa)</dd> |
| | + <dt>$T$</dt> |
| | + <dd>Temperature (℃)</dd> |
| | + <dt>$R_d$</dt> |
| | + <dd>Specific gas constant for dry air (287.058 J/(kg⋅K))</dd> |
| | + <dt>$R_v$</dt> |
| | + <dd>Specific gas constant for water vapour (461.495 J/(kg⋅K))</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$\rho$</dt> |
| | + <dd>Air density (kg/m<sup>3</sup>)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Earth effective radius</h2> |
| | + <p> |
| | + Calculates Earth's radius at a given latitude, which helps determine |
| | + the main gravitational force experienced by the rocket. |
| | + </p> |
| | + <p class="equation"> |
| | + $$R_f = \frac{R_e - R_{pole}}{R_e}$$ |
| | + $$R_E = R_e (1 - R_f \cdot sin^2 \varphi)$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$R_e$</dt> |
| | + <dd>Equatorial radius (m)</dd> |
| | + <dt>$R_{pole}$</dt> |
| | + <dd>Polar radius (m)</dd> |
| | + <dt>$\varphi$</dt> |
| | + <dd>Latitude (°)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Outputs</h3> |
| | + <dl> |
| | + <dt>$R_f$</dt> |
| | + <dd>Flattening ratio</dd> |
| | + <dt>$R_E$</dt> |
| | + <dd>Effective radius (m)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Rotational velocity</h2> |
| | + <p> |
| | + Calculates the rotational speed that the rocket gains by being |
| | + launched at a given latitude. |
| | + </p> |
| | + <p class="equation"> |
| | + $$\omega = R_E(\varphi) \frac{2 \pi}{T_s}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$R_E$</dt> |
| | + <dd>Effective radius (m)</dd> |
| | + <dt>$\varphi$</dt> |
| | + <dd>Latitude (°)</dd> |
| | + <dt>$T_s$</dt> |
| | + <dd>Sidereal time (86164.0905 s)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$\omega$</dt> |
| | + <dd>Rotational velocity (m/s)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Orbital velocity</h2> |
| | + <p> |
| | + Calculates the necessary speed the rocket needs to reach to enter a |
| | + stable orbit. |
| | + </p> |
| | + <p class="equation"> |
| | + $$v_{o} = \sqrt{\frac{G}{R_E(\varphi) + h}}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$G$</dt> |
| | + <dd>Standard gravitational parameter (m/s<sup>2</sup>)</dd> |
| | + <dt>$R_E$</dt> |
| | + <dd>Effective radius (m)</dd> |
| | + <dt>$\varphi$</dt> |
| | + <dd>Latitude (°)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (m)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$v_{o}$</dt> |
| | + <dd>Orbital velocity (m/s)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Gravity</h2> |
| | + <p> |
| | + Calculates the gravitational forces experienced by the rocket, which must |
| | + be overcome to reach a stable orbit. |
| | + </p> |
| | + <p class="equation"> |
| | + $$g = g_0 \big[1 + 0.0053024 \cdot sin^2(\varphi) - 0.0000058 \cdot sin^2(2\varphi)\big] + \left(-3.086 \times 10^{-6} h\right)$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$g_0$</dt> |
| | + <dd>Surface gravity (m/s<sup>2</sup>)</dd> |
| | + <dt>$\varphi$</dt> |
| | + <dd>Latitude (°)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (m)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$g$</dt> |
| | + <dd>Gravity (m/s<sup>2</sup>)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Speed of sound</h2> |
| | + <p> |
| | + Calculates the speed of sound given a velocity in Mach units. The |
| | + speed of sound varies depending on altitude and temperature. |
| | + </p> |
| | + <p class="equation"> |
| | + $$cc = cc_s \sqrt{1 + \frac{T_s - \left(\frac{6h}{1000}\right)}{273.15}}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$cc_s$</dt> |
| | + <dd>Surface speed of sound (331.3 m/s)</dd> |
| | + <dt>$T_s$</dt> |
| | + <dd>Surface temperature (℃)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (m)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Output</h3> |
| | + <dl> |
| | + <dt>$cc$</dt> |
| | + <dd>Speed of sound (m/s)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Drag force</h2> |
| | + <p> |
| | + Calculates the amount of drag experienced by the rocket, which must be |
| | + overcome to reach a stable orbit. |
| | + </p> |
| | + <p class="equation"> |
| | + $$\rho = \rho_{air}(h)$$ |
| | + $$v_n = v_h - \omega$$ |
| | + $$v_t = \sqrt{v_n^2 + v_v^2}$$ |
| | + $$D = -\frac{1}{2} \rho \cdot C_d \cdot v_t$$ |
| | + $$\left( F_{drag_h}, F_{drag_v} \right) = \left( D \cdot v_n, D \cdot v_v \right)$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$\rho_{air}$</dt> |
| | + <dd>Air density function (kg/m<sup>3</sup>)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (meters)</dd> |
| | + <dt>$v_h$</dt> |
| | + <dd>Horizontal velocity (m/s)</dd> |
| | + <dt>$\omega$</dt> |
| | + <dd>Rotational velocity (m/s)</dd> |
| | + <dt>$v_v$</dt> |
| | + <dd>Vertical velocity (m/s)</dd> |
| | + <dt>$C_d$</dt> |
| | + <dd>Ballistic coefficient</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Outputs</h3> |
| | + <dl> |
| | + <dt>$\rho$</dt> |
| | + <dd>Air density at altitude (kg/m<sup>3</sup>)</dd> |
| | + <dt>$v_n$</dt> |
| | + <dd>Net horizontal velocity (m/s)</dd> |
| | + <dt>$v_t$</dt> |
| | + <dd>Total speed (m/s)</dd> |
| | + <dt>$D$</dt> |
| | + <dd>Drag force value (N · s/m)</dd> |
| | + <dt>$F_{drag_h}$</dt> |
| | + <dd>Horizontal drag force (N)</dd> |
| | + <dt>$F_{drag_v}$</dt> |
| | + <dd>Vertical drag force (N)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + |
| | + <h2>Acceleration</h2> |
| | + <p> |
| | + Calculates how quickly the rocket increases its velocity, taking both |
| | + drag and gravitational forces into account. |
| | + </p> |
| | + <p class="equation"> |
| | + $$F_{t_v} = -F_{drag_v}$$ |
| | + $$F_{t_h} = \sqrt{F_t^2 - F_{t_v}^2}$$ |
| | + $$a_h = \frac{F_{drag_h}}{m} + \frac{F_{t_h}}{m}$$ |
| | + $$a_v = \frac{F_{drag_v}}{m} + g(\varphi, h) + \frac{F_{t_v}}{m}$$ |
| | + </p> |
| | + <div class="variables"> |
| | + <div class="input"> |
| | + <h3>Inputs</h3> |
| | + <dl> |
| | + <dt>$F_{drag_h}$</dt> |
| | + <dd>Horizontal drag force (N)</dd> |
| | + <dt>$F_{drag_v}$</dt> |
| | + <dd>Vertical drag force (N)</dd> |
| | + <dt>$F_t$</dt> |
| | + <dd>Total thrust force (N)</dd> |
| | + <dt>$m$</dt> |
| | + <dd>Rocket mass (kg)</dd> |
| | + <dt>$g(\varphi, h)$</dt> |
| | + <dd>Gravitational acceleration (m/s<sup>2</sup>)</dd> |
| | + <dt>$\varphi$</dt> |
| | + <dd>Latitude (degrees)</dd> |
| | + <dt>$h$</dt> |
| | + <dd>Altitude (m)</dd> |
| | + </dl> |
| | + </div> |
| | + <div class="output"> |
| | + <h3>Outputs</h3> |
| | + <dl> |
| | + <dt>$F_{t_v}$</dt> |
| | + <dd>Vertical thrust (N)</dd> |
| | + <dt>$F_{t_h}$</dt> |
| | + <dd>Horizontal thrust (N)</dd> |
| | + <dt>$a_h$</dt> |
| | + <dd>Horizontal acceleration (m/s<sup>2</sup>)</dd> |
| | + <dt>$a_v$</dt> |
| | + <dd>Vertical acceleration (m/s<sup>2</sup>)</dd> |
| | + </dl> |
| | + </div> |
| | + </div> |
| | + </xsl:template> |
| | + |
| | + <xsl:template name="custom-scripts"> |
| | + <script |
| | + src="//cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js" |
| | + integrity="sha512-vc58qvvBdrDR4etbxMdlTt4GBQk1qjvyORR2nrsPsFPyrs+/u5c3+1Ct6upOgdZoIl7eq6k3a1UPDSNAQi/32A==" |
| | + crossorigin="anonymous" |
| | + referrerpolicy="no-referrer" |
| | + /> |
| | + <script |
| | + src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.js" |
| | + integrity="sha512-LQNxIMR5rXv7o+b1l8+N1EZMfhG7iFZ9HhnbJkTp4zjNr5Wvst75AqUeFDxeRUa7l5vEDyUiAip//r+EFLLCyA==" |
| | + crossorigin="anonymous" |
| | + referrerpolicy="no-referrer" /> |
| | + <script |
| | + src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/auto-render.min.js" |
| | + integrity="sha512-iWiuBS5nt6r60fCz26Nd0Zqe0nbk1ZTIQbl3Kv7kYsX+yKMUFHzjaH2+AnM6vp2Xs+gNmaBAVWJjSmuPw76Efg==" |
| | + crossorigin="anonymous" |
| | + referrerpolicy="no-referrer" /> |
| | + <script> |
| | renderMathInElement( |
| | document.body, { |