Finished section 2!
This commit is contained in:
535
LaTeX/flowcharts/kepler.svg
Normal file
535
LaTeX/flowcharts/kepler.svg
Normal file
@@ -0,0 +1,535 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="11in"
|
||||
height="8.5in"
|
||||
viewBox="0 0 279.4 215.9"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)"
|
||||
sodipodi:docname="kepler.svg"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/fig/kepler.png"
|
||||
inkscape:export-xdpi="300"
|
||||
inkscape:export-ydpi="300"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
units="in"
|
||||
showborder="true"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:snap-smooth-nodes="false"
|
||||
inkscape:snap-intersection-paths="true"
|
||||
inkscape:snap-grids="false"
|
||||
inkscape:snap-object-midpoints="false"
|
||||
inkscape:zoom="1.4361764"
|
||||
inkscape:cx="566.78273"
|
||||
inkscape:cy="346.05776"
|
||||
inkscape:window-width="1912"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="33"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs2">
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker78240"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
id="path78238" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker78230"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mstart"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round"
|
||||
id="path78228" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker7218"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
id="path7216" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Arrow2Mstart"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mstart"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round"
|
||||
id="path1892" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="marker6814"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
id="path6812" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2Mend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Mend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.6) rotate(180) translate(0,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
id="path1895" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow2Lend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow2Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(1.1) rotate(180) translate(1,0)"
|
||||
d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
|
||||
style="stroke:context-stroke;fill-rule:evenodd;fill:context-stroke;stroke-width:0.62500000;stroke-linejoin:round;"
|
||||
id="path1889" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible;"
|
||||
id="Arrow1Lend"
|
||||
refX="0.0"
|
||||
refY="0.0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lend"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)"
|
||||
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
id="path1871" />
|
||||
</marker>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:#5fd35f;stroke:#55ddff;stroke-width:0.472389;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 682.78696,207.41832 c -1.09237,0.8287 -2.55888,2.07069 -1.88935,3.62091 12.72215,40.24259 25.67916,80.41044 38.52508,120.61373 0.48879,1.34788 2.00367,1.11034 3.13933,1.01693 2.29264,-0.1731 4.66561,0.23899 6.55565,1.61488 2.74264,1.80611 4.42192,5.00393 4.43959,8.28027 0.18369,1.41388 1.74,1.58933 2.88857,1.45188 23.32499,-0.003 46.64998,-0.005 69.97497,-0.008 1.60502,-0.0567 1.54282,-2.01462 2.72162,-2.71705 0.91267,-0.62616 2.37301,-0.87236 2.49815,-2.21946 0.19834,-0.8154 -0.41606,-1.50841 -0.84438,-2.03654 -0.0528,-1.76867 -0.26337,-3.57231 -0.099,-5.32561 0.67291,-1.20751 0.0711,-2.50284 -0.29091,-3.68099 -0.28034,-4.75334 -1.66225,-9.36637 -2.99489,-13.91308 -6.46901,-20.8521 -19.32612,-39.24086 -34.87186,-54.36547 -21.49281,-20.86826 -47.81733,-36.15274 -75.35336,-47.59836 -4.29215,-1.75642 -8.60984,-3.49369 -12.98409,-5.01227 -0.54219,-0.15818 -0.9407,0.024 -1.41515,0.2783 z m 42.7683,114.94061 c -1.24556,0.0932 0.09,-0.83707 0,0 z"
|
||||
id="path239901"
|
||||
transform="scale(0.26458333)" />
|
||||
<path
|
||||
style="fill:#55ddff;stroke:#55ddff;stroke-width:2.91779532;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
d="m 683.04995,339.62571 -2.10796,-2.12215 0.16516,-61.9756 0.16517,-61.97559 18.83052,58.84681 18.83052,58.84682 -2.82499,2.50333 c -1.98763,1.76132 -3.0501,3.34496 -3.58441,5.34268 l -0.7594,2.83934 -13.30333,-0.0917 -13.30333,-0.0917 z m 19.26928,-28.77903 c 0,-0.35617 -0.28518,-0.64759 -0.63372,-0.64759 -0.38992,0 -0.35717,-0.60694 0.0851,-1.5777 0.39536,-0.86773 0.54397,-2.03341 0.33023,-2.59039 -0.48877,-1.27374 -3.66724,-1.36208 -3.66724,-0.10192 0,0.59193 0.45341,0.7922 1.2952,0.57206 0.71235,-0.18628 1.29519,-0.0585 1.29519,0.28406 0,0.34252 -0.58284,1.15022 -1.29519,1.79489 -1.89794,1.71761 -1.63204,2.91419 0.64759,2.91419 1.06854,0 1.9428,-0.29142 1.9428,-0.6476 z m -8.41877,-3.01455 c 0,-0.99729 0.0823,-0.99729 1.18429,0 0.65136,0.58947 1.72584,1.07176 2.38775,1.07176 1.04699,0 0.97853,-0.23477 -0.52655,-1.80575 l -1.73002,-1.80574 1.75604,-1.75604 c 1.53985,-1.53986 1.60468,-1.75604 0.52655,-1.75604 -0.67622,0 -1.76241,0.48229 -2.41377,1.07177 -1.1268,1.01973 -1.18429,0.95686 -1.18429,-1.2952 0,-1.67223 -0.28511,-2.36696 -0.97139,-2.36696 -0.77712,0 -0.9714,0.9714 -0.9714,4.85698 0,3.88559 0.19428,4.85698 0.9714,4.85698 0.53426,0 0.97139,-0.48229 0.97139,-1.07176 z"
|
||||
id="path239308"
|
||||
transform="scale(0.26458333)" />
|
||||
<ellipse
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path77"
|
||||
cx="144.70644"
|
||||
cy="90.797829"
|
||||
rx="69.896774"
|
||||
ry="41.877117" />
|
||||
<circle
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:1.6,0.8;stroke-dashoffset:0"
|
||||
id="path205"
|
||||
cx="144.70644"
|
||||
cy="90.797829"
|
||||
r="69.622986" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 144.70644,14.892184 V 166.70347 Z"
|
||||
id="path1135" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 66.738119,90.797829 H 222.67475 Z"
|
||||
id="path1137" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285"
|
||||
cx="144.70653"
|
||||
cy="90.799385"
|
||||
r="1" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285-3"
|
||||
cx="179.89606"
|
||||
cy="90.799385"
|
||||
r="1" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285-3-7"
|
||||
cx="179.89606"
|
||||
cy="54.425362"
|
||||
r="1" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285-3-7-5"
|
||||
cx="179.89606"
|
||||
cy="30.521255"
|
||||
r="1" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285-3-7-5-3"
|
||||
cx="214.57874"
|
||||
cy="90.969757"
|
||||
r="1" />
|
||||
<circle
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1285-3-6"
|
||||
cx="111.35923"
|
||||
cy="90.799385"
|
||||
r="1" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 144.70644,90.797829 179.89606,30.521256 V 90.799384 Z"
|
||||
id="path1864" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||
d="m 155.37536,89.913546 c 0,0 0.86315,-5.904653 -4.49532,-7.075844"
|
||||
id="path1866" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 179.89606,54.42536 11.579,36.171113 z"
|
||||
id="path2185" />
|
||||
<circle
|
||||
style="fill:#0000ff;stroke:#000000;stroke-width:0.4;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="path1499"
|
||||
cx="191.47507"
|
||||
cy="90.596474"
|
||||
r="2.8067961" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker6814)"
|
||||
d="m 196.57172,89.709224 c 0,0 -0.51831,-5.025607 -5.44376,-4.367408"
|
||||
id="path6810" />
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-dashoffset:0;stroke-linejoin:miter"
|
||||
id="rect6912"
|
||||
width="3.4127772"
|
||||
height="3.4127772"
|
||||
x="176.48328"
|
||||
y="87.386604" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="m 179.89606,90.799384 v 8.211987 z"
|
||||
id="path7137" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="M 191.47506,90.596473 V 105.44434 Z"
|
||||
id="path7139" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="M 214.57873,90.969755 V 116.7699 Z"
|
||||
id="path7141" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="m 179.89606,54.42536 h -10.791 z"
|
||||
id="path7143" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="m 179.89606,30.521256 h 43.21083 z"
|
||||
id="path7145" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.8,1.59999999;stroke-dashoffset:0"
|
||||
d="M 144.76101,48.794 H 95.996478 Z"
|
||||
id="path7180" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker7218)"
|
||||
d="m 101.10909,48.858169 v 41.93966"
|
||||
id="path7212" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker7218)"
|
||||
d="M 172.48932,54.347093 V 90.799056"
|
||||
id="path7339" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker7218)"
|
||||
d="m 144.68862,95.379856 h 35.20744"
|
||||
id="path7341" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker7218)"
|
||||
d="m 144.71652,103.94751 h 46.75854"
|
||||
id="path7343" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker7218)"
|
||||
d="m 144.67203,114.30076 h 69.9067"
|
||||
id="path7345" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="176.89294"
|
||||
y="116.85059"
|
||||
id="text16281"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan16279"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="176.89294"
|
||||
y="116.85059">a</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.9389px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="165.22083"
|
||||
y="107.9572"
|
||||
id="text26263"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan26261"
|
||||
style="stroke-width:0.264583"></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="167.08392"
|
||||
y="106.60025"
|
||||
id="text41753"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan41751"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="167.08392"
|
||||
y="106.60025">ae</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="158.1091"
|
||||
y="98.358513"
|
||||
id="text48543"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan48541"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="158.1091"
|
||||
y="98.358513">acos(E)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="155.18155"
|
||||
y="85.501823"
|
||||
id="text52381"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan52379"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="155.18155"
|
||||
y="85.501823">E</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="196.15579"
|
||||
y="86.180817"
|
||||
id="text70799"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan70797"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="196.15579"
|
||||
y="86.180817">υ</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-start:url(#marker78230);marker-end:url(#marker78240)"
|
||||
d="m 179.89606,95.379854 h 11.579"
|
||||
id="path78226" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="180.64381"
|
||||
y="98.320885"
|
||||
id="text84296"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan84294"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="180.64381"
|
||||
y="98.320885">rcos(υ)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="187.06061"
|
||||
y="72.504166"
|
||||
id="text96020"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan96018"
|
||||
style="stroke-width:0.264583;font-size:3.175px"
|
||||
x="187.06061"
|
||||
y="72.504166">r</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="-78.814697"
|
||||
y="171.40031"
|
||||
id="text102558"
|
||||
transform="rotate(-90)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan102556"
|
||||
style="stroke-width:0.264583;font-size:3.175px"
|
||||
x="-78.814697"
|
||||
y="171.40031">rsin(υ)</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="196.8791"
|
||||
y="75.566528"
|
||||
id="text125862"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan125860"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="196.8791"
|
||||
y="75.566528">k</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="182.85774"
|
||||
y="81.685913"
|
||||
id="text129232"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan129230"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="182.85774"
|
||||
y="81.685913">k<tspan
|
||||
style="font-size:65%;baseline-shift:sub"
|
||||
id="tspan144096">2</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="181.26367"
|
||||
y="53.410671"
|
||||
id="text166154"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan166152"
|
||||
style="stroke-width:0.264583"
|
||||
x="181.26367"
|
||||
y="53.410671">B</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="176.30115"
|
||||
y="94.058624"
|
||||
id="text179952"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan179950"
|
||||
style="stroke-width:0.264583"
|
||||
x="176.30115"
|
||||
y="94.058624">C</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="194.20917"
|
||||
y="94.516365"
|
||||
id="text184464"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan184462"
|
||||
style="stroke-width:0.264583"
|
||||
x="194.20917"
|
||||
y="94.516365">Primary</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="216.1391"
|
||||
y="89.377853"
|
||||
id="text189808"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan189806"
|
||||
style="stroke-width:0.264583"
|
||||
x="216.1391"
|
||||
y="89.377853">P</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="141.03665"
|
||||
y="94.09967"
|
||||
id="text197018"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan197016"
|
||||
style="stroke-width:0.264583"
|
||||
x="141.03665"
|
||||
y="94.09967">O</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="180.54257"
|
||||
y="28.544504"
|
||||
id="text202206"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan202204"
|
||||
style="stroke-width:0.264583"
|
||||
x="180.54257"
|
||||
y="28.544504">B'</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="160.72346"
|
||||
y="58.705368"
|
||||
id="text213948"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan213946"
|
||||
style="stroke-width:0.264583"
|
||||
x="160.72346"
|
||||
y="58.705368">a</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583;fill:#000000"
|
||||
x="101.87127"
|
||||
y="70.425194"
|
||||
id="text220678"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan220676"
|
||||
style="stroke-width:0.264583;fill:#000000"
|
||||
x="101.87127"
|
||||
y="70.425194">b</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker78230);marker-end:url(#marker78240)"
|
||||
d="M 220.51863,90.709561 V 30.521256"
|
||||
id="path240119" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
|
||||
x="54.715576"
|
||||
y="-221.37309"
|
||||
id="text244369"
|
||||
transform="rotate(90)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan244367"
|
||||
style="stroke-width:0.264583"
|
||||
x="54.715576"
|
||||
y="-221.37309">asin(E)</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 23 KiB |
174
LaTeX/thesis.tex
174
LaTeX/thesis.tex
@@ -130,6 +130,8 @@ Monotonic Basin Hopping}
|
||||
\newpage
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\listoffigures
|
||||
|
||||
\newpage
|
||||
|
||||
@@ -230,37 +232,173 @@ Monotonic Basin Hopping}
|
||||
|
||||
Where $\mu = G m_1$ is the specific gravitational parameter for our primary body of interest.
|
||||
|
||||
\subsubsection{Kepler's Equations}
|
||||
\subsubsection{Kepler's Laws and Equations}
|
||||
|
||||
Now that we've fully qualified the forces acting within the Two Body Problem, we can note
|
||||
that the Problem is actually analytically solvable in the case when the position of the
|
||||
spacecraft and the $\mu$ value of the primary body are known. This can be easily observed by
|
||||
noting that there are three one-dimensional equations (one for each component of the
|
||||
three-dimensional position) and three unknowns (the three components of the second
|
||||
derivative of the position).
|
||||
% TODO: Can I segue better from 2BP to Keplerian geometry?
|
||||
|
||||
Therefore, we can use this analytically solvable force model to model the spacecraft's
|
||||
motion in time, a more useful re-interpretation of the equations of motion.
|
||||
Now that we've fully qualified the forces acting within the Two Body Problem, we can concern
|
||||
ourselves with more practical applications of this as a force model. It should be noted,
|
||||
firstly, that the spacecraft's position and velocity (given an initial position and velocity
|
||||
and of course the $\mu$ value of the primary body) is actually analytically solvable for all
|
||||
future points in time. This can be easily observed by noting that there are three
|
||||
one-dimensional equations (one for each component of the three-dimensional position) and
|
||||
three unknowns (the three components of the second derivative of the position).
|
||||
|
||||
In the early 1600s, Johannes Kepler produced just such a solution. By taking advantages of
|
||||
what is also known as ``Kepler's Laws'' which are:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Each planet's orbit is an ellipse with the Sun at one of the foci. This can be
|
||||
expanded to any orbit by re-wording as ``all orbital paths follow a conic section
|
||||
(circle, ellipse, parabola, or hyperbola) with a primary body at one of the foci''.
|
||||
\item The area swept out by the imaginary line connecting the primary and secondary
|
||||
bodies increases linearly with respect to time. This implies that the magnitude of the
|
||||
orbital speed is not constant.
|
||||
\item The square of the orbital period is proportional to the cube of the semi-major
|
||||
axis of the orbit, regardless of eccentricity. Specifically, the relationship is: $T = 2
|
||||
\pi \sqrt{\frac{a^3}{\mu}}$ where $T$ is the period and $a$ is the semi-major axis.
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Analytical Solutions to Kepler's Equations}
|
||||
Discuss how, since the 2BP is analytically solvable, there exists algorithms for solving
|
||||
these equations.
|
||||
|
||||
Kepler was able to produce an equation to represent the angular displacement of an orbiting
|
||||
body around a primary body as a function of time, which we'll derive now for the elliptical
|
||||
case. Since the total area of an ellipse is the product of $\pi$, the semi-major axis, and
|
||||
the semi-minor axis ($\pi a b$), we can relate (by Kepler's second law) the area swept out
|
||||
by an orbit as a function of time:
|
||||
|
||||
\begin{equation}\label{swept}
|
||||
\frac{\Delta t}{T} = \frac{k}{\pi a b}
|
||||
\end{equation}
|
||||
|
||||
This leaves just one unknown variable $k$, which we can determine through use of the
|
||||
geometric auxiliary circle, which is a circle with radius equal to the ellipse's semi-major
|
||||
axis and center directly between the two foci, as in Figure~\ref{aux_circ}.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{LaTeX/fig/kepler}
|
||||
\caption{Geometric Representation of Auxiliary Circle}\label{aux_circ}
|
||||
\end{figure}
|
||||
|
||||
In order to find the area swept by the spacecraft, $k$, we can take advantage of the fact
|
||||
that that area is the triangle $k_1$ subtracted from the elliptical segment $PCB$:
|
||||
|
||||
\begin{equation}\label{areas_eq}
|
||||
k = area(seg_{PCB}) - area(k_1)
|
||||
\end{equation}
|
||||
|
||||
Where the area of the triangle $k_1$ can be found easily using geometric formulae:
|
||||
|
||||
\begin{align}
|
||||
area(k_1) &= \frac{1}{2} \left( ae - a \cos E \right) \left( \frac{b}{a} a \sin E \right) \\
|
||||
&= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right)
|
||||
\end{align}
|
||||
|
||||
Now we can find the area for the elliptical segment $PCB$ by first finding the circular
|
||||
segment $POB'$, subtracting the triangle $OB'C$, then applying the fact that an ellipse is
|
||||
merely a vertical scaling of a circle by the amount $\frac{b}{a}$.
|
||||
|
||||
\begin{align}
|
||||
area(PCB) &= \frac{b}{a} \left( \frac{a^2 E}{2} - \frac{1}{2} \left( a \cos E \right)
|
||||
\left( a \sin E \right) \right) \\
|
||||
&= \frac{abE}{2} - \frac{ab}{2} \left( \cos E \sin E \right) \\
|
||||
&= \frac{ab}{2} \left( E - \cos E \sin E \right)
|
||||
\end{align}
|
||||
|
||||
By substituting the two areas back into Equation~\ref{areas_eq} we can get the $k$ area
|
||||
swept out by the spacecraft:
|
||||
|
||||
\begin{equation}
|
||||
k = \frac{ab}{2} \left( E - e \sin E \right)
|
||||
\end{equation}
|
||||
|
||||
Which we can then substitute back into the equation for the swept area as a function of
|
||||
time (Equation~\ref{swept}):
|
||||
|
||||
\begin{equation}
|
||||
\frac{\Delta t}{T} = \frac{E - e \sin E}{2 \pi}
|
||||
\end{equation}
|
||||
|
||||
Which is, effectively, Kepler's equation. It is commonly known by a different form:
|
||||
|
||||
\begin{align}
|
||||
M &= E - e \sin E \\
|
||||
&= \sqrt{\frac{\mu}{a^3}} \Delta t
|
||||
\end{align}
|
||||
|
||||
Where we've defined the mean anomaly as $M$ and used the fact that $T =
|
||||
\sqrt{\frac{a^3}{\mu}}$. This provides us a useful relationship between Eccentric Anomaly
|
||||
($E$) which can be related to spacecraft position, and time, but we still need a useful
|
||||
algorithm for solving this equation.
|
||||
|
||||
\subsubsection{LaGuerre-Conway Algorithm}
|
||||
Step through the LaGuerre-Conway algorithm, as it's used in this implementation.
|
||||
For this application, I used an algorithm known as the LaGuerre-Conway algorithm, which was
|
||||
presented in 1986 as a faster algorithm for directly solving Kepler's equation and has been
|
||||
in use in many applications since. This algorithm is known for its convergence robustness
|
||||
and also its speed of convergence when compared to higher order Newton methods.
|
||||
|
||||
This thesis will omit a step-through of the algorithm itself, but the code will be present
|
||||
in the Appendix.
|
||||
|
||||
\subsection{Non-Linear Problem Optimization}
|
||||
Discuss the concept of a non-linear problem as it related to the study of optimization.
|
||||
|
||||
Now we can consider the formulation of the problem in a more useful way. For instance, given a
|
||||
desired final state in position and velocity we can relatively easily determine the initial
|
||||
state necessary to end up at that desired state over a pre-defined period of time by solving
|
||||
Kepler's equation. In fact, this is often how impulsive trajectories are calculated since,
|
||||
other than the impulsive thrusting event itself, the trajectory is entirely natural.
|
||||
|
||||
However, often in trajectory design we want to consider a number of other inputs. For
|
||||
instance, a low thrust profile, a planetary flyby, the effects of rotating a solar panel on
|
||||
solar radiation pressure, etc. Once these inputs have been accepted as part of the model, the
|
||||
system is generally no longer analytically solvable, or, if it is, is too complex to calculate
|
||||
directly.
|
||||
|
||||
Therefore an approach is needed, in trajectory optimization and many other fields, to optimize
|
||||
highly non-linear, unpredictable systems such as this. The field that developed to approach
|
||||
this problem is known as Non-Linear Problem (NLP) Optimization. In these cases, generally
|
||||
speaking, direct methods are impossible, so a number of tools have been developed to optimize
|
||||
NLPs in the general case, via indirect, iterative methods.
|
||||
|
||||
\subsubsection{Non-Linear Solvers}
|
||||
Mention common non-linear solvers (Ipopt, SNOPT, etc.).
|
||||
For these types of non-linear, constrained problems, a number of tools have been developed
|
||||
that act as frameworks for applying a large number of different algorithms. This allows for
|
||||
simple testing of many different algorithms to find what works best for the nuances of the
|
||||
problem in question.
|
||||
|
||||
\subsubsection{Newton Trust-Region Method}
|
||||
Discuss how the Newton Trust-Region method works.
|
||||
One of the most common of these NLP optimizers is SNOPT, which is a proprietary package
|
||||
written primarily using a number of Fortran libraries by the Systems Optimization Laboratory
|
||||
at Stanford University. It uses a sparse sequential quadratic programming approach.
|
||||
|
||||
Another common NLP optimization packages (and the one used in this implementation) is the
|
||||
Interior Point Optimizer or IPOPT. It can be used in much the same way as SNOPT and uses an
|
||||
Interior Point Linesearch Filter Method and was developed as an open-source project by the
|
||||
organization COIN-OR under the Eclipse Public License.
|
||||
|
||||
Both of these methods utilize similar approaches to solve general constrained non-linear
|
||||
problems iteratively. Both of them can make heavy use of derivative Jacobians and Hessians
|
||||
to improve the convergence speed and both have been ported for use in a number of
|
||||
programming languages, including in Julia, which was used for this project.
|
||||
|
||||
This is by no means an exhaustive list, as there are a number of other optimization
|
||||
libraries that utilize a massive number of different algorithms. For the most part, the
|
||||
libraries that port these are quite modular in the sense that multiple algorithms can be
|
||||
tested without changing much source code.
|
||||
|
||||
\subsubsection{Linesearch Method}
|
||||
I may take this section out, because I'm not currently using a linesearch. But I would cover
|
||||
the additions of linesearch methods.
|
||||
As mentioned above, this project utilized IPOPT which leveraged an Interior Point Linesearch
|
||||
method. A linesearch algorithm is one which attempts to find the optimum of a non-linear
|
||||
problem by first taking an initial guess $x_k$. The algorithm then determines a step
|
||||
direction (in this case through the use of automatic differentiation to calculate the
|
||||
derivatives of the non-linear problem) and a step length. The linesearch algorithm then
|
||||
continues to step the initial guess, now labeled $x_{k+1}$ after the addition of the
|
||||
``step'' vector and iterates this process until predefined termination conditions are met.
|
||||
|
||||
In this case, the IPOPT algorithm was used, not as an optimizer, but as a solver. For
|
||||
reasons that will be explained in the algorithm description in Section~\ref{algorithm} it
|
||||
was sufficient merely that the non-linear constraints were met, therefore optimization (in
|
||||
the particular step in which IPOPT was used) was unnecessary.
|
||||
|
||||
\section{Low-Thrust Considerations} \label{low_thrust}
|
||||
Highlight the differences between high and low-thrust mission profiles.
|
||||
|
||||
Reference in New Issue
Block a user