Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
summer_2018:gravitation [2018/06/19 03:27]
tallpaul created
summer_2018:gravitation [2018/06/19 03:52] (current)
tallpaul [Part B]
Line 20: Line 20:
 Carver is impressed with your work, but remains unconvinced by your predictions. He has asked you to write a simulation that models the orbit of the satellite. To truly convince Carver, the simulation should include representations of the net force acting on the spacecraft, which has a mass of $15\times10^3$ kg. Your simulation should be generalized enough to model other types of orbits including elliptical ones. Carver is impressed with your work, but remains unconvinced by your predictions. He has asked you to write a simulation that models the orbit of the satellite. To truly convince Carver, the simulation should include representations of the net force acting on the spacecraft, which has a mass of $15\times10^3$ kg. Your simulation should be generalized enough to model other types of orbits including elliptical ones.
  
-<WRAP download 35%> Code for Project 3: Part B\\ Keep them in the same directory.\\ {{183_projects:​satellite.py|Project 3 Code (satellite.py)}} \\ {{183_projects:​physutil.py|PhysUtil Module}}</​WRAP>​+To begin, copy the code below into a glowscript file.
  
-[[:183_notes:learning goals:week 3|Learning Goals Week 3]] +<​code>​ 
 +get_library('​https://​rawgit.com/​perlatmsu/​physutil/​master/​js/​physutil.js'​) 
 +rom __future__ import division 
 +from visual import * 
 +from visual.graph import * 
 + 
 +#Window setup 
 +scene.range = 7e7 
 +scene.width = 1024 
 +scene.height = 760 
 + 
 +#Objects 
 +Earth = sphere(pos=vector(0,​0,​0),​ radius=6.4e6,​ texture=textures.earth) 
 +Satellite = sphere(pos=vector(7*Earth.radius,​ 0,0), radius=1e6, color=color.red,​ make_trail=True) 
 + 
 +#Parameters and Initial Conditions 
 +mSatellite = 1 
 +pSatellite = vector(0,​5000,​0) 
 + 
 +#Time and time step 
 +t = 0 
 +tf = 60*60*24 
 +dt = 1 
 + 
 +#​MotionMap/​Graph 
 +SatelliteMotionMap = MotionMap(Satellite,​ tf, 20, markerScale=2000,​ labelMarkerOrder=False) 
 + 
 +#​Calculation Loop 
 +while t < tf: 
 +    rate(10000) 
 +    Fnet = vector(0,​0,​0) 
 +    pSatellite = pSatellite + Fnet*dt 
 +    Satellite.pos = Satellite.pos + (pSatellite/​mSatellite)*dt 
 +    SatelliteMotionMap.update(t,​ pSatellite/​mSatellite) 
 +    t = t + dt 
 +     
 +    #Earth Rotation (IGNORE) 
 +    theta = 7.29e-5*dt 
 +    Earth.rotate(angle=theta,​ axis=vector(0,​0,​1),​ origin=Earth.pos) 
 +</​code>​
  • summer_2018/gravitation.1529378867.txt.gz
  • Last modified: 2018/06/19 03:27
  • by tallpaul