Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
summer_2019:gravitation [2019/07/31 15:38] tallpaul |
summer_2019:gravitation [2019/08/06 02:56] tallpaul |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Satellite Orbit Activity ====== | + | **Follow this link for the activity and the instructions: [[https://trinket.io/library/trinkets/4b1a7a7441|link]]** |
- | ===== Part A (Non-Computation) ===== | + | **Or, read the instructions after the image below, and copy the code into your own GlowScript file.** |
- | {{ river_photo_2.jpg |}} | + | You should see something that looks like this: |
- | The Carver Media Group is planning the launch of a new communications satellite. Elliot Carver (head of Carver Media Group) is concerned about the launch. This is a $200,000,000 endeavor. In particular, he is worried about the orbital speed necessary to maintain the satellite's geostationary orbit (and if that depends on the launch mass). You were hired as an engineer on the launch team. Carver has asked that you allay his concerns. | + | {{ satellite_trinket_screenshot.png?600 | trinket screenshot}} |
- | <WRAP info> | + | If you click on the "Instructions" tab in the upper right, a set of instructions for the activity should pop up. Click between "Instructions" and "Result" to alternately view the instructions and the animation. If you prefer, the same instructions are also listed below. |
- | ==== Learning Goals ==== | + | 1. Run the code and see what happens! You should see a satellite shooting off into space, completely unaffected by gravity. |
- | * Forces cause changes in momentum | + | 2. Read the code, and try to understand how each line is impacting the animation. If you're not sure, try changing the line, and see what happens. Keep track of what you find by writing comments. (Use the # character.) |
- | * Uniform circular motion | + | |
- | * Newtonian gravitational force | + | |
- | </WRAP> | + | 3. Try using your physics knowledge to fix the code so that gravitational force is being applied correctly. |
- | ===== Part B (Computation) ===== | + | 4. **Extra**: Uncomment (take away the # characters) from the chunks of code marked 'Extra'. Try to fix the graphs so that they correctly display the energy of the satellite. Try to add another curve to the graph that tracks the satellite's total energy. |
- | **Follow this link for the activity and the instructions: [[https://trinket.io/library/trinkets/4b1a7a7441|link]]** | + | 5. **Extra Extra**: Uncomment from the chunks of code marked 'Extra Extra'. Try to use it to help you create a net force arrow that updates as the satellite moves. Now you have a living, changing, free-body diagram! Try to add another arrow that models the updating satellite momentum. |
- | You should see something that looks like this: | + | For more information on glowscript tools, check out: [[https://www.glowscript.org/docs/GlowScriptDocs/index.html]] |
- | {{ satellite_trinket_screenshot.png | trinket screenshot}} | + | <code> |
+ | GlowScript 2.7 VPython | ||
- | If you click on the "Instructions" tab in the upper right, a set of instructions for the activity should pop up. Click between "Instructions" and "Result" to alternately view the instructions and the animation. If you prefer, the same instructions are also listed below. | + | # Window setup |
+ | scene.width = 600 | ||
+ | scene.height = 400 | ||
- | 1. Run the code (click "Run") and see what happens! You should see a satellite shooting off into space, completely unaffected by gravity. | + | # Objects |
+ | Earth = sphere(pos=vec(0, 0, 0), radius=6.4e6, texture=textures.earth) | ||
+ | Satellite = sphere(pos=vec(7 * Earth.radius, 0, 0), radius=1e6, color=color.red, make_trail=True) | ||
- | 2. Read the code, and try to understand how each line is impacting the animation. If you're not sure, try changing the line, and see what happens. Keep track of what you find by writing comments. (Use the # character.) | + | # Parameters and Initial Conditions |
+ | G = 6.7e-11 | ||
+ | mEarth = 6e24 | ||
+ | mSatellite = 20 | ||
+ | pSatellite = vector(0, 50000, 0) | ||
- | 3. Try using your physics knowledge to fix the code so that gravitational force is being applied correctly. | + | # Time and time step |
+ | t = 0 | ||
+ | tFinal = 1 * 60 * 60 * 24 # 1 day | ||
+ | dt = 1 | ||
- | 4. **Extra**: Uncomment (take away the # characters) from the chunks of code marked 'Extra'. Try to fix the graphs so that they correctly display the energy of the satellite. Try to add another curve to the graph that tracks the satellite's total energy. | + | ############################# Extra ############################## |
+ | ## energyGraph = graph(xtitle='time (s)', ytitle='energy (J)') ## | ||
+ | ## kineticGraph = gcurve(color=color.green, label='kinetic') ## | ||
+ | ## potentialGraph = gcurve(color=color.blue, label='potential') ## | ||
+ | ################################################################## | ||
- | 5. **Extra Extra**: Uncomment from the chunks of code marked 'Extra Extra'. Try to use it to help you create a net force arrow that updates as the satellite moves. Now you have a living, changing, free-body diagram! Try to add another arrow that models the updating satellite momentum. | ||
- | For more information on glowscript tools, check out: [[https://www.glowscript.org/docs/GlowScriptDocs/index.html]] | + | ################################# Extra Extra ################################### |
+ | ## FnetArrow = arrow(pos=Satellite.pos, axis=vec(0, 0, 0), color=color.yellow) ## | ||
+ | ################################################################################# | ||
+ | |||
+ | |||
+ | # Calculation Loop | ||
+ | while t < tFinal: | ||
+ | rate(10000) | ||
+ | |||
+ | Fnet = vec(0, 0, 0) | ||
+ | |||
+ | pSatellite = pSatellite + Fnet * dt | ||
+ | Satellite.pos = Satellite.pos + (pSatellite / mSatellite) * dt | ||
+ | |||
+ | t = t + dt | ||
+ | |||
+ | ############ Extra ############ | ||
+ | ## kineticGraph.plot(t, 0) ## | ||
+ | ## potentialGraph.plot(t, 0) ## | ||
+ | ############################### | ||
+ | |||
+ | |||
+ | ########### Extra Extra ########### | ||
+ | ## FnetArrow.pos = vec(0, 0, 0) ## | ||
+ | ## FnetArrow.axis = vec(0, 0, 0) ## | ||
+ | ################################### | ||
+ | |||
+ | |||
+ | # Earth Rotation (just for fun!) | ||
+ | theta = 2 * pi * dt / tFinal | ||
+ | Earth.rotate(angle=theta, axis=vec(0, 1, 0), origin=Earth.pos) | ||
+ | </code> |