Ejemplo n.º 1
0
    def transfer(self):
        # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
        #             H O H M A N N              #
        #            T R A N S F E R             #
        # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

        self.control.rcs = False
        self.control.throttle = 0
        time.sleep(1)
        self.ap.reference_frame = self.vessel.orbital_reference_frame
        self.ap.target_direction = (0, 1, 0)
        self.ap.engage()
        print(self.mode)
        ui = UI()

        while self.mode != "Xfered":

            if self.mode == "LEO":
                _hoh_xfer_dv = self.transfer_injection_dv(self.mu, self.semi_major_axis(), self.target_orbit_radius)
                _time_to_burn = self.time_to_burn(self.ETA_pe(), self.maneuver_burn_time(_hoh_xfer_dv))

                if _time_to_burn > 120: self.KSC.warp_to(self.ut() + _time_to_burn - 90)
                elif _time_to_burn > 34: self.fix_aoa(_time_to_burn, self.maneuver_burn_time(_hoh_xfer_dv))
                elif _time_to_burn < 5: self.ullage_rcs(); self.mode = "Xfer Burn"

            if self.mode == "Xfer Burn":
                self.control.rcs = False
                if self.apoapsis_radius() > self.target_orbit_radius:
                    self.control.throttle = 0
                    time.sleep(1)
                    self.mode = "Xfer Cruise"

            if self.mode == "Xfer Cruise":
                _time_to_burn = self.time_to_burn(self.ETA_ap(), self.maneuver_burn_time(self.circ_dv()))

                if _time_to_burn > 120: self.KSC.warp_to(self.ut() + _time_to_burn - 90)
                elif _time_to_burn > 34: self.fix_aoa(_time_to_burn, self.maneuver_burn_time(self.circ_dv()))
                elif _time_to_burn < 5:
                    self.ullage_rcs()
                    self.mode = "Final Burn"

            if self.mode == "Final Burn":
                self.control.rcs = False
                if (self.circ_dv() < 10) or (self.orbital_period(self.target_orbit_radius, self.mu) < self.period()):
                    self.control.throttle = 0
                    time.sleep(1)
                    self.mode = "Xfered"

            time.sleep(.05)
            ui.transfer(self.mode)

        print("Done")
Ejemplo n.º 2
0
    def transfer(self):
        # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
        #               L U N A R                #
        #            T R A N S F E R             #
        # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

        self.xfer_setup()
        self.KSC.warp_to(self.ut() + self.injection_ETA() - 240)
        ui = UI()

        while self.injection_ETA() > 140:
            ui.transfer(self.mode)
            time.sleep(1)

        self.ullage_rcs()
        self.control.throttle = 1

        while self.apoapsis_radius() < 400000000:
            if self.eng_status(self.get_active_engine(), "Status") == "Flame-Out!": self.stage()
            time.sleep(.1)
            ui.transfer(self.mode)

        self.control.throttle = 0