added orbit correction + mqx q throttle moderation
This commit is contained in:
@@ -174,6 +174,75 @@ function CalculateMultiStageBurnDuration{
|
||||
}
|
||||
}
|
||||
|
||||
function CalculateMultiStageBurnDurationV2{
|
||||
parameter dv.
|
||||
if ship:STAGEDELTAV(ship:stagenum):current >= dv {
|
||||
return CalculateBurnDuration(dv, GetIsp(), ship:mass, GetMaxMassFlow()).
|
||||
}else{
|
||||
local bT is 0.
|
||||
local remDv is dv.
|
||||
from {local s is ship:stagenum. } until s = -1 step { set s to s-1.} do {
|
||||
if remDv <= 0 {
|
||||
return bT.
|
||||
}
|
||||
local cdv is ship:stagedeltav(s):current.
|
||||
local cmass is GetMassOfStage(s).
|
||||
local cflow is GetMaxMassFlowForStage(s).
|
||||
local cisp is GetIspForStage(s).
|
||||
local sdv is 0.
|
||||
if cdv >= remDv {
|
||||
set sdv to remDv.
|
||||
}else{
|
||||
set sdv to cdv.
|
||||
}
|
||||
set bT to bT + CalculateBurnDuration(sdv, cisp, cmass, cflow).
|
||||
set remDv to remDv - cdv.
|
||||
}
|
||||
return bT.
|
||||
}
|
||||
}
|
||||
|
||||
function GetPerStageBurnData{
|
||||
parameter pressure is 0.
|
||||
local data is list().
|
||||
local i is 0.
|
||||
until i >= ship:stagenum {
|
||||
data:add(lex()).
|
||||
set data[i]["dv"] to ship:stagedeltav(i):current.
|
||||
set i to i + 1.
|
||||
}
|
||||
LIST PARTS IN allP.
|
||||
for p in allP {
|
||||
IF p:ISTYPE("Engine")
|
||||
{
|
||||
local t is p:POSSIBLETHRUSTAT(pressure).
|
||||
if data[p:stage]:haskey("thrust") {
|
||||
set t to t + data[p:stage]["thrust"].
|
||||
}
|
||||
set data[p:stage]["thrust"] to t.
|
||||
}
|
||||
if p:DECOUPLEDIN < p:stage or p:DECOUPLEDIN = p:stage {
|
||||
local m is p:mass.
|
||||
print "s: " + p:stage + " d: " + p:DECOUPLEDIN + " n: " + p:name.
|
||||
local s is max(0, p:stage).
|
||||
if data[s]:haskey("mass") {
|
||||
set m to m + data[s]["mass"].
|
||||
}
|
||||
set data[s]["mass"] to m.
|
||||
}
|
||||
}
|
||||
set i to 0.
|
||||
until i >= ship:stagenum {
|
||||
if i = 0 {
|
||||
set data[i]["totalMass"] to data[i]["mass"].
|
||||
} else {
|
||||
set data[i]["totalMass"] to data[i]["mass"] + data[i - 1]["totalMass"].
|
||||
}
|
||||
set i to i+1.
|
||||
}
|
||||
return data.
|
||||
}
|
||||
|
||||
function GetThrustOfStage {
|
||||
parameter st, p is 0.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user