Jump to content

[0.25] Engine Ignitor (Workaround for some bugs V3.4.1: Aug.31)


HoneyFox

Recommended Posts

So, how's the ullage simulation going? I'm really interested in this feature. There were many interesting ways in which the problem was handled, and they'd add quite some depth to KSP.

I'm still gathering information about the ullage, and i want to know the "many interesting ways" you mentioned. Could you share that with us?

Currently what i know is: 1. ignite the upper stage when the first stage is still providing acceleration. 2. have specified ullage motors when separating stages. 3. use attitude motor (RCS thrusters i guess) to ullage the fuel. 4. roll rate brings centrifugal effect and results to ignition failure...

Also I'm evaluating whether the ullage simulation should be included in this mod. it is a interesting, complex but relatively small feature, i don't know how much effort it deserves.

Link to comment
Share on other sites

Well, pretty much the ones you mentioned, although there's also an idea with pressurizing the tanks, usually with nitrogen. Also, the attitude motor isn't necessarily RCS, on Proton 3rd stage, it had 4 small steering nozzles that ignited before the main and provided ullage. Also, you could pitch/yaw the rocket to use centrifugal effect to your advantage, though it'd probably be an emergency measure.

I think that it should be included. It presents a whole new set of challenges in designing the rockets, and would complement the igniter system greatly.

Link to comment
Share on other sites

Well, pretty much the ones you mentioned, although there's also an idea with pressurizing the tanks, usually with nitrogen. Also, the attitude motor isn't necessarily RCS, on Proton 3rd stage, it had 4 small steering nozzles that ignited before the main and provided ullage. Also, you could pitch/yaw the rocket to use centrifugal effect to your advantage, though it'd probably be an emergency measure.

I think that it should be included. It presents a whole new set of challenges in designing the rockets, and would complement the igniter system greatly.

One thing i don't understand is about the pressurizing. If we simply pressurize the tank in non-gravity environment, how can it make all liquid flow to the bottom part of the tank where usually the fuel inlet is located? Shouldn't these gas just create lots of bubbles in the liquid everywhere?

Plus, why not gaseous helium? I remember that its boiling point is lower than hygrogen ...

About the Proton's 3rd stage, (it seems like they also exist on Briz upper stage) how are these four small engines ignited? do they use the same type of fuel? how are the fuel pumped? perhaps by natural out-gas?

The ullage simulation is interesting and that's why i'm evaluating it. Hope that i can get a simple-but-not-crude design later.

Edited by HoneyFox
Link to comment
Share on other sites

It's not gas fed directly into the tank, it's gas fed into a bladder that expands from the top of the tank and pushes the fuel down, IIRC.

So that actually works more like a placeholder in the tank to keep the ullage space small enough when a lot of fuel has been used?

Thanks for the info. is this normally used on tanks of small size? i wonder how much the bladder can expand, or do they use multiple sets of bladders from top to bottom and expand one by one?

Link to comment
Share on other sites

To keep the ullage space as _big_ as possible, actually. You _want_ the propellants under pressure.

http://yarchive.net/space/rocket/restart.html looks really helpful.

I didn't RC: the bladder approach is apparently only workable for small rockets...but you can use those small rockets as ullage rockets for the big ones!

Link to comment
Share on other sites

To keep the ullage space as _big_ as possible, actually. You _want_ the propellants under pressure.

http://yarchive.net/space/rocket/restart.html looks really helpful.

I didn't RC: the bladder approach is apparently only workable for small rockets...but you can use those small rockets as ullage rockets for the big ones!

You take the space of bladder also into the ullage space? i thought that it was the space between the bladder and the liquid... Well...

Link to comment
Share on other sites

Alright, maybe this will help or just confuse matters, but here's what I could distill out of the ignition sequence for a few representative engines:

F-1 (Saturn V first stage)

Ground-based hydraulic systems start pumping LOX and RP-1 from the vehicle's tanks to the gas generator

