Jump to content

Overhauled Intake Air, solving airhogging and asymmetric flamout with one stone


Recommended Posts

A suggestion of mine that should deal with problems like asymmetric flameout and airhogging.

1.) Intakes should be directly assigned to air-breathing engines. What this means is that whatever air an intake takes in goes directly to its assigned engine. Unassigned intakes remain closed. Engines without operational intakes assigned to them consume fuel uselessly.

1a.) Intakes placed using Symmetry act as one. What this means is their engine assignment applies to every single one of these symmetrical intakes.

1b.) Engines placed using Symmetry draw from the same intakes. An intake assigned to an engine placed with Symmetry enabled will feed all the engines equally. Emphasis on equally.

1c.) The "Combo Rule": 1a and 1b can combine, meaning Symmetry intakes take in air as one to feed Symmetry engines equally. Example: 3x symmetry intakes feeding 2x symmetry engines.

1d.) There is no limit to the number of engine assignments on an intake. It will feed all currently operating assigned engines equally.

1e.) There is no limit to the number of intakes assigned to one engine. Engines will draw intake air equally from all operational assigned intakes.

1f.) Assignments may be enabled and disabled in-flight through action groups.

2.) There is no more "storing" of intake air. Once the total amount needed for a particular intake is calculated, the intake will only draw that amount of air, up to the maximum it is capable of drawing for the craft's airspeed and altitude.

2a.) If the amount an intake must provide at any given time exceeds the maximum capable intake air, engines will automatically attempt to draw the remaining required amount equally from its other assigned intakes. If this fails to satisfy intake air requirements, RAPIERs and Jet engines will begin to run rich, losing thrust and Isp until they flame out entirely.

2b.) Once a RAPIER reaches a certain amount of intake air deficit, it will automatically stop using intake air entirely and switch to fuel/oxidizer operation. This margin can be adjusted in the Tweakables during construction or by right-click inflight. This switch can also be performed manually through right click or action group. RAPIERs are incapable of operating with intake air and oxidizer simultaneously.

2c.) The aerodynamic drag produced by an intake varies proportionally to the amount of air being let in.

3.) Performance curves for intakes vary. The amount of intake air a scoop can provide is a function of intake area, airspeed, atmospheric pressure, and angle of attack. Some intakes may have large area, others may perform well supersonically or even hypersonically, and still others may be able to scoop across a wider angle of attack range.

