Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revisionBoth sides next revision | ||
course_planning:183_projects:s23_week_3_geostationary_orbit [2023/01/25 19:09] – hallstein | course_planning:183_projects:s23_week_3_geostationary_orbit [2023/01/25 19:34] – hallstein | ||
---|---|---|---|
Line 282: | Line 282: | ||
Earth.rotate(angle=theta, | Earth.rotate(angle=theta, | ||
</ | </ | ||
+ | |||
+ | Changes made to the given code: | ||
====== Project 3: Part C: Geostationary orbit ====== | ====== Project 3: Part C: Geostationary orbit ====== | ||
Line 293: | Line 295: | ||
Inside the while loop, add: graphExample.plot(t, | Inside the while loop, add: graphExample.plot(t, | ||
+ | ====== Project 3: Part D: Geostationary orbit ====== | ||
+ | |||
+ | On a single graph, plot both the x-component of the satellite' | ||
+ | |||
+ | |||
+ | Solution code for parts C and D | ||
+ | |||
+ | < | ||
+ | GlowScript 2.9 VPython | ||
+ | |||
+ | get_library(' | ||
+ | |||
+ | #Window setup | ||
+ | scene.range=7e7 | ||
+ | scene.width = 1024 | ||
+ | scene.height = 760 | ||
+ | |||
+ | #Objects | ||
+ | Earth = sphere(pos=vector(0, | ||
+ | Satellite = sphere(pos=vector(42164e3, | ||
+ | |||
+ | #Parameters and Initial Conditions | ||
+ | mSatellite = 15e3 # edit mass of the satellite | ||
+ | pSatellite = mSatellite*vector(0, | ||
+ | G = 6.67e-11 | ||
+ | mEarth = 5.97e24 | ||
+ | |||
+ | #Time and time step | ||
+ | t = 0 | ||
+ | tf = 60*60*24 | ||
+ | dt = 1 | ||
+ | |||
+ | # | ||
+ | SatelliteMotionMap = MotionMap(Satellite, | ||
+ | FnetMotionMap = MotionMap(Satellite, | ||
+ | # | ||
+ | graphSatellite = PhysGraph(numPlot=1) | ||
+ | graphFnet = PhysGraph(numPlots=1) | ||
+ | |||
+ | graphpF = PhysGraph(numPlots=2) | ||
+ | |||
+ | |||
+ | |||
+ | # | ||
+ | while t < tf: | ||
+ | rate(10000) | ||
+ | |||
+ | Fgrav = -G*mSatellite*mEarth*Satellite.pos/ | ||
+ | Fnet = Fgrav # change Fnet from zero | ||
+ | |||
+ | pSatellite = pSatellite + Fnet*dt | ||
+ | Satellite.pos = Satellite.pos + (pSatellite/ | ||
+ | |||
+ | SatelliteMotionMap.update(t, | ||
+ | |||
+ | FnetMotionMap.update(t, | ||
+ | # | ||
+ | graphSatellite.plot(t, | ||
+ | graphFnet.plot(t, | ||
+ | scale=1.0E4 | ||
+ | graphpF.plot(t, | ||
+ | |||
+ | t = t + dt | ||
+ | |||
+ | #Earth Rotation (IGNORE) | ||
+ | theta = 7.29e-5*dt | ||
+ | Earth.rotate(angle=theta, | ||
+ | </ | ||
+ | Modification of solution to part B to get |r| vs t, |Fnet| vs t and Fnet,x and P,x vs t: | ||