Beispiel #1
0
        void DriveVerticalAscent(FlightCtrlState s)
        {
            if (vesselState.altitudeASL > ascentPath.VerticalAscentEnd())
            {
                mode = AscentMode.GRAVITY_TURN;
            }
            if (autoThrottle && orbit.ApA > desiredOrbitAltitude)
            {
                mode = AscentMode.COAST_TO_APOAPSIS;
            }

            //during the vertical ascent we just thrust straight up at max throttle
            core.attitude.attitudeTo(Vector3d.up, AttitudeReference.SURFACE_NORTH, this);
            if (autoThrottle)
            {
                core.thrust.targetThrottle = 1.0F;
            }

            if (!vessel.LiftedOff())
            {
                status = "Awaiting liftoff";
            }
            else
            {
                status = "Vertical ascent";
            }
        }
        void DriveVerticalAscent(FlightCtrlState s)
        {
            if (vesselState.altitudeASL > ascentPath.VerticalAscentEnd())
            {
                mode = AscentMode.GRAVITY_TURN;
            }
            if (autoThrottle && orbit.ApA > desiredOrbitAltitude)
            {
                mode = AscentMode.COAST_TO_APOAPSIS;
            }

            //during the vertical ascent we just thrust straight up at max throttle
            if (forceRoll && vesselState.altitudeTrue > 50)
            { // pre-align roll unless correctiveSteering is active as it would just interfere with that
                core.attitude.attitudeTo(90 - desiredInclination, 90, verticalRoll, this);
            }
            else
            {
                core.attitude.attitudeTo(Vector3d.up, AttitudeReference.SURFACE_NORTH, this);
            }
            if (autoThrottle)
            {
                core.thrust.targetThrottle = 1.0F;
            }

            if (!vessel.LiftedOff())
            {
                status = "Awaiting liftoff";
            }
            else
            {
                status = "Vertical ascent";
            }
        }