Improve launch sequence, add some control buttons to rocket program.

This commit is contained in:
2021-09-13 23:51:18 -04:00
parent 9b034aaa1a
commit 6830f23613
4 changed files with 88 additions and 19 deletions

View File

@ -30,14 +30,12 @@ function pitchProgram {
function Launch {
parameter apoapsisTarget is 80000.
parameter atmoTWR is 2.0.
// parameter leadAngle is 2.
parameter minPitch is 5.
parameter initialPitch is 20.
parameter pitchTime is 30.
parameter kickAngle is 20.
parameter kickTime is 30.
parameter kickStart is 100.
parameter autoStage is true.
NoFuelResources(true).
// Configure subsystems.
RCS off.
SAS off.
@ -72,17 +70,18 @@ function Launch {
}
}
print "Phase 1: Vertical Ascent.".
lock THROTTLE to 1.0.
lock STEERING to Heading(90,90,270).
NoFuelResources(true).
PreLaunchCrossfeed(false).
stage.
wait until SHIP:VERTICALSPEED > 100.
wait until SHIP:VERTICALSPEED > kickStart.
print "Phase 2: Initial Pitch.".
local startTime is TIME:SECONDS.
lock STEERING to pitchProgram(initialPitch, pitchTime, startTime).
wait pitchTime.
lock STEERING to pitchProgram(kickAngle, kickTime, startTime).
wait kickTime.
print "Phase 3: Stable Prograde Boost.".
lock STEERING to getClampedDir(minPitch).

View File

@ -33,3 +33,20 @@ function NoFuelResources {
}
}
}
function PreLaunchCrossfeed {
parameter enable is true.
local eventName is "Disable Crossfeed".
if enable {
set eventName to "Enable Crossfeed".
}
for part in SHIP:PartsTagged("prelaunch") {
if part:MODULES:Find("ModuleToggleCrossfeed") = -1 {
print "Prelaunch part does not have crossfeed module. skipping.".
} else if part:GetModule("ModuleToggleCrossfeed"):ALLEVENTNAMES:Find(eventName) > -1 {
part:GetModule("ModuleToggleCrossfeed"):DoEvent(eventName).
}
}
}