4.) The same intake rules apply should atmospheres of Propellium, and Propellium-breathing engines, be implemented. (On a side note, Eve should have a Propellium atmosphere. And a moon of the upcoming Gas Giant #2.)

Link to comment
Share on other sites

In my opinion your complex proposal solves neither of problems it is supposed to solve. Or you need to define what you understand under airhogging as common understanding of that word is using way too many intakes. Your proposal does not seem to be putting any limits on that.

Regarding asymmetric flameout, it breaks up as soon as you start talking about symmetry placement. If you build a plane with two intakes placed in symmetry, and two engines placed in symmetry, you get exactly the situation you propose - and you will get asymmetric flameout. Assigning intakes to engines one by one regardless on their symmetry would have chance to provide solution, this way it is not really better than present, except for added complexity.

I agree that the asymmetric flameout problem should be solved but it needs some "under the hood" changes, not really added complexity in designing the plane. And I agree with you that any excess intake air after processing intakes and engines "the new way" should be dumped, not stored. Current intake air storage is kind of hack, allowing intakes to carry the air to the next frame in case they were placed after engines.

Link to comment
Share on other sites

The problem with airhogging, in any form, is not that you can add an infinite number of intakes without any problems.

The problem is that jet engines do not vary in thrust with ambient air density. In the real world, a jet engine's compressor can only process so much volumetric flow; this causes airflow through the engine to be capped at some multiple of the ambient air density, and since thrust is proportional to mass flow through the engine, that causes thrust to reduce as the engine goes higher up.

The problem is not solved effectively by setting new rules on intake air usage. It would better be solved by developing a new jet engine module that could only process a certain amount of volumetric flow, and intakes set up to provide a certain amount of volumetric flow. If the intakes don't provide the volumetric flow requested by the engines, thrust decreases. If the intakes provide more than the engines can process, add more drag. Problem solved simply, efficiently, logically, and realistically.

Link to comment
Share on other sites

If the intakes provide more than the engines can process, add more drag. Problem solved simply, efficiently, logically, and realistically.

I agree with this! especially adding more drag for excess redundant intakes.

I would also make it so intakes can be obstructed and give a warning to the player on the UI to show this happening. add "air intake keep clear" to the part description and texture.

Also think that air flow through the craft should be handled the same way as fuel flow. some parts would have an 'air passable' value and some not. Add an intake air duct part that behaves similar to a fuel line. connect up intakes to engines and smile.

It wouldn't be too difficult for people to adapt to this system. everyone already knows how fuel lines work. also add some simple visual indicators in the staging list to show if an engine is being starved of air.

maybe even put the individual intakes in the staging list and open them with [space]?

Edited by Capt Snuggler
Link to comment
Share on other sites

The problem with airhogging, in any form, is not that you can add an infinite number of intakes without any problems.

The problem is that jet engines do not vary in thrust with ambient air density. In the real world, a jet engine's compressor can only process so much volumetric flow; this causes airflow through the engine to be capped at some multiple of the ambient air density, and since thrust is proportional to mass flow through the engine, that causes thrust to reduce as the engine goes higher up.

The problem is not solved effectively by setting new rules on intake air usage. It would better be solved by developing a new jet engine module that could only process a certain amount of volumetric flow, and intakes set up to provide a certain amount of volumetric flow. If the intakes don't provide the volumetric flow requested by the engines, thrust decreases. If the intakes provide more than the engines can process, add more drag. Problem solved simply, efficiently, logically, and realistically.

Yea I have suggested the same thing many times and unlike what some think it should be fairly easy for a programmer to set it up I believe.

Link to comment
Share on other sites

I'm still missing clear definition what is air hogging and why should we solve it.

The only thing I would do with intakes is the same kind of restriction that is applied to engines - i.e. if there is a part within certain distance ahead of the intake, it produces no air.

Besides that, it's only about making SSTOs harder to build and/or control during ascent. And I think that's matter of opinion whether we really need that.

Link to comment
Share on other sites

A suggestion of mine that should deal with problems like asymmetric flameout and airhogging.

1.) Intakes should be directly assigned to air-breathing engines. What this means is that whatever air an intake takes in goes directly to its assigned engine. Unassigned intakes remain closed. Engines without operational intakes assigned to them consume fuel uselessly.

1a.) Intakes placed using Symmetry act as one. What this means is their engine assignment applies to every single one of these symmetrical intakes.

1b.) Engines placed using Symmetry draw from the same intakes. An intake assigned to an engine placed with Symmetry enabled will feed all the engines equally. Emphasis on equally.

1c.) The "Combo Rule": 1a and 1b can combine, meaning Symmetry intakes take in air as one to feed Symmetry engines equally. Example: 3x symmetry intakes feeding 2x symmetry engines.

1d.) There is no limit to the number of engine assignments on an intake. It will feed all currently operating assigned engines equally.

1e.) There is no limit to the number of intakes assigned to one engine. Engines will draw intake air equally from all operational assigned intakes.

1f.) Assignments may be enabled and disabled in-flight through action groups.

2.) There is no more "storing" of intake air. Once the total amount needed for a particular intake is calculated, the intake will only draw that amount of air, up to the maximum it is capable of drawing for the craft's airspeed and altitude.

2a.) If the amount an intake must provide at any given time exceeds the maximum capable intake air, engines will automatically attempt to draw the remaining required amount equally from its other assigned intakes. If this fails to satisfy intake air requirements, RAPIERs and Jet engines will begin to run rich, losing thrust and Isp until they flame out entirely.

2b.) Once a RAPIER reaches a certain amount of intake air deficit, it will automatically stop using intake air entirely and switch to fuel/oxidizer operation. This margin can be adjusted in the Tweakables during construction or by right-click inflight. This switch can also be performed manually through right click or action group. RAPIERs are incapable of operating with intake air and oxidizer simultaneously.

2c.) The aerodynamic drag produced by an intake varies proportionally to the amount of air being let in.