A spark ignites pyrotechnics which ignite the mix in the gas generator

The gas generator powers the turbopumps, sending LOX into the thrust chamber and increasing RP-1 pressure. (RP-1 is still blocked by a valve).

RP-1 pressure bursts a membrane, releasing hypergol and a small flow of RP-1 into the thrust chamber causing ignition

Thrust chamber pressure sensors trigger the main RP-1 valve to open

Restarting totally impractical

RL10 (Saturn I 2nd stage, Delta IV 2nd stage)

Liquid H2 trickles into coolant pipes surrounding the thrust chamber to absorb ambient heat

The H2 changes phase causing expansion pressure that turns a turbopump and then exhausts the H2 in the thrust chamber

The turbopump brings Liquid H2 and LOX to the thrust chamber, and a spark plug causes ignition

Increasing heat increases the expansion pressure in the H2 coolant, speeding the propellant pump in a positive feedback loop

Capable of a large number of restarts, provided helium to purge the engine and to repressurize fuel tanks after pump shutdown

(In early versions water exhaust collected on the spark plug and froze after shutdown, preventing restart.)

(Can work with a variety of fuels and oxidizers unmodified, and throttle down to 1%, but the expander cycle doesn't scale to higher thrust.)

J-2 (Saturn V 2nd/3rd stages)

Pressurized helium drives gaseous H2 into the gas generator, starting the turbopump

The pump brings in LOX, ignited by a spark plug in the gas generator.

A spark plug provides ignition in the thrust chamber.

If restart will be required, the gaseous hydrogen tank must be refilled from liquid fuel H2 using engine power.

Restarts also required the engine to be purged with helium, and an ullage rocket to settle propellant.

Enough helium was carried for 3 starts.

AJ10 (Apollo SPS, Shuttle OMS)

Aerozine / N2O2 bipropellants are hypergolic driven by pressurized helium

Rated for 1000 restarts

Helium tanks are presumably sized to be able to fully evacuate the fuel reservoirs

Viking (Ariane 1-4 1st/2nd stage)

The hypergolic bipropellants ignite in the gas generator

The gas generator drives the turbopump, and the exhaust also pressurizes the fuel tanks

Can't find any restart info. Included here for being an example of hypergolic non-pressure fed.

Kestrel (Falcon 1 2nd stage)

Pressure fed LOX / RP-1

Hypergol injected in the thrust chamber for ignition allows a fixed number of restarts

Merlin (Falcon 9 1st/2nd stage)

The internet is clogged with SpaceX press releases so I can't find the exact ignition sequence

It's definitely a gas generator cycle turbopump

Ignition is provided by hypergol cartridges, the number of which determine the possible starts (2 on current models)

NK-33 (N1 1st stage, Antares 1st stage)

Uses a staged combustion cycle with turbopump and preburner

(Re)starting requires hypergol igniter in the preburner and solid fuel igniters in the turbopump and thrust chamber.

A fixed number of these igniters determines the number of restarts.

Prior to a restart the system also must be purged (assuming with helium)

(The RD-180 (Atlas V 1st stage) is quite similar, but bigger.)

Link to comment
Share on other sites

That's a nice bit of info. Could you find something for upper stages, though? Most of the stuff you listed is for 1st and 2nd stage engines, which usually perform one or (at most) two burns. For example, how did ullage work on Block D or Proton 3rd stage? Or Centaur, for that matter? I could never find that info.

BTW, I've found one more method for settling the propellant. On Ares V EDS, the cryogenic propellants boil off slowly while coasting in space. They're slowly vented through the nozzle, which provides the stage with a tiny bit of thrust, just enough to settle the remaining propellant. In KSP, this would probably also be a last resort

Link to comment
Share on other sites

Centaur uses RL10, which I believe also uses a pressure valve for ullage. That, J-2, and AJ10 are all upper stage engines.

What I couldn't find a clear answer about is why the RS-25 (SSME) can't or just hasn't been started anywhere but the pad. It uses spark plugs - no expendable igniters. Theories I've heard:

It's designed to start using the fuel's gravitation potential, so would need 1g of ullage.

Unspecified ground support equipment (hydraulics? helium tanks? computers?) would be heavy or hard to miniaturize.

It's just so complicated and delicate (2 preburners, 4 turbopumps, and LOX pressure management heat exchanges) its not trusted enough to fly without the opportunity to do a checkout on the pad.

Edited by rhoark
Link to comment
Share on other sites

Lots of info :)

