def launch(self): # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # L A U N C H # # P R O G R A M # # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# self.ap.engage() print("For 300km Parking Orbit - Moon Shot launch at LAN = 334.56846 - 6.68379") _tp = self.orbital_period(self.parking_orbit_alt + self.radius_eq, self.mu) ui = UI() while self.mode == "Launch Prep": if self.control.get_action_group(9): self.control.throttle = 1 self.stage() self.mode = "Launch" while self.mode != "Orbit": self.pitch_and_heading() if self.falafels is True: if self.altitude() > 80000: self.control.toggle_action_group(8) self.falafels = False if self.mode == "Launch": _twr = self.twr_calc(self.thrust(), self.mass(), self.altitude(), self.radius_eq, self.mu) if _twr > 1: self.lAz_data = self.azimuth_init() self.stage() self.mode = "Booster" if self.mode == "Booster": self.flameout("Core Stage") if self.mode == "Core Stage": self.flameout("Orbit Insertion") if self.mode == "Orbit Insertion": if (self.circ_dv() < 10) or (_tp < self.period()): self.control.throttle = 0 self.mode = "Orbit" if self.circ_dv() > 500: time.sleep(.1) ui.gravity_turn(self.mode) ui.remove_ui() self.launch_final()
def launch(self): # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # L A U N C H # # P R O G R A M # # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# self.ap.engage() ui = UI() while self.mode == "Launch Prep": if self.control.get_action_group(9): self.mode = "Launch"; self.control.activate_next_stage() time.sleep(1) while self.mode != "Orbit": self.pitch_and_heading() if self.mode == "Launch": self.control.throttle = 1 _twr = self.twr_calc(self.thrust(), self.mass(), self.altitude(), self.radius_eq, self.mu) if _twr > 1: self.lAz_data = self.azimuth_init() self.control.activate_next_stage() self.mode = "Booster Stage" if self.mode == "Booster Stage": if (self.altitude() > 80000) and (self.falafels is True): self.control.activate_next_stage() self.falafels = False self.flameout("Upper Stage") if self.mode == "Upper Stage": if self.eng_status(self.get_active_engine(), "Status") == "Flame-Out!": self.control.throttle = 0 time.sleep(1.5) self.control.activate_next_stage() self.control.rcs = True self.mode = "Cruise" if self.mode == "Cruise": if self.time_to_burn(self.ETA_ap(), self.maneuver_burn_time(self.circ_dv())) < 5: self.ullage_rcs() self.mode = "Orbit Insertion" if self.mode == "Orbit Insertion": self.control.rcs = False if (self.circ_dv() < 10) or (self.orbital_period(self.parking_orbit_alt + self.radius_eq, self.mu) < self.period()): self.control.throttle = 0 self.mode = "Orbit" if self.circ_dv() > 500: time.sleep(.1) ui.gravity_turn(self.mode) self.control.rcs = True self.ap.disengage() self.control.sas = True time.sleep(2)