3.) Performance curves for intakes vary. The amount of intake air a scoop can provide is a function of intake area, airspeed, atmospheric pressure, and angle of attack. Some intakes may have large area, others may perform well supersonically or even hypersonically, and still others may be able to scoop across a wider angle of attack range.

4.) The same intake rules apply should atmospheres of Propellium, and Propellium-breathing engines, be implemented. (On a side note, Eve should have a Propellium atmosphere. And a moon of the upcoming Gas Giant #2.)

I'm confused. Why go through all the trouble to determine which air intake is feeding an engine, when you can just always split the air between all active engines (using their thrust limiters as weights, if needed)? Doesnt that solve the problem as well? Or am i missing something?

Link to comment
Share on other sites

There is one much better solution.

Up the ram intakes air to 8 times it's present (0.08) and it's mass to 40 times its present (0.4).

No need to stack intakes, and much increased drag. Also adding 0.4 mass per intake makes adding just 4 intakes increases the craft mass by 1.6. Not the kind of mass you add unless the payoff in SSTO use is worthwhile. This approach also requires no new coding.

Link to comment
Share on other sites

I'm still missing clear definition what is air hogging and why should we solve it.

Airhogging is exploiting the current intakeAir / jet-engines-that-aren't-really-jets model to produce thrust at altitude that is far beyond what should be possible there. A jet engine can only produce the same thrust at sea level and at an altitude where the pressure is nearly 1/10 that of sea level if, and only if one of these two conditions is met:

1) The engine only runs at 1/10 throttle at SL.

2) The engine magically grows to 10 times the diameter (somehow) as altitude increases.

Obviously, for truly space-skimming designs, this would result in engines either running at ridiculously low effective throttles on the runway or growing ginormously as the plane gains altitude. Needless to say, jet engines do not work that way.

Besides that, it's only about making SSTOs harder to build and/or control during ascent. And I think that's matter of opinion whether we really need that.

There are quite a few situations where jet engines are currently overpowered in this game, to the point of why would you use anything else for boosting your first stage of a rocket:

1) Thrust does not decrease with ambient air density in a logical way.

2) TWR is much higher than it should be, given that jet engines should have TWRs lower than rocket engines, not higher, as it is currently in KSP.

3) Engines are ~16 times as efficient as their Isp reports, since the true definition for Isp only considers total mass flow out of the vehicle (which excludes intake air, since equal amounts enter and leave, cancelling out), but KSP counts that intake air mass flow in the calculation when it shouldn't.

4) One jet engine is not capable of running at both Mach 0 and Mach 7 like the stock turbojet is. It's a joke.

The state of jet engines currently is that not only are they completely and utterly broken, but they don't even act like jet engines. It's sad that SSTOs are so much easier to build than simple rockets, because all you need to do is stick on a single tank of LF and you have enough dV to put a decent payload nearly into orbit with a turbojet.

I don't think it's too much to ask that turbojets not be "achieve orbit on nearly no fuel" engines.

Link to comment
Share on other sites

Airhogging is exploiting the current intakeAir / jet-engines-that-aren't-really-jets model to produce thrust at altitude that is far beyond what should be possible there.

I can't accept that as definition of airhogging as, besides the fact that it is vague, it is also not something that can be avoided by design of your plane. By your definition, you're airhogging as soon as you exceed some 20 km altitude with any plane. That's AFAIK not how the term 'airhogging' is commonly understood.

There are quite a few situations where jet engines are currently overpowered in this game, to the point of why would you use anything else for boosting your first stage of a rocket

I definitely agree with you that Jet engines are overpowered in all aspects you mention. The questions are, is it less or more fun this way? Does it need fixing? And that's the point where opinions may vary.

Link to comment
Share on other sites

I can't accept that as definition of airhogging as, besides the fact that it is vague, it is also not something that can be avoided by design of your plane. By your definition, you're airhogging as soon as you exceed some 20 km altitude with any plane. That's AFAIK not how the term 'airhogging' is commonly understood.

It's quite clear and simple: is the ratio of the thrust that this engine produces at altitude compared to that at sea level greater than it should produce in real life? If so, it's airhogging. You'll note that this ends up meaning that any flight above SL is airhogging to one degree or another under this definition, but the lack of variation of thrust with altitude is the root cause of airhogging.