though they look quite complex... and i don't think we need to simulate all these mechanism of engine's turbopump, gas generator, heat exchanger, etc.

Oh, and talking about a simple ullage simulation, i got a brief design.

I will use two sets of range to represent the gas (bubble) state in the tank. One for vertical position and another for radial range.

Vertical position: -1.0 ~ 1.0 represents the bottom to the top.

For a fuel tank of a rocket before lift-off, the vertical position will be 0.8~1.0 which means the bubble is at the top of the tank.

Vertical position will automatically tend to change to -0.9 ~ 0.9 to simulate the natural out-gas. it will tend to change to 0.8~1.0 when accelerating forward(gravity belongs to this case) and -1.0~-0.8 when accelerating backward. to -1.0~1.0 if side acceleration exists. to -0.1~0.1 when pitch/yaw rate exists. to -1.0~1.0 when roll rate exists.

Radial range: 0.0 ~ 1.0 represents the center to the tank wall.

For a fuel tank of a rocket before lift-off, the radial range will be 0.0 ~ 1.0.

Radial range will automatically tend to change to 0.0 ~ 0.9 to simulate the natural out-gas. it will tend to change to 0.0~1.0 when accelerating forward/backward (gravity belongs to this case). to 0.8~1.0 if side acceleration exists. to 0.0~1.0 when pitch/yaw rate exists. to 0.0~0.2 when roll rate exists.

The probability of a success fuel inlet will take both values into account.

to list a few:

if the lower bound of Vertical position >= -0.8 it will be successful because we have quite much amount of fuel at the bottom of the tank.

if the lower bound of Vertical position < -0.8, we need to check Radial range. If Radial range's lower bound >= 0.3, it will be successful because we have sufficient fuel near the inlet.

...

I don't know if this design can simulate most general cases... But it's simple enough to implement and test.

Link to comment
Share on other sites

Is Proton third stage hypergolic?

Yes, much like the first two. The second stage uses the first stage thrust for ullage control, but I haven't seen any clue as to what's used on 3rd stage.

I'd really like to know how LOX/RP-1 upper stage engines ignited. This seems to be the typical combination for Soviet upper stages such as Block D, Block G and Briz.

Link to comment
Share on other sites

Yes, much like the first two. The second stage uses the first stage thrust for ullage control, but I haven't seen any clue as to what's used on 3rd stage.

I'd really like to know how LOX/RP-1 upper stage engines ignited. This seems to be the typical combination for Soviet upper stages such as Block D, Block G and Briz.

Doesn't the 3rd stage (and also Briz) have four small nozzles that ignite before the main one for several seconds?

Link to comment
Share on other sites

I wouldn't suggest simulating all the pumps and so forth, but it gives an idea of what the limiting factors are in restarting different kinds of engines. Surveying all the options (and thinking of this in the context of Modular Fuels / Real Fuels), I think the examples can be reduced to gameplay pretty simply as a first pass:

H2/LOX engines need xenon to start

