Merge branch 'master' of gitlab.com:MisterBiggs/projects
@ -24,7 +24,7 @@ For Capstone my team was tasked with designing a system capable of moving mining
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE, results = 'hide')
|
||||
library(JuliaCall)
|
||||
#julia_setup(JULIA_HOME = "/opt/julia-1.6.0/bin/")
|
||||
julia_setup(JULIA_HOME = "/opt/julia-1.6.0/bin/")
|
||||
```
|
||||
|
||||
```{julia, code_folding=TRUE}
|
||||
@ -112,7 +112,7 @@ end
|
||||
|
||||
Below in figure 1, the result of the simulation is plotted. Notice the massive error once the tank starts running low. This is because the calculation for pressure has a lot of very uncertain variables. This is primarily due to air being a compressible fluid, making this simulation challenging to do accurately. The thrust being below 0 N might not make intuitive sense, but it's technically possible for the pressure to compress, leaving the inside of the rocket nozzle with a pressure that's actually below atmospheric pressure. The effect would likely last a fraction of a second, but the point stands that this simulation is wildly inaccurate and only meant to get an idea of what an air propulsion system is capable of.
|
||||
|
||||
```{julia, code_folding=TRUE, results='show',layout="l-body-outset", fig.cap = "Air Proplsion Simulation", preview=TRUE}
|
||||
```{julia, code_folding=TRUE, results='show',layout="l-body-outset", fig.cap = "Air Proplsion Simulation", preview=FALSE}
|
||||
|
||||
thrust_values = df.Thrust .|> ustrip .|> value;
|
||||
thrust_uncertainties = df.Thrust .|> ustrip .|> uncertainty;
|
||||
@ -126,7 +126,6 @@ plot(df.Time .|> ustrip, thrust_values,
|
||||
fillalpha=.2,label="Thrust",
|
||||
xlabel="Time (s)",
|
||||
ylabel="Thrust (N)",
|
||||
size = (1200, 800),
|
||||
)
|
||||
```
|
||||
|
||||
@ -139,7 +138,7 @@ f15 = CSV.read("Estes_F15.csv", DataFrame);
|
||||
g8 = CSV.read("AeroTech_G8ST.csv", DataFrame);
|
||||
|
||||
|
||||
plot(air.Time, air.Thrust, label="Air Propulsion", fillalpha=.1, legend=:topleft, size = (1200, 800));
|
||||
plot(air.Time, air.Thrust, label="Air Propulsion", legend=:topleft);
|
||||
|
||||
for (d, l) in [(f10, "F10"), (f15, "F15"), (g8, "G8ST")]
|
||||
plot!(d[!,"Time (s)"], d[!, "Thrust (N)"], label=l);
|
||||
|
@ -110,6 +110,8 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
|
||||
<!--/radix_placeholder_meta_tags-->
|
||||
|
||||
<meta name="citation_reference" content="citation_title=Thermodynamics: An engineering approach;citation_publication_date=2015;citation_publisher=McGraw-Hill Education;citation_author=Yunus A. Çengel;citation_author=Michael A. Boles"/>
|
||||
<meta name="citation_reference" content="citation_title=Rocket propulsion elements;citation_publication_date=2001;citation_publisher=John Wiley & Sons;citation_author=George P. Sutton;citation_author=Oscar Biblarz"/>
|
||||
<!--radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-rmarkdown-metadata">
|
||||
@ -1574,11 +1576,10 @@ Show code
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a> fillalpha<span class="op">=</span><span class="fl">.2</span><span class="op">,</span>label<span class="op">=</span><span class="st">"Thrust"</span><span class="op">,</span></span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a> xlabel<span class="op">=</span><span class="st">"Time (s)"</span><span class="op">,</span> </span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a> ylabel<span class="op">=</span><span class="st">"Thrust (N)"</span><span class="op">,</span></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> size <span class="op">=</span> (<span class="fl">1200</span><span class="op">,</span> <span class="fl">800</span>)<span class="op">,</span></span>
|
||||
<span id="cb6-15"><a href="#cb6-15" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-6"></span>
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-6-J1.png" alt="Air Proplsion Simulation" width="600" data-distill-preview=1 />
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-6-J1.png" alt="Air Proplsion Simulation" width="300" />
|
||||
<p class="caption">
|
||||
Figure 1: Air Proplsion Simulation
|
||||
</p>
|
||||
@ -1596,7 +1597,7 @@ Show code
|
||||
<span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a>g8 <span class="op">=</span> CSV.<span class="cn">read</span>(<span class="st">"AeroTech_G8ST.csv"</span><span class="op">,</span> DataFrame)<span class="op">;</span></span>
|
||||
<span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a>plot(air.<span class="dt">Time</span><span class="op">,</span> air.Thrust<span class="op">,</span> label<span class="op">=</span><span class="st">"Air Propulsion"</span><span class="op">,</span> fillalpha<span class="op">=</span><span class="fl">.1</span><span class="op">,</span> legend<span class="op">=:</span>topleft<span class="op">,</span> size <span class="op">=</span> (<span class="fl">1200</span><span class="op">,</span> <span class="fl">800</span>))<span class="op">;</span></span>
|
||||
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a>plot(air.<span class="dt">Time</span><span class="op">,</span> air.Thrust<span class="op">,</span> label<span class="op">=</span><span class="st">"Air Propulsion"</span><span class="op">,</span> legend<span class="op">=:</span>topleft)<span class="op">;</span></span>
|
||||
<span id="cb7-8"><a href="#cb7-8" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-9"><a href="#cb7-9" aria-hidden="true" tabindex="-1"></a><span class="kw">for</span> (d<span class="op">,</span> l) <span class="kw">in</span> [(f10<span class="op">,</span> <span class="st">"F10"</span>)<span class="op">,</span> (f15<span class="op">,</span> <span class="st">"F15"</span>)<span class="op">,</span> (g8<span class="op">,</span> <span class="st">"G8ST"</span>)]</span>
|
||||
<span id="cb7-10"><a href="#cb7-10" aria-hidden="true" tabindex="-1"></a> plot<span class="op">!</span>(d[<span class="op">!,</span><span class="st">"Time (s)"</span>]<span class="op">,</span> d[<span class="op">!,</span> <span class="st">"Thrust (N)"</span>]<span class="op">,</span> label<span class="op">=</span>l)<span class="op">;</span></span>
|
||||
@ -1607,7 +1608,7 @@ Show code
|
||||
<span id="cb7-15"><a href="#cb7-15" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Thrust (N)"</span>)</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-7"></span>
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="600" data-distill-preview=1 />
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="300" data-distill-preview=1 />
|
||||
<p class="caption">
|
||||
Figure 2: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">(<a href="#ref-thrustcurve" role="doc-biblioref">Coker, n.d.</a>)</span>
|
||||
</p>
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 29 KiB |
19
_posts/2021-04-14-iss-eclipse-determination/citations.bib
Normal file
@ -0,0 +1,19 @@
|
||||
@misc{ariss,
|
||||
title = {{ARISS} {TLE}},
|
||||
shorttitle = {{ARISS}},
|
||||
url = {https://live.ariss.org/tle/},
|
||||
abstract = {This "Two-Line Element" file is published by US Joint Space Operations Center, containing the numerical coefficients of the ISS orbit.},
|
||||
journal = {Amateur Radio on the International Space Station},
|
||||
note = {publisher: ARISS},
|
||||
}
|
||||
|
||||
@book{vallado,
|
||||
address = {Dordrecht},
|
||||
title = {Fundamentals of {Astrodynamics} and {Applications}, 2nd. ed.},
|
||||
isbn = {0-07-066829-9},
|
||||
publisher = {Microcosm, Inc},
|
||||
author = {Vallado, David A.},
|
||||
editor = {Larson, Wiley},
|
||||
collaborator = {McClain, Wayne},
|
||||
year = {1997},
|
||||
}
|
@ -1,13 +1,12 @@
|
||||
---
|
||||
title: "ISS Eclipse Determination"
|
||||
description: |
|
||||
Determining how much sunlight a body is receiving.
|
||||
Determining how much sunlight a body orbiting a planet is receiving.
|
||||
draft: false
|
||||
author:
|
||||
- name: Anson Biggs
|
||||
url: https://ansonbiggs.com
|
||||
repository_url: https://gitlab.com/lander-team/air-prop-simulation
|
||||
date: 04-01-2021
|
||||
date: 05-01-2021
|
||||
fig_width: 6
|
||||
fig_align: "center"
|
||||
output:
|
||||
@ -16,31 +15,32 @@ output:
|
||||
categories:
|
||||
- Julia
|
||||
- Astrodynamics
|
||||
#bibliography: ../../citations.bib
|
||||
bibliography: citations.bib
|
||||
creative_commons: CC BY
|
||||
preview: preview.png
|
||||
---
|
||||
|
||||
Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space with no solar radiation to power the solar panels and keep the spacecraft from freezing.
|
||||
Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space where it will receive no solar radiation to power the solar panels and keep the spacecraft from freezing.
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE, results = 'hide')
|
||||
library(JuliaCall)
|
||||
#julia_setup(JULIA_HOME = "/opt/julia-1.6.1/bin/")
|
||||
julia_setup(installJulia = TRUE)
|
||||
julia_setup(JULIA_HOME = "/opt/julia-1.6.0/bin/")
|
||||
```
|
||||
|
||||
## What is an Eclipse
|
||||
|
||||

|
||||
|
||||
The above image is a simple representation of what an eclipse is. First, you'll notice the Umbra is complete darkness, then the Penumbra, which is a shadow of varying darkness, and then the rest of the orbit is in full sunlight. For this example, I will be using the ISS, which has a very low orbit, so the Penumbra isn't much of a problem. However, you can tell by looking at the diagram that higher altitude orbits would spend more time in the Penumbra.
|
||||
|
||||