I definitely agree with you that Jet engines are overpowered in all aspects you mention. The questions are, is it less or more fun this way? Does it need fixing? And that's the point where opinions may vary.

IMO, it is only fun in the way that turning on infinite fuel and slapping a mainsail under something is fun. There is no challenge, no design considerations, nothing to make using plain rocket engines favorable in comparison to jets. It's the "fun" of defeating all the previous challenges all at once by changing the rules so that they aren't challenges anymore, and once that novelty wears off... it's not fun anymore.

And besides that, there is the issue that the GUI lies to the player about the engine's efficiency. You can argue that the engines should be as broken as they are, but at least show everyone how broken they are and stop the GUI from lying about it.

Link to comment
Share on other sites

It's quite clear and simple: is the ratio of the thrust that this engine produces at altitude compared to that at sea level greater than it should produce in real life? If so, it's airhogging. You'll note that this ends up meaning that any flight above SL is airhogging to one degree or another under this definition, but the lack of variation of thrust with altitude is the root cause of airhogging.

Let me look at it from the practical end: every once in a while a challenge is posted aimed at building a spaceplane with a "no airhogging" clause in its rules. Now, the question is what does that mean.

By your definition and in your words, any spaceplane flying above sea level is airhogging. That's not very useful definition for such purpose as it would render any such challenge moot.

There is no clear definition of airhogging in the sense in which it is commonly used.

As I wrote before, opinions on what is fun vary. I am somewhat bothered by minute amounts of fuel needed to transport serious mass to orbit using jets. I am seriously bothered by the fact that intakes deliver air even if they're hidden inside the plane behind all kinds of other parts. But I am not bothered at all by the fact that my planes can fly at 40 km altitude on full throttle if I build them right. I consider it fun.

Link to comment
Share on other sites

Let me look at it from the practical end: every once in a while a challenge is posted aimed at building a spaceplane with a "no airhogging" clause in its rules. Now, the question is what does that mean.

By your definition and in your words, any spaceplane flying above sea level is airhogging. That's not very useful definition for such purpose as it would render any such challenge moot.

There is no clear definition of airhogging in the sense in which it is commonly used.

Aye, that's why I don't like that definition, and instead have mine. Mine is solid, clear and presents an obvious solution to fixing it (make jets have thrust vary with ambient air density as they should); the common one is highly subjective and is thus pointless. We're not in disagreement there.

As I wrote before, opinions on what is fun vary. I am somewhat bothered by minute amounts of fuel needed to transport serious mass to orbit using jets. I am seriously bothered by the fact that intakes deliver air even if they're hidden inside the plane behind all kinds of other parts. But I am not bothered at all by the fact that my planes can fly at 40 km altitude on full throttle if I build them right. I consider it fun.

You make it sound like you'd be incapable of building a plane that could fly at the edge of the atmosphere. Sure, you could build one with properly-behaving jets, but it would require designing to a lowest mass, lowest drag optimum rather than a "more intakes, more intakes, more intakes, more intakes" solution. And from my experience, trying to optimize something like that is certainly more fun than figuring out exactly where you can stick another bunch of intakes for a single jet engine.

Oh, btw, did you know that once you account for the different scale heights between Earth and Kerbin that you're talking about flying at 60 km? Now granted, this is a good 1.5x the current jet-propulsion altitude record, but it's certainly possible to sustain flight there, though it'd be difficult and require fairly massive engines for the plane to produce enough thrust. So even for what you want to do, it's still doable with those changes. Just different.

Link to comment
Share on other sites

I've always and never until now questioned what air hogging means. It means adding 12-20 ram air intakes PER engine (jet or Saber) to a craft. It is called air hogging because you are hogging all the air. The definition that it is jet engines above a certain high makes no sense with the name like air hogging. It would only be relevant in the most basic sense of hogging the sky and could be used to describe a 2000 part rocket hogging the sky.

The jet engines defiantly fly too high though.

I have wondered if the thrust to atmo curves do not work quite right. I have played around with 4 point atmo curves and could never get them to follow the patten stated. 1500 at 1, 2000 at 0.5 0at 0 would seen to work fine BUT add in a 100 at 0.1 and it or one other point would be inaccurate. I wounder if the thrust curves only allow for one curve and try to fit all point in that curve rather than allowing bumps or multiple curves. If I'm right (which I am not sure of) this means that although the engines thrust is accurate for 0 and half atmo at the top of the sky the thrust is too strong and can't be fixed unless ground or 0.5 atmo thrust is changed. It's a difficult bug to track (if it exists) and would explain the high altitude engines no matter how many thrust limitations you add.

