Feature Request: Support ModuleEngines Thrust Curves
DRVeyl opened this issue ยท 6 comments
Ref: KSP-RO/RealismOverhaul#2607
Don't know how much of a pain this is in the analyzers / fuel flow simulation, which I think you're also rewriting. Recording here rather than leaving it just in RO where we definitely can't do anything about it.
Short form: SRBs (or engines in general) with thrust curves are not accounted in the MJ dV predictions. For some parts, the burn time will end up significantly off. I am not sure if the dV calc also is.
So the current behavior is apparently that it picks the thrust off of the initial time of the thrust curve, so engines that have a thrust-curve-spoolup-time will be greatly off in their thrust.
There is a new MaxThrust field added in #1535 / #1536 which is useful for PVG to get decent enough estimates to get to orbit. This is an overestimate of thrust, but that means PVG will converge better, and the inaccuracies are already generally swamped by things like atmosphere effects.
Now the issue is what gets reported to the user where burntime, SLT and TWR values are going to be nutty for things like Castor 30XL.
And the way that it seems to somehow pick the first thrust curve value rather than average it or anything else more moderately useful is probably about the worst thing it could do, but its likely buried under the PartExtension methods dealing with the FuelFlowRate. Just being able to grab the average thrust value somehow would be useful (ideally not through integrating the thrust curve for every engine with a thrust curve, every tick?). A complication might be where the engine burns across multiple KSP stages so that the thrust curve needs to be integrated separately in phases to arrive at average thrust values per delta V segment.
I don't know enough about the ModuleEngines / ModuleEnginesRF API to know exactly the best way to do that right now.
That is orthogonal to this and NK i think has already addressed that with the lead time / spool up time changes. AFAIK, nukes don't have thrust curves, they have exceedingly long spool up.
(that isn't something i'm working on or particularly have any time to care about though)
@lamont-granquist started playing Kerbal again after a few months, and ran into this situation; particularly with the Nerv engines getting tweaked by some other mod. One workaround to this situation could be an extra field to the maneuvering, that would let you set extra burn time.
So MJ now just really ignores thrust curves, so the burntime will always be a bit short. The dV/ISP should be fine. The thrust will always report as nominal.
Fixing this would require something like having a reverse-integrated curve that would produce a fudge-factor to multiply the remaining burntime by.
I'm not clear that this is even useful for things that dribble like Shuttle SRBs.
I'm definitely not coding that up, it probably does need to live in RF.