def falpha( t, y, flyer ) : r = y[1] if r < (flyer.R+30.0E3) : n = (1.0, 0.0) else : v, n = mpm.v_and_dir(y) return n
def falpha( t, y, flyer ) : m, r, th, vr, om = y vth = om/r if r < (flyer.R+7.5E3) : n = (1.0, 0.0) elif vth == 0.0 : n = (1.0, 0.0) else : v,n = mpm.v_and_dir(y) return n
def fthrottle(t, y): m, r, th, vr, om = y v, n = mpm.v_and_dir(y) h = r - 200E3 vtarget = h / 10.0 if t < 5.0: # Initial kick out of circ orbit return 0.1 else: return min(1.0, 0.01 * (max(v - vtarget, 0.0)))
def falpha_s3(t, y, flyer): m, r, th, vr, om = y # vth = om/r v, n = mpm.v_and_dir(y) return n
def fthustdir(t, y, fs): v, n = mpm.v_and_dir(y) retro = (-n[0], -n[1]) return retro