|
||||
|
||||
Here is a more detailed view of the eclipse that will make it easier to explain what is going on. There are 2 Position vectors, and 2 radius that need to be known for simple eclipse determination. More advanced cases where the atmosphere of the body your orbiting can significantly affect the Umbra and Penumbra, and other bodies could also potentially block the Sun. However, we will keep it simple for this example since they have minimal effect on the ISS’s orbit. <code style="color:#0b7285">Rsun</code> and <code style="color:#c92a2a">Rbody</code> are the radius of the Sun and Body (In this case Earth), respectively. <code style="color:#5f3dc4">r_sun_body</code> is a vector from the center of the Sun to the center of the target body. For this example I will only be using one vector, but for more rigorous eclipse determination it is important to calculate the ephemeris at least once a day since it does significantly change over the course of a year. The reason that I am ignoring it at the moment is because there is currently no good way to calculate [Ephemerides](https://ssd.jpl.nasa.gov/?ephemerides) in Julia but the package is being worked on so I may revisit this and do a more rigorous analysis in the future. <code style="color:#5c940d">r_body_sc</code> is a position vector from the center of the body being orbited, to the center of our spacecraft.
|
||||
|
||||
## The Code
|
||||
|
||||
```{julia, code_folding=TRUE}
|
||||
```{julia imports, code_folding=TRUE}
|
||||
using Unitful
|
||||
using LinearAlgebra
|
||||
using SatelliteToolbox
|
||||
@ -49,8 +49,9 @@ using Colors
|
||||
theme(:ggplot2)
|
||||
```
|
||||
|
||||
To get the orbit for the ISS, I used a [Two-Line Element](https://en.wikipedia.org/wiki/Two-line_element_set) which is a data format for explaining orbits. The US Joint Space Operations Center makes these widely available, but https://live.ariss.org/tle/ makes the TLE for the ISS way more accessible [@ariss]. The Julia Package [SatelliteToolbox.jl](https://github.com/JuliaSpace/SatelliteToolbox.jl) makes it super easy to turn a TLE into an orbit that can be propagated. Simply putting the TLE in a string and using the `tle` string macro like below, we now have access to the information to start making our ISS orbit.
|
||||
|
||||
```{julia}
|
||||
```{julia ISS, results='show'}
|
||||
ISS = tle"""
|
||||
ISS (ZARYA)
|
||||
1 25544U 98067A 21103.84943184 .00000176 00000-0 11381-4 0 9990
|
||||
@ -58,14 +59,21 @@ ISS (ZARYA)
|
||||
"""
|
||||
```
|
||||
|
||||
```{julia}
|
||||
Now that we have the TLE, we can pass that into SatelliteToolbox's orbit propagator. Before propagating the orbit, we need to have a range of time steps to pass into the propagator. The TLE gives the mean motion, n, which is the revolutions per day, so using that, we can calculate the amount of time required for one orbit, which is all that we're worried about for this analysis. The propagator returns a tuple containing the Orbital elements, a position vector with units meters, and a velocity vector with units meters per second. For this analysis were only worried about the position vector.
|
||||
|
||||
```{julia mean-motion, result='show'}
|
||||
ISS[1].n
|
||||
```
|
||||
|
||||
```{julia orbit-propagation}
|
||||
orbit = init_orbit_propagator(Val(:twobody), ISS[1]);
|
||||
time = 0:0.1:((24 / ISS[1].n) .* 60 * 60);
|
||||
time = 0:0.1:((24 / ISS[1].n) .* 60 * 60); # ISS[1].n gives the mean motion, or orbits per day.
|
||||
o, r, v = propagate!(orbit, time);
|
||||
```
|
||||
|
||||
We just need to use the radii and vectors discussed earlier to determine if the ISS is in the penumbra or umbra. This is a lot of trigonometry and vector math that I won't bore anyone with. However, using the diagrams above and following the code in the sunlight function, you should follow what's happening. For a rigorous discussion, check out [@vallado].
|
||||
|
||||
```{julia}
|
||||
```{julia sunlight-function}
|
||||
function sunlight(Rbody, r_sun_body, r_body_sc)
|
||||
Rsun = 695_700u"km"
|
||||
|
||||
@ -91,14 +99,19 @@ function sunlight(Rbody, r_sun_body, r_body_sc)
|
||||
end
|
||||
```
|
||||
|
||||
Then we can pass all the values we've gathered into the function we just made.
|
||||
|
||||
```{julia}
|
||||
S = r .|> R -> sunlight(6371u"km", [0.5370, 1.2606, 0.5466] .* 1e8u"km", R .* u"m")
|
||||
S = r .|> R -> sunlight(6371u"km", [0.5370, 1.2606, 0.5466] .* 1e8u"km", R .* u"m");
|
||||
```
|
||||
|
||||
## Plotting the Results
|
||||
|
||||
```{julia, code_folding=TRUE, results='show',layout="l-body-outset",fig.cap= "Rocket Motor Data: [@thrustcurve]", preview=TRUE }
|
||||
light_range = range(colorant"black", stop = colorant"yellow", length = 101);
|
||||
The `sunlight` function returns values from 0 to 1, 0 being complete darkness, 1 being complete sunlight, and anything between being the fraction of light being received. Again since the ISS has a very low orbit, the amount of time spent in the penumbra is almost insignificant.
|
||||
|
||||
```{julia sunlight-plot, code_folding=TRUE, results='show',layout="l-body-outset",fig.cap= "ISS Sunlight", preview=TRUE }
|
||||
# Get fancy with the line color.
|
||||
light_range = range(colorant"black", stop = colorant"orange", length = 101);
|
||||
light_colors = [light_range[unique(round(Int, 1 + s * 100))][1] for s in S];
|
||||
|
||||
plot(
|
||||
@ -112,4 +125,26 @@ plot(
|
||||
xlabel!("Time (hr)");
|
||||
ylabel!("Sunlight (%)");
|
||||
title!("ISS Sunlight Over a Day")
|
||||
```
|
||||
```
|
||||
|
||||
Looking at the plot, the vertical transition from 0% to 100% makes it pretty clear that the time in the penumbra is limited. Still, almost counterintuitively, it also looks like the ISS gets more sunlight than it does darkness. So, using the raw sunlight data, we can calculate precisely how much time is spent in each region.
|
||||
|
||||
Time in Sun:
|
||||
|
||||
```{julia sun-time, results='show'}
|
||||
sun = length(S[S.==1])/length(S) * 100
|
||||
```
|
||||
|
||||
Time in Darkness:
|
||||
|
||||
```{julia dark-time, results='show'}
|
||||
umbra = length(S[S.==0])/length(S) * 100
|
||||
```
|
||||
|
||||
Time in Penumbra:
|
||||
|
||||
```{julia penum-time, results='show'}
|
||||
penumbra = 100 - umbra - sun
|
||||
```
|
||||
|
||||
This means that even with the ISS's low orbit, it still gets sunlight ~62% of the time and spends almost no time in the penumbra. This would vary a few percent depending on the time of year, but in a circular orbit like the ISS, the amount of sunlight would remain pretty constant. There are other orbits like a polar orbit, lunar orbit, or highly elliptic earth orbits that can have their time in the sunlight vary widely by the time of year.
|
||||
|
@ -88,36 +88,39 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<!--radix_placeholder_meta_tags-->
|
||||
<title>ISS Eclipse Determination</title>
|
||||
|
||||
<meta property="description" itemprop="description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="description" itemprop="description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
|
||||
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/>
|
||||
|
||||
<!-- https://schema.org/Article -->
|
||||
<meta property="article:published" itemprop="datePublished" content="2021-04-01"/>
|
||||
<meta property="article:created" itemprop="dateCreated" content="2021-04-01"/>
|
||||
<meta property="article:published" itemprop="datePublished" content="2021-05-01"/>
|
||||
<meta property="article:created" itemprop="dateCreated" content="2021-05-01"/>
|
||||
<meta name="article:author" content="Anson Biggs"/>
|
||||
|
||||
<!-- https://developers.facebook.com/docs/sharing/webmasters#markup -->
|
||||
<meta property="og:title" content="ISS Eclipse Determination"/>
|
||||
<meta property="og:type" content="article"/>
|
||||
<meta property="og:description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="og:description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
<meta property="og:locale" content="en_US"/>
|
||||
|
||||
<!-- https://dev.twitter.com/cards/types/summary -->
|
||||
<meta property="twitter:card" content="summary"/>
|
||||
<meta property="twitter:title" content="ISS Eclipse Determination"/>
|
||||
<meta property="twitter:description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="twitter:description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
|
||||
<!--/radix_placeholder_meta_tags-->
|
||||
|
||||
<meta name="citation_reference" content="citation_title=ARISS TLE"/>
|
||||
<meta name="citation_reference" content="citation_title=Fundamentals of Astrodynamics and Applications, 2nd. ed.;citation_publication_date=1997;citation_publisher=Microcosm, Inc;citation_author=David A. Vallado"/>
|
||||
<!--radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-rmarkdown-metadata">
|
||||
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","draft","author","repository_url","date","fig_width","fig_align","output","categories","creative_commons"]}},"value":[{"type":"character","attributes":{},"value":["ISS Eclipse Determination"]},{"type":"character","attributes":{},"value":["Determining how much sunlight a body is receiving.\n"]},{"type":"logical","attributes":{},"value":[false]},{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","url"]}},"value":[{"type":"character","attributes":{},"value":["Anson Biggs"]},{"type":"character","attributes":{},"value":["https://ansonbiggs.com"]}]}]},{"type":"character","attributes":{},"value":["https://gitlab.com/lander-team/air-prop-simulation"]},{"type":"character","attributes":{},"value":["04-01-2021"]},{"type":"integer","attributes":{},"value":[6]},{"type":"character","attributes":{},"value":["center"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["self_contained"]}},"value":[{"type":"logical","attributes":{},"value":[false]}]}]},{"type":"character","attributes":{},"value":["Julia","Astrodynamics"]},{"type":"character","attributes":{},"value":["CC BY"]}]}
|
||||
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","draft","author","date","fig_width","fig_align","output","categories","bibliography","creative_commons","preview"]}},"value":[{"type":"character","attributes":{},"value":["ISS Eclipse Determination"]},{"type":"character","attributes":{},"value":["Determining how much sunlight a body orbiting a planet is receiving.\n"]},{"type":"logical","attributes":{},"value":[false]},{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","url"]}},"value":[{"type":"character","attributes":{},"value":["Anson Biggs"]},{"type":"character","attributes":{},"value":["https://ansonbiggs.com"]}]}]},{"type":"character","attributes":{},"value":["05-01-2021"]},{"type":"integer","attributes":{},"value":[6]},{"type":"character","attributes":{},"value":["center"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["self_contained"]}},"value":[{"type":"logical","attributes":{},"value":[false]}]}]},{"type":"character","attributes":{},"value":["Julia","Astrodynamics"]},{"type":"character","attributes":{},"value":["citations.bib"]},{"type":"character","attributes":{},"value":["CC BY"]},{"type":"character","attributes":{},"value":["preview.png"]}]}
|
||||
</script>
|
||||
<!--/radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-resource-manifest">
|
||||
{"type":"character","attributes":{},"value":["geometry.svg","iss-eclipse-determination_files/anchor-4.2.2/anchor.min.js","iss-eclipse-determination_files/bowser-1.9.3/bowser.min.js","iss-eclipse-determination_files/distill-2.2.21/template.v2.js","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png","iss-eclipse-determination_files/header-attrs-2.7/header-attrs.js","iss-eclipse-determination_files/jquery-1.11.3/jquery.min.js","iss-eclipse-determination_files/popper-2.6.0/popper.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-bundle.umd.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-light-border.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.umd.min.js","iss-eclipse-determination_files/webcomponents-2.0.0/webcomponents.js","vectors_radiuss.svg"]}
|
||||
{"type":"character","attributes":{},"value":["citations.bib","geometry.svg","iss-eclipse-determination_files/anchor-4.2.2/anchor.min.js","iss-eclipse-determination_files/bowser-1.9.3/bowser.min.js","iss-eclipse-determination_files/distill-2.2.21/template.v2.js","iss-eclipse-determination_files/figure-html5/sunlight-plot-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-7-J1.png","iss-eclipse-determination_files/header-attrs-2.7/header-attrs.js","iss-eclipse-determination_files/jquery-1.11.3/jquery.min.js","iss-eclipse-determination_files/popper-2.6.0/popper.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-bundle.umd.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-light-border.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.umd.min.js","iss-eclipse-determination_files/webcomponents-2.0.0/webcomponents.js","preview.png","vectors_radiuss.svg"]}
|
||||
</script>
|
||||
<!--radix_placeholder_navigation_in_header-->
|
||||
<!--/radix_placeholder_navigation_in_header-->
|
||||
@ -1456,7 +1459,7 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<!--radix_placeholder_front_matter-->
|
||||
|
||||
<script id="distill-front-matter" type="text/json">
|
||||
{"title":"ISS Eclipse Determination","description":"Determining how much sunlight a body is receiving.","authors":[{"author":"Anson Biggs","authorURL":"https://ansonbiggs.com","affiliation":" ","affiliationURL":"#","orcidID":""}],"publishedDate":"2021-04-01T00:00:00.000-07:00","citationText":"Biggs, 2021"}
|
||||
{"title":"ISS Eclipse Determination","description":"Determining how much sunlight a body orbiting a planet is receiving.","authors":[{"author":"Anson Biggs","authorURL":"https://ansonbiggs.com","affiliation":" ","affiliationURL":"#","orcidID":""}],"publishedDate":"2021-05-01T00:00:00.000-07:00","citationText":"Biggs, 2021"}
|
||||
</script>
|
||||
|
||||
<!--/radix_placeholder_front_matter-->
|
||||
@ -1473,24 +1476,26 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<div class="dt=tag">Astrodynamics</div>
|
||||
</div>
|
||||
<!--/radix_placeholder_categories-->
|
||||
<p><p>Determining how much sunlight a body is receiving.</p></p>
|
||||
<p><p>Determining how much sunlight a body orbiting a planet is receiving.</p></p>
|
||||
</div>
|
||||
|
||||
<div class="d-byline">
|
||||
Anson Biggs <a href="https://ansonbiggs.com" class="uri">https://ansonbiggs.com</a>
|
||||
|
||||
<br/>04-01-2021
|
||||
<br/>05-01-2021
|
||||
</div>
|
||||
|
||||
<div class="d-article">
|
||||
<p>Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space with no solar radiation to power the solar panels and keep the spacecraft from freezing.</p>
|
||||
<p>Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space where it will receive no solar radiation to power the solar panels and keep the spacecraft from freezing.</p>
|
||||
<h2 id="what-is-an-eclipse">What is an Eclipse</h2>
|
||||
<figure>
|
||||
<img src="geometry.svg" alt="Geometry of an Eclipse" /><figcaption aria-hidden="true">Geometry of an Eclipse</figcaption>
|
||||
</figure>
|
||||
<p>The above image is a simple representation of what an eclipse is. First, you’ll notice the Umbra is complete darkness, then the Penumbra, which is a shadow of varying darkness, and then the rest of the orbit is in full sunlight. For this example, I will be using the ISS, which has a very low orbit, so the Penumbra isn’t much of a problem. However, you can tell by looking at the diagram that higher altitude orbits would spend more time in the Penumbra.</p>
|
||||
<figure>
|
||||
<img src="vectors_radiuss.svg" alt="Body Radius’s and Position Vectors" /><figcaption aria-hidden="true">Body Radius’s and Position Vectors</figcaption>
|
||||
</figure>
|
||||
<p>Here is a more detailed view of the eclipse that will make it easier to explain what is going on. There are 2 Position vectors, and 2 radius that need to be known for simple eclipse determination. More advanced cases where the atmosphere of the body your orbiting can significantly affect the Umbra and Penumbra, and other bodies could also potentially block the Sun. However, we will keep it simple for this example since they have minimal effect on the ISS’s orbit. <code style="color:#0b7285">Rsun</code> and <code style="color:#c92a2a">Rbody</code> are the radius of the Sun and Body (In this case Earth), respectively. <code style="color:#5f3dc4">r_sun_body</code> is a vector from the center of the Sun to the center of the target body. For this example I will only be using one vector, but for more rigorous eclipse determination it is important to calculate the ephemeris at least once a day since it does significantly change over the course of a year. The reason that I am ignoring it at the moment is because there is currently no good way to calculate <a href="https://ssd.jpl.nasa.gov/?ephemerides">Ephemerides</a> in Julia but the package is being worked on so I may revisit this and do a more rigorous analysis in the future. <code style="color:#5c940d">r_body_sc</code> is a position vector from the center of the body being orbited, to the center of our spacecraft.</p>
|
||||
<h2 id="the-code">The Code</h2>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<details>
|
||||
@ -1505,75 +1510,111 @@ Show code
|
||||
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>theme(<span class="op">:</span>ggplot2)</span></code></pre></div>
|
||||
</details>
|
||||
</div>
|
||||
<p>To get the orbit for the ISS, I used a <a href="https://en.wikipedia.org/wiki/Two-line_element_set">Two-Line Element</a> which is a data format for explaining orbits. The US Joint Space Operations Center makes these widely available, but <a href="https://live.ariss.org/tle/" class="uri">https://live.ariss.org/tle/</a> makes the TLE for the ISS way more accessible <span class="citation" data-cites="ariss">(<a href="#ref-ariss" role="doc-biblioref"><span>“<span>ARISS</span> <span>TLE</span>,”</span> n.d.</a>)</span>. The Julia Package <a href="https://github.com/JuliaSpace/SatelliteToolbox.jl">SatelliteToolbox.jl</a> makes it super easy to turn a TLE into an orbit that can be propagated. Simply putting the TLE in a string and using the <code>tle</code> string macro like below, we now have access to the information to start making our ISS orbit.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>ISS <span class="op">=</span> tle<span class="st">"""</span></span>
|
||||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="st">ISS (ZARYA)</span></span>
|
||||
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="st">1 25544U 98067A 21103.84943184 .00000176 00000-0 11381-4 0 9990</span></span>
|
||||
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="st">2 25544 51.6434 300.9481 0002858 223.8443 263.8789 15.48881793278621</span></span>
|
||||
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="st">"""</span></span></code></pre></div>
|
||||
<pre><code>1-element Vector{TLE}:
|
||||
TLE: ISS (ZARYA) (Epoch = 2021-04-13T20:23:10.911)</code></pre>
|
||||
</div>
|
||||
<p>Now that we have the TLE, we can pass that into SatelliteToolbox’s orbit propagator. Before propagating the orbit, we need to have a range of time steps to pass into the propagator. The TLE gives the mean motion, n, which is the revolutions per day, so using that, we can calculate the amount of time required for one orbit, which is all that we’re worried about for this analysis. The propagator returns a tuple containing the Orbital elements, a position vector with units meters, and a velocity vector with units meters per second. For this analysis were only worried about the position vector.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>ISS[<span class="fl">1</span>].n</span></code></pre></div>
|
||||
</div>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a>orbit <span class="op">=</span> init_orbit_propagator(<span class="dt">Val</span>(<span class="op">:</span>twobody)<span class="op">,</span> ISS[<span class="fl">1</span>])<span class="op">;</span></span>
|
||||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a>time <span class="op">=</span> <span class="fl">0</span><span class="op">:</span><span class="fl">0.1</span><span class="op">:</span>((<span class="fl">24</span> <span class="op">/</span> ISS[<span class="fl">1</span>].n) <span class="op">.*</span> <span class="fl">60</span> <span class="op">*</span> <span class="fl">60</span>)<span class="op">;</span></span>
|
||||
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a>o<span class="op">,</span> r<span class="op">,</span> v <span class="op">=</span> propagate<span class="op">!</span>(orbit<span class="op">,</span> time)<span class="op">;</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>orbit <span class="op">=</span> init_orbit_propagator(<span class="dt">Val</span>(<span class="op">:</span>twobody)<span class="op">,</span> ISS[<span class="fl">1</span>])<span class="op">;</span></span>
|
||||
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a>time <span class="op">=</span> <span class="fl">0</span><span class="op">:</span><span class="fl">0.1</span><span class="op">:</span>((<span class="fl">24</span> <span class="op">/</span> ISS[<span class="fl">1</span>].n) <span class="op">.*</span> <span class="fl">60</span> <span class="op">*</span> <span class="fl">60</span>)<span class="op">;</span> <span class="co"># ISS[1].n gives the mean motion, or orbits per day.</span></span>
|
||||
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a>o<span class="op">,</span> r<span class="op">,</span> v <span class="op">=</span> propagate<span class="op">!</span>(orbit<span class="op">,</span> time)<span class="op">;</span></span></code></pre></div>
|
||||
</div>
|
||||
<p>We just need to use the radii and vectors discussed earlier to determine if the ISS is in the penumbra or umbra. This is a lot of trigonometry and vector math that I won’t bore anyone with. However, using the diagrams above and following the code in the sunlight function, you should follow what’s happening. For a rigorous discussion, check out <span class="citation" data-cites="vallado">(<a href="#ref-vallado" role="doc-biblioref">Vallado 1997</a>)</span>.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> sunlight(Rbody<span class="op">,</span> r_sun_body<span class="op">,</span> r_body_sc)</span>
|
||||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> Rsun <span class="op">=</span> <span class="fl">695_700</span>u<span class="st">"km"</span></span>
|
||||
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> hu <span class="op">=</span> Rbody <span class="op">*</span> norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">-</span> Rbody)</span>
|
||||
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a> θe <span class="op">=</span> acos((r_sun_body ⋅ r_body_sc) <span class="op">/</span> (norm(r_sun_body) <span class="op">*</span> norm(r_body_sc)))</span>
|
||||
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a> θu <span class="op">=</span> atan(Rbody <span class="op">/</span> hu)</span>
|
||||
<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a> du <span class="op">=</span> hu <span class="op">*</span> sin(θu) <span class="op">/</span> sin(θe <span class="op">+</span> θu)</span>
|
||||
<span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a> θp <span class="op">=</span> π <span class="op">-</span> atan(norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">+</span> Rbody))</span>
|
||||
<span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a> dp <span class="op">=</span> Rbody <span class="op">*</span> sin(θp) <span class="op">/</span> cos(θe <span class="op">-</span> θp)</span>
|
||||
<span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-14"><a href="#cb4-14" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">1</span></span>
|
||||
<span id="cb4-15"><a href="#cb4-15" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> du)</span>
|
||||
<span id="cb4-16"><a href="#cb4-16" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">0</span></span>
|
||||
<span id="cb4-17"><a href="#cb4-17" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb4-18"><a href="#cb4-18" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> ((du <span class="op"><</span> norm(r_body_sc)) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> dp))</span>
|
||||
<span id="cb4-19"><a href="#cb4-19" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> (norm(r_body_sc .<span class="op">|></span> u<span class="st">"km"</span>) <span class="op">-</span> du) <span class="op">/</span> (dp <span class="op">-</span> du) <span class="op">|></span> ustrip</span>
|
||||
<span id="cb4-20"><a href="#cb4-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb4-21"><a href="#cb4-21" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-22"><a href="#cb4-22" aria-hidden="true" tabindex="-1"></a> <span class="kw">return</span> S</span>
|
||||
<span id="cb4-23"><a href="#cb4-23" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> sunlight(Rbody<span class="op">,</span> r_sun_body<span class="op">,</span> r_body_sc)</span>
|
||||
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a> Rsun <span class="op">=</span> <span class="fl">695_700</span>u<span class="st">"km"</span></span>
|
||||
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a> hu <span class="op">=</span> Rbody <span class="op">*</span> norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">-</span> Rbody)</span>
|
||||
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a> θe <span class="op">=</span> acos((r_sun_body ⋅ r_body_sc) <span class="op">/</span> (norm(r_sun_body) <span class="op">*</span> norm(r_body_sc)))</span>
|
||||
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a> θu <span class="op">=</span> atan(Rbody <span class="op">/</span> hu)</span>
|
||||
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a> du <span class="op">=</span> hu <span class="op">*</span> sin(θu) <span class="op">/</span> sin(θe <span class="op">+</span> θu)</span>
|
||||
<span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a> θp <span class="op">=</span> π <span class="op">-</span> atan(norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">+</span> Rbody))</span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a> dp <span class="op">=</span> Rbody <span class="op">*</span> sin(θp) <span class="op">/</span> cos(θe <span class="op">-</span> θp)</span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">1</span></span>
|
||||
<span id="cb6-15"><a href="#cb6-15" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> du)</span>
|
||||
<span id="cb6-16"><a href="#cb6-16" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">0</span></span>
|
||||
<span id="cb6-17"><a href="#cb6-17" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb6-18"><a href="#cb6-18" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> ((du <span class="op"><</span> norm(r_body_sc)) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> dp))</span>
|
||||
<span id="cb6-19"><a href="#cb6-19" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> (norm(r_body_sc .<span class="op">|></span> u<span class="st">"km"</span>) <span class="op">-</span> du) <span class="op">/</span> (dp <span class="op">-</span> du) <span class="op">|></span> ustrip</span>
|
||||
<span id="cb6-20"><a href="#cb6-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb6-21"><a href="#cb6-21" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-22"><a href="#cb6-22" aria-hidden="true" tabindex="-1"></a> <span class="kw">return</span> S</span>
|
||||
<span id="cb6-23"><a href="#cb6-23" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code></pre></div>
|
||||
</div>
|
||||
<p>Then we can pass all the values we’ve gathered into the function we just made.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>S <span class="op">=</span> r .<span class="op">|></span> R <span class="op">-></span> sunlight(<span class="fl">6371</span>u<span class="st">"km"</span><span class="op">,</span> [<span class="fl">0.5370</span><span class="op">,</span> <span class="fl">1.2606</span><span class="op">,</span> <span class="fl">0.5466</span>] <span class="op">.*</span> <span class="fl">1e8</span>u<span class="st">"km"</span><span class="op">,</span> R <span class="op">.*</span> u<span class="st">"m"</span>)</span></code></pre></div>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>S <span class="op">=</span> r .<span class="op">|></span> R <span class="op">-></span> sunlight(<span class="fl">6371</span>u<span class="st">"km"</span><span class="op">,</span> [<span class="fl">0.5370</span><span class="op">,</span> <span class="fl">1.2606</span><span class="op">,</span> <span class="fl">0.5466</span>] <span class="op">.*</span> <span class="fl">1e8</span>u<span class="st">"km"</span><span class="op">,</span> R <span class="op">.*</span> u<span class="st">"m"</span>)<span class="op">;</span></span></code></pre></div>
|
||||
</div>
|
||||
<h2 id="plotting-the-results">Plotting the Results</h2>
|
||||
<p>The <code>sunlight</code> function returns values from 0 to 1, 0 being complete darkness, 1 being complete sunlight, and anything between being the fraction of light being received. Again since the ISS has a very low orbit, the amount of time spent in the penumbra is almost insignificant.</p>
|
||||
<div class="layout-chunk" data-layout="l-body-outset">
|
||||
<details>
|
||||
<summary>
|
||||
Show code
|
||||
</summary>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>light_range <span class="op">=</span> range(colorant<span class="st">"black"</span><span class="op">,</span> stop <span class="op">=</span> colorant<span class="st">"yellow"</span><span class="op">,</span> length <span class="op">=</span> <span class="fl">101</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a>light_colors <span class="op">=</span> [light_range[unique(round(<span class="dt">Int</span><span class="op">,</span> <span class="fl">1</span> <span class="op">+</span> s <span class="op">*</span> <span class="fl">100</span>))][<span class="fl">1</span>] <span class="kw">for</span> s <span class="kw">in</span> S]<span class="op">;</span></span>
|
||||
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a>plot(</span>
|
||||
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">LinRange</span>(<span class="fl">0</span><span class="op">,</span> <span class="fl">24</span><span class="op">,</span> length(S))<span class="op">,</span></span>
|
||||
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a> S <span class="op">.*</span> <span class="fl">100</span><span class="op">,</span></span>
|
||||
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a> linewidth <span class="op">=</span> <span class="fl">5</span><span class="op">,</span></span>
|
||||
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a> legend <span class="op">=</span> <span class="ex">false</span><span class="op">,</span></span>
|
||||
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a> color <span class="op">=</span> light_colors<span class="op">,</span></span>
|
||||
<span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a>)<span class="op">;</span></span>
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a>xlabel<span class="op">!</span>(<span class="st">"Time (hr)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Sunlight (%)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a>title<span class="op">!</span>(<span class="st">"ISS Sunlight Over a Day"</span>)</span></code></pre></div>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Get fancy with the line color. </span></span>
|
||||
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a>light_range <span class="op">=</span> range(colorant<span class="st">"black"</span><span class="op">,</span> stop <span class="op">=</span> colorant<span class="st">"orange"</span><span class="op">,</span> length <span class="op">=</span> <span class="fl">101</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a>light_colors <span class="op">=</span> [light_range[unique(round(<span class="dt">Int</span><span class="op">,</span> <span class="fl">1</span> <span class="op">+</span> s <span class="op">*</span> <span class="fl">100</span>))][<span class="fl">1</span>] <span class="kw">for</span> s <span class="kw">in</span> S]<span class="op">;</span></span>
|
||||
<span id="cb8-4"><a href="#cb8-4" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a>plot(</span>
|
||||
<span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">LinRange</span>(<span class="fl">0</span><span class="op">,</span> <span class="fl">24</span><span class="op">,</span> length(S))<span class="op">,</span></span>
|
||||
<span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a> S <span class="op">.*</span> <span class="fl">100</span><span class="op">,</span></span>
|
||||
<span id="cb8-8"><a href="#cb8-8" aria-hidden="true" tabindex="-1"></a> linewidth <span class="op">=</span> <span class="fl">5</span><span class="op">,</span></span>
|
||||
<span id="cb8-9"><a href="#cb8-9" aria-hidden="true" tabindex="-1"></a> legend <span class="op">=</span> <span class="ex">false</span><span class="op">,</span></span>
|
||||
<span id="cb8-10"><a href="#cb8-10" aria-hidden="true" tabindex="-1"></a> color <span class="op">=</span> light_colors<span class="op">,</span></span>
|
||||
<span id="cb8-11"><a href="#cb8-11" aria-hidden="true" tabindex="-1"></a>)<span class="op">;</span></span>
|
||||
<span id="cb8-12"><a href="#cb8-12" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb8-13"><a href="#cb8-13" aria-hidden="true" tabindex="-1"></a>xlabel<span class="op">!</span>(<span class="st">"Time (hr)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-14"><a href="#cb8-14" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Sunlight (%)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-15"><a href="#cb8-15" aria-hidden="true" tabindex="-1"></a>title<span class="op">!</span>(<span class="st">"ISS Sunlight Over a Day"</span>)</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-6"></span>
|
||||
<img src="iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="300" data-distill-preview=1 />
|
||||
<div class="figure"><span id="fig:sunlight-plot"></span>
|
||||
<img src="iss-eclipse-determination_files/figure-html5/sunlight-plot-J1.png" alt="ISS Sunlight" width="300" data-distill-preview=1 />
|
||||
<p class="caption">
|
||||
Figure 1: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">[@thrustcurve]</span>
|
||||
Figure 1: ISS Sunlight
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
|
||||
<p>Looking at the plot, the vertical transition from 0% to 100% makes it pretty clear that the time in the penumbra is limited. Still, almost counterintuitively, it also looks like the ISS gets more sunlight than it does darkness. So, using the raw sunlight data, we can calculate precisely how much time is spent in each region.</p>
|
||||
<p>Time in Sun:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb9"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a>sun <span class="op">=</span> length(S[S.<span class="op">==</span><span class="fl">1</span>])<span class="op">/</span>length(S) <span class="op">*</span> <span class="fl">100</span></span></code></pre></div>
|
||||
<pre><code>62.03323593209401</code></pre>
|
||||
</div>
|
||||
<p>Time in Darkness:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a>umbra <span class="op">=</span> length(S[S.<span class="op">==</span><span class="fl">0</span>])<span class="op">/</span>length(S) <span class="op">*</span> <span class="fl">100</span></span></code></pre></div>
|
||||
<pre><code>37.64408511553699</code></pre>
|
||||
</div>
|
||||
<p>Time in Penumbra:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb13"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a>penumbra <span class="op">=</span> <span class="fl">100</span> <span class="op">-</span> umbra <span class="op">-</span> sun</span></code></pre></div>
|
||||
<pre><code>0.322678952369003</code></pre>
|
||||
</div>
|
||||
<p>This means that even with the ISS’s low orbit, it still gets sunlight ~62% of the time and spends almost no time in the penumbra. This would vary a few percent depending on the time of year, but in a circular orbit like the ISS, the amount of sunlight would remain pretty constant. There are other orbits like a polar orbit, lunar orbit, or highly elliptic earth orbits that can have their time in the sunlight vary widely by the time of year.</p>
|
||||
<div class="sourceCode" id="cb15"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
|
||||
<div id="refs" class="references csl-bib-body hanging-indent" role="doc-bibliography">
|
||||
<div id="ref-ariss" class="csl-entry" role="doc-biblioentry">
|
||||
<span>“<span>ARISS</span> <span>TLE</span>.”</span> n.d. <em>Amateur Radio on the International Space Station</em>. <a href="https://live.ariss.org/tle/">https://live.ariss.org/tle/</a>.
|
||||
</div>
|
||||
<div id="ref-vallado" class="csl-entry" role="doc-biblioentry">
|
||||
Vallado, David A. 1997. <em>Fundamentals of <span>Astrodynamics</span> and <span>Applications</span>, 2nd. Ed.</em> Edited by Wiley Larson. Dordrecht: Microcosm, Inc.
|
||||
</div>
|
||||
</div>
|
||||
<!--radix_placeholder_article_footer-->
|
||||
<!--/radix_placeholder_article_footer-->
|
||||
</div>
|
||||
@ -1586,10 +1627,10 @@ Figure 1: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">[@t
|
||||
<!--/radix_placeholder_site_after_body-->
|
||||
<!--radix_placeholder_appendices-->
|
||||
<div class="appendix-bottom">
|
||||
<h3 id="updates-and-corrections">Corrections</h3>
|
||||
<p>If you see mistakes or want to suggest changes, please <a href="https://gitlab.com/lander-team/air-prop-simulation">create an issue</a> on the source repository.</p>
|
||||
<h3 id="references">References</h3>
|
||||
<div id="references-listing"></div>
|
||||
<h3 id="reuse">Reuse</h3>
|
||||
<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Source code is available at <a href="https://gitlab.com/lander-team/air-prop-simulation">https://gitlab.com/lander-team/air-prop-simulation</a>, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
|
||||
<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
|
||||
</div>
|
||||
<!--/radix_placeholder_appendices-->
|
||||
<!--radix_placeholder_navigation_after_body-->
|
||||
|
After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
@ -2213,6 +2213,26 @@ function init_posts_list() {
|
||||
<div class="posts-container posts-with-sidebar posts-apply-limit l-screen-inset">
|
||||
<div class="posts-list">
|
||||
<h1 class="posts-list-caption" data-caption="Anson's Projects">Anson's Projects</h1>
|
||||
<a href="posts/2021-04-14-iss-eclipse-determination/" class="post-preview">
|
||||
<script class="post-metadata" type="text/json">{"categories":["Julia","Astrodynamics"]}</script>
|
||||
<div class="metadata">
|
||||
<div class="publishedDate">May 1, 2021</div>
|
||||
<div class="dt-authors">
|
||||
<div class="dt-author">Anson Biggs</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="thumbnail">
|
||||
<img src="posts/2021-04-14-iss-eclipse-determination/preview.png"/>
|
||||
</div>
|
||||
<div class="description">
|
||||
<h2>ISS Eclipse Determination</h2>
|
||||
<div class="dt-tags">
|
||||
<div class="dt-tag">Julia</div>
|
||||
<div class="dt-tag">Astrodynamics</div>
|
||||
</div>
|
||||
<p>Determining how much sunlight a body orbiting a planet is receiving.</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="posts/2021-04-01-air-propulsion-simulation/" class="post-preview">
|
||||
<script class="post-metadata" type="text/json">{"categories":["Julia","Capstone"]}</script>
|
||||
<div class="metadata">
|
||||
@ -2222,7 +2242,7 @@ function init_posts_list() {
|
||||
</div>
|
||||
</div>
|
||||
<div class="thumbnail">
|
||||
<img/>
|
||||
<img src="posts/2021-04-01-air-propulsion-simulation/air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png"/>
|
||||
</div>
|
||||
<div class="description">
|
||||
<h2>Air Propulsion Simulation</h2>
|
||||
@ -2233,26 +2253,6 @@ function init_posts_list() {
|
||||
<p>Simulating the performance of an air propulsion system as an alternative to solid rocket motors.</p>
|
||||
</div>
|
||||
</a>
|
||||
<a href="posts/2021-04-14-iss-eclipse-determination/" class="post-preview">
|
||||
<script class="post-metadata" type="text/json">{"categories":["Julia","Astrodynamics"]}</script>
|
||||
<div class="metadata">
|
||||
<div class="publishedDate">April 1, 2021</div>
|
||||
<div class="dt-authors">
|
||||
<div class="dt-author">Anson Biggs</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="thumbnail">
|
||||
<img/>
|
||||
</div>
|
||||
<div class="description">
|
||||
<h2>ISS Eclipse Determination</h2>
|
||||
<div class="dt-tags">
|
||||
<div class="dt-tag">Julia</div>
|
||||
<div class="dt-tag">Astrodynamics</div>
|
||||
</div>
|
||||
<p>Determining how much sunlight a body is receiving.</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="posts-sidebar">
|
||||
<div class="sidebar-section categories">
|
||||
|
@ -7,7 +7,18 @@
|
||||
<description>Anson's Projects
|
||||
</description>
|
||||
<generator>Distill</generator>
|
||||
<lastBuildDate>Thu, 01 Apr 2021 00:00:00 +0000</lastBuildDate>
|
||||
<lastBuildDate>Sat, 01 May 2021 00:00:00 +0000</lastBuildDate>
|
||||
<item>
|
||||
<title>ISS Eclipse Determination</title>
|
||||
<dc:creator>Anson Biggs</dc:creator>
|
||||
<link>https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination</link>
|
||||
<description>Determining how much sunlight a body orbiting a planet is receiving.</description>
|
||||
<category>Julia</category>
|
||||
<category>Astrodynamics</category>
|
||||
<guid>https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination</guid>
|
||||
<pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
|
||||
<media:content url="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/preview.png" medium="image" type="image/png" width="1292" height="703"/>
|
||||
</item>
|
||||
<item>
|
||||
<title>Air Propulsion Simulation</title>
|
||||
<dc:creator>Anson Biggs</dc:creator>
|
||||
@ -17,16 +28,7 @@
|
||||
<category>Capstone</category>
|
||||
<guid>https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation</guid>
|
||||
<pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
|
||||
</item>
|
||||
<item>
|
||||
<title>ISS Eclipse Determination</title>
|
||||
<dc:creator>Anson Biggs</dc:creator>
|
||||
<link>https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination</link>
|
||||
<description>Determining how much sunlight a body is receiving.</description>
|
||||
<category>Julia</category>
|
||||
<category>Astrodynamics</category>
|
||||
<guid>https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination</guid>
|
||||
<pubDate>Thu, 01 Apr 2021 00:00:00 +0000</pubDate>
|
||||
<media:content url="https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png" medium="image" type="image/png" width="600" height="400"/>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 29 KiB |
@ -103,14 +103,20 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<meta property="og:type" content="article"/>
|
||||
<meta property="og:description" content="Simulating the performance of an air propulsion system as an alternative to solid rocket motors."/>
|
||||
<meta property="og:url" content="https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/"/>
|
||||
<meta property="og:image" content="https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png"/>
|
||||
<meta property="og:image:width" content="600"/>
|
||||
<meta property="og:image:height" content="400"/>
|
||||
<meta property="og:locale" content="en_US"/>
|
||||
<meta property="og:site_name" content="Anson's Projects"/>
|
||||
|
||||
<!-- https://dev.twitter.com/cards/types/summary -->
|
||||
<meta property="twitter:card" content="summary"/>
|
||||
<meta property="twitter:card" content="summary_large_image"/>
|
||||
<meta property="twitter:title" content="Anson's Projects: Air Propulsion Simulation"/>
|
||||
<meta property="twitter:description" content="Simulating the performance of an air propulsion system as an alternative to solid rocket motors."/>
|
||||
<meta property="twitter:url" content="https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/"/>
|
||||
<meta property="twitter:image" content="https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png"/>
|
||||
<meta property="twitter:image:width" content="600"/>
|
||||
<meta property="twitter:image:height" content="400"/>
|
||||
|
||||
<!-- https://scholar.google.com/intl/en/scholar/inclusion.html#indexing -->
|
||||
<meta name="citation_title" content="Anson's Projects: Air Propulsion Simulation"/>
|
||||
@ -121,6 +127,8 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<meta name="citation_author" content="Anson Biggs"/>
|
||||
<!--/radix_placeholder_meta_tags-->
|
||||
|
||||
<meta name="citation_reference" content="citation_title=Thermodynamics: An engineering approach;citation_publication_date=2015;citation_publisher=McGraw-Hill Education;citation_author=Yunus A. Çengel;citation_author=Michael A. Boles"/>
|
||||
<meta name="citation_reference" content="citation_title=Rocket propulsion elements;citation_publication_date=2001;citation_publisher=John Wiley & Sons;citation_author=George P. Sutton;citation_author=Oscar Biblarz"/>
|
||||
<!--radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-rmarkdown-metadata">
|
||||
@ -2210,11 +2218,10 @@ Show code
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a> fillalpha<span class="op">=</span><span class="fl">.2</span><span class="op">,</span>label<span class="op">=</span><span class="st">"Thrust"</span><span class="op">,</span></span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a> xlabel<span class="op">=</span><span class="st">"Time (s)"</span><span class="op">,</span> </span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a> ylabel<span class="op">=</span><span class="st">"Thrust (N)"</span><span class="op">,</span></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> size <span class="op">=</span> (<span class="fl">1200</span><span class="op">,</span> <span class="fl">800</span>)<span class="op">,</span></span>
|
||||
<span id="cb6-15"><a href="#cb6-15" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> )</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-6"></span>
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-6-J1.png" alt="Air Proplsion Simulation" width="600" data-distill-preview=1 />
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-6-J1.png" alt="Air Proplsion Simulation" width="300" />
|
||||
<p class="caption">
|
||||
Figure 1: Air Proplsion Simulation
|
||||
</p>
|
||||
@ -2232,7 +2239,7 @@ Show code
|
||||
<span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a>g8 <span class="op">=</span> CSV.<span class="cn">read</span>(<span class="st">"AeroTech_G8ST.csv"</span><span class="op">,</span> DataFrame)<span class="op">;</span></span>
|
||||
<span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a>plot(air.<span class="dt">Time</span><span class="op">,</span> air.Thrust<span class="op">,</span> label<span class="op">=</span><span class="st">"Air Propulsion"</span><span class="op">,</span> fillalpha<span class="op">=</span><span class="fl">.1</span><span class="op">,</span> legend<span class="op">=:</span>topleft<span class="op">,</span> size <span class="op">=</span> (<span class="fl">1200</span><span class="op">,</span> <span class="fl">800</span>))<span class="op">;</span></span>
|
||||
<span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a>plot(air.<span class="dt">Time</span><span class="op">,</span> air.Thrust<span class="op">,</span> label<span class="op">=</span><span class="st">"Air Propulsion"</span><span class="op">,</span> legend<span class="op">=:</span>topleft)<span class="op">;</span></span>
|
||||
<span id="cb7-8"><a href="#cb7-8" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb7-9"><a href="#cb7-9" aria-hidden="true" tabindex="-1"></a><span class="kw">for</span> (d<span class="op">,</span> l) <span class="kw">in</span> [(f10<span class="op">,</span> <span class="st">"F10"</span>)<span class="op">,</span> (f15<span class="op">,</span> <span class="st">"F15"</span>)<span class="op">,</span> (g8<span class="op">,</span> <span class="st">"G8ST"</span>)]</span>
|
||||
<span id="cb7-10"><a href="#cb7-10" aria-hidden="true" tabindex="-1"></a> plot<span class="op">!</span>(d[<span class="op">!,</span><span class="st">"Time (s)"</span>]<span class="op">,</span> d[<span class="op">!,</span> <span class="st">"Thrust (N)"</span>]<span class="op">,</span> label<span class="op">=</span>l)<span class="op">;</span></span>
|
||||
@ -2243,7 +2250,7 @@ Show code
|
||||
<span id="cb7-15"><a href="#cb7-15" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Thrust (N)"</span>)</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-7"></span>
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="600" data-distill-preview=1 />
|
||||
<img src="air-propulsion-simulation_files/figure-html5/unnamed-chunk-7-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="300" data-distill-preview=1 />
|
||||
<p class="caption">
|
||||
Figure 2: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">(<a href="#ref-thrustcurve" role="doc-biblioref">Coker, n.d.</a>)</span>
|
||||
</p>
|
||||
|
@ -0,0 +1,19 @@
|
||||
@misc{ariss,
|
||||
title = {{ARISS} {TLE}},
|
||||
shorttitle = {{ARISS}},
|
||||
url = {https://live.ariss.org/tle/},
|
||||
abstract = {This "Two-Line Element" file is published by US Joint Space Operations Center, containing the numerical coefficients of the ISS orbit.},
|
||||
journal = {Amateur Radio on the International Space Station},
|
||||
note = {publisher: ARISS},
|
||||
}
|
||||
|
||||
@book{vallado,
|
||||
address = {Dordrecht},
|
||||
title = {Fundamentals of {Astrodynamics} and {Applications}, 2nd. ed.},
|
||||
isbn = {0-07-066829-9},
|
||||
publisher = {Microcosm, Inc},
|
||||
author = {Vallado, David A.},
|
||||
editor = {Larson, Wiley},
|
||||
collaborator = {McClain, Wayne},
|
||||
year = {1997},
|
||||
}
|
@ -88,47 +88,56 @@ code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
|
||||
<!--radix_placeholder_meta_tags-->
|
||||
<title>Anson's Projects: ISS Eclipse Determination</title>
|
||||
|
||||
<meta property="description" itemprop="description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="description" itemprop="description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
|
||||
<link rel="canonical" href="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"/>
|
||||
<link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/>
|
||||
|
||||
<!-- https://schema.org/Article -->
|
||||
<meta property="article:published" itemprop="datePublished" content="2021-04-01"/>
|
||||
<meta property="article:created" itemprop="dateCreated" content="2021-04-01"/>
|
||||
<meta property="article:published" itemprop="datePublished" content="2021-05-01"/>
|
||||
<meta property="article:created" itemprop="dateCreated" content="2021-05-01"/>
|
||||
<meta name="article:author" content="Anson Biggs"/>
|
||||
|
||||
<!-- https://developers.facebook.com/docs/sharing/webmasters#markup -->
|
||||
<meta property="og:title" content="Anson's Projects: ISS Eclipse Determination"/>
|
||||
<meta property="og:type" content="article"/>
|
||||
<meta property="og:description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="og:description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
<meta property="og:url" content="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"/>
|
||||
<meta property="og:image" content="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/preview.png"/>
|
||||
<meta property="og:image:width" content="1292"/>
|
||||
<meta property="og:image:height" content="703"/>
|
||||
<meta property="og:locale" content="en_US"/>
|
||||
<meta property="og:site_name" content="Anson's Projects"/>
|
||||
|
||||
<!-- https://dev.twitter.com/cards/types/summary -->
|
||||
<meta property="twitter:card" content="summary"/>
|
||||
<meta property="twitter:card" content="summary_large_image"/>
|
||||
<meta property="twitter:title" content="Anson's Projects: ISS Eclipse Determination"/>
|
||||
<meta property="twitter:description" content="Determining how much sunlight a body is receiving."/>
|
||||
<meta property="twitter:description" content="Determining how much sunlight a body orbiting a planet is receiving."/>
|
||||
<meta property="twitter:url" content="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"/>
|
||||
<meta property="twitter:image" content="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/preview.png"/>
|
||||
<meta property="twitter:image:width" content="1292"/>
|
||||
<meta property="twitter:image:height" content="703"/>
|
||||
|
||||
<!-- https://scholar.google.com/intl/en/scholar/inclusion.html#indexing -->
|
||||
<meta name="citation_title" content="Anson's Projects: ISS Eclipse Determination"/>
|
||||
<meta name="citation_fulltext_html_url" content="https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"/>
|
||||
<meta name="citation_fulltext_world_readable" content=""/>
|
||||
<meta name="citation_online_date" content="2021/04/01"/>
|
||||
<meta name="citation_publication_date" content="2021/04/01"/>
|
||||
<meta name="citation_online_date" content="2021/05/01"/>
|
||||
<meta name="citation_publication_date" content="2021/05/01"/>
|
||||
<meta name="citation_author" content="Anson Biggs"/>
|
||||
<!--/radix_placeholder_meta_tags-->
|
||||
|
||||
<meta name="citation_reference" content="citation_title=ARISS TLE"/>
|
||||
<meta name="citation_reference" content="citation_title=Fundamentals of Astrodynamics and Applications, 2nd. ed.;citation_publication_date=1997;citation_publisher=Microcosm, Inc;citation_author=David A. Vallado"/>
|
||||
<!--radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-rmarkdown-metadata">
|
||||
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","draft","author","repository_url","date","fig_width","fig_align","output","categories","creative_commons","citation_url","canonical_url"]}},"value":[{"type":"character","attributes":{},"value":["ISS Eclipse Determination"]},{"type":"character","attributes":{},"value":["Determining how much sunlight a body is receiving."]},{"type":"logical","attributes":{},"value":[false]},{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","url"]}},"value":[{"type":"character","attributes":{},"value":["Anson Biggs"]},{"type":"character","attributes":{},"value":["https://ansonbiggs.com"]}]}]},{"type":"character","attributes":{},"value":["https://gitlab.com/lander-team/air-prop-simulation"]},{"type":"character","attributes":{},"value":["04-01-2021"]},{"type":"integer","attributes":{},"value":[6]},{"type":"character","attributes":{},"value":["center"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["self_contained"]}},"value":[{"type":"logical","attributes":{},"value":[false]}]}]},{"type":"character","attributes":{},"value":["Julia","Astrodynamics"]},{"type":"character","attributes":{},"value":["CC BY"]},{"type":"character","attributes":{},"value":["https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"]},{"type":"character","attributes":{},"value":["https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"]}]}
|
||||
{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","draft","author","date","fig_width","fig_align","output","categories","bibliography","creative_commons","preview","citation_url","canonical_url"]}},"value":[{"type":"character","attributes":{},"value":["ISS Eclipse Determination"]},{"type":"character","attributes":{},"value":["Determining how much sunlight a body orbiting a planet is receiving."]},{"type":"logical","attributes":{},"value":[false]},{"type":"list","attributes":{},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["name","url"]}},"value":[{"type":"character","attributes":{},"value":["Anson Biggs"]},{"type":"character","attributes":{},"value":["https://ansonbiggs.com"]}]}]},{"type":"character","attributes":{},"value":["05-01-2021"]},{"type":"integer","attributes":{},"value":[6]},{"type":"character","attributes":{},"value":["center"]},{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["distill::distill_article"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["self_contained"]}},"value":[{"type":"logical","attributes":{},"value":[false]}]}]},{"type":"character","attributes":{},"value":["Julia","Astrodynamics"]},{"type":"character","attributes":{},"value":["citations.bib"]},{"type":"character","attributes":{},"value":["CC BY"]},{"type":"character","attributes":{},"value":["preview.png"]},{"type":"character","attributes":{},"value":["https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"]},{"type":"character","attributes":{},"value":["https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/"]}]}
|
||||
</script>
|
||||
<!--/radix_placeholder_rmarkdown_metadata-->
|
||||
|
||||
<script type="text/json" id="radix-resource-manifest">
|
||||
{"type":"character","attributes":{},"value":["geometry.svg","iss-eclipse-determination_files/anchor-4.2.2/anchor.min.js","iss-eclipse-determination_files/bowser-1.9.3/bowser.min.js","iss-eclipse-determination_files/distill-2.2.21/template.v2.js","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png","iss-eclipse-determination_files/header-attrs-2.7/header-attrs.js","iss-eclipse-determination_files/jquery-1.11.3/jquery.min.js","iss-eclipse-determination_files/popper-2.6.0/popper.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-bundle.umd.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-light-border.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.umd.min.js","iss-eclipse-determination_files/webcomponents-2.0.0/webcomponents.js","vectors_radiuss.svg"]}
|
||||
{"type":"character","attributes":{},"value":["citations.bib","geometry.svg","iss-eclipse-determination_files/anchor-4.2.2/anchor.min.js","iss-eclipse-determination_files/bowser-1.9.3/bowser.min.js","iss-eclipse-determination_files/distill-2.2.21/template.v2.js","iss-eclipse-determination_files/figure-html5/sunlight-plot-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-2-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J2.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J3.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-4-J4.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png","iss-eclipse-determination_files/figure-html5/unnamed-chunk-7-J1.png","iss-eclipse-determination_files/header-attrs-2.7/header-attrs.js","iss-eclipse-determination_files/jquery-1.11.3/jquery.min.js","iss-eclipse-determination_files/popper-2.6.0/popper.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-bundle.umd.min.js","iss-eclipse-determination_files/tippy-6.2.7/tippy-light-border.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.css","iss-eclipse-determination_files/tippy-6.2.7/tippy.umd.min.js","iss-eclipse-determination_files/webcomponents-2.0.0/webcomponents.js","preview.png","vectors_radiuss.svg"]}
|
||||
</script>
|
||||
<!--radix_placeholder_navigation_in_header-->
|
||||
<meta name="distill:offset" content="../.."/>
|
||||
@ -2073,7 +2082,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
<!--radix_placeholder_front_matter-->
|
||||
|
||||
<script id="distill-front-matter" type="text/json">
|
||||
{"title":"ISS Eclipse Determination","description":"Determining how much sunlight a body is receiving.","authors":[{"author":"Anson Biggs","authorURL":"https://ansonbiggs.com","affiliation":" ","affiliationURL":"#","orcidID":""}],"publishedDate":"2021-04-01T00:00:00.000-07:00","citationText":"Biggs, 2021"}
|
||||
{"title":"ISS Eclipse Determination","description":"Determining how much sunlight a body orbiting a planet is receiving.","authors":[{"author":"Anson Biggs","authorURL":"https://ansonbiggs.com","affiliation":" ","affiliationURL":"#","orcidID":""}],"publishedDate":"2021-05-01T00:00:00.000-07:00","citationText":"Biggs, 2021"}
|
||||
</script>
|
||||
|
||||
<!--/radix_placeholder_front_matter-->
|
||||
@ -2109,24 +2118,26 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
<a href="../../index.html#category:Astrodynamics" class="dt-tag">Astrodynamics</a>
|
||||
</div>
|
||||
<!--/radix_placeholder_categories-->
|
||||
<p><p>Determining how much sunlight a body is receiving.</p></p>
|
||||
<p><p>Determining how much sunlight a body orbiting a planet is receiving.</p></p>
|
||||
</div>
|
||||
|
||||
<div class="d-byline">
|
||||
Anson Biggs <a href="https://ansonbiggs.com" class="uri">https://ansonbiggs.com</a>
|
||||
|
||||
<br/>04-01-2021
|
||||
<br/>05-01-2021
|
||||
</div>
|
||||
|
||||
<div class="d-article">
|
||||
<p>Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space with no solar radiation to power the solar panels and keep the spacecraft from freezing.</p>
|
||||
<p>Determining the eclipses a satellite will encounter is a major driving factor when designing a mission in space. Thermal and power budgets have to be made with the fact that a satellite will periodically be in the complete darkness of space where it will receive no solar radiation to power the solar panels and keep the spacecraft from freezing.</p>
|
||||
<h2 id="what-is-an-eclipse">What is an Eclipse</h2>
|
||||
<figure>
|
||||
<img src="geometry.svg" alt="Geometry of an Eclipse" /><figcaption aria-hidden="true">Geometry of an Eclipse</figcaption>
|
||||
</figure>
|
||||
<p>The above image is a simple representation of what an eclipse is. First, you’ll notice the Umbra is complete darkness, then the Penumbra, which is a shadow of varying darkness, and then the rest of the orbit is in full sunlight. For this example, I will be using the ISS, which has a very low orbit, so the Penumbra isn’t much of a problem. However, you can tell by looking at the diagram that higher altitude orbits would spend more time in the Penumbra.</p>
|
||||
<figure>
|
||||
<img src="vectors_radiuss.svg" alt="Body Radius’s and Position Vectors" /><figcaption aria-hidden="true">Body Radius’s and Position Vectors</figcaption>
|
||||
</figure>
|
||||
<p>Here is a more detailed view of the eclipse that will make it easier to explain what is going on. There are 2 Position vectors, and 2 radius that need to be known for simple eclipse determination. More advanced cases where the atmosphere of the body your orbiting can significantly affect the Umbra and Penumbra, and other bodies could also potentially block the Sun. However, we will keep it simple for this example since they have minimal effect on the ISS’s orbit. <code style="color:#0b7285">Rsun</code> and <code style="color:#c92a2a">Rbody</code> are the radius of the Sun and Body (In this case Earth), respectively. <code style="color:#5f3dc4">r_sun_body</code> is a vector from the center of the Sun to the center of the target body. For this example I will only be using one vector, but for more rigorous eclipse determination it is important to calculate the ephemeris at least once a day since it does significantly change over the course of a year. The reason that I am ignoring it at the moment is because there is currently no good way to calculate <a href="https://ssd.jpl.nasa.gov/?ephemerides">Ephemerides</a> in Julia but the package is being worked on so I may revisit this and do a more rigorous analysis in the future. <code style="color:#5c940d">r_body_sc</code> is a position vector from the center of the body being orbited, to the center of our spacecraft.</p>
|
||||
<h2 id="the-code">The Code</h2>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<details>
|
||||
@ -2141,75 +2152,111 @@ Show code
|
||||
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>theme(<span class="op">:</span>ggplot2)</span></code></pre></div>
|
||||
</details>
|
||||
</div>
|
||||
<p>To get the orbit for the ISS, I used a <a href="https://en.wikipedia.org/wiki/Two-line_element_set">Two-Line Element</a> which is a data format for explaining orbits. The US Joint Space Operations Center makes these widely available, but <a href="https://live.ariss.org/tle/" class="uri">https://live.ariss.org/tle/</a> makes the TLE for the ISS way more accessible <span class="citation" data-cites="ariss">(<a href="#ref-ariss" role="doc-biblioref"><span>“<span>ARISS</span> <span>TLE</span>,”</span> n.d.</a>)</span>. The Julia Package <a href="https://github.com/JuliaSpace/SatelliteToolbox.jl">SatelliteToolbox.jl</a> makes it super easy to turn a TLE into an orbit that can be propagated. Simply putting the TLE in a string and using the <code>tle</code> string macro like below, we now have access to the information to start making our ISS orbit.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>ISS <span class="op">=</span> tle<span class="st">"""</span></span>
|
||||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="st">ISS (ZARYA)</span></span>
|
||||
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="st">1 25544U 98067A 21103.84943184 .00000176 00000-0 11381-4 0 9990</span></span>
|
||||
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="st">2 25544 51.6434 300.9481 0002858 223.8443 263.8789 15.48881793278621</span></span>
|
||||
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="st">"""</span></span></code></pre></div>
|
||||
<pre><code>1-element Vector{TLE}:
|
||||
TLE: ISS (ZARYA) (Epoch = 2021-04-13T20:23:10.911)</code></pre>
|
||||
</div>
|
||||
<p>Now that we have the TLE, we can pass that into SatelliteToolbox’s orbit propagator. Before propagating the orbit, we need to have a range of time steps to pass into the propagator. The TLE gives the mean motion, n, which is the revolutions per day, so using that, we can calculate the amount of time required for one orbit, which is all that we’re worried about for this analysis. The propagator returns a tuple containing the Orbital elements, a position vector with units meters, and a velocity vector with units meters per second. For this analysis were only worried about the position vector.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>ISS[<span class="fl">1</span>].n</span></code></pre></div>
|
||||
</div>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a>orbit <span class="op">=</span> init_orbit_propagator(<span class="dt">Val</span>(<span class="op">:</span>twobody)<span class="op">,</span> ISS[<span class="fl">1</span>])<span class="op">;</span></span>
|
||||
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a>time <span class="op">=</span> <span class="fl">0</span><span class="op">:</span><span class="fl">0.1</span><span class="op">:</span>((<span class="fl">24</span> <span class="op">/</span> ISS[<span class="fl">1</span>].n) <span class="op">.*</span> <span class="fl">60</span> <span class="op">*</span> <span class="fl">60</span>)<span class="op">;</span></span>
|
||||
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a>o<span class="op">,</span> r<span class="op">,</span> v <span class="op">=</span> propagate<span class="op">!</span>(orbit<span class="op">,</span> time)<span class="op">;</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>orbit <span class="op">=</span> init_orbit_propagator(<span class="dt">Val</span>(<span class="op">:</span>twobody)<span class="op">,</span> ISS[<span class="fl">1</span>])<span class="op">;</span></span>
|
||||
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a>time <span class="op">=</span> <span class="fl">0</span><span class="op">:</span><span class="fl">0.1</span><span class="op">:</span>((<span class="fl">24</span> <span class="op">/</span> ISS[<span class="fl">1</span>].n) <span class="op">.*</span> <span class="fl">60</span> <span class="op">*</span> <span class="fl">60</span>)<span class="op">;</span> <span class="co"># ISS[1].n gives the mean motion, or orbits per day.</span></span>
|
||||
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a>o<span class="op">,</span> r<span class="op">,</span> v <span class="op">=</span> propagate<span class="op">!</span>(orbit<span class="op">,</span> time)<span class="op">;</span></span></code></pre></div>
|
||||
</div>
|
||||
<p>We just need to use the radii and vectors discussed earlier to determine if the ISS is in the penumbra or umbra. This is a lot of trigonometry and vector math that I won’t bore anyone with. However, using the diagrams above and following the code in the sunlight function, you should follow what’s happening. For a rigorous discussion, check out <span class="citation" data-cites="vallado">(<a href="#ref-vallado" role="doc-biblioref">Vallado 1997</a>)</span>.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> sunlight(Rbody<span class="op">,</span> r_sun_body<span class="op">,</span> r_body_sc)</span>
|
||||
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> Rsun <span class="op">=</span> <span class="fl">695_700</span>u<span class="st">"km"</span></span>
|
||||
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> hu <span class="op">=</span> Rbody <span class="op">*</span> norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">-</span> Rbody)</span>
|
||||
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a> θe <span class="op">=</span> acos((r_sun_body ⋅ r_body_sc) <span class="op">/</span> (norm(r_sun_body) <span class="op">*</span> norm(r_body_sc)))</span>
|
||||
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a> θu <span class="op">=</span> atan(Rbody <span class="op">/</span> hu)</span>
|
||||
<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a> du <span class="op">=</span> hu <span class="op">*</span> sin(θu) <span class="op">/</span> sin(θe <span class="op">+</span> θu)</span>
|
||||
<span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a> θp <span class="op">=</span> π <span class="op">-</span> atan(norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">+</span> Rbody))</span>
|
||||
<span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a> dp <span class="op">=</span> Rbody <span class="op">*</span> sin(θp) <span class="op">/</span> cos(θe <span class="op">-</span> θp)</span>
|
||||
<span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-14"><a href="#cb4-14" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">1</span></span>
|
||||
<span id="cb4-15"><a href="#cb4-15" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> du)</span>
|
||||
<span id="cb4-16"><a href="#cb4-16" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">0</span></span>
|
||||
<span id="cb4-17"><a href="#cb4-17" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb4-18"><a href="#cb4-18" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> ((du <span class="op"><</span> norm(r_body_sc)) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> dp))</span>
|
||||
<span id="cb4-19"><a href="#cb4-19" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> (norm(r_body_sc .<span class="op">|></span> u<span class="st">"km"</span>) <span class="op">-</span> du) <span class="op">/</span> (dp <span class="op">-</span> du) <span class="op">|></span> ustrip</span>
|
||||
<span id="cb4-20"><a href="#cb4-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb4-21"><a href="#cb4-21" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb4-22"><a href="#cb4-22" aria-hidden="true" tabindex="-1"></a> <span class="kw">return</span> S</span>
|
||||
<span id="cb4-23"><a href="#cb4-23" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code></pre></div>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> sunlight(Rbody<span class="op">,</span> r_sun_body<span class="op">,</span> r_body_sc)</span>
|
||||
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a> Rsun <span class="op">=</span> <span class="fl">695_700</span>u<span class="st">"km"</span></span>
|
||||
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a> hu <span class="op">=</span> Rbody <span class="op">*</span> norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">-</span> Rbody)</span>
|
||||
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a> </span>
|
||||
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a> θe <span class="op">=</span> acos((r_sun_body ⋅ r_body_sc) <span class="op">/</span> (norm(r_sun_body) <span class="op">*</span> norm(r_body_sc)))</span>
|
||||
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a> θu <span class="op">=</span> atan(Rbody <span class="op">/</span> hu)</span>
|
||||
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a> du <span class="op">=</span> hu <span class="op">*</span> sin(θu) <span class="op">/</span> sin(θe <span class="op">+</span> θu)</span>
|
||||
<span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a> θp <span class="op">=</span> π <span class="op">-</span> atan(norm(r_sun_body) <span class="op">/</span> (Rsun <span class="op">+</span> Rbody))</span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a> dp <span class="op">=</span> Rbody <span class="op">*</span> sin(θp) <span class="op">/</span> cos(θe <span class="op">-</span> θp)</span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">1</span></span>
|
||||
<span id="cb6-15"><a href="#cb6-15" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> du)</span>
|
||||
<span id="cb6-16"><a href="#cb6-16" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> <span class="fl">0</span></span>
|
||||
<span id="cb6-17"><a href="#cb6-17" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb6-18"><a href="#cb6-18" aria-hidden="true" tabindex="-1"></a> <span class="kw">if</span> (θe <span class="op"><</span> π <span class="op">/</span> <span class="fl">2</span>) <span class="op">&&</span> ((du <span class="op"><</span> norm(r_body_sc)) <span class="op">&&</span> (norm(r_body_sc) <span class="op"><</span> dp))</span>
|
||||
<span id="cb6-19"><a href="#cb6-19" aria-hidden="true" tabindex="-1"></a> S <span class="op">=</span> (norm(r_body_sc .<span class="op">|></span> u<span class="st">"km"</span>) <span class="op">-</span> du) <span class="op">/</span> (dp <span class="op">-</span> du) <span class="op">|></span> ustrip</span>
|
||||
<span id="cb6-20"><a href="#cb6-20" aria-hidden="true" tabindex="-1"></a> <span class="kw">end</span></span>
|
||||
<span id="cb6-21"><a href="#cb6-21" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-22"><a href="#cb6-22" aria-hidden="true" tabindex="-1"></a> <span class="kw">return</span> S</span>
|
||||
<span id="cb6-23"><a href="#cb6-23" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code></pre></div>
|
||||
</div>
|
||||
<p>Then we can pass all the values we’ve gathered into the function we just made.</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a>S <span class="op">=</span> r .<span class="op">|></span> R <span class="op">-></span> sunlight(<span class="fl">6371</span>u<span class="st">"km"</span><span class="op">,</span> [<span class="fl">0.5370</span><span class="op">,</span> <span class="fl">1.2606</span><span class="op">,</span> <span class="fl">0.5466</span>] <span class="op">.*</span> <span class="fl">1e8</span>u<span class="st">"km"</span><span class="op">,</span> R <span class="op">.*</span> u<span class="st">"m"</span>)</span></code></pre></div>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>S <span class="op">=</span> r .<span class="op">|></span> R <span class="op">-></span> sunlight(<span class="fl">6371</span>u<span class="st">"km"</span><span class="op">,</span> [<span class="fl">0.5370</span><span class="op">,</span> <span class="fl">1.2606</span><span class="op">,</span> <span class="fl">0.5466</span>] <span class="op">.*</span> <span class="fl">1e8</span>u<span class="st">"km"</span><span class="op">,</span> R <span class="op">.*</span> u<span class="st">"m"</span>)<span class="op">;</span></span></code></pre></div>
|
||||
</div>
|
||||
<h2 id="plotting-the-results">Plotting the Results</h2>
|
||||
<p>The <code>sunlight</code> function returns values from 0 to 1, 0 being complete darkness, 1 being complete sunlight, and anything between being the fraction of light being received. Again since the ISS has a very low orbit, the amount of time spent in the penumbra is almost insignificant.</p>
|
||||
<div class="layout-chunk" data-layout="l-body-outset">
|
||||
<details>
|
||||
<summary>
|
||||
Show code
|
||||
</summary>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>light_range <span class="op">=</span> range(colorant<span class="st">"black"</span><span class="op">,</span> stop <span class="op">=</span> colorant<span class="st">"yellow"</span><span class="op">,</span> length <span class="op">=</span> <span class="fl">101</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a>light_colors <span class="op">=</span> [light_range[unique(round(<span class="dt">Int</span><span class="op">,</span> <span class="fl">1</span> <span class="op">+</span> s <span class="op">*</span> <span class="fl">100</span>))][<span class="fl">1</span>] <span class="kw">for</span> s <span class="kw">in</span> S]<span class="op">;</span></span>
|
||||
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a>plot(</span>
|
||||
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">LinRange</span>(<span class="fl">0</span><span class="op">,</span> <span class="fl">24</span><span class="op">,</span> length(S))<span class="op">,</span></span>
|
||||
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a> S <span class="op">.*</span> <span class="fl">100</span><span class="op">,</span></span>
|
||||
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a> linewidth <span class="op">=</span> <span class="fl">5</span><span class="op">,</span></span>
|
||||
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a> legend <span class="op">=</span> <span class="ex">false</span><span class="op">,</span></span>
|
||||
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a> color <span class="op">=</span> light_colors<span class="op">,</span></span>
|
||||
<span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a>)<span class="op">;</span></span>
|
||||
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a>xlabel<span class="op">!</span>(<span class="st">"Time (hr)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Sunlight (%)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a>title<span class="op">!</span>(<span class="st">"ISS Sunlight Over a Day"</span>)</span></code></pre></div>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Get fancy with the line color. </span></span>
|
||||
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a>light_range <span class="op">=</span> range(colorant<span class="st">"black"</span><span class="op">,</span> stop <span class="op">=</span> colorant<span class="st">"orange"</span><span class="op">,</span> length <span class="op">=</span> <span class="fl">101</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a>light_colors <span class="op">=</span> [light_range[unique(round(<span class="dt">Int</span><span class="op">,</span> <span class="fl">1</span> <span class="op">+</span> s <span class="op">*</span> <span class="fl">100</span>))][<span class="fl">1</span>] <span class="kw">for</span> s <span class="kw">in</span> S]<span class="op">;</span></span>
|
||||
<span id="cb8-4"><a href="#cb8-4" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a>plot(</span>
|
||||
<span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">LinRange</span>(<span class="fl">0</span><span class="op">,</span> <span class="fl">24</span><span class="op">,</span> length(S))<span class="op">,</span></span>
|
||||
<span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a> S <span class="op">.*</span> <span class="fl">100</span><span class="op">,</span></span>
|
||||
<span id="cb8-8"><a href="#cb8-8" aria-hidden="true" tabindex="-1"></a> linewidth <span class="op">=</span> <span class="fl">5</span><span class="op">,</span></span>
|
||||
<span id="cb8-9"><a href="#cb8-9" aria-hidden="true" tabindex="-1"></a> legend <span class="op">=</span> <span class="ex">false</span><span class="op">,</span></span>
|
||||
<span id="cb8-10"><a href="#cb8-10" aria-hidden="true" tabindex="-1"></a> color <span class="op">=</span> light_colors<span class="op">,</span></span>
|
||||
<span id="cb8-11"><a href="#cb8-11" aria-hidden="true" tabindex="-1"></a>)<span class="op">;</span></span>
|
||||
<span id="cb8-12"><a href="#cb8-12" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb8-13"><a href="#cb8-13" aria-hidden="true" tabindex="-1"></a>xlabel<span class="op">!</span>(<span class="st">"Time (hr)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-14"><a href="#cb8-14" aria-hidden="true" tabindex="-1"></a>ylabel<span class="op">!</span>(<span class="st">"Sunlight (%)"</span>)<span class="op">;</span></span>
|
||||
<span id="cb8-15"><a href="#cb8-15" aria-hidden="true" tabindex="-1"></a>title<span class="op">!</span>(<span class="st">"ISS Sunlight Over a Day"</span>)</span></code></pre></div>
|
||||
</details>
|
||||
<div class="figure"><span id="fig:unnamed-chunk-6"></span>
|
||||
<img src="iss-eclipse-determination_files/figure-html5/unnamed-chunk-6-J1.png" alt="Rocket Motor Data: [@thrustcurve]" width="300" data-distill-preview=1 />
|
||||
<div class="figure"><span id="fig:sunlight-plot"></span>
|
||||
<img src="iss-eclipse-determination_files/figure-html5/sunlight-plot-J1.png" alt="ISS Sunlight" width="300" data-distill-preview=1 />
|
||||
<p class="caption">
|
||||
Figure 1: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">[@thrustcurve]</span>
|
||||
Figure 1: ISS Sunlight
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
|
||||
<p>Looking at the plot, the vertical transition from 0% to 100% makes it pretty clear that the time in the penumbra is limited. Still, almost counterintuitively, it also looks like the ISS gets more sunlight than it does darkness. So, using the raw sunlight data, we can calculate precisely how much time is spent in each region.</p>
|
||||
<p>Time in Sun:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb9"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a>sun <span class="op">=</span> length(S[S.<span class="op">==</span><span class="fl">1</span>])<span class="op">/</span>length(S) <span class="op">*</span> <span class="fl">100</span></span></code></pre></div>
|
||||
<pre><code>62.03323593209401</code></pre>
|
||||
</div>
|
||||
<p>Time in Darkness:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a>umbra <span class="op">=</span> length(S[S.<span class="op">==</span><span class="fl">0</span>])<span class="op">/</span>length(S) <span class="op">*</span> <span class="fl">100</span></span></code></pre></div>
|
||||
<pre><code>37.64408511553699</code></pre>
|
||||
</div>
|
||||
<p>Time in Penumbra:</p>
|
||||
<div class="layout-chunk" data-layout="l-body">
|
||||
<div class="sourceCode" id="cb13"><pre class="sourceCode julia"><code class="sourceCode julia"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a>penumbra <span class="op">=</span> <span class="fl">100</span> <span class="op">-</span> umbra <span class="op">-</span> sun</span></code></pre></div>
|
||||
<pre><code>0.322678952369003</code></pre>
|
||||
</div>
|
||||
<p>This means that even with the ISS’s low orbit, it still gets sunlight ~62% of the time and spends almost no time in the penumbra. This would vary a few percent depending on the time of year, but in a circular orbit like the ISS, the amount of sunlight would remain pretty constant. There are other orbits like a polar orbit, lunar orbit, or highly elliptic earth orbits that can have their time in the sunlight vary widely by the time of year.</p>
|
||||
<div class="sourceCode" id="cb15"><pre class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
|
||||
<div id="refs" class="references csl-bib-body hanging-indent" role="doc-bibliography">
|
||||
<div id="ref-ariss" class="csl-entry" role="doc-biblioentry">
|
||||
<span>“<span>ARISS</span> <span>TLE</span>.”</span> n.d. <em>Amateur Radio on the International Space Station</em>. <a href="https://live.ariss.org/tle/">https://live.ariss.org/tle/</a>.
|
||||
</div>
|
||||
<div id="ref-vallado" class="csl-entry" role="doc-biblioentry">
|
||||
Vallado, David A. 1997. <em>Fundamentals of <span>Astrodynamics</span> and <span>Applications</span>, 2nd. Ed.</em> Edited by Wiley Larson. Dordrecht: Microcosm, Inc.
|
||||
</div>
|
||||
</div>
|
||||
<!--radix_placeholder_article_footer-->
|
||||
<div class="article-footer">
|
||||
<p class="social_footer">
|
||||
@ -2235,13 +2282,13 @@ Figure 1: Rocket Motor Data: <span class="citation" data-cites="thrustcurve">[@t
|
||||
<!--/radix_placeholder_site_after_body-->
|
||||
<!--radix_placeholder_appendices-->
|
||||
<div class="appendix-bottom">
|
||||
<h3 id="updates-and-corrections">Corrections</h3>
|
||||
<p>If you see mistakes or want to suggest changes, please <a href="https://gitlab.com/lander-team/air-prop-simulation">create an issue</a> on the source repository.</p>
|
||||
<h3 id="references">References</h3>
|
||||
<div id="references-listing"></div>
|
||||
<h3 id="reuse">Reuse</h3>
|
||||
<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. Source code is available at <a href="https://gitlab.com/lander-team/air-prop-simulation">https://gitlab.com/lander-team/air-prop-simulation</a>, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
|
||||
<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
|
||||
<h3 id="citation">Citation</h3>
|
||||
<p>For attribution, please cite this work as</p>
|
||||
<pre class="citation-appendix short">Biggs (2021, April 1). Anson's Projects: ISS Eclipse Determination. Retrieved from https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/</pre>
|
||||
<pre class="citation-appendix short">Biggs (2021, May 1). Anson's Projects: ISS Eclipse Determination. Retrieved from https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/</pre>
|
||||
<p>BibTeX citation</p>
|
||||
<pre class="citation-appendix long">@misc{biggs2021iss,
|
||||
author = {Biggs, Anson},
|
||||
|
After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
@ -5,15 +5,15 @@
|
||||
"title": "Hi, I'm Anson.",
|
||||
"description": "I'm an Astronautical Engineer studying at Embry-Riddle Prescott.",
|
||||
"author": [],
|
||||
"contents": "\r\nI mostly write code, but sometimes I make 3D Models. This website is where I plan on breaking down some of my more interesting findings and sharing them with the World Wide Web. If you think I could be a could fit at your company then take a look at my Resume, otherwise you can reach me on Telegram or by Email.\r\n\r\n\r\n\r\n",
|
||||
"last_modified": "2021-04-30T22:47:07-07:00"
|
||||
"contents": "\nI mostly write code, but sometimes I make 3D Models. This website is where I plan on breaking down some of my more interesting findings and sharing them with the World Wide Web. If you think I could be a could fit at your company then take a look at my Resume, otherwise you can reach me on Telegram or by Email.\n\n\n\n",
|
||||
"last_modified": "2021-05-07T09:53:25-07:00"
|
||||
},
|
||||
{
|
||||
"path": "index.html",
|
||||
"title": "Anson's Projects",
|
||||
"author": [],
|
||||
"contents": "\r\n\r\n\r\n\r\n",
|
||||
"last_modified": "2021-04-30T22:47:08-07:00"
|
||||
"contents": "\n\n\n\n",
|
||||
"last_modified": "2021-05-07T09:53:25-07:00"
|
||||
}
|
||||
],
|
||||
"collections": ["posts/posts.json"]
|
||||
|
@ -2,18 +2,18 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" version="1.0">
|
||||
<url>
|
||||
<loc>https://projects.ansonbiggs.com/about.html</loc>
|
||||
<lastmod>2021-04-14T22:36:57-07:00</lastmod>
|
||||
<lastmod>2021-05-03T19:29:58-07:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://projects.ansonbiggs.com/</loc>
|
||||
<lastmod>2021-04-02T14:53:47-07:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/</loc>
|
||||
<lastmod>2021-04-25T12:19:22-07:00</lastmod>
|
||||
<lastmod>2021-04-01T20:38:43-07:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://projects.ansonbiggs.com/posts/2021-04-14-iss-eclipse-determination/</loc>
|
||||
<lastmod>2021-04-25T12:27:18-07:00</lastmod>
|
||||
<lastmod>2021-05-07T09:51:55-07:00</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://projects.ansonbiggs.com/posts/2021-04-01-air-propulsion-simulation/</loc>
|
||||
<lastmod>2021-05-07T08:51:19-07:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|