General Question Turbojet/turbofan engines in Orbiter

Meteorit

New member
Joined
Dec 13, 2009
Messages
9
Reaction score
0
Points
0
I'm in the process of creating my first Orbiter add-on, one that is based on a real design that has two turbofan jet engines as a part of the propulsion system. I know the Orbiter SDK supports rocket and ramjet engines (ramjet code in DeltaGlider), but are there any add-ons or other places that I could use as a base for turbofan or turbojet engines?

There are several add-ons of craft powered by jet engines, but from what I have been able to find out they seem to actually use rockets internally for propulsion. Any help in the form of code or pointers to sources on jet engines that I could relatively easily translate to C++ code would be much appreciated. I'm not necessarily aiming for absolute accuracy, so anything more realistic than Orbiter's default rocket would be good.
 
Hi, & welcome.

The various thruster functions in Orbiter API define a thrust source in "general", really. Look at the Orbiter Programmers Guide in the Orbitersdk folder, page 10, for example.

What makes believable air breathing jet turbines is how you implement the thruster functions. What differentiates a rocket from a jet basically is that the jet will flame out at high altitude (when the air runs out). There is already a way to handle this in OAPI (look at CrateThruster function, page 52 of the Orbiter API Reference Manual, also in the orbitersdk folder).

What adds the polish to the product is how you implement the controls of your jet engines in your craft, and its consumption and thrust characteristics. There are lots of references for jet engine power and consumption figures on the web, so you can take your pick with this.

Finally, realistic start and shutdown features (starter valves, condition levers, etcetera), plus a default idle power level greater than 0 when the throttle is closed (but the engine not shut down - see SetThrusterLevel function, API ref Manual page 58) would do the final act of convincing the user he/she is in control of a jet and not a rocket. And don't forget the detail: the proper sound:)!

All the best.

PS: Maybe Kev's B737 addon on OHM might help? I seem to recall that it includes the source code (maybe my memory fails me, but check-see).
 
Last edited by a moderator:
Thanks for the reply.

I'd guess I'm hoping to find something a bit more realistic, basically similar to Orbiter's sample ramjet implementation. So that given the engine's pressure ratio, BPR, maximum thrust, TET etc., and altitude, fuel flow, air flow etc. I could calculate the thrust it produces. I haven't been able to find a good reference for this, the results being either too simplistic or too complicated. Thus I was hoping that perhaps someone on this forum could point me to the right direction towards a good reference.

There seems to be something called "David Hopkins' AirBreathingEngine code" used on some addons, but I'm unsure about the level of detail it includes?

I checked the C++ source code of the B737 addon but couldn't find any specific jet engine thrust functions.
 
Exactly.. and basics of the math used there can be found here http://www.grc.nasa.gov/WWW/K-12/airplane/EngineTheory.pdf. I already experimented with this a bit and could get quite realistic results in calculating the maximum engine force for a given altitude and speed. But so far i haven't found any good formulas for relating the turbine RPM to fan/compressor pressure ratio.
 
Exactly.. and basics of the math used there can be found here http://www.grc.nasa.gov/WWW/K-12/airplane/EngineTheory.pdf. I already experimented with this a bit and could get quite realistic results in calculating the maximum engine force for a given altitude and speed. But so far i haven't found any good formulas for relating the turbine RPM to fan/compressor pressure ratio.
I imagine that the relation between RPM and fan/compressor pressure ratio is dependent on the specific engine being used.

For simulating a jet engine in Orbiter, one other thing you'd want to include would be turbine lag--you'd want to override the user's throttle setting to give a slower ramp-up to the requested throttle.
 
I imagine that the relation between RPM and fan/compressor pressure ratio is dependent on the specific engine being used.

Absolutely. Well said. These characteristics vary depending on the number of compressor stages, the characteristics of the compressor blades (per stage), chamber volume (and shape), and similarly for the turbines in the hot section, and whether it is a one or two spool (turbojet or fan), which again vary between each other (N1 / N2 rpm relation). Even the state of bleed valves for the pneumatic system affect these figures, and their limitations. And not forgetting: the mass of the components in rotation...

The base figures even vary in different series of the same engine (JT8D-15 vs. JT8D-17, for example).

Incidentally, if all this detail is going to be incorporated into a module, it would be a good idea to include the consequences of violating engine operating schedules, too, or what would be the point?

I will add: I have been playing with this topic, also, for a long term add on, but not simulating the engine quite in this manner. I have been going about it by creating tables of values for each parameter (before I forget, ITT/EGT is in there, too, as is bleed output temperature and pressure) and implementing an interpolation function to get the between values. This is, indeed, the easier way to go about it (though not purist) - possible alternative for Meteorit's questions(?).

I imagine my method also reduces the complex calculations, which I am happy with for one as it won't impinge too much on program performance. I try not to forget that facet, thinking of my (and some other users') lower end computers. Any comments on this?

----------------------------------------------------------------------

Mindblast said:
Exactly.. and basics of the math used there can be found here http://www.grc.nasa.gov/WWW/K-12/air...gineTheory.pdf....

BTW: Brilliant doc...
 
Last edited by a moderator:
Also, contrails when you're high in the atmosphere! :)
 
(...)
I will add: I have been playing with this topic, also, for a long term add on, but not simulating the engine quite in this manner. I have been going about it by creating tables of values for each parameter (before I forget, ITT/EGT is in there, too, as is bleed output temperature and pressure) and implementing an interpolation function to get the between values. This is, indeed, the easier way to go about it (though not purist) - possible alternative for Meteorit's questions(?). (...)



i stumbled upon this while searching for air-breathing implementation ideas and found it to be a most enlightening concept! :thumbup:

i've adapted it into my G42 StarLiner code and it worked like a charm... but i still have a few doubts that could use some advice from someone who's already done this...


what specific parameters would be most important in such a simulation? as of nnow, i'm mapping a general efficiency percent over Mach and Altitude... but i wonder if this is the best approach...

would it be better if efficiency were mapped in relation to something else? such as air temperature and indicated airspeed?


and more importantly... is there any tool that can help in generating such maps? i mean, writing the tables by hand -keyboard- gets old really fast... and it's a hurdle to calibrate....

perhaps there could be a tool for generating said values from a BMP file?



thanks for the great idea! it REALLY helps out a lot!:tiphat:
 
Back
Top