Link to comment
Share on other sites

You make it sound like you'd be incapable ...

I would really appreciate if you just accepted the fact that my opinion differs from yours instead of trying to talk me into changing it.

It's a difficult bug to track

It is not a bug if it works as intended and using it the way it was intended to be used is not an exploit. Unrealistic, simplified implementation is not a bug.

A few examples:

Decouplers stopping in midair are a bug.

Principles on which ladder or Kraken drives are based are not bugs, these quirks were added intentionally to the game but were not meant to be used for propulsion, therefore using them as such counts as exploit.

Jet engines and intakes are not a bug and using them is not an exploit. They were designed and programmed to work this way. Airhogging is a self-imposed vague rule invented by players who consider the way it was implemented too unrealistic. And while I share some of these feelings I am nowhere near ferram's position.

Link to comment
Share on other sites

Okay, this triggered my curiosity.

What is your interpretation of how these coefficients are used? IMO this converts airspeed (0-2400) to some kind of coefficient in range 0 to 1, perhaps thrust multiplier. And as of my knowledge, it either works or does not have any ill effects.

Are you sure you're not substituting orbital speed for airspeed?

Edit: I made a little experiment and the thrust seems to be following that set of keys nicely.

Edited by Kasuha
Link to comment
Share on other sites

Hmm, well I wasn't sure (wasn't using any data recording programs) and it was back in 0.22. Maybe it was never problem or maybe it got fixed.

That is a helpful graph but it stops before the interesting part for the turbojet. In my experiments I could get the curve to be fine for 3 point say 0, 1000, and 2000 for the Turbo but got problems when it came to adding a forth point such as the 2400 (which is not shown).

Also looking at the jet engine does show the weirdness of the equations. The jet engine's velocity curve is

key = 1000 0 0 0

key = 850 0.2 0 0

key = 0 1 0 0

While it hits all of these it is not a single curve covering all three points (which it could be), it seems to have a phantom forth point at 800 pulling it down.

I hope it's fine I added to the original graph picture.

RMUKABU.png

The Purple line is what you get if you line up 0,850 and 1000 but cuts off abruptly at 1000.

The Brown line was made by moving the 450ish range which moves the 950 to more reasonably meet the 1000 point.

Both of these lines have one or two curves where as the original green line has three curves as if it had to meet three points to adhere to.

Both the Blue and Red curves in comparison only need two points despite using 4 not three thrust curve points.

If there is a mathematical reason for this I would be glad to here it but at the moment it don't look logical.

Edited by Clockwork_werewolf
Link to comment
Share on other sites

It looks like it fits an S-curve (Hermite? Bezier? Not sure) between any two defined points. Which looks fine when the middle value is the largest of the defined points (turbojet, rapier) but odd when the middle point is lower than the initial (basic jet).

Edited by Red Iron Crown
Typo
Link to comment
Share on other sites

It looks like it fits an S-curve (Hermite? Bezier? Not sure) between any two defined points. Which looks fine when the middle value is the largest of the defined points (turbojet, rapier) but odd when the middle point is lower than the initial (basic jet).

Just edited my last post to be more descriptive.

Yea it looks like it gives an s curve between each two points not fit a curve to all the points. If you have 5 points it might well have 4 s curves or 8 curves.

Link to comment
Share on other sites

Just edited my last post to be more descriptive.

Yea it looks like it gives an s curve between each two points not fit a curve to all the points. If you have 5 points it might well have 4 s curves or 8 curves.

I'm betting there's a similar bump on the curves for the turbojet/rapier at 2000m/s, given that it's another fixed point with a value between the preceding and following points.

Link to comment
Share on other sites

I'm betting there's a similar bump on the curves for the turbojet/rapier at 2000m/s, given that it's another fixed point with a value between the preceding and following points.

Yep.

I did a mock up of what I think a 5 point thrust should be (light blue) and what I think it would actually look like (Brown)

iTCPSuM.png

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...