LiquidFuel/* engines need ignition cartridges

Hypergolic fuels don't need anything

Mainsail-class and larger engines should only start on the pad

After some thought, a continuous xenon requirement for pressure-fed engines can be regarded as abstracted away

Some further refinements to the first pass could be worthwhile though:

Orbital-class H2/LOX engines could have the option of an expander cycle, which compared to the default (turbopump) would reduce engine weight and make it exempt from any minimum throttle (if that gets implemented), but give it a slight throttle lag like jet engines.

Rather than 0-restart, the mainsail+ class could need hydraulic pressure for starting, provided by a new (and heavy) hydraulic pump part that you can bring with you or jettison as you choose.

Link to comment
Share on other sites

I wouldn't suggest simulating all the pumps and so forth, but it gives an idea of what the limiting factors are in restarting different kinds of engines. Surveying all the options (and thinking of this in the context of Modular Fuels / Real Fuels), I think the examples can be reduced to gameplay pretty simply as a first pass:

H2/LOX engines need xenon to start

LiquidFuel/* engines need ignition cartridges

Hypergolic fuels don't need anything

Mainsail-class and larger engines should only start on the pad

After some thought, a continuous xenon requirement for pressure-fed engines can be regarded as abstracted away

Some further refinements to the first pass could be worthwhile though:

Orbital-class H2/LOX engines could have the option of an expander cycle, which compared to the default (turbopump) would reduce engine weight and make it exempt from any minimum throttle (if that gets implemented), but give it a slight throttle lag like jet engines.

Rather than 0-restart, the mainsail+ class could need hydraulic pressure for starting, provided by a new (and heavy) hydraulic pump part that you can bring with you or jettison as you choose.

Lots of these features seem to be possible by Modular Fuel mod. They can modify ModuleEngines' parameter including fuel types (if we need to consume Xenon for pressurization) and responseTime (if we need to simulate a slow start) etc...

I will do some tests about the ullage some days later, it may be quite interesting in KSP actually. I should keep in mind that i need take some RCS fuel and RCS ports with me to test the ullage state values under different situations... and then get some tweaking of these coefficients.

And so i would like to know some more info, like how long time does ullage burns take in RL. Some of you have mentioned above that it will take several seconds, which is longer than i thought before... oh and i guess this is also affected by the length of the fuel tank, these bubbles will take more time to reach to the top of the tank if it's higher.

Edited by HoneyFox
Link to comment
Share on other sites

Hello everybody, so I decided today that I would give this plugin a try, it looks really cool.

However after seeing I would have to integrate code into all my parts, I went ahead and took the liberty of putting the code into a CFG file using ModuleManager's format, and then tweaked all the parameters to my liking, so I've decided to go ahead and post that here for anybody who is interested. Oh and I also added a "HypergolicFluid" to be used as a resource for starting up the engines, that's in there too.

(Keep in mind my CFG has all the engines requiring that "HypergolicFluid", so if you don't want that then just remove the resources folder and change the parameters inside EngineIgniter.CFG)

- Downloads -

Just extract into your GameData folder: EngineIgnitorConfigs (v4 + Part)

You'll also need to make sure ModuleManager.dll is in your GameData folder as well.

- Updates -

Version 1

- Wrote ModuleManager config file for Engine Ignitor

- Added "HypergolicFluid" resource used to ignite engines

Version 2

- Did some balancing to the HypergolicFluid stored and used by each engine type

- Changed LV-1 and LV-1R engines to use ElectricCharge as spark plugs, rather than using HypergolicFluid to ignite

- Added ElectricCharge storage to LV-1 and LV-1R engines

Version 3

- Changed the density of HypergolicFluid from 0.0025 to 0.005, it is now the same density as LiquidFuel

- Changed HypergolicFluid to be transferrable between parts with Alt+RMB

- Added a storage part for HypergolicFluid, it can hold 10 units

Version 4

- Changed ignitorType's from "type0" and "type1" to "External", "Internal_Small", "Internal_Medium", "Internal_Large", and "Electric"

- Changed all engines to have a limited number of Ignitions

- Removed HypergolicFluid requirement from NERVA for Ignition

Edited by CoriW
Link to comment
Share on other sites

Hello everybody, so I decided today that I would give this plugin a try, it looks really cool.

However after seeing I would have to integrate code into all my parts, I went ahead and took the liberty of putting the code into a CFG file using ModuleManager's format, and then tweaked all the parameters to my liking, so I've decided to go ahead and post that here for anybody who is interested. Oh and I also added a "HypergolicFluid" to be used as a resource for starting up the engines, that's in there too.

(Keep in mind my CFG has all the engines requiring that "HypergolicFluid", so if you don't want that then just remove the resources folder and change the parameters inside EngineIgniter.CFG)

Just extract into your GameData folder: EngineIgnitorConfigs.zip

You'll also need to make sure ModuleManager.dll is in your GameData folder as well.

Thanks a lot. I was trying to find some time to do such module manager cfg edit... but finally the debugging took all these time.

And two suggestions (though we can edit ourselves anyway):

1. we can still have some engines that are not ignited by hypergolic fuels, especially those engines with low thrust, normally used on probes, orbiters or small landers, etc... for these, you can consider using ElectricCharge as the ignitor resource to simulate a spark-plug. and that gives another usage of electricity.

2.
some of the biggest engines (like mainsail) can be set to only ignitable by external ignitors, which can be installed on launch clamps. This will give players some requirement of their ascend path/gravity turn.

EDIT: Ah, just saw that the external ignitor has been installed into the launch clamp. And also the Mainsail doesn't carry the hypergolic fuel itself, rendering it as an engine with no self-ignite capability.

EDIT2: Oh, i see the type1 for Mainsail. Well done. And generally speaking, most of engines in your config have quite a lot of hypergolic fuel for more than 20 ignitions. This seems a bit too simple, but i understand that it shouldn't be too tough for casual players.

Edited by HoneyFox
Link to comment
Share on other sites

Thanks a lot. I was trying to find some time to do such module manager cfg edit... but finally the debugging took all these time.

And two suggestions (though we can edit ourselves anyway):

1. we can still have some engines that are not ignited by hypergolic fuels, especially those engines with low thrust, normally used on probes, orbiters or small landers, etc... for these, you can consider using ElectricCharge as the ignitor resource to simulate a spark-plug. and that gives another usage of electricity.

2.
some of the biggest engines (like mainsail) can be set to only ignitable by external ignitors, which can be installed on launch clamps. This will give players some requirement of their ascend path/gravity turn.

EDIT: Ah, just saw that the external ignitor has been installed into the launch clamp. And also the Mainsail doesn't carry the hypergolic fuel itself, rendering it as an engine with no self-ignite capability.

EDIT2: Oh, i see the type1 for Mainsail. Well done. And generally speaking, most of engines in your config have quite a lot of hypergolic fuel for more than 20 ignitions. This seems a bit too simple, but i understand that it shouldn't be too tough for casual players.

Alright so as for (1), I've removed the HypergolicFuel usage from the LV-1 and LV-1R engines, and replaced the usage with ElectricCharge, also added ElectricCharge storage to the engines as well. I have increased the amount of HypergolicFuel used by most of the engines, thus reducing the number of times each engine can ignite. (And with that being said, I've edited my above post to include v2 of the CFG file.)

Link to comment
Share on other sites

Alright so as for (1), I've removed the HypergolicFuel usage from the LV-1 and LV-1R engines, and replaced the usage with ElectricCharge, also added ElectricCharge storage to the engines as well. I have increased the amount of HypergolicFuel used by most of the engines, thus reducing the number of times each engine can ignite. (And with that being said, I've edited my above post to include v2 of the CFG file.)

Nice. I will try that. And later I will release my own cfg for NovaPunch engines. For some other major mods: KW, AIES... are you planning to write configs for any of them?

Link to comment
Share on other sites

Nice. I will try that. And later I will release my own cfg for NovaPunch engines. For some other major mods: KW, AIES... are you planning to write configs for any of them?

Well honestly I would, but unfortunately I don't use any of those part packs so I wouldn't really even know where to begin with assigning numbers to those engines.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...