as i was working through making my Haworth MPEV and launcher, i decided to make the launcher a custom DLL craft, similar to the stock atlantis launch solution
but, after working some numbers, i found that the only way to prevent unbearable acceleration, the engines will have to be controlled. now, i can work out what the maximum force SHOULD be, using simple F=MA, so i can calculate a maximum force that the engine should produce, whilst keeping acceleration below a maximum of ~25m/s/s
currently, the third stage will produce 8m/s/s acceleration upon ignition, but this will increase to just over 25m/s/s acceleration at the end of TLI. my second stage accelerations range from 10m/s/s to 33m/s/s (unacceptable IMHO) and the first stage will range from 14m/s/s (with boosters for liftoff) to 40m/s/s upon separation.
ideally, each stage's maximum acceleration should be between 2g and 2.5g for all stages, to relieve the crew of stupidly high accelerations. and 2G is plenty for a multistage rocket to get up to orbit.
the problem is, i need a way to cap the engine force.
starting with 2nd and 3rd stages:
when the maximum force would push acceleration above 2g, i would then change the definition of engine max thrust, to a variable souce, where the force is calculated by multiplying the vessel mass (obtained through API) by 20, so essentially, the engines are automatically damped to save the crew from G forces
i THINK i could acieve this by coding something like this:
it will need to be "Translated" into C++ first obviously, but will that general string work? and if not, how do i make it work?
once i can get this one working, i can get the other stages limited using similar code, by checking the vessel StageStatus (where 0=1st stage with boosters, 1=1st stage after booster sep, 2=2nd stage, 3=third stage, 4=payload jetissoned) to make sure that the correct thrust limitation is used, so each of the thrust limitations will be embedded inside:
obviously, its a little messy, and hard to grasp for a first time C++ coder, but i think its worth the challenge
thanks guys, perhaps ill have more questions later... ok, i probably will... ok, i DEFINATLEY will
later
but, after working some numbers, i found that the only way to prevent unbearable acceleration, the engines will have to be controlled. now, i can work out what the maximum force SHOULD be, using simple F=MA, so i can calculate a maximum force that the engine should produce, whilst keeping acceleration below a maximum of ~25m/s/s
currently, the third stage will produce 8m/s/s acceleration upon ignition, but this will increase to just over 25m/s/s acceleration at the end of TLI. my second stage accelerations range from 10m/s/s to 33m/s/s (unacceptable IMHO) and the first stage will range from 14m/s/s (with boosters for liftoff) to 40m/s/s upon separation.
ideally, each stage's maximum acceleration should be between 2g and 2.5g for all stages, to relieve the crew of stupidly high accelerations. and 2G is plenty for a multistage rocket to get up to orbit.
the problem is, i need a way to cap the engine force.
starting with 2nd and 3rd stages:
when the maximum force would push acceleration above 2g, i would then change the definition of engine max thrust, to a variable souce, where the force is calculated by multiplying the vessel mass (obtained through API) by 20, so essentially, the engines are automatically damped to save the crew from G forces
i THINK i could acieve this by coding something like this:
Code:
if
(MaxEngineForce/VesselMass) > 20 // a=F/m a should always be less than 20
LimitedEngineForce= VesselMass*20 //calculate engine force required to give required acceleration
MaxEngineForce=LimitedEngineForce //swap MAXengine thrust for LIMITED engine thrust defined in the last line
else
return // not sure if this is necessary, but i guess it is
it will need to be "Translated" into C++ first obviously, but will that general string work? and if not, how do i make it work?
once i can get this one working, i can get the other stages limited using similar code, by checking the vessel StageStatus (where 0=1st stage with boosters, 1=1st stage after booster sep, 2=2nd stage, 3=third stage, 4=payload jetissoned) to make sure that the correct thrust limitation is used, so each of the thrust limitations will be embedded inside:
Code:
if
StageStatus=0
[limitation code for this stage]
else
stageStatus=1
[Limitation for 1st stage alone]
(ETC...)
obviously, its a little messy, and hard to grasp for a first time C++ coder, but i think its worth the challenge
thanks guys, perhaps ill have more questions later... ok, i probably will... ok, i DEFINATLEY will
later