diff --git a/GameData/AJE/AJETester/AJE Propeller tester 2.exe b/GameData/AJE/AJETester/AJE Propeller tester 2.exe deleted file mode 100644 index 821e3fc..0000000 Binary files a/GameData/AJE/AJETester/AJE Propeller tester 2.exe and /dev/null differ diff --git a/GameData/AJE/AJETester/AJE Tester.png b/GameData/AJE/AJETester/AJE Tester.png deleted file mode 100644 index 2c5162c..0000000 Binary files a/GameData/AJE/AJETester/AJE Tester.png and /dev/null differ diff --git a/GameData/AJE/AJETester/AJE rotor tester.exe b/GameData/AJE/AJETester/AJE rotor tester.exe deleted file mode 100644 index 7bee007..0000000 Binary files a/GameData/AJE/AJETester/AJE rotor tester.exe and /dev/null differ diff --git a/GameData/AJE/AJETester/AJETest.exe b/GameData/AJE/AJETester/AJETest.exe deleted file mode 100644 index 097d011..0000000 Binary files a/GameData/AJE/AJETester/AJETest.exe and /dev/null differ diff --git a/GameData/AJE/AJETester/Customization Guide.txt b/GameData/AJE/AJETester/Customization Guide.txt deleted file mode 100644 index 5c4979b..0000000 --- a/GameData/AJE/AJETester/Customization Guide.txt +++ /dev/null @@ -1,139 +0,0 @@ -Quick and Dirty guideline to jet engine modeling - -For example - - MODULE - { - name = AJEModuleFX // this is for ModuleEnginesFX, for ModuleEngines use AJEModule - IspMultiplier=1 // for Kerosene=1 IntakeAir=15, use 1/16=0.0625 - useOverheat=false // default value is true - defaultentype=2 // load default values for a type of engine - acore=5.8 // custom parameters - byprat=0 - prat3=16 - tt4=2700 - tt7=4800 - abflag=1 - fhv=18600 - eta7=0.8 - tinlt=1200 - tfan=1500 - tcomp=2500 - - - } - - -1. Find out the max thrust (actually static thrust at sea level) with or without afterburner, and corresponding SFC -2. Find out compressor pressure ratio and turbine entry temperature. If you cannot find it look for engines from the same era and similar design. -3. set tt4 and prat3, set abflag=0 -4. adjust acore and efficiency coefficients to match max thrust and SFC without afterburner -5. set abflag=1 and adjust tt7 and eta7 to match thrust/SFC with afterburner - - -===================================================== -AJE Propeller example: - - MODULE - { - name=AJEPropeller - IspMultiplier = 1 // same as jet - useOxygen = true // for electric propellers use false - // below five are reference parameters for definition of the propeller, they are by no means the actual airplane performance - r0 = 1.75 // radius of propeller in meter - v0 = 240 // cruise speed in knot - omega0 = 1157 // cruise rpm of propeller - rho0 = 1 // cruise altitude air density in kg/m3 - power0 = 950 // cruise engine power in horsepower - -//Some propellers have more thrust at low speed but are less efficient at high speed, some others are the opposite. Tweak the above parameters and try - - fine = 0.2 // these two are the max and min pitching control authority - coarse = 5 // usually not so important. The pitching is done automatically - - omega = 1537 // max rpm - power = 1795 // max engine power in Horsepower - gearratio = 0.542 // gear ratio between the engine and the propeller, not important - turbo = 3.1 // the bigger this is, the stronger a supercharger it has, hence better performance at high alt. - - BSFC = 7.62e-8 // SFC in kg/(W * s) - - } - - -The algorithm is copied from YASim program, which is one of the flight models of an open-source flight simulator "FlightGear". So the easiest way is to check if there are ready-made propellers from FlightGear community: - -http://www.flightgear.org/download/aircraft-v3-0/ - -For example we downloaded Fw190, found fw190-yasim.xml in the zip file. In the file we look for: - //max rpm - - - //that's turbo - - -======================================================================== -//JSBsim propellers - MODULE - { - name=AJEPropeller - IspMultiplier = 1 - useOxygen = true - - displacement = 1829.4 // engine displacement in cubic inches - compression = 6.7 // engine compression ratio - minRPM = 1350 // minimum engine RPM (min propeller RPM = this * gearratio) - maxRPM = 2700 // maximum engine RPM (max propeller RPM = this * gearratio) - power = 1350 // BHP at maximum takeoff power (no ram air) - gearratio = 0.666666666666667 // engine->propeller reduction gear ratio - BSFC = 1.12E-7 // brake specific fuel consumption, in kg/kW-s. Conversion factor from lb/hp-hr = 1.68968E-07 - coolerEffic = 0.2 // efficiency of the cooler. Used as interpolation factor between ambient temperature and uncooled charge air temperature, with a minimum temperature in C of coolerMin - coolerMin = 0 // minimum temperature for the charge air, in C - ramAir = 0.4 // a multiplier to the effectiveness of using ram air to increase charge pressure. 0 means use ambient pressure absent any dynamic pressure increase; 1.0 means use the dynamic pressure rather than the ambient pressure as the pressure for the super/turbocharger intake. - exhaustThrust = 0.0 // multiplier to exhaust thrust (carefully designed radiators and engine exhaust could provide thrust rather than drag; c.f. P-51, which has a normalized exhaustThrust of 1.0) - meredithEffect = 0.0 // multiplier to Meredith Effect thrust (i.e. radiator thrust) which can lower the drag of the radiator or even provide positive thrust. - boost0 = 52 // rated boost 1 (maximum manifold pressure to be maintained), in inches of mercury - rated0 = 3000 // rated altitude for boost 0, in meters. STATIC. Not ram air. - boost1 = 52 // rated boost 1 (maximum manifold pressure to be maintained), in inches of mercury - rated1 = 5000 // rated altitude for boost 1, in meters. STATIC. Not ram air. - cost1 = 55 // the cost (in HP) of the boost 1 (i.e. high blower) - switchAlt = 3400 // the altitude to switch from low blower (boost 0) to high blower (boost 1). Note that this is interpreted ingame as a pressure altitude, taking ram air multiplier into account. So if you're rated for 3km static for boost 0, you might well not switch to boost 1 until 5km if your speed (and thus ram air pressure) is high enough - turbo = false // does the engine use a turbocharger - wastegateMP = 52 // maximum manifold pressure, in inches of mercury. Any charge pressure beyond this will be vented by the wastegate. - propName = Wildcat // the propeller used. - } - - - -============================================================================ -AJE rotor blades - - MODULE - { - name=AJERotor - IspMultiplier = 1 //same - useOxygen = true //same - rpm = 412 //rpm of rotor blade - r = 6 //radius in meter - weight = 14000 //max takeoff mass in kg - power = 6150 //max power output in HP - BSFC = 8.47e-8 //same - VTOLbuff = 1 //this is a hack I made to improve the performance of V-22 style VTOL engines, which are basically both rotor blades and propellers. Don't use unless you know what you're doing. 0 corresponds to max buff, bigger numbers means smaller buff. - - } - - diff --git a/GameData/AJE/B9.cfg b/GameData/AJE/B9.cfg index dc339c5..c12cde6 100644 --- a/GameData/AJE/B9.cfg +++ b/GameData/AJE/B9.cfg @@ -2,43 +2,32 @@ { - @title = AJE General Electric YJ93-GE-3 turbojet + @title = General Electric YJ93-GE-3 turbojet @mass = 2.368 - @description = Designed for Mach 3 aircraft like the XB-70. Variable CPR from 9.5 to 3.5 due to variable incidence stators; stator rotation begins at Mach 2, reaching least angle of attack at Mach 3.1. 88.6kN dry. SFC 0.7/1.8 lb/lbf-hr static. Temperature limit Mach 3.5. + @description = Designed for Mach 3 aircraft like the XB-70. Variable CPR from 9.5 to 3.5 due to variable incidence stators; stator rotation begins at Mach 2, reaching least angle of attack at Mach 3.1. 124.6kN wet, 88.6kN dry. SFC 0.7/1.8 lb/lbf-hr static. Temperature limit Mach 3.5. %CoMOffset = 0, 3.5, 0 + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - acore=7.93 - byprat=0 - abflag=1 - prat13 = 1 - prat3=9.5 - fhv=19200 - tinlt=1600 - tfan=2000 - tcomp=2000 - tt4=2040 - tt7=3110 - eta3 = 0.85 - eta4 = 0.98 - eta5 = 0.913 - eta7 = 0.975 - ABIspMult = 0.74 // AJE says 1.333 sfc, whereas The Book says 1.8 - usePrat3Curve = true - prat3Curve - { - key = 0.0 9.5 0 0 - key = 2.0 9.5 0 0 - key = 2.8 4.0 0 0 - key = 3.1 3.5 0 0 - key = 3.2 3.5 0 0 - } + Area = 0.6 + BPR = 0 + CPR = 9.5 + FPR = 0 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 22500000 + TIT = 1150 + TAB = 1750 + exhaustMixer = True + maxThrust = 999999 + maxT3 = 9999 } - + @MODULE[ModuleEngines*] { @maxThrust=124.6 // 88.6 dry @@ -51,43 +40,37 @@ @PART[B9_Engine_Jet_Turbofan_F119]:FOR[AJE] { - @title = AJE Pratt & Whitney F119-PW-100 turbofan + @title = Pratt & Whitney F119-PW-100 turbofan @mass = 1.77 - @description = Advanced afterburning low-bypass turbofan with pitch vectoring for the F-22 Raptor. Estimated performance based on best available information. Higher bypass than other low-bypass turbofans and high efficiency leads to higher than usual dry:wet thrust ratio and excellent efficiency: the engine is designed for supercruise (supersonic flight on dry thrust). 100.4kN dry. SFC 0.74/1.75 lb/lbf-hr static. Temperature limit Mach 2.55. + @description = Advanced afterburning low-bypass turbofan with pitch vectoring for the F-22 Raptor. Estimated performance based on best available information. Higher bypass than other low-bypass turbofans and high efficiency leads to higher than usual dry:wet thrust ratio and excellent efficiency: the engine is designed for supercruise (supersonic flight on dry thrust). 155.4kN wet, 100.4kN dry. SFC 0.74/1.75 lb/lbf-hr static. Temperature limit Mach 2.55. %CoMOffset = 0, 2, 0 - MODULE + + MODULE //wet SFC = 1.4 here { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=4.4 - byprat=0.45 - tinlt=1200 - prat2=1 - eta2=1 - tfan=1500 - prat13=2.0 - eta13=1 - tcomp=2480 - prat3=20 - eta3=0.99 - tt4=3400 - prat4=1 - eta4=0.985 - tt4=3550 - eta5=0.98 - tt7=7200 - eta7=0.97 - abflag=1 - fhv = 18600 + Area = 0.35 + BPR = 0.45 + CPR = 35 + FPR = 3 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 27000000 + TIT = 1970 + TAB = 2350 + exhaustMixer = True + maxThrust = 250 + maxT3 = 1200 } @MODULE[ModuleEngines*] { - @maxThrust=160 + @maxThrust=155.4 } @@ -95,50 +78,107 @@ @PART[B9_Engine_Jet_Pod_Small]:FOR[AJE] { - @title = AJE General Electric TF34 Turbofan - @mass = 0.75 - @description = This turbofan is used on A-10 and Bombadier CRJs. Powered by NASA EngineSim + @title = General Electric TF34-GE-100 Turbofan + @mass = 0.65 + @description = The high-bypass turbofan that powers A-10A. Thrust 40.3 kN, SFC 0.37 lb/lbf-hr. + MODULE { name = AJEModule - IspMultiplier=1 - useOverheat=false - defaultentype=3 - acore=1.8 - byprat=5 - prat13=1.4 - prat3=20 - tt4=1850 - + Area = 0.11 + BPR = 6.24 + CPR = 20 + FPR = 1.5 + Mdes = 0.5 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 24000000 + TIT = 1250 + TAB = 0 + exhaustMixer = False + maxThrust = 50 + maxT3 = 800 } - + @MODULE[ModuleEngines*] { - @maxThrust=40 + @maxThrust=40.3 } } ++PART[B9_Engine_Jet_Pod_Small]:FOR[AJE] +{ + @name = aje_jt8d + @title = Pratt & Whitney JT8D-219 + @mass = 2.15 + @rescaleFactor = 1.5 + @description = The JT8D series high-bypass turbofan powers 727, 737, DC-9, DC-10, MD-81, MD-82. 93.4kN thrust, SFC 0.519 lb/lbf-hr. + + !MODULE[AJEModule] + { + } + + MODULE + { + name = AJEModule + Area = 0.35 + BPR = 1.72 + CPR = 20 + FPR = 1.9 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1350 + TAB = 0 + exhaustMixer = False + maxThrust = 120 + maxT3 = 800 + } + + + @MODULE[ModuleEngines*] + { + @maxThrust=93.4 + } + +} @PART[B9_Engine_Jet_Pod_Medium]:FOR[AJE] { - @title = AJE General Electric CF34 turbofan - @mass = 1.7 - + @title = CFM56-5B3 turbofan + @rescaleFactor = 1.5 + @mass = 2.4 + @description = The CFM56 series high turbofan powers B737 and A320 civil aircrafts. 142.3kN thrust, SFC 0.360 lb/lbf-hr. + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=2.7 - byprat=5 - tt4=2300 - tcomp=1800 + Area = 0.35 + BPR = 5.4 + CPR = 33.7 + FPR = 1.8 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 24000000 + TIT = 1400 + TAB = 0 + exhaustMixer = False + maxThrust = 180 + maxT3 = 950 } @MODULE[ModuleEngines*] { - @maxThrust=87 + @maxThrust=142.3 } } @@ -146,29 +186,36 @@ +PART[B9_Engine_Jet_Pod_Medium]:FOR[AJE] { @name = aje_cf6 - @rescaleFactor = 2.26274 - @title = AJE General Electric CF6 turbofan + @rescaleFactor = 2.25 + @title = General Electric CF6-50E turbofan @mass = 4.1 - @description = Big and powerful, this is the engine for B747s. Powered by NASA EngineSim + @description = The CF6 series high turbofan powers B747, B767, DC-10 and A300 civil aircrafts. 233.5kN thrust, SFC 0.376 lb/lbf-hr. !MODULE[AJEModule] { } - MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=6.965 - byprat=4 - tt4=3000 - tcomp=1800 + Area = 0.57 + BPR = 4.24 + CPR = 30 + FPR = 1.7 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 32000000 + TIT = 1600 + TAB = 0 + exhaustMixer = False + maxThrust = 280 + maxT3 = 900 } - @MODULE[ModuleEngines*] { - @maxThrust=250 + @maxThrust=233.5 } } @@ -176,48 +223,37 @@ @PART[B9_Engine_VA1]:FOR[AJE] { - @title = AJE RR Pegasus 1/2 - @mass = 0.9 - @description = 1/2 Rolls-Royce Pegasus turbofan - + @title = Rolls-Royce Pegasus 11 Mk.103 1/4 + @mass = 0.4 + @description = Rolls-Royce Pegasus turbofan powers the Harrier aircraft. 91.2kN thrust, SFC 0.6 lb/lbf-hr. !MODULE[ModuleGimbal] { } - !MODULE[ModuleEngineConfigs] - { - } - MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 3 - acore=1.5 - byprat=1.4 - tinlt=1000 - prat2=1 - eta2=1 - tfan=1600 - prat13=1.5 - eta13=1 - tcomp=1800 - prat3=14 - eta3=0.959 - tt4=2200 - prat4=1 - eta4=0.95 - eta5=0.90 - fhv=12000 - tt7=2500 - eta7=1 - abflag=0 + Area = 0.1 + BPR = 1.3 + CPR = 14.6 + FPR = 2 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 25500000 + TIT = 1222 + TAB = 0 + exhaustMixer = False + maxThrust = 40 + maxT3 = 750 } @MODULE[ModuleEngines*] { - @maxThrust=26 + @maxThrust=23 } } @@ -227,37 +263,34 @@ { @name = aje_d30 - @title = AJE Soloviev D-30F6 Afterburning Turbofan + @title = Soloviev D-30F6 Afterburning Turbofan @mass = 2.416 - @description = Low-bypass augmented turbofan used by the MiG-31 and Su-47. 93.2kN dry. SFC 0.72/1.86 lb/lbf-hr static. Temperature limit Mach 2.9. + @description = Low-bypass augmented turbofan used by the MiG-31 and Su-47. 186.13kN wet, 93.2kN dry. SFC 0.72/1.86 lb/lbf-hr static. Temperature limit Mach 2.9. %CoMOffset = 0, 2.5, 0 %rescaleFactor = 1.2 // 1.5m diameter !MODULE[AJEModule] { } + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - defineenparm= true - acore=5.2522 - byprat=0.57 - prat13=3 - prat3=7.17 - tt4=2550 - tt7=9259 - abflag=1 - fhv=15950 - eta3 = 0.9 - eta4=0.97 - eta5 = 0.95 - eta7=0.9 - tinlt=1300 - tfan=1500 - tcomp=2450 - ABIspMult = 1.5838 + Area = 0.44 + BPR = 0.57 + CPR = 21.5 + FPR = 3 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 22000000 + TIT = 1300 + TAB = 2850 + exhaustMixer = True + maxThrust = 250 + maxT3 = 1200 } @MODULE[ModuleEngines*] @@ -277,9 +310,9 @@ scale = 0.75, 0.75, 0.75 } @name = aje_j57 - @title = AJE Pratt & Whitney J57-P-21 Turbojet + @title = Pratt & Whitney J57-P-21 Turbojet @mass = 2.155 - @description = Late 50s turbojet. The J57 was a workhorse, designed in the early 1950s and powering the B-52, most of the Century Series fighters, and even the U-2. This represents a later model, the -21, which powered the F-100C/D/F. 45.4kN dry. SFC 0.77/2.1 lb/lbf-hr static. Temperature limit Mach 1.9. + @description = Late 50s turbojet. The J57 was a workhorse, designed in the early 1950s and powering the B-52, most of the Century Series fighters, and even the U-2. This represents a later model, the -21, which powered the F-100C/D/F. 75.4kN wet, 45.4kN dry. SFC 0.77/2.1 lb/lbf-hr static. Temperature limit Mach 1.9. %CoMOffset = 0, 3, 0 %node_stack_top = 0.0, 0.375, 0.0, 0.0, 1.0, 0.0, 1 !MODULE[AJEModule] @@ -289,31 +322,27 @@ MODULE { name = AJEModule - IspMultiplier=1.0 - defaultentype=2 - defineenparm= true - acore = 3.43 - byprat = 0 - prat13 = 1.0 - prat3 = 13 - prat4 = 1.0 - tcomp = 1500 - tt4 = 2386 - tt7 = 5070 - eta3 = 0.85 - eta4 = 0.983 - eta5 = 0.97 - eta7 = 0.9 - ABIspMult = 0.86867 - abflag = 1 - + Area = 0.24 + BPR = 0 + CPR = 13 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 35000000 + TIT = 1330 + TAB = 3140 + exhaustMixer = True + maxThrust = 150 + maxT3 = 800 } + @MODULE[ModuleEngines*] { @maxThrust=75.4 - @engineAccelerationSpeed = 0.08 - @engineDecelerationSpeed = 0.19 } } @@ -330,43 +359,39 @@ scale = 0.8, 0.8, 0.8 } @name = aje_j79 - @title = AJE General Electric J79-GE-17 turbojet + @title = General Electric J79-GE-17 turbojet @mass = 1.74 - @description = The first US "Mach 2" engine, the J79 saw extensive service, powering the B-58 Hustler and the F-4 Phantom and F-104 Starfighter among others. This mid-1960s model powered the USAF F-4E and G, and with minor mounting differences (as the -19) the final development of the Starfighter line, the F-104S. 52.8kN dry. SFC 0.84/1.97 lb/lbf-hr static. Temperature limit Mach 2.6. + @description = The first US "Mach 2" engine, the J79 saw extensive service, powering the B-58 Hustler and the F-4 Phantom and F-104 Starfighter among others. This mid-1960s model powered the USAF F-4E and G, and with minor mounting differences (as the -19) the final development of the Starfighter line, the F-104S.79.63kN wet, 52.8kN dry. SFC 0.84/1.97 lb/lbf-hr static. Temperature limit Mach 2.6. %CoMOffset = 0, 2, 0 %node_stack_top = 0.0, 0.4, 0.0, 0.0, 1.0, 0.0, 1 !MODULE[AJEModule] { } - + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=3.931 - byprat=0 - prat13 = 1.0 - prat3=13.5 - tfan = 1800 - tcomp = 2035 - tt4=2450 - tt7= 4311 - eta3 = 0.86 - eta4 = 0.983 - eta5 = 0.9 - eta7 = 0.92 - abflag=1 - fhv=17670 - ABIspMult = 0.87 + Area = 0.29 + BPR = 0 + CPR = 13.5 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 28000000 + TIT = 1360 + TAB = 2500 + exhaustMixer = True + maxThrust = 150 + maxT3 = 900 } + @MODULE[ModuleEngines*] { @maxThrust=79.63 - @engineAccelerationSpeed = 0.1 - @engineDecelerationSpeed = 0.23 } } @@ -383,48 +408,38 @@ scale = 0.75, 0.25, 0.75 } @name = aje_atar - @title = AJE SNECMA Atar 9K-50 turbojet + @title = SNECMA Atar 9K-50 turbojet @mass = 1.582 - @description = Early 1970s afterburning turbojet, used on the Mirage 5S, Mirage 50, Mirage IV-A/P/R, and Mirage F1C. Comparitively low overall pressure ratio (6.2) leads to high fuel consumption but good high-speed performance. 49.18kN dry. SFC 0.98/1.99 lb/lbf-hr static. Temperature limit Mach 2.8. + @description = Early 1970s afterburning turbojet, used on the Mirage 5S, Mirage 50, Mirage IV-A/P/R, and Mirage F1C. Comparitively low overall pressure ratio (6.2) leads to high fuel consumption but good high-speed performance. 70.6kN wet, 49.18kN dry. SFC 0.98/1.99 lb/lbf-hr static. Temperature limit Mach 2.8. %CoMOffset = 0, 3, 0 %node_stack_top = 0.0, 0.125, 0.0, 0.0, 1.0, 0.0, 1 !MODULE[AJEModule] { } - + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=3.791 - byprat=0 - tinlt = 900 - tfan = 1688 - tcomp = 1714 - tt4 = 2455 - tt7 = 4441 - prat2 = 1 - prat13 = 1 - prat3 = 6.2 - prat4 = 1 - eta2 = 1 - eta13 = 1 - eta3 = 0.9 - eta4 = 0.98 - eta5 = 0.9 - eta7 = 0.9 - abflag=1 - fhv=18600 - ABIspMult = 0.92625342 + Area = 0.29 + BPR = 0 + CPR = 6.2 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 30000000 + TIT = 1360 + TAB = 2500 + exhaustMixer = True + maxThrust = 150 + maxT3 = 900 } @MODULE[ModuleEngines*] { @maxThrust=70.6 - @engineAccelerationSpeed = 0.05 - @engineDecelerationSpeed = 0.09 } @@ -439,7 +454,7 @@ scale = 0.36, 0.25, 0.36 } @name = aje_welland - @title = AJE Rolls-Royce Welland turbojet + @title = Rolls-Royce Welland turbojet @mass = 0.386 @description = The Welland was Rolls-Royce's name for the Whittle W.2 turbojet. It was a midwar centrifugal compressor turbojet with a "reverse flow" to shorten engine length. It was used on the Meteor Mk I, and it was Britain's first production jet engine. It was basically an enlarged Whittle W.1, Whittle's first flying engine. SFC 1.1212 lb/lbf-hr static. Temperature limit Mach 1.6. %CoMOffset = 0, 2, 0 @@ -451,35 +466,26 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=1 - defineenparm= true - acore=2.6127 - byprat=0 - tinlt = 600 - tfan = 800 - tcomp = 1202 - tt4 = 1502 - tt7 = 2000 - prat2 = 1 - prat13 = 1 - prat3 = 3.8 - prat4 = 0.98 - eta2 = 1 - eta13 = 1 - eta3 = 0.742 - eta4 = 0.94 - eta5 = 0.84 - eta7 = 0.8408 - abflag=0 - fhv=18600 + Area = 0.083 + BPR = 0 + CPR = 3.8 + FPR = 0 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 27000000 + TIT = 850 + TAB = 0 + exhaustMixer = True + maxThrust = 15 + maxT3 = 500 } @MODULE[ModuleEngines*] { @maxThrust=7.117 - @engineAccelerationSpeed = 0.06 - @engineDecelerationSpeed = 0.12 } @@ -489,9 +495,9 @@ { @name = aje_avon - @title = AJE Rolls-Royce Avon RB.146 Mk.302 + @title = Rolls-Royce Avon RB.146 Mk.302 @mass = 1.3 - @description = The Avon was Rolls-Royce's first axial-flow turbojet, introduced in 1950. The RB.146, an early 1960s model, was the ultimate military Avon, an afterburning turbojet powering the English Electric Lightning F.6. 56.45kN dry. SFC 0.85/1.85 lb/lbf-hr static. Temperature limit Mach 2.4. + @description = The Avon was Rolls-Royce's first axial-flow turbojet, introduced in 1950. The RB.146, an early 1960s model, was the ultimate military Avon, an afterburning turbojet powering the English Electric Lightning F.6. 72.77kN wet, 56.45kN dry. SFC 0.85/1.85 lb/lbf-hr static. Temperature limit Mach 2.4. %CoMOffset = 0, 1.5, 0 %rescaleFactor = 0.75 !MODULE[AJEModule] @@ -501,33 +507,27 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=4.516 - byprat=0 - prat2 = 1.0 - prat13 = 1.0 - prat3 = 8.4 - prat4 = 1.0 - tcomp = 1500 - tt4 = 2250 - tt7 = 3118 - eta2 = 1 - eta3 = 0.97 - eta4 = 0.981 - eta5 = 0.88 - eta7 = 0.88 - abflag = 1 - fhv = 18600 - ABIspMult = 0.7325 + Area = 0.335 + BPR = 0 + CPR = 8.4 + FPR = 0 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 29000000 + TIT = 1250 + TAB = 1800 + exhaustMixer = True + maxThrust = 150 + maxT3 = 800 } + @MODULE[ModuleEngines*] { @maxThrust=72.77 - @engineAccelerationSpeed = 0.12 - @engineDecelerationSpeed = 0.20 } } @@ -542,294 +542,46 @@ scale = 0.5, 0.25, 0.5 } @name = aje_nene - @title = AJE Rolls-Royce Nene Mk.102 + @title = Rolls-Royce Nene Mk.102 @mass = 0.753 - @description = Large centrifugal flow turbojet, essentially an enlarged Derwent, which itself was an improvement and enlargement of the original Whittle engine in "straight-through" form. However, it used a double-sided compressor for an improved pressure ratio. A scaled-down Nene (as the Derwent V) powered late marks of the Gloster Meteor; the Nene itself powered many British aircraft of the 1940s and early 1950s, and in the US, as the license built Pratt & Whitney J42, the F9F Panther. After Nenes were given to the Soviet Union in the late 1940s, a reverse-engineered version powered the MiG-15. The late 1940s Mk102 powered the Attacker FB.2, Sea Hawk F.1-4, and the French Ouragan A. SFC 1.09 lb/lbf-hr static. Temperature limit Mach 1.8. + @description = Large centrifugal flow turbojet, essentially an enlarged Derwent, which itself was an improvement and enlargement of the original Whittle engine in "straight-through" form. However, it used a double-sided compressor for an improved pressure ratio. A scaled-down Nene (as the Derwent V) powered late marks of the Gloster Meteor; the Nene itself powered many British aircraft of the 1940s and early 1950s, and in the US, as the license built Pratt & Whitney J42, the F9F Panther. After Nenes were given to the Soviet Union in the late 1940s, a reverse-engineered version powered the MiG-15. The late 1940s Mk102 powered the Attacker FB.2, Sea Hawk F.1-4, and the French Ouragan A. 22.24 kN, SFC 1.09 lb/lbf-hr static. Temperature limit Mach 1.8. %CoMOffset = 0, 1.5, 0 %node_stack_top = 0.0, 0.125, 0.0, 0.0, 1.0, 0.0, 1 !MODULE[AJEModule] { } + MODULE { - name=AJEModule - defaultentype = 1 - defineenparm= true - acore=4.784 - byprat=0 - prat3= 4.444 - prat4 = 0.9 - tinlt = 650 - tfan = 1000 - tcomp = 1516 - tt4 = 1850 - tt7 = 3200 - eta3 = 0.8 - eta4 = 0.95 - eta5 = 0.84 - eta7 = 0.88 - fhv = 18600 - abflag = 0 - - // equivalents with Engine Type = 2 (if you want to fit an afterburner) - //acore = 2.937 - //eta3 = 0.7925 - //fhv = 18700 + name = AJEModule + Area = 0.19 + BPR = 0 + CPR = 4.44 + FPR = 0 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 27000000 + TIT = 1030 + TAB = 0 + exhaustMixer = True + maxThrust = 40 + maxT3 = 600 } + @MODULE[ModuleEngines*] { @maxThrust=22.24 - @engineAccelerationSpeed = 0.08 - @engineDecelerationSpeed = 0.18 - } - -} -+PART[B9_Engine_Jet_Turbojet]:FOR[AJE] -{ - !mesh - MODEL - { - model = B9_Aerospace/Parts/Engine_Jet_Turbojet/model - texture = model000, AJE/RftS/Black - scale = 1.12, 0.8, 1.12 - position = 0.0, 3.0, 0.0 - } - %scale = 1.0 - %rescaleFactor = 1.0 - %node_stack_top = 0.0, 3.4, 0.0, 0.0, 1.0, 0.0, 0 - %CoMOffset = 0, 5, 0 - !EFFECTS - { - } - EFFECTS - { - powerflame - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = bninejet - modelName = MP_Nazari/FX/flamejet3 - transformName = thrust_transform - emission = 0.0 0.0 - emission = 0.6666 0.0 - emission = 0.6667 0.4 - emission = 1.0 3.2 - speed = 0.0 4.0 - speed = 1.0 4.3 - energy = 0.0 0.05 // Same for energy - energy = 0.7 0.21 // Same for energy - energy = 1.0 0.99 // Same for energy - fixedEmissions = false - //scale = 0.0 1.8 // Rescale the emitters to +80% - //scale = 1.0 1.8 // Rescale the emitters to +80% - //fixedScale = 1.8 - size = 0.0 1.8 // Rescale the particles to +80% - size = 1.0 1.8 // Rescale the particles to +80% - } - - AUDIO - { - channel = Ship - clip = sound_jet_low - volume = 0.0 0.0 - volume = 0.6666 1.0 - volume = 0.6667, 1.2 - volume = 1.0, 1.5 - pitch = 0.0 0.1 - pitch = 0.67 0.5 - pitch = 1.0 0.5 - loop = true - } - } - - powersmoke - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = smokethrust - modelName = MP_Nazari/FX/smokejet - transformName = thrust_transform - emission = 0.0 0.0 // Curve for emission like stock - emission = 0.07 0.0 // Curve for emission like stock - emission = 0.2 0.4 // Curve for emission like stock - emission = 1.0 1.1 // Curve for emission like stock - energy = 0.0 0.2 // Same for energy - energy = 1.0 3.2 // Same for energy - speed = 0.0 1.0 // And speed - speed = 1.0 0.8 // And speed - grow = 0.0 0.0 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - grow = 1.0 0.11 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - scale = 0.0 1.0 // Rescale the emitters to +0% - scale = 1.0 1.0 // Rescale the emitters to +0% - offset = 0.0 0.0 // Move the particle emitter away from its default position by x meters - offset = 1.0 0.5 // Move the particle emitter away from its default position by x meters - size = 0.0 1.0 // Rescale the particles to +0% - size = 1.0 1.1 // Rescale the particles to +0% - - renderMode = "Billboard" // Render mode : Billboard / SortedBillboard / HorizontalBillboard / VerticalBillboard / Stretch - collide = false // Collision active or not - collideRatio = 0 // how the particles react on collision. 1 is a mirror bounce, 0 is go parallel to the hit surface - fixedScale = 1.0 // Fixed rescale of the particle emitter (for when you rescale the model) - - sizeClamp = 50 // Limits particle size. Default to 50 - - // *************** - // From here the value are not the default anymore. - // *************** - - - angle = 0.0 1.0 // Display if the angle between the emitter transform and camera is lower than 45° - angle = 45.0 1.0 - angle = 50.0 1.0 - distance = 0.0 1.0 // Display if the distance to camera is higher than 110 - distance = 100.0 1.0 - distance = 110.0 1.0 - - emission // Modulate emission from mach and density curve. You can add other section for size, energy, speed, grow, offset and scale - { - mach = 0.0 1.0 - mach = 0.8 1.0 // don't display until mach .8 - mach = 1.0 1.0 - density = 1.0 1.0 - density = 0.4 1.0 // don't display over .4 atmo - density = 0.3 1.0 - density = 0.002 1.0 - density = 0.001 0.0 // and stop under .001 - } - } - } - - engage - { - AUDIO - { - channel = Ship - clip = sound_vent_medium - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - disengage - { - AUDIO - { - channel = Ship - clip = sound_vent_soft - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - flameout - { - AUDIO - { - channel = Ship - clip = sound_explosion_low - volume = 1.0 - pitch = 2.0 - loop = false - } - } - } - - @name = B9_Engine_Jet_Turbojet_J58 - @title = Pratt & Whitney J58-P-4 - @mass = 2.7 - @description = Designed in the late 1950s, the J58 was redesigned and repurposed for one use: Mach 3+ aircraft like the A-12 / SR-71A/B / YF-12A. This model, the only operational one, entered service with the Blackbird in the mid 1960s. Variable CPR from 8.8 to 2.93 due to bypass vents progressively opening past Mach 2; fully open at Mach 3. 111.2kN dry. SFC 0.8/1.9 lb/lbf-hr static. Temperature limit Mach 4.1. - !MODULE[AJEModule] - { - } - - MODULE - { - name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=8.007 - byprat=0 - tinlt = 1800 - tfan = 2000 - tcomp = 2300 - tt4 = 2450 - tt7 = 3786 - prat2 = 1 - prat13 = 1 - prat3 = 8.5 - prat4 = 1 - eta2 = 1 - eta13 = 1 - eta3 = 0.89 - eta4 = 0.98 - eta5 = 0.93 - eta7 = 0.96 - abflag=1 - fhv=20000 - ABIspMult = 0.7245687632 - maxThrust=300 - usePrat3Curve = true - prat3Curve - { - key = 0.0 8.5 0 0 - key = 2.0 8.5 0 0 - key = 3.0 2.93 0 0 - key = 3.1 2.93 0 0 - } - } - - @MODULE[ModuleEngines*] - { - @maxThrust=150 - @engineAccelerationSpeed = 0.11 - @engineDecelerationSpeed = 0.18 } - } -+PART[B9_Engine_Jet_Pod_Small]:FOR[AJE] -{ - @name = aje_jt8d - @title = Pratt & Whitney JT8D-219 - @mass = 2.15 - @rescaleFactor = 1.5 - @description = High-bypass turbofan used on airliners like B707, B737, DC-9 etc. - - - !MODULE[AJEModule] - { - } - - - MODULE - { - name = AJEModule - IspMultiplier=1 - useOverheat=false - defaultentype=3 - acore=4.1 - byprat=1.77 - prat13=1.9 - prat3=19.2 - tt4=2540 - fhv=15000 - - } - - @MODULE[ModuleEngines*] - { - @maxThrust=97 - } - -} diff --git a/GameData/AJE/B9_sabre.cfg b/GameData/AJE/B9_sabre.cfg index 8dea603..27ebe4d 100644 --- a/GameData/AJE/B9_sabre.cfg +++ b/GameData/AJE/B9_sabre.cfg @@ -34,36 +34,29 @@ @PART[B9_Engine_SABRE_S]:FOR[AJE] { - @title = AJE SABRE S + @title = SABRE S MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - useOverheat=false - isReactionEngine=true - acore=9 - byprat=0 - tinlt=3000 - tfan=3000 - tcomp=4000 - tt4=2600 - tt7=4800 - prat3=12 - fhv=48900 - usePrat3Curve = True - maxThrust=300 - prat3Curve - { - key = 0.0 12.0 0 0 - key = 2.5 11.0 0 0 - key = 5.0 3.0 0 0 - } + Area = 0.6 + BPR = 0 + CPR = 12 + FPR = 0 + Mdes = 1 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV =92000000 + TIT = 900 + TAB = 3800 + exhaustMixer = True + maxThrust = 400 + maxT3 = 2000 } } @PART[B9_Engine_SABRE_M]:FOR[AJE]:NEEDS[RealSolarSystem] { - @title_= (RSS) @MODULE[ModuleEnginesFX],1 { @maxThrust = 1350 @@ -71,31 +64,25 @@ } @PART[B9_Engine_SABRE_M]:FOR[AJE] { - @title = AJE SABRE M + @title = SABRE M MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - useOverheat=false - isReactionEngine=true - acore=36 - byprat=0 - tinlt=3000 - tfan=3000 - tcomp=4000 - tt4=2600 - tt7=4800 - prat3=12 - fhv=48900 - usePrat3Curve = True - maxThrust=1200 - prat3Curve - { - key = 0.0 12.0 0 0 - key = 2.5 11.0 0 0 - key = 5.0 3.0 0 0 - } + Area = 2.4 + BPR = 0 + CPR = 12 + FPR = 0 + Mdes = 1 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 92000000 + TIT = 900 + TAB = 3800 + exhaustMixer = True + maxThrust = 400 + maxT3 = 2000 } } \ No newline at end of file diff --git a/GameData/AJE/Baha.cfg b/GameData/AJE/Baha.cfg index c338777..2910905 100644 --- a/GameData/AJE/Baha.cfg +++ b/GameData/AJE/Baha.cfg @@ -2,9 +2,9 @@ { - @title = AJE Saturn AL-41 turbofan + @title = Lyulka (Saturn) AL-41 turbofan @mass = 1.42 - @description = Modern afterburning turbofan designed for Sukhoi T-50 + @description = Modern afterburning turbofan designed for Sukhoi T-50 featuring vector thrust. Data based on estimation: thrust 160 kN wet, 81 kN dry, SFC 0.55/1.6 lb/lb hr. Max 2.5 Mach. %CoMOffset = 0, 2, 0 !MODULE[ModuleEngineConfigs] @@ -35,27 +35,30 @@ } } + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - acore=5.2 - byprat=0.6 - abflag=1 - prat13 = 1.745 - prat3=20 - tinlt=1600 - tfan=2000 - tcomp=2000 - tt4=3500 - tt7=6200 - + Area = 0.3 + BPR = 0.6 + CPR = 30 + FPR = 1.7 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 32000000 + TIT = 1600 + TAB = 3200 + exhaustMixer = True + maxThrust = 220 + maxT3 = 1100 } @MODULE[ModuleEngines*] { - @maxThrust=150 + @maxThrust=160 } diff --git a/GameData/AJE/D12.cfg b/GameData/AJE/D12.cfg index 2881c5b..2373ba6 100644 --- a/GameData/AJE/D12.cfg +++ b/GameData/AJE/D12.cfg @@ -12,36 +12,35 @@ @position = -0.6, 0, 0 } @node_attach = 0.0, 0.25, 0.4, 0.0, 0.0, -1.0, 1 - @title = AJE Dual Pratt & Whitney JT3D-3B turbofan + @title = Pratt & Whitney JT3D-3B turbofan x 2 @mass = 4 - @description = The engines of late-model 707s and DC-8s. Also known by its military designation TF33, which powered upgraded (to turbofan) B-52s and various transports and EW aircraft. This dual-engine pod contains two JT3D turbofans. SFC 0.53 lb/lbf-hr static. Temperature limit Mach 1.6. + @description = The engines of late-model 707s and DC-8s. Also known by its military designation TF33, which powered upgraded (to turbofan) B-52s and various transports and EW aircraft. This dual-engine pod contains two JT3D turbofans. Thrust 80.1 kN each, SFC 0.53 lb/lbf-hr static. Temperature limit Mach 1.6. + MODULE { name = AJEModule - //useOverheat=false - IspMultiplier=1 - defaultentype=3 - acore=8.1289 - byprat=1.37 - prat13 = 1.74 - prat3 = 7.8161 - prat4 = 1 - tinlt = 600 - tfan = 1000 - tcomp = 1600 - tt4 = 2390 - tt7 = 2500 - eta3 = 0.88 - eta4 = 0.984 - eta5 = 0.92 - eta7 = 1 - fhv = 18600 + Area = 0.355 + BPR = 1.4 + CPR = 13 + FPR = 1.66 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 27000000 + TIT = 1330 + TAB = 0 + exhaustMixer = False + maxThrust = 200 + maxT3 = 600 } + @MODULE[ModuleEngines*] { - @maxThrust=150 + @maxThrust=160.2 } @@ -54,7 +53,7 @@ { @scale = 0.75, 1.5, 0.75 } - @title=AJE Ka-50 Engine&Rotor + @title=Kamov Ka-50 Engine&Rotor @description= Max take-off is 10.8 tons @mass=1 %CoMOffset = 0, 0, -1 @@ -87,7 +86,7 @@ @PART[D12yari1000]:FOR[AJE] { - @title=AJE CH-53 Engine&Rotor + @title=Sikorsky CH-53 Engine&Rotor @description=Sikorsky CH-53, max take-off is 33 tons. @mass=2 %CoMOffset = 0, 0, -3 @@ -120,7 +119,7 @@ @PART[D12turboProp]:FOR[AJE] { - @title=AJE Progress-AI20 Turboprop + @title=Progress AI20 Turboprop @description= 4500 horsepower at takeoff @mass=1.5 %CoMOffset = 0, -1, 0 diff --git a/GameData/AJE/FS.cfg b/GameData/AJE/FS.cfg index e02591a..64f60a1 100644 --- a/GameData/AJE/FS.cfg +++ b/GameData/AJE/FS.cfg @@ -1,6 +1,6 @@ @PART[FSPropellerEngine]:FOR[AJE] { - @title=AJE BMW 801D Piston Engine + @title=BMW 801D Piston Engine @description= WWII-era 14-cylinder two-speed single-stage supercharged two-row air-cooled radial engine from BMW. Outputs 1875PS (1849HP) at sea level at 1.58ata (1980PS at 1.65ata with C3 injection). Rated 1790PS at 5.25km at 1.65ata static. Used on the Fw 190 A-3 through A-8 and corresponding F and G aircraft (this is the model used in A-8). rescaleFactor = 1.3 @mass = 1.23 // 1.07 engine @@ -75,7 +75,7 @@ @PART[FSPropellerEnginePush]:FOR[AJE] { - @title=AJE BMW 801D Piston Engine (pusher) + @title=BMW 801D Piston Engine (pusher) @description= WWII-era 14-cylinder two-speed single-stage supercharged two-row air-cooled radial engine from BMW. Outputs 1875PS (1849HP) at sea level at 1.58ata (1980PS at 1.65ata with C3 injection). Rated 1790PS at 5.25km at 1.65ata static. Used on the Fw 190 A-3 through A-8 and corresponding F and G aircraft (this is the model used in A-8). rescaleFactor = 1.3 @mass = 1.23 // 1.07 engine @@ -192,7 +192,7 @@ @PART[FSlancasterEngine]:FOR[AJE] { - @title = AJE Napier Sabre VII Piston Engine + @title = Napier Sabre VII Piston Engine @description = WWII-era H-24 liquid-cooled piston engine. Provides 3000HP at sea level (WEP), rated at 2800HP at 6km. Two-speed single stage automatic-switching supercharger. A development of the engine used on the Hawker Tempest. @mass=1.452 // 1152kg engine rescaleFactor = 1.46 @@ -232,7 +232,7 @@ @PART[FSlancasterEngineGear]:FOR[AJE] { - @title = AJE Rolls-Royce Merlin XII (with gear) + @title = Rolls-Royce Merlin XII (with gear) @description = WWII-era V-12 liquid-cooled piston engine. Provides 1175HP at sea level, rising to 1290 at 3.4km (full throttle height). Single-speed single-stage supercharger. The engine used on the Spitfire IIa. @mass=0.752 //623kg engine MODULE @@ -270,7 +270,7 @@ @PART[FSswampEngine]:FOR[AJE] { - @title=AJE Swamp Propeller + @title= Swamp Propeller @description= 600 HP piston engine and low-speed propeller @mass=0.5 MODULE @@ -294,24 +294,30 @@ @PART[FSoblongTailJet]:FOR[AJE] { - @title=AJE General Electric J47-GE-27 - @description= 1950s GE J47 Turbojet mounted in the tail section, as used in F-86F Sabre. 5.5 OPR, no afterburner. SFC of 0.902lb/lbf-hr. + @title= General Electric J47-GE-27 + @description= 1950s GE J47 Turbojet mounted in the tail section, as used in F-86F Sabre. 5.5 OPR, no afterburner. SFC of 0.902lb/lbf-hr. Max thrust 26.47kN. @mass=1.3 CoMOffset = 0.0, 0.8, 0.0 MODULE { - name=AJEModule - defaultentype = 1 - acore=3.365 - byprat=0 - prat3 = 5.5 - tt4 = 1950 - prat4 = 1.0 - eta4 = 0.975 - tt7 = 3000 - eta7 = 0.96 - fhv = 17800 + name = AJEModule + Area = 0.19 + BPR = 0 + CPR = 5.5 + FPR = 0 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 29000000 + TIT = 1080 + TAB = 0 + exhaustMixer = False + maxThrust = 40 + maxT3 = 550 } + @MODULE[ModuleEngines] { @@ -322,7 +328,7 @@ @PART[FSPropellerEngine2blades]:FOR[AJE] { - @title=AJE Pratt & Whitney R-1830 Twin Wasp + @title= Pratt & Whitney R-1830 Twin Wasp @description= WWII-era 1100HP two-row 14 cylinder radial with a single-speed single-stage supercharger to maintain moderate performance up to 5km or so, after which HP falls off more sharply. @mass=0.85 MODULE @@ -394,7 +400,7 @@ @PART[FSPropellerEngineJustBlades]:FOR[AJE] { - @title=AJE Wright R-3350 Duplex-Cyclone (Turbo-Compound) + @title= Wright R-3350 Duplex-Cyclone (Turbo-Compound) @description= Postwar 3500HP two-row 18 cylinder piston engine with power recovery turbines (turbo-compound) and turbosupercharger and with water injection. Used in various 50s and 60s civil and military heavy propeller aircraft. With ram air in high speed flight, 3500HP at 9km. %mass=2.062 // 1712kg engine %rescaleFactor = 2.0 // ??? guess--check prop diameter @@ -434,7 +440,7 @@ @PART[FSturboProp]:FOR[AJE] { - @title=AJE P&W-PT6 Turboprop + @title= Pratt & Whitney PT6 Turboprop @description= Modern turboprop, 675 HP at takeoff @mass=0.35 MODULE @@ -467,8 +473,8 @@ @PART[FScopterRotorMain]:FOR[AJE] { - @title=AJE UH-60 Engine&Rotor - @description= UH-60 Black Hawk, max take-off is 10 tons. + @title=Sikorsky UH-60 Engine&Rotor + @description= Sikorsky UH-60 Black Hawk, max take-off is 10 tons. @mass=1.0 CoMOffset = 0, 0, -1.7 rescaleFactor=2 @@ -500,7 +506,7 @@ @PART[FScopterRotorMainLarge]:FOR[AJE] { - @title=AJE CH-53 Engine&Rotor + @title=Sikorsky CH-53 Engine&Rotor @description=Sikorsky CH-53, max take-off is 33 tons. @mass=2 CoMOffset = 0, 0, -3 @@ -534,7 +540,7 @@ @PART[FSVTOLengineLarge]:FOR[AJE] { - @title=AJE V-22 VTOL Engine&Rotor + @title= Bell Boeing V-22 VTOL Engine&Rotor @description= V-22 Osprey, max take-off is 14 tons per engine. @mass=1.0 @@ -571,7 +577,7 @@ @PART[FSVTOLengine]:FOR[AJE] { - @title=AJE 1/2 V-22 VTOL Engine&Rotor + @title= Bell Boeing V-22 VTOL Engine&Rotor 1/2 @description= a smaller V-22 Osprey, max take-off is 7 tons per engine. @mass= 0.5 @@ -608,7 +614,7 @@ @PART[FScopterRotorMainElectric]:FOR[AJE] { - @title=AJE Electric Engine&Rotor + @title= AJE Electric Engine & Rotor @description= Max take-off is 4 tons. Uses about 1000 Electric Charge per second diff --git a/GameData/AJE/Inlets/B9.cfg b/GameData/AJE/Inlets/B9.cfg index 6f81f78..90be952 100644 --- a/GameData/AJE/Inlets/B9.cfg +++ b/GameData/AJE/Inlets/B9.cfg @@ -5,7 +5,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -26,7 +26,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.90 0 0 @@ -46,7 +46,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.90 0 0 @@ -66,7 +66,7 @@ MODULE { name=AJEInlet - Area=7.2 + Area=0.36 TPRCurve { key = 0.0 0.95 0 0 @@ -85,7 +85,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -105,7 +105,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -125,7 +125,7 @@ MODULE { name=AJEInlet - Area=24 + Area=1.2 TPRCurve { key = 0.0 0.85 0 0 @@ -145,7 +145,7 @@ MODULE { name=AJEInlet - Area=18 + Area=0.9 useTPRCurve=false } } @@ -157,7 +157,7 @@ MODULE { name=AJEInlet - Area=72 + Area=3.6 useTPRCurve=false } } @@ -167,7 +167,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.8 TPRCurve { key = 0.0 0.95 0 0 @@ -186,7 +186,7 @@ MODULE { name=AJEInlet - Area=12 + Area=1 TPRCurve { key = 0.0 0.95 0 0 @@ -205,7 +205,7 @@ MODULE { name=AJEInlet - Area=18 + Area=2.25 TPRCurve { key = 0.0 0.95 0 0 @@ -224,7 +224,7 @@ MODULE { name=AJEInlet - Area=36 + Area=3 TPRCurve { key = 0.0 0.95 0 0 diff --git a/GameData/AJE/Inlets/D12.cfg b/GameData/AJE/Inlets/D12.cfg index d2c3377..7c3d86d 100644 --- a/GameData/AJE/Inlets/D12.cfg +++ b/GameData/AJE/Inlets/D12.cfg @@ -3,7 +3,7 @@ MODULE { name=AJEInlet - Area=40 + Area=2 TPRCurve { key = 0.0 0.95 0 0 @@ -24,7 +24,7 @@ MODULE { name=AJEInlet - Area=18 + Area=0.9 TPRCurve { key = 0.0 0.95 0 0 @@ -45,7 +45,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -65,7 +65,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -85,7 +85,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.85 0 0 diff --git a/GameData/AJE/Inlets/FS.cfg b/GameData/AJE/Inlets/FS.cfg index 0e35c62..a562429 100644 --- a/GameData/AJE/Inlets/FS.cfg +++ b/GameData/AJE/Inlets/FS.cfg @@ -5,7 +5,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.95 0 0 diff --git a/GameData/AJE/Inlets/RetroFuture.cfg b/GameData/AJE/Inlets/RetroFuture.cfg index 0d1c789..e4a82be 100644 --- a/GameData/AJE/Inlets/RetroFuture.cfg +++ b/GameData/AJE/Inlets/RetroFuture.cfg @@ -5,7 +5,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -25,7 +25,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -46,7 +46,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.85 0 0 @@ -65,7 +65,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.85 0 0 @@ -85,7 +85,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -105,7 +105,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.85 0 0 @@ -125,7 +125,7 @@ MODULE { name=AJEInlet - Area=1.8 + Area=0.09 TPRCurve { key = 0.0 0.95 0 0 @@ -144,7 +144,7 @@ MODULE { name=AJEInlet - Area=1.8 + Area=0.09 TPRCurve { key = 0.0 0.95 0 0 @@ -164,7 +164,7 @@ MODULE { name=AJEInlet - Area=3.6 + Area=0.18 TPRCurve { key = 0.0 0.95 0 0 @@ -185,7 +185,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -206,7 +206,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.95 0 0 diff --git a/GameData/AJE/Inlets/SXT.cfg b/GameData/AJE/Inlets/SXT.cfg index 79b6a83..4bbbb98 100644 --- a/GameData/AJE/Inlets/SXT.cfg +++ b/GameData/AJE/Inlets/SXT.cfg @@ -5,7 +5,7 @@ MODULE { name=AJEInlet - Area=84 + Area=3.3 TPRCurve { key = 0.0 0.95 0 0 @@ -26,7 +26,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.95 0 0 @@ -47,7 +47,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -68,7 +68,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.95 0 0 @@ -87,7 +87,7 @@ MODULE { name=AJEInlet - Area=6 + Area=0.3 TPRCurve { key = 0.0 0.85 0 0 diff --git a/GameData/AJE/Inlets/Squad.cfg b/GameData/AJE/Inlets/Squad.cfg index f27fc53..6ba7288 100644 --- a/GameData/AJE/Inlets/Squad.cfg +++ b/GameData/AJE/Inlets/Squad.cfg @@ -5,7 +5,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -27,7 +27,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.85 0 0 @@ -48,7 +48,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.95 0 0 @@ -69,7 +69,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.95 0 0 @@ -90,7 +90,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.95 0 0 @@ -110,7 +110,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -130,7 +130,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.85 0 0 @@ -151,7 +151,7 @@ MODULE { name=AJEInlet - Area=4 + Area=0.2 TPRCurve { key = 0.0 0.95 0 0 @@ -172,7 +172,7 @@ MODULE { name=AJEInlet - Area=1 + Area=0.05 TPRCurve { key = 0.0 0.95 0 0 diff --git a/GameData/AJE/Inlets/TV.cfg b/GameData/AJE/Inlets/TV.cfg index bef3fe4..645b0a6 100644 --- a/GameData/AJE/Inlets/TV.cfg +++ b/GameData/AJE/Inlets/TV.cfg @@ -4,7 +4,7 @@ MODULE { name=AJEInlet - Area=12 + Area=0.6 TPRCurve { key = 0.0 0.85 0 0 @@ -24,7 +24,7 @@ MODULE { name=AJEInlet - Area=3 + Area=0.15 TPRCurve { key = 0.0 0.85 0 0 diff --git a/GameData/AJE/KAX.cfg b/GameData/AJE/KAX.cfg index f460186..6e28161 100644 --- a/GameData/AJE/KAX.cfg +++ b/GameData/AJE/KAX.cfg @@ -1,6 +1,6 @@ @PART[KAXturboprop]:FOR[AJE] { - @title=AJE Rolls Royce AE-2100 Turboprop + @title= Rolls-Royce AE-2100 Turboprop @description= 4300 horsepower at takeoff @mass=1.5 %CoMOffset = 0, -1, 0 @@ -10,8 +10,6 @@ IspMultiplier = 1 useOxygen = true - displacement = 3347 - compression = 6.7 minRPM = 2200 maxRPM = 2800 power = 4200 @@ -34,7 +32,7 @@ @PART[KAXradialprop]:FOR[AJE] { - @title=AJE Pratt & Whitney R-2800-10W Double Wasp + @title= Pratt & Whitney R-2800-10W Double Wasp @description=WWII-era 2000HP twin-row 18-cylinder water-injected radial with a strong three-speed (only 2 modeled) two-stage supercharger. Note, due to modeling issues, will only develop rated altitude horsepower (high blower) when at maximum speed. Used on F6F-3 Hellcat, with very nearly identical model (-8W) used on F4U-1 Corsair with the exception the Corsair did not employ exhaust thrust. 13ft 1in 3 bladed constant speed propeller. %mass = 1.381 //1161kg engine %rescaleFactor = 1.12 @@ -80,7 +78,7 @@ @PART[KAXkueyEngine]:FOR[AJE] { - @title=AJE UH-1 Huey Engine&Rotor + @title= Bell UH-1 Huey Engine&Rotor @description= Max take-off is 4.5 tons @mass=0.7 %CoMOffset = 0, 0, -1 @@ -146,57 +144,45 @@ @PART[KAXjumpJet]:FOR[AJE] { - @title = AJE RR Pegasus 1/4 - @mass = 0.45 - @description = 1/4 Rolls-Royce Pegasus turbofan - + @title = Rolls-Royce Pegasus 11 Mk.103 1/4 + @mass = 0.4 + @description = Rolls-Royce Pegasus turbofan powers the Harrier aircraft. 91.2kN thrust, SFC 0.6 lb/lbf-hr. !MODULE[ModuleGimbal] { } - - - - !MODULE[ModuleEngineConfigs] - { - } MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 3 - acore=1.5 - byprat=1.4 - tinlt=1000 - prat2=1 - eta2=1 - tfan=1600 - prat13=1.5 - eta13=1 - tcomp=1800 - prat3=14 - eta3=0.959 - tt4=2200 - prat4=1 - eta4=0.95 - eta5=0.90 - fhv=12000 - tt7=2500 - eta7=1 - abflag=0 + Area = 0.1 + BPR = 1.3 + CPR = 14.6 + FPR = 2 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 25500000 + TIT = 1222 + TAB = 0 + exhaustMixer = False + maxThrust = 40 + maxT3 = 750 } - + @MODULE[ModuleEngines*] { - @maxThrust=13 + @maxThrust=23 } } + +PART[KAXradialprop]:FOR[AJE] { @name=aje_r3350 - @title=AJE Wright R-3350 Duplex-Cyclone (Turbo-Compound) + @title= Wright R-3350 Duplex-Cyclone (Turbo-Compound) @description= Postwar 3500HP two-row 18 cylinder piston engine with power recovery turbines (turbo-compound) and turbosupercharger and with water injection. Used in various 50s and 60s civil and military heavy propeller aircraft. With ram air in high speed flight, 3500HP at 9km. %mass=2.062 // 1712kg engine @mass=1.2 diff --git a/GameData/AJE/Parts/CircularAirIntake/part.cfg b/GameData/AJE/Parts/CircularAirIntake/part.cfg deleted file mode 100644 index 72b1c74..0000000 --- a/GameData/AJE/Parts/CircularAirIntake/part.cfg +++ /dev/null @@ -1,21 +0,0 @@ -+PART[CircularIntake]:FOR[AJE] -{ - @name =CircularAirIntakesmall - !mesh = DELETE - MODEL - { - model = Squad/Parts/Utility/CircularIntake/model - scale = 0.4, 0.4, 0.4 - } - @TechRequired = highAltitudeFlight - @entryCost = 14000 - @cost = 2680 - @title = Ram Air Intake Small - @description = Not your average air intake. These High Performance air intakes have their own pre-compressors, to supercharge air-breathing engines at very high altitudes. - @mass = 0.01 - @crashTolerance = 10 - @MODULE[ModuleResourceIntake] - { - @area = 0.0025 - } -} diff --git a/GameData/AJE/Parts/Jets/AvonRA7R114.cfg b/GameData/AJE/Parts/Jets/AvonRA7R114.cfg deleted file mode 100644 index d5e7fa8..0000000 --- a/GameData/AJE/Parts/Jets/AvonRA7R114.cfg +++ /dev/null @@ -1,278 +0,0 @@ -PART -{ - // --- general parameters --- - name = B9_Engine_Jet_Turbojet_RRAvon - module = Part - author = bac9 - - // --- asset parameters --- - MODEL - { - model = B9_Aerospace/Parts/Engine_Jet_Turbojet/model - scale = 0.64, 0.64, 0.64 - } - scale = 1.0 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.3, 0.0, 0.0, 1.0, 0.0, 1 - CoMOffset = 0.0, 1.5, 0.0 - - EFFECTS - { - powerflame - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = flamejet1 - modelName = MP_Nazari/FX/flamejet - transformName = thrust_transform - emission = 0.0 0.0 - emission = 0.05 0.15 - emission = 0.5 1.8 - emission = 1.0 3.5 - speed = 0.0 1.5 - speed = 1.0 1.2 - energy = 0.0 0.05 // Same for energy - energy = 0.7 0.33 // Same for energy - energy = 1.0 0.99 // Same for energy - fixedEmissions = false - } - } - - powersmoke - { - - AUDIO - { - name = sndjet1 - channel = Ship - clip = sound_jet_low - volume = 0.0 0.0 - volume = 0.0001 1.12 - volume = 1.0 1.32 - pitch = 0.0 0.25 - pitch = 1.0 1.05 - loop = true - } - - AUDIO - { - name = sndjet2 - channel = Ship - clip = sound_jet_deep - volume = 0.1 0.0 - volume = 0.3 1.15 - volume = 1.0 1.32 - pitch = 0.0 0.5 - pitch = 1.0 1.0 - loop = true - } - MODEL_MULTI_PARTICLE_PERSIST - { - name = smokethrust - modelName = MP_Nazari/FX/smokejet - transformName = thrust_transform - emission = 0.0 0.0 // Curve for emission like stock - emission = 0.07 0.0 // Curve for emission like stock - emission = 0.2 0.4 // Curve for emission like stock - emission = 1.0 1.1 // Curve for emission like stock - energy = 0.0 0.2 // Same for energy - energy = 1.0 3.2 // Same for energy - speed = 0.0 1.0 // And speed - speed = 1.0 0.8 // And speed - grow = 0.0 0.0 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - grow = 1.0 0.15 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - scale = 0.0 1.0 // Rescale the emitters to +0% - scale = 1.0 1.0 // Rescale the emitters to +0% - offset = 0.0 0.0 // Move the particle emitter away from its default position by x meters - offset = 1.0 0.5 // Move the particle emitter away from its default position by x meters - size = 0.0 1.0 // Rescale the particles to +0% - size = 1.0 1.1 // Rescale the particles to +0% - - renderMode = "Billboard" // Render mode : Billboard / SortedBillboard / HorizontalBillboard / VerticalBillboard / Stretch - collide = false // Collision active or not - collideRatio = 0 // how the particles react on collision. 1 is a mirror bounce, 0 is go parallel to the hit surface - fixedScale = 1.0 // Fixed rescale of the particle emitter (for when you rescale the model) - - sizeClamp = 50 // Limits particle size. Default to 50 - - // *************** - // From here the value are not the default anymore. - // *************** - - - angle = 0.0 1.0 // Display if the angle between the emitter transform and camera is lower than 45° - angle = 45.0 1.0 - angle = 50.0 1.0 - distance = 0.0 1.0 // Display if the distance to camera is higher than 110 - distance = 100.0 1.0 - distance = 110.0 1.0 - - emission // Modulate emission from mach and density curve. You can add other section for size, energy, speed, grow, offset and scale - { - mach = 0.0 1.0 - mach = 0.8 1.0 // don't display until mach .8 - mach = 1.0 1.0 - density = 1.0 1.0 - density = 0.4 1.0 // don't display over .4 atmo - density = 0.3 1.0 - density = 0.002 1.0 - density = 0.001 0.0 // and stop under .001 - } - } - } - engage - { - AUDIO - { - channel = Ship - clip = sound_vent_medium - volume = 1.0 - pitch = 2.0 - loop = false - } - } - disengage - { - AUDIO - { - channel = Ship - clip = sound_vent_soft - volume = 1.0 - pitch = 2.0 - loop = false - } - } - flameout - { - AUDIO - { - channel = Ship - clip = sound_explosion_low - volume = 1.0 - pitch = 2.0 - loop = false - } - } - } - - - // --- editor parameters --- - TechRequired = supersonicFlight - entryCost = 9000 - cost = 1450 - category = Propulsion - subcategory = 0 - title = Rolls Royce Avon RA.7R Mk.114 - manufacturer = Tetragon Projects - description = The Avon was Rolls Royce's first axial-flow turbojet, introduced in 1950. The RA.7R, an mid 1950s model, was an afterburning turbojet powering various prototypes from Dassault and Hawker. It was very similar to the basic RA.7, which in various marks powered the Swift, Hunter, Comet, and CAC "Avon" Sabre. 33.41kN dry. SFC 0.86/1.9 lb/lbf-hr static. Temperature limit Mach 2.0. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,0,0 - - // --- standard part parameters --- - mass = 1.31 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 2 - crashTolerance = 7 - breakingForce = 75 - breakingTorque = 75 - maxTemp = 1800 - - MODULE - { - name = ModuleEnginesFX - runningEffectName = powersmoke - directThrottleEffectName = powerflame - thrustVectorTransformName = thrust_transform - exhaustDamage = False - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 42.26 - heatProduction = 160 - useEngineResponseTime = True - engineAccelerationSpeed = 0.12 - engineDecelerationSpeed = 0.21 - useVelocityCurve = false - //fxOffset = 0, 0, 1.13 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } - - atmosphereCurve - { - // Based on Isp/TSFC data from NASA EngineSim, and Kerbin atmo. - key = 0 1625 0 2.25E+07 - key = 7.5E-06 1772 0 0 - key = 0.0006 1492 0 0 - key = 0.11 1668 0 0 - key = 1 1440 -375 0 - } - velocityCurve - { - // Based on Fnet data from NASA EngineSim, curve fitted with MuMech CurveEd - key = 0 0.56 0 -0.0003 - key = 230 0.52 0 0 - key = 687 0.7 0.0011 0.0011 - key = 1030 1 0 0 - key = 1260 0.5 -0.004 -0.004 - key = 1430 0 0 0 - } - } - MODULE - { - name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=4.516 - byprat=0 - prat2 = 1.0 - prat13 = 1.0 - prat3 = 7.3 - prat4 = 0.96 - tfan = 1000 - tcomp = 1400 - tt4 = 1803 - tt7 = 2169 - eta2 = 1 - eta3 = 0.76 - eta4 = 0.982 - eta5 = 0.88 - eta7 = 0.85 - abflag = 1 - fhv = 18600 - ABIspMult = 0.7511 - } - - MODULE - { - name = ModuleAnimateHeat - ThermalAnim = jet_turbofan_heat - } - - MODULE - { - name = ModuleAlternator - RESOURCE - { - name = ElectricCharge - rate = 5.0 - } - } - - RESOURCE - { - name = ElectricCharge - amount = 0 - maxAmount = 0 - isTweakable = false - hideFlow = true - } -} diff --git a/GameData/AJE/Parts/Jets/DerwentV.cfg b/GameData/AJE/Parts/Jets/DerwentV.cfg deleted file mode 100644 index ea8ac94..0000000 --- a/GameData/AJE/Parts/Jets/DerwentV.cfg +++ /dev/null @@ -1,144 +0,0 @@ -PART -{ - // --- general parameters --- - name = B9_Engine_Jet_Turbojet_RRDerwentV - module = Part - author = bac9 - - // --- asset parameters --- - MODEL - { - model = B9_Aerospace/Parts/Engine_Jet_Turbojet/model - texture = model000, AJE/RftS/Brown - scale = 0.28, 0.15, 0.28 - } - scale = 1.0 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.075, 0.0, 0.0, 1.0, 0.0, 0 - CoMOffset = 0.0, 1.5, 0.0 - - // --- FX definitions --- - fx_exhaustLight_yellow = 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, power - fx_smokeTrail_light = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, power - fx_exhaustSparks_flameout = 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, flameout - - // --- Sound FX definition --- - sound_vent_medium = engage - sound_jet_low = running - sound_jet_deep = power - sound_vent_soft = disengage - sound_explosion_low = flameout - - // --- editor parameters --- - TechRequired = supersonicFlight - entryCost = 9000 - cost = 1450 - category = Propulsion - subcategory = 0 - title = Rolls-Royce Derwent V - manufacturer = Tetragon Projects - description = The Derwent V, rather than being a development of the Derwent line (a straight-through-flow development of the W.2), was instead a scaled-down Nene. It powered the Meteor F.4, and was available in mid-late 1945. SFC 1.02 lb/lbf-hr static. Temperature limit Mach 1.4. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,0,0 - - // --- standard part parameters --- - mass = 0.57 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 2 - crashTolerance = 7 - breakingForce = 75 - breakingTorque = 75 - maxTemp = 1800 - - MODULE - { - name = ModuleEngines - thrustVectorTransformName = thrust_transform - exhaustDamage = False - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 15.6 - heatProduction = 250 - useEngineResponseTime = True - engineAccelerationSpeed = 0.1 - engineDecelerationSpeed = 0.2 - useVelocityCurve = True - fxOffset = 0, 0, 0.9 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } - atmosphereCurve - { - // Based on Isp/TSFC data from NASA EngineSim, and Kerbin atmo. - key = 0 1015 0 2.8E+07 - key = 7.5E-06 1108 0 0 - key = 0.0006 933 0 0 - key = 0.11 1042 0 0 - key = 1 900 -400 0 - } - velocityCurve - { - // Based on Fnet data from NASA EngineSim, curve fitted with MuMech CurveEd - key = 0 1.0 0 -0.0005 - key = 200 0.93 0 0 - key = 500 1.25 0 0 - key = 700 1.4 0 0 - key = 800 0.9 -0.005 -0.005 - key = 990 0 0 0 - } - } - MODULE - { - name=AJEModule - defaultentype = 1 - defineenparm= true - acore=3.3488 - byprat=0 - prat3= 4.444 - prat4 = 0.9 - tinlt = 620 - tfan = 1000 - tcomp = 1516 - tt4 = 1850 - tt7 = 3200 - eta3 = 0.8 - eta4 = 0.95 - eta5 = 0.84 - eta7 = 0.88 - fhv = 19830 - abflag = 0 - } - - MODULE - { - name = ModuleAnimateHeat - ThermalAnim = jet_turbofan_heat - } - - MODULE - { - name = ModuleAlternator - RESOURCE - { - name = ElectricCharge - rate = 5.0 - } - } - - RESOURCE - { - name = ElectricCharge - amount = 0 - maxAmount = 0 - isTweakable = false - hideFlow = true - } -} diff --git a/GameData/AJE/Parts/Jets/J57P7.cfg b/GameData/AJE/Parts/Jets/J57P7.cfg deleted file mode 100644 index 5f89893..0000000 --- a/GameData/AJE/Parts/Jets/J57P7.cfg +++ /dev/null @@ -1,267 +0,0 @@ -PART -{ - // --- general parameters --- - name = B9_Engine_Jet_Turbojet_J57 - module = Part - author = bac9 - - // --- asset parameters --- - MODEL - { - model = B9_Aerospace/Parts/Engine_Jet_Turbojet/model - texture = model000, AJE/RftS/Silver - scale = 0.75, 0.75, 0.75 - } - scale = 1.0 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.375, 0.0, 0.0, 1.0, 0.0, 1 - CoMOffset = 0.0, 3.0, 0.0 - - EFFECTS - { - powerflame - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = bninejet - modelName = MP_Nazari/FX/flamejet3 - transformName = thrust_transform - emission = 0.0 0.0 - emission = 0.6666 0.0 - emission = 0.6667 0.4 - emission = 1.0 1.6 - speed = 0.0 1.98 - speed = 1.0 1.64 - energy = 0.0 0.05 // Same for energy - energy = 0.7 0.21 // Same for energy - energy = 1.0 0.99 // Same for energy - fixedEmissions = false - } - - AUDIO - { - channel = Ship - clip = sound_jet_low - volume = 0.0 0.0 - volume = 0.6666 1.0 - volume = 0.6667, 1.2 - volume = 1.0, 1.5 - pitch = 0.0 0.2 - pitch = 0.67 1.0 - pitch = 1.0 1.0 - loop = true - } - } - - powersmoke - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = smokethrust - modelName = MP_Nazari/FX/smokejet - transformName = thrust_transform - emission = 0.0 0.0 // Curve for emission like stock - emission = 0.07 0.0 // Curve for emission like stock - emission = 0.2 0.4 // Curve for emission like stock - emission = 1.0 1.1 // Curve for emission like stock - energy = 0.0 0.2 // Same for energy - energy = 1.0 3.2 // Same for energy - speed = 0.0 1.0 // And speed - speed = 1.0 0.8 // And speed - grow = 0.0 0.0 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - grow = 1.0 0.11 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - scale = 0.0 1.0 // Rescale the emitters to +0% - scale = 1.0 1.0 // Rescale the emitters to +0% - offset = 0.0 0.0 // Move the particle emitter away from its default position by x meters - offset = 1.0 0.5 // Move the particle emitter away from its default position by x meters - size = 0.0 1.0 // Rescale the particles to +0% - size = 1.0 1.1 // Rescale the particles to +0% - - renderMode = "Billboard" // Render mode : Billboard / SortedBillboard / HorizontalBillboard / VerticalBillboard / Stretch - collide = false // Collision active or not - collideRatio = 0 // how the particles react on collision. 1 is a mirror bounce, 0 is go parallel to the hit surface - fixedScale = 1.0 // Fixed rescale of the particle emitter (for when you rescale the model) - - sizeClamp = 50 // Limits particle size. Default to 50 - - // *************** - // From here the value are not the default anymore. - // *************** - - - angle = 0.0 1.0 // Display if the angle between the emitter transform and camera is lower than 45° - angle = 45.0 1.0 - angle = 50.0 1.0 - distance = 0.0 1.0 // Display if the distance to camera is higher than 110 - distance = 100.0 1.0 - distance = 110.0 1.0 - - emission // Modulate emission from mach and density curve. You can add other section for size, energy, speed, grow, offset and scale - { - mach = 0.0 1.0 - mach = 0.8 1.0 // don't display until mach .8 - mach = 1.0 1.0 - density = 1.0 1.0 - density = 0.4 1.0 // don't display over .4 atmo - density = 0.3 1.0 - density = 0.002 1.0 - density = 0.001 0.0 // and stop under .001 - } - } - } - - engage - { - AUDIO - { - channel = Ship - clip = sound_vent_medium - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - disengage - { - AUDIO - { - channel = Ship - clip = sound_vent_soft - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - flameout - { - AUDIO - { - channel = Ship - clip = sound_explosion_low - volume = 1.0 - pitch = 2.0 - loop = false - } - } - } - - - // --- editor parameters --- - TechRequired = supersonicFlight - entryCost = 9000 - cost = 1450 - category = Propulsion - subcategory = 0 - title = Pratt and Whitney J57-P-7 Turbojet - manufacturer = Tetragon Projects - description = Early 1950s turbojet. Powered F-100A among others. 43.148kN dry thrust. SFC 0.79/2.16 lb/lbf-hr static. Temperature limit Mach 1.75. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,0,0 - - // --- standard part parameters --- - mass = 1.9 // 1.9 to 2.3 IRL - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 2 - crashTolerance = 7 - breakingForce = 75 - breakingTorque = 75 - maxTemp = 1800 - - MODULE - { - name = ModuleEnginesFX - runningEffectName = powersmoke - directThrottleEffectName = powerflame - thrustVectorTransformName = thrust_transform - exhaustDamage = False - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 74 - heatProduction = 160 - useEngineResponseTime = True - engineAccelerationSpeed = 0.12 - engineDecelerationSpeed = 0.21 - useVelocityCurve = false - fxOffset = 0, 0, 1.13 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } - - atmosphereCurve - { - // Based on Isp/TSFC data from NASA EngineSim, and Kerbin atmo. - key = 0 1625 0 2.25E+07 - key = 7.5E-06 1772 0 0 - key = 0.0006 1492 0 0 - key = 0.11 1668 0 0 - key = 1 1440 -375 0 - } - velocityCurve - { - // Based on Fnet data from NASA EngineSim, curve fitted with MuMech CurveEd - key = 0 0.56 0 -0.0003 - key = 230 0.52 0 0 - key = 687 0.7 0.0011 0.0011 - key = 1030 1 0 0 - key = 1260 0.5 -0.004 -0.004 - key = 1430 0 0 0 - } - } - MODULE - { - name = AJEModule - IspMultiplier=1.0 - defaultentype=2 - defineenparm= true - acore = 3.43 - byprat = 0 - prat13 = 1.0 - prat3 = 12.5 - prat4 = 1.0 - tfan = 1400 - tcomp = 1400 - tt4 = 2333 - tt7 = 4186 - eta3 = 0.86 - eta4 = 0.982 - eta5 = 0.9 - eta7 = 0.9 - ABIspMult = 0.764 - abflag = 1 - - } - MODULE - { - name = ModuleAnimateHeat - ThermalAnim = jet_turbofan_heat - } - - MODULE - { - name = ModuleAlternator - RESOURCE - { - name = ElectricCharge - rate = 5.0 - } - } - - RESOURCE - { - name = ElectricCharge - amount = 0 - maxAmount = 0 - isTweakable = false - hideFlow = true - } -} diff --git a/GameData/AJE/Parts/Jets/J79GE2.cfg b/GameData/AJE/Parts/Jets/J79GE2.cfg deleted file mode 100644 index 87116a0..0000000 --- a/GameData/AJE/Parts/Jets/J79GE2.cfg +++ /dev/null @@ -1,266 +0,0 @@ -PART -{ - // --- general parameters --- - name = B9_Engine_Jet_Turbojet_J79 - module = Part - author = bac9 - - // --- asset parameters --- - MODEL - { - model = B9_Aerospace/Parts/Engine_Jet_Turbojet/model - texture = model000, AJE/RftS/Silver - scale = 0.8, 0.8, 0.8 - } - scale = 1.0 - rescaleFactor = 1.0 - - // --- node definitions --- - node_stack_top = 0.0, 0.4, 0.0, 0.0, 1.0, 0.0, 1 - CoMOffset = 0.0, 3.0, 0.0 - - EFFECTS - { - powerflame - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = bninejet - modelName = MP_Nazari/FX/flamejet3 - transformName = thrust_transform - emission = 0.0 0.0 - emission = 0.6666 0.0 - emission = 0.6667 0.4 - emission = 1.0 1.6 - speed = 0.0 1.98 - speed = 1.0 1.64 - energy = 0.0 0.05 // Same for energy - energy = 0.7 0.21 // Same for energy - energy = 1.0 0.99 // Same for energy - fixedEmissions = false - } - - AUDIO - { - channel = Ship - clip = sound_jet_low - volume = 0.0 0.0 - volume = 0.6666 1.0 - volume = 0.6667, 1.2 - volume = 1.0, 1.5 - pitch = 0.0 0.2 - pitch = 0.67 1.0 - pitch = 1.0 1.0 - loop = true - } - } - - powersmoke - { - MODEL_MULTI_PARTICLE_PERSIST - { - name = smokethrust - modelName = MP_Nazari/FX/smokejet - transformName = thrust_transform - emission = 0.0 0.0 // Curve for emission like stock - emission = 0.07 0.0 // Curve for emission like stock - emission = 0.2 0.4 // Curve for emission like stock - emission = 1.0 1.1 // Curve for emission like stock - energy = 0.0 0.2 // Same for energy - energy = 1.0 3.2 // Same for energy - speed = 0.0 1.0 // And speed - speed = 1.0 0.8 // And speed - grow = 0.0 0.0 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - grow = 1.0 0.11 // Grow the particles at 0% per seconds ( 0.02 would be 2% ) - scale = 0.0 1.0 // Rescale the emitters to +0% - scale = 1.0 1.0 // Rescale the emitters to +0% - offset = 0.0 0.0 // Move the particle emitter away from its default position by x meters - offset = 1.0 0.5 // Move the particle emitter away from its default position by x meters - size = 0.0 1.0 // Rescale the particles to +0% - size = 1.0 1.1 // Rescale the particles to +0% - - renderMode = "Billboard" // Render mode : Billboard / SortedBillboard / HorizontalBillboard / VerticalBillboard / Stretch - collide = false // Collision active or not - collideRatio = 0 // how the particles react on collision. 1 is a mirror bounce, 0 is go parallel to the hit surface - fixedScale = 1.0 // Fixed rescale of the particle emitter (for when you rescale the model) - - sizeClamp = 50 // Limits particle size. Default to 50 - - // *************** - // From here the value are not the default anymore. - // *************** - - - angle = 0.0 1.0 // Display if the angle between the emitter transform and camera is lower than 45° - angle = 45.0 1.0 - angle = 50.0 1.0 - distance = 0.0 1.0 // Display if the distance to camera is higher than 110 - distance = 100.0 1.0 - distance = 110.0 1.0 - - emission // Modulate emission from mach and density curve. You can add other section for size, energy, speed, grow, offset and scale - { - mach = 0.0 1.0 - mach = 0.8 1.0 // don't display until mach .8 - mach = 1.0 1.0 - density = 1.0 1.0 - density = 0.4 1.0 // don't display over .4 atmo - density = 0.3 1.0 - density = 0.002 1.0 - density = 0.001 0.0 // and stop under .001 - } - } - } - - engage - { - AUDIO - { - channel = Ship - clip = sound_vent_medium - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - disengage - { - AUDIO - { - channel = Ship - clip = sound_vent_soft - volume = 1.0 - pitch = 2.0 - loop = false - } - } - - flameout - { - AUDIO - { - channel = Ship - clip = sound_explosion_low - volume = 1.0 - pitch = 2.0 - loop = false - } - } - } - - - // --- editor parameters --- - TechRequired = supersonicFlight - entryCost = 9000 - cost = 1450 - category = Propulsion - subcategory = 0 - title = General Electric J79-GE-2 turbojet - manufacturer = Tetragon Projects - description = The first US "Mach 2" engine, the J79 saw extensive service, powering the B-58 Hustler and the F-4 Phantom and F-104 Starfighter among others. This late-1950s model powered the F4H-1F (F-4A) Phantom and was quite similar to the -7 in the F-104C/D, and the -8 in the F4H-1 (F-4B) though the latter featured an overall pressure ratio of 12.9, not the -2's 12.5. 46.04kN dry. SFC 0.87/2.0 lb/lbf-hr static. Temperature limit Mach 2.3. - - // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision - attachRules = 1,0,1,0,0 - - // --- standard part parameters --- - mass = 1.642 - dragModelType = default - maximum_drag = 0.2 - minimum_drag = 0.2 - angularDrag = 2 - crashTolerance = 7 - breakingForce = 75 - breakingTorque = 75 - maxTemp = 1800 - - MODULE - { - name = ModuleEnginesFX - runningEffectName = powersmoke - directThrottleEffectName = powerflame - thrustVectorTransformName = thrust_transform - exhaustDamage = False - ignitionThreshold = 0.1 - minThrust = 0 - maxThrust = 71.84 - heatProduction = 160 - useEngineResponseTime = True - engineAccelerationSpeed = 0.12 - engineDecelerationSpeed = 0.21 - useVelocityCurve = false - fxOffset = 0, 0, 1.13 - PROPELLANT - { - name = LiquidFuel - ratio = 1 - DrawGauge = True - } - - atmosphereCurve - { - // Based on Isp/TSFC data from NASA EngineSim, and Kerbin atmo. - key = 0 1625 0 2.25E+07 - key = 7.5E-06 1772 0 0 - key = 0.0006 1492 0 0 - key = 0.11 1668 0 0 - key = 1 1440 -375 0 - } - velocityCurve - { - // Based on Fnet data from NASA EngineSim, curve fitted with MuMech CurveEd - key = 0 0.56 0 -0.0003 - key = 230 0.52 0 0 - key = 687 0.7 0.0011 0.0011 - key = 1030 1 0 0 - key = 1260 0.5 -0.004 -0.004 - key = 1430 0 0 0 - } - } - MODULE - { - name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=3.931 - byprat=0 - prat13 = 1.0 - prat3=12.5 - tfan = 1600 - tcomp = 1800 - tt4= 2310 - tt7= 4434 - eta3 = 0.811 - eta4 = 0.981 - eta5 = 0.889 - eta7 = 0.84 - abflag=1 - fhv=17670 - ABIspMult = 0.98 - } - MODULE - { - name = ModuleAnimateHeat - ThermalAnim = jet_turbofan_heat - } - - MODULE - { - name = ModuleAlternator - RESOURCE - { - name = ElectricCharge - rate = 5.0 - } - } - - RESOURCE - { - name = ElectricCharge - amount = 0 - maxAmount = 0 - isTweakable = false - hideFlow = true - } -} diff --git a/GameData/AJE/Parts/radialEngineBody/part.cfg b/GameData/AJE/Parts/radialEngineBody/part.cfg deleted file mode 100644 index edc1f4e..0000000 --- a/GameData/AJE/Parts/radialEngineBody/part.cfg +++ /dev/null @@ -1,15 +0,0 @@ -+PART[radialEngineBody]:FOR[AJE] -{ - @name = radialEngineBodysmall - MODEL - { - model = Squad/Parts/Structural/engineBodyRadial/model - scale = 0.4, 0.4, 0.4 - } - @node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0 - @node_stack_bottom = 0.0, -3.795, 0.0, 0.0, 1.0, 0.0 - @node_attach = 0.0, 0.0, 2.56, 0.0, 0.0, -1.0, 1 - @title = Radial Engine Body Small - @description = This engine body features radiator flaps and cowls to help cool air breathing, high performance engines. - @mass = 0.1 -} diff --git a/GameData/AJE/solarpanel.cfg b/GameData/AJE/Parts/solarpanel.cfg similarity index 100% rename from GameData/AJE/solarpanel.cfg rename to GameData/AJE/Parts/solarpanel.cfg diff --git a/GameData/AJE/Plugins/AJE.dll b/GameData/AJE/Plugins/AJE.dll index 09097c8..f52386e 100644 Binary files a/GameData/AJE/Plugins/AJE.dll and b/GameData/AJE/Plugins/AJE.dll differ diff --git a/GameData/AJE/Retrofuture.cfg b/GameData/AJE/Retrofuture.cfg index 683627b..4e5ef88 100644 --- a/GameData/AJE/Retrofuture.cfg +++ b/GameData/AJE/Retrofuture.cfg @@ -1,31 +1,34 @@ @PART[PWR210]:FOR[AJE] { - @title = AJE Saturn AL-41 turbofan + @title = Lyulka (Saturn) AL-41 turbofan @mass = 1.42 - @description = Modern afterburning turbofan designed for Sukhoi T-50, with thrust vectoring + @description = Modern afterburning turbofan designed for Sukhoi T-50 featuring vector thrust. Data based on estimation: thrust 160 kN wet, 81 kN dry, SFC 0.55/1.6 lb/lb hr. Max 2.5 Mach. %CoMOffset = 0, 2, 0 MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - acore=5.2 - byprat=0.6 - abflag=1 - prat13 = 1.745 - prat3=20 - tinlt=1600 - tfan=2000 - tcomp=2000 - tt4=3500 - tt7=6200 - + Area = 0.3 + BPR = 0.6 + CPR = 30 + FPR = 1.7 + Mdes = 0.8 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 32000000 + TIT = 1600 + TAB = 3200 + exhaustMixer = True + maxThrust = 220 + maxT3 = 1100 } + @MODULE[ModuleEngines*] { - @maxThrust=150 + @maxThrust=160 } @@ -34,20 +37,31 @@ @PART[kumoJet]:FOR[AJE] { - @title = AJE Junkers Jumo 004 + @title = Junkers Jumo 004 @mass = 0.72 %rescaleFactor = 1 @description = The Junkers Jumo 004 was the world's first turbojet engine in production and operational use, and the first successful axial compressor jet engine ever built. - + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=1 - acore=1.8 - byprat=0 - prat3=3.14 + Area = 0.1 + BPR = 0 + CPR = 3.14 + FPR = 0 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 25000000 + TIT = 900 + TAB = 0 + exhaustMixer = False + maxThrust = 20 + maxT3 = 500 } + @MODULE[ModuleEngines*] { @@ -58,18 +72,28 @@ @PART[sankerJet]:FOR[AJE] { - @title = AJE Sanger Ramjet - @mass = 0.6 - @description = 0.625m Ramjet Powered by NASA EngineSim, fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! + @title = Sanger Ramjet + @mass = 0.2 + @description = 0.625m Ramjet fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 4 - useOverheat=false - acore=1.8 - byprat=0 + Area = 0.09 + BPR = 0 + CPR = 1 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1800 + TAB = 0 + exhaustMixer = True + maxThrust = 200 + maxT3 = 1200 } @MODULE[ModuleEngines*] { @@ -79,46 +103,41 @@ @PART[fartJet]:FOR[AJE] { - - @title = AJE Rolls-Royce Nene Mk. 250 - @description = British: Late war turbojet, the finest to see service during the Second World War. For use in the JRC Mk II, a reheat pipe (afterburner) was fitted to increase thrust (especially at high speeds) at the cost of vastly increased fuel usage. 27.8kN dry. 1.16/2.5 lb/lbf-hr static. Temperature limit Mach 1.9. - @mass = 0.932 + @title = Rolls-Royce Nene Mk.102 + @mass = 0.753 + @description = Large centrifugal flow turbojet, essentially an enlarged Derwent, which itself was an improvement and enlargement of the original Whittle engine in "straight-through" form. However, it used a double-sided compressor for an improved pressure ratio. A scaled-down Nene (as the Derwent V) powered late marks of the Gloster Meteor; the Nene itself powered many British aircraft of the 1940s and early 1950s, and in the US, as the license built Pratt & Whitney J42, the F9F Panther. After Nenes were given to the Soviet Union in the late 1940s, a reverse-engineered version powered the MiG-15. The late 1940s Mk102 powered the Attacker FB.2, Sea Hawk F.1-4, and the French Ouragan A. 22.24 kN, SFC 1.09 lb/lbf-hr static. Temperature limit Mach 1.8. %rescaleFactor = 2.0 - MODULE { - name=AJEModule - defaultentype = 2 - defineenparm= true - acore=3.441 - byprat=0 - prat3= 4.767063922 - prat4 = 0.923 - tinlt = 680 - tfan = 1000 - tcomp = 1520 - tt4 = 1850 - tt7 = 2585 - eta3 = 0.81 - eta4 = 0.95 - eta5 = 0.851 - eta7 = 0.89 - fhv = 17000 - abflag = 1 - ABIspMult = 0.73545 + name = AJEModule + Area = 0.19 + BPR = 0 + CPR = 4.44 + FPR = 0 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 27000000 + TIT = 1030 + TAB = 0 + exhaustMixer = True + maxThrust = 40 + maxT3 = 600 } - - @MODULE[ModuleEngines*] + + @MODULE[ModuleEngines*] { - @maxThrust=27.8 + @maxThrust=22.24 } } @PART[v12Mislyn]:FOR[AJE] { - @title= AJE Packard Merlin V-1650-9 + @title= Packard Merlin V-1650-9 @description= WWII-era V-12 liquid-cooled piston engine. 2160HP at sea level with ram air with a very strong automatic two-speed two-stage supercharger (2210HP max with ram air). 90inHG max boost. Used on the P-51H Mustang. @mass = 1.021 // 800kg engine MODULE @@ -155,7 +174,7 @@ @PART[v12BrickTop]:FOR[AJE] { - @title = AJE Napier Sabre VII Piston Engine + @title = Napier Sabre VII Piston Engine @description = WWII-era H-24 liquid-cooled piston engine. Provides 3000HP at sea level (WEP), rated at 2800HP at 6km. Two-speed single stage automatic-switching supercharger. A development of the engine used on the Hawker Tempest. @mass=1.452 // 1152kg engine MODULE @@ -193,7 +212,7 @@ @PART[jeyTew]:FOR[AJE] { - @title=AJE 1/2 V-22 VTOL Engine&Rotor + @title= Bell Boeing V-22 VTOL Engine&Rotor 1/2 @description= a smaller V-22 Osprey, max take-off is 7 tons per engine. @mass= 0.5 @@ -225,7 +244,7 @@ @PART[vtolKodachi]:FOR[AJE] { - @title=AJE Pratt&Whitney F-135 Lift fan + @title=Pratt & Whitney F-135 Lift fan @description= The lift fan installed with the F-135 jet engine on F-35 Lightning MkII. Driven by a clutch that conveys 35,000 HP, provides 90kN lift maximum. Also has some pitch control authority to avoid flipping of your precious F-35. @EFFECTS { @@ -274,38 +293,30 @@ @PART[vtolKento]:FOR[AJE] { - @title=AJE Pratt&Whitney F-135 turbofan + @title=Pratt & Whitney F-135 turbofan @description= The Pratt & Whitney F135 is an afterburning turbofan developed for the F-35 Lightning II single-engine strike fighter. Maximum thrust: 175 kN max, 128 kN dry. @mass = 1.7 MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 3 - defineenparm= true - acore=4.75 - byprat=0.56 - tinlt=1500 - prat2=1 - eta2=1 - tfan=1900 - prat13=3 - eta13=1 - tcomp=1900 - prat3=10 - eta3=0.959 - tt4=4100 - prat4=1 - eta4=0.984 - eta5=0.982 - fhv=18600 - tt7=6800 - eta7=0.95 - abflag=1 - idle=0.01 - ABIspMult = 0.815 + Area = 0.34 + BPR = 0.56 + CPR = 30 + FPR = 3 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 24000000 + TIT = 2270 + TAB = 2650 + exhaustMixer = True + maxThrust = 250 + maxT3 = 1000 } + !MODULE[MultiModeEngine] { } @@ -321,24 +332,36 @@ @PART[vtolShoto]:FOR[AJE] { - @title=AJE Dual GE-J85 VTOL tilt engine (big) - @description= Two buffed J-85 turbojets installed in the tilt engine nacelle. + @title=Rolls-Royce RB.153-61R turbojet tilt engine x2 + @description= Designed for VJ101D VTOL aircraft. 51.8kN wet / 30.5 kN dry each. + @mass = 1.3 MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 1 - acore=12 - byprat=0 - fhv=17500 + Area = 0.26 + BPR = 0.7 + CPR = 18 + FPR = 3 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 24000000 + TIT = 1350 + TAB = 2340 + exhaustMixer = True + maxThrust = 200 + maxT3 = 800 } + !MODULE[MultiModeEngine] { } @MODULE[ModuleEnginesFX],0 { - @maxThrust=80 + @maxThrust=103.6 } !MODULE[ModuleEnginesFX],1 { @@ -348,17 +371,27 @@ @PART[vtolTanto]:FOR[AJE] { - @title=AJE Dual GE-J85 VTOL tilt engine (big) - @description= Two buffed J-85 turbojets installed in the tilt engine nacelle. - + @title=Rolls-Royce RB.153-61R turbojet tilt engine + @description= Designed for VJ101D VTOL aircraft. 51.8kN wet / 30.5 kN dry each. + @mass = 0.65 MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 1 - acore=6 - byprat=0 - fhv=17500 + Area = 0.13 + BPR = 0.7 + CPR = 18 + FPR = 3 + Mdes = 0.8 + Tdes = 260 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 24000000 + TIT = 1350 + TAB = 2340 + exhaustMixer = True + maxThrust = 200 + maxT3 = 800 } !MODULE[MultiModeEngine] @@ -366,7 +399,7 @@ } @MODULE[ModuleEnginesFX],0 { - @maxThrust=40 + @maxThrust=51.8 } !MODULE[ModuleEnginesFX],1 { diff --git a/GameData/AJE/SXT.cfg b/GameData/AJE/SXT.cfg index e67e093..10f0955 100644 --- a/GameData/AJE/SXT.cfg +++ b/GameData/AJE/SXT.cfg @@ -3,20 +3,29 @@ @mass = 0.25 %CoMOffset = 0, 0.3, 0 - @title = AJE Williams FJ44 turbofan - @description = A Small turbofan + @title = Williams/Rolls-Royce FJ44-2A turbofan + @description = A Small civil turbofan - MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=0.35 - byprat=3 - prat3=5 - tt4=2800 + Area = 0.045 + BPR = 3 + CPR = 5 + FPR = 1.7 + Mdes = 0.3 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 24000000 + TIT = 1200 + TAB = 0 + exhaustMixer = False + maxThrust = 20 + maxT3 = 550 } + @MODULE[ModuleEngines*] { @@ -26,37 +35,40 @@ @PART[SXTKe90TurboJet]:FOR[AJE] { - @title = AJE Progress-D18 turbofan - @description = An-225 and An-124 used these + @title = Progress D-18T turbofan + @description = High-bypass turbofan for An-225 and An-124. 229.8kN thrust, SFC 0.360 lb/lbf hr. %CoMOffset = 0, 1, 0 @mass = 4.1 - - MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - tcomp=1800 - acore=6.2 - byprat=5.7 - prat13=1.8 - prat3=27.5 - tt4=2880 - eta7=0.8 - fhv=18600 - + Area = 0.49 + BPR = 5.7 + CPR = 27.5 + FPR = 1.8 + Mdes = 0.3 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 30000000 + TIT = 1600 + TAB = 0 + exhaustMixer = False + maxThrust = 300 + maxT3 = 1000 } + @MODULE[ModuleEngines*] { - @maxThrust=230 + @maxThrust=229.8 } } @PART[SXTTinyprop]:FOR[AJE] { - @title=AJE P&W-PT6 Turboprop + @title=Pratt & Whitney PT6 Turboprop @description= Modern turboprop, 675 HP at takeoff @mass=0.35 @rescaleFactor = 2 diff --git a/GameData/AJE/Squad.cfg b/GameData/AJE/Squad.cfg index a0a2dfa..90bac6c 100644 --- a/GameData/AJE/Squad.cfg +++ b/GameData/AJE/Squad.cfg @@ -3,16 +3,14 @@ @name = aje_j85 %rescaleFactor = 0.5 %CoMOffset = 0, 0.8, 0 - @title =AJE General Electric J85 turbojet - @description = A basic, small turbojet powered by NASA EngineSim. Works from Mach 0 to 2. - @mass = 0.2 + @title = General Electric J85-GE-4 turbojet + @description = General Electric J85 turbojet without afterburner, Thrust 13.1 kN, SFC 0.980 lb/lbf-hr static. + @mass = 0.18 @MODULE[ModuleEngines*] { @exhaustDamage = false - @maxThrust = 20 - @heatProduction = 160 - @useVelocityCurve = false + @maxThrust = 13.1 } !MODULE[AJEModule] @@ -21,11 +19,21 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 1 - acore=3 - byprat=0 - fhv=17500 + Area=0.085 + BPR=0 + CPR=6.5 + FPR=0 + Mdes=0.7 + Tdes=250 + eta_c=0.95 + eta_t=0.98 + eta_n=0.8 + FHV=28E6 + TIT=1250 + TAB=0 + exhaustMixer=false + maxThrust = 20 + maxT3 = 700 } } @@ -33,9 +41,9 @@ { - @title = AJE Pratt & Whitney F100-PW-229A turbofan + @title = Pratt & Whitney F100-PW-229 turbofan @mass = 1.7 - @description = Pratt and Whitney F100 low-bypass turbofan with afterburner, used by F-15E/I/S and F-16C/D. Powered by NASA EngineSim. SFC 0.74/2.05 lb/lbf-hr static. Temperature limit Mach 2.85. + @description = Pratt and Whitney F100 low-bypass turbofan with afterburner, used by F-15E/I/S and F-16C/D. Powered by NASA EngineSim. 129.4 kN wet, 79.2 kN dry. SFC 0.74/2.05 lb/lbf-hr static. Temperature limit Mach 2.85. %CoMOffset = 0, 1.7, 0 @@ -47,29 +55,21 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 3 - defineenparm= true - acore=4.223 - byprat=0.36 - tinlt=1500 - prat2=1 - eta2=1 - tfan=1900 - prat13=3.8 - eta13=1 - tcomp=1900 - prat3=9.21 - eta3=0.95 - tt4=2921 - prat4=1 - eta4=0.98 - eta5=0.98 - fhv=18600 - tt7=7296 - eta7=0.98 - abflag=1 - ABIspMult = 1.2618 + Area=0.29 + BPR=0.36 + CPR=32 + FPR=3.8 + Mdes=0.9 + Tdes=250 + eta_c=0.95 + eta_t=0.98 + eta_n=0.7 + FHV=22.5E6 + TIT=1620 + TAB=2850 + exhaustMixer=true + maxThrust = 200 + maxT3 = 1100 } @MODULE[ModuleEngines*] @@ -87,45 +87,29 @@ { } - @title = AJE Pratt & Whitney J58-P-4 + @title = Pratt & Whitney J58-P-4 @mass = 2.7 @description = Designed in the late 1950s, the J58 was redesigned and repurposed for one use: Mach 3+ aircraft like the A-12 / SR-71A/B / YF-12A. This model, the only operational one, entered service with the Blackbird in the mid 1960s. Variable CPR from 8.8 to 2.93 due to bypass vents progressively opening past Mach 2; fully open at Mach 3. 111.2kN dry. SFC 0.8/1.9 lb/lbf-hr static. Temperature limit Mach 4.1. + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - defineenparm= true - acore=8.007 - byprat=0 - tinlt = 1800 - tfan = 2000 - tcomp = 2300 - tt4 = 2450 - tt7 = 3786 - prat2 = 1 - prat13 = 1 - prat3 = 8.5 - prat4 = 1 - eta2 = 1 - eta13 = 1 - eta3 = 0.89 - eta4 = 0.98 - eta5 = 0.93 - eta7 = 0.96 - abflag=1 - fhv=20000 - maxThrust=300 - ABIspMult = 0.7245687632 - usePrat3Curve = true - prat3Curve - { - key = 0.0 8.5 0 0 - key = 2.0 8.5 0 0 - key = 3.0 2.93 0 0 - key = 3.1 2.93 0 0 - } + Area = 0.58 + BPR = 0 + CPR = 8.5 + FPR = 0 + Mdes = 0.3 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 32000000 + TIT = 1360 + TAB = 3800 + exhaustMixer = True + maxThrust = 400 + maxT3 = 1200 } @MODULE[ModuleEngines*] @@ -140,23 +124,35 @@ { @name = aje_ramjet @title = CR2 Ramjet - @mass = 2.5 + @mass = 0.8 %CoMOffset = 0, 1.5, 0 - @description = CR2 Ramjet Powered by NASA EngineSim, fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! + @description = A fictional CR2 Ramjet. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! !MODULE[AJEModule] { } + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 4 - useOverheat=false - acore=7.2 - byprat=0 + Area = 0.36 + BPR = 0 + CPR = 1 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1800 + TAB = 0 + exhaustMixer = True + maxThrust = 700 + maxT3 = 1200 } + @MODULE[ModuleEngines*] { @useEngineResponseTime = False @@ -193,80 +189,67 @@ @PART[RAPIER]:FOR[AJE] { %CoMOffset = 0, 2, 0 - @title = AJE RAPIER + @description = The dual-mode active-cooling RAPIER hypersonic engine which burns Methane. Max thrust 175kN Static, SFC 2.0 lb/lbf/hr + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - useOverheat=false - isReactionEngine=true - acore=9 - byprat=0 - tinlt=3000 - tfan=3000 - tcomp=4000 - tt4=2600 - tt7=4800 - prat3=12 - fhv=23000 - usePrat3Curve = True - maxThrust=300 - prat3Curve - { - key = 0.0 12.0 0 0 - key = 2.5 11.0 0 0 - key = 5.0 3.0 0 0 - } - } + Area = 0.6 + BPR = 0 + CPR = 12 + FPR = 0 + Mdes = 1 + Tdes = 280 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 36000000 + TIT = 900 + TAB = 3800 + exhaustMixer = True + maxThrust = 400 + maxT3 = 2000 + } + } +PART[JetEngine]:FINAL { - @name = aje_f404 - @title = AJE General Electric F404-GE-402 turbofan - @mass = 1.0 - @description = General Electric F404-GE-402 low-bypass turbofan with afterburner as used on F/A-18C/D. 53.16kN dry. SFC 0.82/1.74 lb/lbf-hr static. Temperature limit Mach 2.85. + @title = General Electric F404-GE-402 turbofan + @mass = 1.03 + @description = General Electric F404-GE-402 low-bypass turbofan with afterburner as used on F/A-18C/D. 78.7kN wet, 53.16kN dry. SFC 0.82/1.74 lb/lbf-hr static. Temperature limit Mach 2.85. %rescaleFactor = 0.9375 %CoMOffset = 0, 1.3, 0 - !MODULE[AJEModule] { } - + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 3 - acore=2.991 - byprat=0.31 - tinlt=1200 - prat2=1 - eta2=1 - tfan=1800 - prat13=2 - eta13=1 - tcomp=2460 - prat3=13 - eta3=0.98 - tt4=2699 - prat4=1 - eta4=0.98 - eta5=0.98 - fhv=15300 - tt7=4700 - eta7=0.93 - abflag=1 + Area = 0.232 + BPR = 0.27 + CPR = 26 + FPR = 2.3 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 22500000 + TIT = 1500 + TAB = 2200 + exhaustMixer = True + maxThrust = 150 + maxT3 = 1000 } - @MODULE[ModuleEngines*] { - @maxThrust=80 + @maxThrust=78.7 } } diff --git a/GameData/AJE/TV.cfg b/GameData/AJE/TV.cfg index 8adee0d..23a7e94 100644 --- a/GameData/AJE/TV.cfg +++ b/GameData/AJE/TV.cfg @@ -158,8 +158,8 @@ @title = CR2 Ramjet - @mass = 2.5 - @description = CR2 Ramjet Powered by NASA EngineSim, fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! + @mass = 0.8 + @description = A fictional CR2 Ramjet. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! @MODULE[ModuleEngines] @@ -168,16 +168,25 @@ runningEffectName = powersmoke directThrottleEffectName = powerflame } - MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 4 - useOverheat=false - acore=7.2 - byprat=0 + Area = 0.36 + BPR = 0 + CPR = 1 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1800 + TAB = 0 + exhaustMixer = True + maxThrust = 700 + maxT3 = 1200 } } @@ -341,8 +350,8 @@ @title = CR1 Ramjet - @mass = 0.625 - @description = CR1 Ramjet Powered by NASA EngineSim, fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! + @mass = 0.2 + @description = A fictional CR1 Ramjet. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! @MODULE[ModuleEngines] @@ -356,11 +365,21 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 4 - useOverheat=false - acore=1.8 - byprat=0 + Area = 0.09 + BPR = 0 + CPR = 1 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1800 + TAB = 0 + exhaustMixer = True + maxThrust = 700 + maxT3 = 1200 } } @@ -372,8 +391,8 @@ %rescaleFactor=1 @title = CRM Ramjet - @mass = 1.255 - @description = CRM Ramjet Powered by NASA EngineSim, fitted with a special geo-variable nozzle. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! + @mass = 0.4 + @description = A fictional CRM Ramjet. Works best when faster than Mach 2. This engine provides no thrust below Mach 0.3! !MODULE[AJEModule] { @@ -382,17 +401,23 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype = 4 - useOverheat=false - acore=3.6 - byprat=0 + Area = 0.18 + BPR = 0 + CPR = 1 + FPR = 0 + Mdes = 0.9 + Tdes = 250 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 28000000 + TIT = 1800 + TAB = 0 + exhaustMixer = True + maxThrust = 700 + maxT3 = 1200 } - @MODULE[ModuleEngines*] - { - @maxThrust=90 - } } +PART[TV_RamJet_Engine]:Final @@ -409,7 +434,7 @@ } } - @title = Rolls-Royce Derwent I + @title = Rolls-Royce Derwent RB.37 Mk.1 @mass = 0.443 @description = The Derwent was a development of the W.2 / Welland engine with "straight through flow" rather than "reverse flow," leading to an increase in thrust and efficiency. It was a short-lived line of engines, ending with World War II; indeed, the Derwent V was in fact a scaled-down Nene. The Derwent I powered the Meteor Mk. III (Meteor F.3). SFC 1.17 lb/lbf-hr static. Temperature limit Mach 1.0 at sea level, 1.7 at altitude. @@ -417,33 +442,30 @@ { } + MODULE { - name=AJEModule - defaultentype = 1 - defineenparm= true - acore=3.1833 - byprat=0 - prat3= 4.5 - prat4 = 0.86666667 - tinlt = 620 - tfan = 1000 - tcomp = 1400 - tt4 = 1700 - tt7 = 3200 - eta3 = 0.71 - eta4 = 0.94 - eta5 = 0.862 - eta7 = 0.88 - fhv = 19830 - abflag = 0 + name = AJEModule + Area = 0.075 + BPR = 0 + CPR = 4.5 + FPR = 0 + Mdes = 0.3 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 25000000 + TIT = 1000 + TAB = 0 + exhaustMixer = False + maxThrust = 20 + maxT3 = 550 } - + @MODULE[ModuleEngines*] { @maxThrust=8.9 - @engineAccelerationSpeed = 0.06 - @engineDecelerationSpeed = 0.12 } } @@ -451,13 +473,13 @@ @PART[DA?Tiny?Jet]:FOR[AJE] { - @title = AJE Williams FJ33 turbofan + @title = Williams FJ33 turbofan @description = Small turbofan MODULE { name=AJEInlet - Area=0.53 + Area=0.056 TPRCurve { key = 0.0 0.95 0 0 @@ -473,12 +495,21 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=0.15 - byprat=3 - prat3=5 - tt4=2800 + Area = 0.02 + BPR = 3 + CPR = 5 + FPR = 1.7 + Mdes = 0.3 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 24000000 + TIT = 1200 + TAB = 0 + exhaustMixer = False + maxThrust = 20 + maxT3 = 550 } @MODULE[ModuleEngines*] @@ -491,13 +522,13 @@ @PART[DA?Bonus?Jet]:FOR[AJE] { - @title = AJE P&W PW500 turbofan + @title = Pratt & Whitney PW500 turbofan @description = Small turbofan MODULE { name=AJEInlet - Area=1.053 + Area=0.085 TPRCurve { key = 0.0 0.95 0 0 @@ -513,13 +544,21 @@ MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=3 - acore=0.3 - byprat=3 - tt4=2800 - prat3=5 - prat13=1.6 + Area = 0.0315 + BPR = 3 + CPR = 5 + FPR = 1.7 + Mdes = 0.3 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.8 + FHV = 24000000 + TIT = 1200 + TAB = 0 + exhaustMixer = False + maxThrust = 20 + maxT3 = 550 } @MODULE[ModuleEngines*] @@ -532,70 +571,72 @@ @PART[JetEngineSmall]:Final { - @title = AJE Tumansky RD-9BF turbojet - @description = Mid 1950s afterburning turbojet used on the MiG-19SF. 29.4kN dry. SFC 1.02/1.66 lb/lbf-hr static. Temperature limit Mach 2.35. + @title = Tumansky RD-9BF turbojet + @description = Mid 1950s afterburning turbojet used on the MiG-19SF. 36.9kN wet, 29.4kN dry. SFC 1.02/1.66 lb/lbf-hr static. Temperature limit Mach 2.35. %scale = 1 @mass = 0.75 %CoMOffset = 0, 0.7, 0 + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=2 - acore=2.841 - byprat=0 - tcomp = 1580 - tt4 = 2250 - prat3 = 7.4 - prat4 = 0.96 - eta3 = 0.79 - eta4 = 0.98 - eta5 = 0.87 - eta7 = 0.8 - fhv = 18000 - abflag=1 - ABIspMult = 0.94444 + Area = 0.24 + BPR = 0 + CPR = 7.4 + FPR = 0 + Mdes = 0.8 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.7 + FHV = 22000000 + TIT = 1000 + TAB = 1250 + exhaustMixer = False + maxThrust = 100 + maxT3 = 850 } + @MODULE[ModuleEngines*] { @maxThrust=36.9 - @engineAccelerationSpeed = 0.06 - @engineDecelerationSpeed = 0.12 } } @PART[turboFanEngineSmall]:Final { - @title = AJE Pratt & Whitney J52-408 + @title = Pratt & Whitney J52-408 @description = 1950s turbojet used on A-4 Skyhawk, A-6 Intruder, and EA-6B Prowler. This late 1950s model powered the A-4E and all subsequent Skyhawk models as well as the EA-6B Prowler. Not needing an afterburning or high-speed performance it had a high overall pressure ratio for the time (14.6 in this model). SFC 0.79 lb/lbf-hr static. Temperature limit Mach 1.2. %scale = 1 %rescaleFactor = 0.8128 @mass = 1.051 %CoMOffset = 0, 1, 0 + MODULE { name = AJEModule - IspMultiplier=1 - defaultentype=1 - acore=4.165 - byprat=0 - prat3=14.6 - prat4 = 1.0 - tcomp = 1560 - tt4=2360 - eta3 = 0.835 - eta4 = 0.98 - eta5 = 0.88 - eta7 = 0.885 - fhv = 18600 + Area = 0.255 + BPR = 0 + CPR = 14.6 + FPR = 0 + Mdes = 0.8 + Tdes = 270 + eta_c = 0.95 + eta_t = 0.98 + eta_n = 0.9 + FHV = 25000000 + TIT = 1300 + TAB = 0 + exhaustMixer = False + maxThrust = 100 + maxT3 = 730 } + @MODULE[ModuleEngines*] { @maxThrust=49.82 - @engineAccelerationSpeed = 0.09 - @engineDecelerationSpeed = 0.2 } } diff --git a/Source/AJE.v12.suo b/Source/AJE.v12.suo index 281a521..911996d 100644 Binary files a/Source/AJE.v12.suo and b/Source/AJE.v12.suo differ diff --git a/Source/AJEModule.cs b/Source/AJEModule.cs index ecb370c..a5bc220 100644 --- a/Source/AJEModule.cs +++ b/Source/AJEModule.cs @@ -10,226 +10,106 @@ namespace AJE public class AJEModule : PartModule { - public AJESolver aje; - - [KSPField(isPersistant = false, guiActive = false)] - public float IspMultiplier = 1f; - [KSPField(isPersistant = false, guiActive = false)] - public int defaultentype = 0; - - [KSPField(isPersistant = false, guiActive = false)] - public bool useOverheat = true; - // [KSPField(isPersistant = false, guiActive = true)] - public float parttemp; - // [KSPField(isPersistant = false, guiActive = true)] - public float maxtemp; - - - [KSPField(isPersistant = false, guiActive = false)] - public bool useMultiMode = false; - [KSPField(isPersistant = false, guiActive = false)] - public bool isReactionEngine = false; - [KSPField(isPersistant = false, guiActive = false)] - public float idle = 0.03f; - [KSPField(isPersistant = false, guiActive = false)] - public int abflag = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float acore = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float byprat = -1; [KSPField(isPersistant = false, guiActive = false)] - public float fhv = -1; + public float Area = 0.1f; + public float TPR = 1; [KSPField(isPersistant = false, guiActive = false)] - public float prat13 = -1; + public float BPR = 0; [KSPField(isPersistant = false, guiActive = false)] - public float prat3 = -1; + public float CPR = 20; [KSPField(isPersistant = false, guiActive = false)] - public float prat2 = -1; + public float FPR = 1; [KSPField(isPersistant = false, guiActive = false)] - public float prat4 = -1; + public float Mdes = 0.9f; [KSPField(isPersistant = false, guiActive = false)] - public float tinlt = -1; + public float Tdes = 250; [KSPField(isPersistant = false, guiActive = false)] - public float tfan = -1; + public float eta_c = 0.95f; [KSPField(isPersistant = false, guiActive = false)] - public float tt7 = -1; + public float eta_t = 0.98f; [KSPField(isPersistant = false, guiActive = false)] - public float tt4 = -1; + public float eta_n = 0.9f; [KSPField(isPersistant = false, guiActive = false)] - public float tcomp = -1; + public float FHV = 46.8E6f; [KSPField(isPersistant = false, guiActive = false)] - public float eta2 = -1; + public float TIT = 1200; [KSPField(isPersistant = false, guiActive = false)] - public float eta13 = -1; + public float TAB = 0; [KSPField(isPersistant = false, guiActive = false)] - public float eta3 = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float eta4 = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float eta5 = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float eta7 = -1; - [KSPField(isPersistant = false, guiActive = false)] - public float maxThrust = 99999; - - [KSPField(isPersistant = false, guiActive = false)] - public float ABIspMult = 1.0f; - - - public EngineWrapper engine; - public bool useAB = false; - public float ABthreshold = 0.667f; - public float ABmax, ABmin; - - [KSPField(isPersistant = false, guiActive = true)] - public String Environment; - - [KSPField(isPersistant = false, guiActive = true)] - public String Mode; + public bool exhaustMixer = false; [KSPField(isPersistant = false, guiActive = true)] public String Inlet; - [KSPField(isPersistant = false, guiActiveEditor = true)] public float Need_Area; - // [KSPField(isPersistant = false, guiActive = true)] - public float fireflag; - - public float OverallThrottle = 0; - - - // NK [KSPField(isPersistant = false, guiActive = false)] - public FloatCurve prat3Curve = new FloatCurve(); - + public float maxThrust = 999999; [KSPField(isPersistant = false, guiActive = false)] - bool usePrat3Curve = false; - - - public override void OnLoad(ConfigNode node) - { - base.OnLoad(node); - if (node.HasNode("prat3Curve")) - { - //prat3Curve.Load(node.GetNode("prat3Curve")); - print("AJE for part " + part.name + " found prat3Curve, usePrat3Curve = " + usePrat3Curve); - float min, max; - prat3Curve.FindMinMaxValue(out min, out max); - print("curve: " + prat3Curve.minTime + ": " + min + "; " + prat3Curve.maxTime + ": " + max); - } - } - + public float maxT3 = 9999; + [KSPField(isPersistant = false, guiActive = true)] + public String Environment; - public override void OnStart(StartState state) + public AJESolver aje; + public EngineWrapper engine; + float acturalThrottle = 0; + public List engineList; + public List inletList; + public float OverallTPR = 1, Arearatio = 1; + public void Start() { - - if (state == StartState.Editor) - { - Need_Area = acore * (1 + byprat); - return; - } - if (vessel == null) - return; + Need_Area = Area * (1 + BPR); + acturalThrottle = 0; engine = new EngineWrapper(part); + engine.idle = 1f; + engine.IspMultiplier = 1f; engine.useVelocityCurve = false; - engine.IspMultiplier = IspMultiplier; - engine.idle = idle; engine.ThrustUpperLimit = maxThrust; - part.maxTemp = 1800f; - if(tt4 >0) - part.maxTemp = (tt4-32f) * (1f/1.8f); + part.maxTemp = 1800; + if (TIT > 0) + part.maxTemp = TIT; engine.heatProduction = part.maxTemp * 0.1f; aje = new AJESolver(); - aje.setDefaults(); - - switch (defaultentype) + aje.InitializeOverallEngineData( + Area, + TPR, + BPR, + CPR, + FPR, + Mdes, + Tdes, + eta_c, + eta_t, + eta_n, + FHV, + TIT, + TAB, + exhaustMixer + ); + + if (CPR != 1) { - case 1: - aje.loadJ85(); - break; - case 2: - aje.loadF100(); - break; - case 3: - aje.loadCF6(); - break; - case 4: - aje.loadRamj(); - break; + engine.engineDecelerationSpeed = .1f / (Area * (1 + BPR)); + engine.engineAccelerationSpeed = .1f / (Area * (1 + BPR)); } - if (true) + else + { //It's not like there's anything in a ramjet to spool, now is there? + engine.useEngineResponseTime = false; + } + engineList.Clear(); + inletList.Clear(); + for (int j = 0; j < vessel.parts.Count; j++) //reduces garbage produced compared to foreach due to Unity Mono issues { - if (acore != -1 && byprat != -1) + Part p = vessel.parts[j]; + if (p.Modules.Contains("AJEModule")) { - aje.areaCore = acore; - aje.byprat = byprat; - aje.areaFan = acore * (1.0 + byprat); - aje.a2d = aje.a2 = aje.areaFan; - + engineList.Add((AJEModule)p.Modules["AJEModule"]); //consider storing list of affected AJEModules and AJEInlets, perhaps a single one for each vessel. Would result in better performance + } + if (p.Modules.Contains("AJEInlet")) + { + inletList.Add((AJEInlet)p.Modules["AJEInlet"]); } - if (tt4 != -1) - aje.tt[4] = aje.tt4 = aje.tt4d = tt4; - if (prat3 != -1) - aje.prat[3] = aje.p3p2d = prat3; - if (prat13 != -1) - aje.prat[13] = aje.p3fp2d = prat13; - if (tcomp != -1) - aje.tcomp = tcomp; - if (fhv != -1) - aje.fhvd = aje.fhv = fhv; - if (tt7 != -1) - aje.tt[7] = aje.tt7 = aje.tt7d = tt7; - if (eta2 != -1) - aje.eta[2] = eta2; - if (prat2 != -1) - aje.prat[2] = prat2; - if (prat4 != -1) - aje.prat[4] = prat4; - if (eta3 != -1) - aje.eta[3] = eta3; - if (eta4 != -1) - aje.eta[4] = eta4; - if (eta5 != -1) - aje.eta[5] = eta5; - if (eta7 != -1) - aje.eta[7] = eta7; - if (eta13 != -1) - aje.eta[13] = eta13; - if (tinlt != -1) - aje.tinlt = tinlt; - if (tfan != -1) - aje.tfan = tfan; - if (tcomp != -1) - aje.tcomp = tcomp; - if (abflag != -1) - aje.abflag = abflag; - } - if (aje.abflag == 1 && (!isReactionEngine)) - { - useAB = true; - ABmax = (float)aje.tt7; - ABmin = (float)(aje.tt4); - } - if (part.partInfo.partPrefab.Modules.Contains("AJEModule")) - { - AJEModule a = (AJEModule)part.partInfo.partPrefab.Modules["AJEModule"]; - usePrat3Curve = a.usePrat3Curve; - prat3Curve = a.prat3Curve; - } - if (usePrat3Curve) - { - print("AJE OnStart for part " + part.name + " found prat3Curve"); - float min, max; - prat3Curve.FindMinMaxValue(out min, out max); - print("curve: " + prat3Curve.minTime + ": " + min + "; " + prat3Curve.maxTime + ": " + max); - aje.fsmach = 0.0; - aje.prat[3] = aje.p3p2d = prat3Curve.Evaluate(0.0f); } - - engine.engineDecelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat)); - engine.engineAccelerationSpeed = 1 / (float)(aje.areaCore * (1 + aje.byprat)); } - - + public void FixedUpdate() { if (HighLogic.LoadedSceneIsEditor) @@ -242,110 +122,89 @@ public void FixedUpdate() return; } - #region Inlet + UpdateInletEffects(); + UpdateFlightCondition(vessel.altitude, part.vessel.srfSpeed, vessel.mainBody); - float Arearatio, OverallTPR = 0, EngineArea = 0, InletArea = 0; - AJEModule e; - AJEInlet i; - foreach (Part p in vessel.parts) + if(CPR == 1 && aje.GetM0()<0.3)//ramjet { - - if (p.Modules.Contains("AJEModule")) - { - e = (AJEModule)p.Modules["AJEModule"]; - EngineArea += (float)(e.aje.areaCore * (1 + e.aje.byprat)); - } - if (p.Modules.Contains("AJEInlet")) - { - i = (AJEInlet)p.Modules["AJEInlet"]; - if (true) - { - InletArea += i.Area; - OverallTPR += i.Area * i.cosine * i.cosine * i.GetTPR((float)aje.fsmach); - } - } + engine.SetThrust(0); + engine.SetIsp(1000); } - if (InletArea > 0) - OverallTPR /= InletArea; - Arearatio = Mathf.Min(InletArea / EngineArea, 1f); - aje.eta[2] = Mathf.Clamp(Mathf.Sqrt(Arearatio) * OverallTPR, 0.001f, 1f); - - Inlet = "Area:" + ((int)(Arearatio * 100f)).ToString() + "% TPR:" + ((int)(OverallTPR * 100f)).ToString() + "%"; - - #endregion - - aje.FARps0 = FlightGlobals.getStaticPressure(vessel.altitude, vessel.mainBody); - aje.FARts0 = FlightGlobals.getExternalTemperature((float)vessel.altitude, vessel.mainBody) + 273.15f; - - Environment = (((int)(aje.FARps0 * 100f)) / 100f).ToString() + "atm;" + (((int)(aje.FARts0 * 100f)) / 100f) + "K"; - - if (usePrat3Curve) + else { - aje.prat[3] = aje.p3p2d = (double)(prat3Curve.Evaluate((float)aje.fsmach)); + engine.SetThrust((float)aje.GetThrust() / 1000f / Arearatio); + engine.SetIsp((float)aje.GetIsp()); } - aje.u0d = part.vessel.srfSpeed * 3.6d; - OverallThrottle = vessel.ctrlState.mainThrottle * engine.thrustPercentage / 100f; - if (!useAB) + float fireflag = (float)aje.GetT3()/maxT3; + if (fireflag > 0.9f ) { - - aje.comPute(); - engine.SetThrust(((float)aje.forceNetlb) * 0.004448f); - engine.SetIsp((float)aje.isp); - Mode = "Cruise " + System.Convert.ToString((int)(OverallThrottle * 100f)) + "%"; + part.temperature = (fireflag * 2f - 1.2f) * part.maxTemp; } - else + } + + //ferram4: separate out so function can be called separately for editor sims + public void UpdateInletEffects() + { + float EngineArea = 0, InletArea = 0; + OverallTPR = 0; + + if (aje == null) + Debug.Log("HOW?!"); + float M0 = (float)aje.GetM0(); + + for (int j = 0; j < engineList.Count; j++) { - if (OverallThrottle <= ABthreshold) + AJEModule e = engineList[j]; + if(e) { - engine.useEngineResponseTime = true; - aje.abflag = 0; - aje.comPute(); - engine.SetThrust(((float)aje.forceNetlb) * 0.004448f / ABthreshold); - engine.SetIsp((float)aje.isp); - Mode = "Cruise " + System.Convert.ToString((int)(OverallThrottle / ABthreshold * 100f)) + "%"; + EngineArea += e.Area * (1 + e.BPR); } - else + } + + for (int j = 0; j < inletList.Count; j++) + { + AJEInlet i = inletList[j]; + if(i) { - // only allow instance response when already at max RPM; if the compressor is still spooling up, it's still spooling up. - if(engine.currentThrottle > ABthreshold) - engine.useEngineResponseTime = false; - else - engine.useEngineResponseTime = true; - - aje.abflag = 1; - aje.tt7 = (OverallThrottle - ABthreshold) * (ABmax - ABmin) / (1 - ABthreshold) + ABmin; - - aje.comPute(); - engine.SetThrust(((float)aje.forceNetlb) * 0.004448f / OverallThrottle); - engine.SetIsp((float)aje.isp * ABIspMult); - Mode = "Afterburner " + System.Convert.ToString((int)((OverallThrottle - ABthreshold) / (1 - ABthreshold) * 100f)) + "%"; + InletArea += i.Area; + OverallTPR += i.Area * i.cosine * i.cosine * i.GetTPR(M0); } - } - Mode += " (" + (aje.forceGrosslb * 0.004448f).ToString("N2") + "kN gr)"; - - + + if (InletArea > 0) + OverallTPR /= InletArea; + Arearatio = Math.Min(InletArea / EngineArea, 1f); + Inlet = "Area:" + Arearatio.ToString("P2") + " TPR:" + OverallTPR.ToString("P2"); + } - if (aje.fireflag > 0.9f && useOverheat) + public void UpdateFlightCondition(double altitude, double vel, CelestialBody body) + { + double p0 = FlightGlobals.getStaticPressure(altitude, body); + double t0 = FlightGlobals.getExternalTemperature((float)altitude, body) + 273.15; + + Environment = p0.ToString("N2") + " Atm;" + t0.ToString("N2") + " K "; + if (CPR != 1) + { + float requiredThrottle = (int)(vessel.ctrlState.mainThrottle * engine.thrustPercentage); //0-100 + float deltaT = (float)TimeWarp.fixedDeltaTime; + float throttleResponseRate = Mathf.Max(2 / Area / (1 + BPR), 5); //percent per second + + float d = requiredThrottle - acturalThrottle; + if (Mathf.Abs(d) > throttleResponseRate * deltaT) + acturalThrottle += Mathf.Sign(d) * throttleResponseRate * deltaT; + } + else // ramjet { - part.temperature = (aje.fireflag * 2f - 1.2f) * part.maxTemp; - + acturalThrottle = (int)(vessel.ctrlState.mainThrottle * engine.thrustPercentage); } - fireflag = aje.fireflag; - parttemp = part.temperature; - maxtemp = part.maxTemp; - - - // mach = (float)aje.fsmach; - - + aje.SetTPR(OverallTPR); + aje.CalculatePerformance(p0 * 101.3, t0, vel, (acturalThrottle + 1) / 100); + } } - - } diff --git a/Source/AJESolver.cs b/Source/AJESolver.cs index 4b356ab..30b80bb 100644 --- a/Source/AJESolver.cs +++ b/Source/AJESolver.cs @@ -4,1111 +4,301 @@ using UnityEngine; using KSP; + + namespace AJE { public class AJESolver { - public double FARts0, FARps0; - public double precooled, ts00; - public int abflag, entype, lunits, inflag, varflag, pt2flag, wtflag; - public int abkeep, pltkeep, move; - public int numeng, gamopt, areaRatioScheduler, plttyp, showcom; - public int areaThroatScheduler, areaExitScheduler, fueltype, inptype, siztype; - // Flow variables - public double g0d, g0, rgas, gamma, cpair; - public double tt4, tt4d, tt7, tt7d, t8, p3p2d, p3fp2d, byprat, throtl; - public double fsmach = 0, alt, ts0, ps0, q0, u0d, u0, a0, rho0, tsout, psout; - public double epr, etr, npr, snpr, forceNet, forceGross, dragRam, sfc, fa, eair, uexit, ues; - public double fnd, forceNetlb, forceGrosslb, dragRamlb, fuelFlowlb, fuelrat, forceNetTotallb, eteng; - public double arth, areaRamThroatd, areaRamExit, areaRamExitd; - public double machExit, pexit, pfexit; - public double areaRamThroatMin, areaRamThroatMax, areaRamExitMin, areaRamExitMax; - public double area8, area8rat, area8d, areaFan, a7, m2, isp; - public double areaCap, a2, a2d, areaCore, area4, area4p, fhv, fhvd, mfr, diameng; - public double altmin, altmax, u0min, u0max, thrmin, thrmax, pmax, tmin, tmax; - public double etmin, etmax, cprmin, cprmax, t4min, t4max; - public double a2min, a2max, a8min, area8max, t7min, t7max, diamin, diamax; - public double bypmin, bypmax, fprmin, fprmax; - public double vmn1, vmn2, vmn3, vmn4, vmx1, vmx2, vmx3, vmx4; - public double FT2M, MPH2KPH, LBF2Newtons, PSI2kPa, F2C, tref, Lb2kg, Slug2kg, BTU2Joules, BTU2kJ; - public double aconv, bconv, dconv, flconv; - // weight and materials - public double weight, wtref, wfref; - public int mcomp, mfan, mturbin, mburner, minlt, mnozl, mnozr; - public int ncflag, ncomp, ntflag, nturb; - public float fireflag; - public double dcomp, dfan, dturbin, dburner; - public double tcomp, tfan, tturbin, tburner; - public double tinlt, dinlt, tnozl, dnozl, tnozr, dnozr; - public double lcomp, lburn, lturb, lnoz; // component length - // Station Variables - public double[] trat = new double[20]; - public double[] tt = new double[20]; - public double[] prat = new double[20]; - public double[] pt = new double[20]; - public double[] eta = new double[20]; - public double[] gam = new double[20]; - public double[] cp = new double[20]; - public double[] s = new double[20]; - public double[] v = new double[20]; - /* drawing geometry */ - public double xtrans, ytrans, factor, gains, scale; - public double xtranp, ytranp, factp; - public double[,] xg = new double[13, 45]; - public double[,] yg = new double[13, 45]; - public int sldloc, sldplt, ncompd; - public int antim, ancol; - // Percentage variables - public double u0ref, altref, thrref, a2ref, et2ref, fpref, et13ref, bpref; - public double cpref, et3ref, et4ref, et5ref, t4ref, p4ref, t7ref, et7ref, a8ref; - public double fnref, fuelref, sfcref, airref, epref, etref, faref; - // save design - public int ensav, absav, gamosav, ptfsav, arssav, arthsav, arxsav, flsav; - public double fhsav, t4sav, t7sav, p3sav, p3fsav, bysav, acsav; - public double a2sav, a4sav, a4psav, gamsav, et2sav, pr2sav, pr4sav; - public double et3sav, et4sav, et5sav, et7sav, et13sav, a8sav, a8mxsav; - public double a8rtsav, u0mxsav, u0sav; - public double trsav, artsav, arexsav; - // save materials info - public int wtfsav, minsav, mfnsav, mcmsav, mbrsav, mtrsav, mnlsav, mnrsav, ncsav, ntsav; - public double wtsav, dinsav, tinsav, dfnsav, tfnsav, dcmsav, tcmsav; - public double dbrsav, tbrsav, dtrsav, ttrsav, dnlsav, tnlsav, dnrsav, tnrsav; - // plot variables - public int lines, nord, nabs, param, npt, ntikx, ntiky; - public int counter; - public int ordkeep, abskeep; - public double begx, endx, begy, endy; - public double[] pltx = new double[26]; - public double[] plty = new double[26]; - public String labx, laby, labyu, labxu; - - public void comPute() - { - - numeng = 1; - fireflag = 0; - - getFreeStream(); - - getThermo(); - - getGeo(); /* determine engine size and geometry*/ - - // view.getDrawGeo() ; - - getPerform(); - - // out.box.loadOut() ; - // out.vars.loadOut() ; - // in.fillBox() ; - - // if (plttyp >= 3 && plttyp <= 7) { - // out.plot.loadPlot () ; - // out.plot.repaint() ; - // } - - // view.repaint() ; - - // if (inflag == 0) myDesign() ; - } - - public void setDefaults() - { - int i; + //freestream flight conditions; static pressure, static temperature, and mach number + private double p0, t0, M0=0; - precooled = -1; + //overall engine design parameters; inlet total pressure recovery, bypass ratio, fan pressure ratio, + //compressor pressure ratio, turbine temperature ratio, + private double TPR, BPR, FPR, CPR, TTR; - move = 0; - inptype = 0; - siztype = 0; - lunits = 0; - FT2M = 1.0; MPH2KPH = 1.0; LBF2Newtons = 1.0; Lb2kg = 1.0; - PSI2kPa = 1.0; BTU2Joules = 1.0; aconv = 1.0; bconv = 1.0; - Slug2kg = 1.0; dconv = 1.0; flconv = 1.0; BTU2kJ = 1.0; - F2C = 1.0; tref = 459.6; - g0 = g0d = 32.1740; + //engine design point; mach number, temperature + private double M_d, T_d; - counter = 0; - showcom = 0; - plttyp = 2; - pltkeep = 0; - entype = 0; - inflag = 0; - varflag = 0; - pt2flag = 0; - wtflag = 0; - fireflag = 0; - gamma = 1.4; - gamopt = 1; - u0d = 0.0; - throtl = 100f; + //conditions at inlet; pressure, temperature; + private double P1, T1; - for (i = 0; i <= 19; ++i) - { - trat[i] = 1.0; - tt[i] = 518.6; - prat[i] = 1.0; - pt[i] = 14.7; - eta[i] = 1.0; - } - tt[4] = tt4 = tt4d = 2500f; - tt[7] = tt7 = tt7d = 2500f; - prat[3] = p3p2d = 8.0; - prat[13] = p3fp2d = 2.0; - byprat = 1.0; - abflag = 0; + //conditions at fan; pressure, temperature; + private double P2, T2; - fueltype = 0; - fhvd = fhv = 18600f; - a2d = a2 = areaCore = 2.0; - diameng = Math.Sqrt(4.0 * a2d / 3.14159); - areaCap = .9 * a2; - area8rat = .35; - area8 = .7; - area8d = .40; - areaRatioScheduler = 0; - areaFan = 2.0; - area4 = .418; + //Conditions at burner inlet / compressor exit + private double P3, T3, eta_c; - areaThroatScheduler = 1; - areaExitScheduler = 1; - areaRamThroatMin = 0.1; areaRamThroatMax = 1.5; - areaRamExitMin = 1.0; areaRamExitMax = 10.0; - areaRamThroatd = arth = .4; - areaRamExit = areaRamExitd = 3.0; + //conditions at burner exit / turbine entrance; pressure, temperature, mass flow rate + private double P4, T4, eta_t; - u0min = 0.0; u0max = 1500f; - altmin = 0.0; altmax = 60000f; - thrmin = 30; thrmax = 100; - etmin = .5; etmax = 1.0; - cprmin = 1.0; cprmax = 50.0; - bypmin = 0.0; bypmax = 10.0; - fprmin = 1.0; fprmax = 2.0; - t4min = 1000.0; t4max = 3200.0; - t7min = 1000.0; t7max = 4000.0; - a8min = 0.1; area8max = 0.4; - a2min = .001; a2max = 50f; - diamin = Math.Sqrt(4.0 * a2min / 3.14159); - diamax = Math.Sqrt(4.0 * a2max / 3.14159); - pmax = 20.0; tmin = -100.0 + tref; tmax = 100.0 + tref; - vmn1 = u0min; vmx1 = u0max; - vmn2 = altmin; vmx2 = altmax; - vmn3 = thrmin; vmx3 = thrmax; - vmn4 = areaRamExitMin; vmx4 = areaRamExitMax; + //conditions at ab inlet / turbine exit + private double P5, T5; - xtrans = 125.0; - ytrans = 115.0; - factor = 35f; - sldloc = 75; + //conditions at ab exhaust mixer; + private double P6, T6; - xtranp = 80.0; - ytranp = 180.0; - factp = 27f; - sldplt = 138; + //conditions at ab rear / nozzle entrance; + private double P7, T7, eta_n; - weight = 1000f; - minlt = 1; dinlt = 170.2; tinlt = 900f; - mfan = 2; dfan = 293.02; tfan = 1500f; - mcomp = 2; dcomp = 293.02; tcomp = 1500f; - mburner = 4; dburner = 515.2; tburner = 2500f; - mturbin = 4; dturbin = 515.2; tturbin = 2500f; - mnozl = 3; dnozl = 515.2; tnozl = 2500f; - mnozr = 5; dnozr = 515.2; tnozr = 4500f; - ncflag = 0; ntflag = 0; + //gas properties, pre-burner, post-burner, post afterburner + private double gamma_c, gamma_t, gamma_ab; + private double R_c, R_t, R_ab; + private double Cp_c, Cp_t, Cp_ab; + private double Cv_c, Cv_t, Cv_ab; + //Throttles for burner and afterburner + private double mainThrottle, abThrottle; - FT2M = .3048; MPH2KPH = 1.60934; LBF2Newtons = 4.44822162; - BTU2Joules = 1055f; BTU2kJ = 1.055; - Lb2kg = .453592; PSI2kPa = 6.89475729; F2C = 0.555555; - Slug2kg = 14.5939029; tref = 273.15; - return; - } + //Air flow, fuel mass fraction for burner and afterburner + private double mdot, ff, ff_ab; - public void loadCF6() - { - entype = 2; - abflag = 0; - fueltype = 0; - fhvd = fhv = 18600f; - tt[4] = tt4 = tt4d = 2500f; - tt[7] = tt7 = tt7d = 2500f; - prat[3] = p3p2d = 21.86; - prat[13] = p3fp2d = 1.745; - byprat = 4.0; - areaCore = 6.965; - areaFan = areaCore * (1.0 + byprat); - a2d = a2 = areaFan; - diameng = Math.Sqrt(4.0 * a2d / 3.14159); - area4 = .290; - area4p = 1.131; - areaCap = .9 * a2; - gamma = 1.4; - gamopt = 1; - pt2flag = 0; - eta[2] = 1.0; - prat[2] = 1.0; - prat[4] = 1.0; - eta[3] = .959; - eta[4] = .984; - eta[5] = .982; - eta[7] = 1.0; - eta[13] = 1.0; - area8d = 2.436; - area8max = .35; - area8rat = .35; - u0max = 1500f; - u0d = 0.0; - areaRatioScheduler = 0; + //Fuel heat of burning and peak temperatures + private double h_f, Tt4, Tt7; - wtflag = 0; weight = 8229f; - minlt = 1; dinlt = 170f; tinlt = 900f; - mfan = 2; dfan = 293f; tfan = 1500f; - mcomp = 0; dcomp = 293f; tcomp = 1600f; - mburner = 4; dburner = 515f; tburner = 2500f; - mturbin = 4; dturbin = 515f; tturbin = 2500f; - mnozl = 3; dnozl = 515f; tnozl = 2500f; - ncflag = 0; ntflag = 0; + //Reference area of the engine, combustor, and nozzle + private double Aref, Acomb, Anozzle; - // con.setPanl() ; - return; - } + //thrust and Isp of the engine + private double thrust, Isp; - public void loadJ85() - { - - entype = 0; - abflag = 0; - fueltype = 0; - fhvd = fhv = 18600f; - tt[4] = tt4 = tt4d = 2260f; - tt[7] = tt7 = tt7d = 4000f; - prat[3] = p3p2d = 8.3; - prat[13] = p3fp2d = 1.0; - byprat = 0.0; - a2d = a2 = areaCore = 1.753; - diameng = Math.Sqrt(4.0 * a2d / 3.14159); - areaFan = areaCore * (1.0 + byprat); - area4 = .323; - area4p = .818; - areaCap = .9 * a2; - gamma = 1.4; - gamopt = 1; - pt2flag = 0; - eta[2] = 1.0; - prat[2] = 1.0; - prat[4] = .85; - eta[3] = .822; - eta[4] = .982; - eta[5] = .882; - eta[7] = .97; - eta[13] = 1.0; - area8d = .818; - area8max = .467; - area8rat = .467; + //use exhaust mixer or not + private bool exhaustMixer; - u0max = 1500f; - u0d = 0.0; - areaRatioScheduler = 1; + public string debugstring; + //--------------------------------------------------------- + //Initialization Functions - wtflag = 0; weight = 561f; - minlt = 1; dinlt = 170f; tinlt = 900f; - mfan = 2; dfan = 293f; tfan = 1500f; - mcomp = 2; dcomp = 293f; tcomp = 1500f; - mburner = 4; dburner = 515f; tburner = 2500f; - mturbin = 4; dturbin = 515f; tturbin = 2500f; - mnozl = 5; dnozl = 600f; tnozl = 4100f; - ncflag = 0; ntflag = 0; - - // con.setPanl() ; - return; - } - - public void loadF100() + public void InitializeOverallEngineData( + double Area, + double totalPressureRecovery, + double bypassRatio, + double compressorRatio, + double fanRatio, + double designMach, + double designTemperature, + double compressorEta, + double turbineEta, + double nozzleEta, + double heatOfFuel, + double max_TIT, + double max_TAB, + bool useExhaustMixer + ) { - entype = 1; - abflag = 1; - fueltype = 0; - fhvd = fhv = 18600f; - tt[4] = tt4 = tt4d = 2499f; - tt[7] = tt7 = tt7d = 3905f; - prat[3] = p3p2d = 20.04; - prat[13] = p3fp2d = 1.745; - byprat = 0.0; - a2d = a2 = areaCore = 6.00; - diameng = Math.Sqrt(4.0 * a2d / 3.14159); - areaFan = areaCore * (1.0 + byprat); - area4 = .472; - area4p = 1.524; - areaCap = .9 * a2; - gamma = 1.4; - gamopt = 1; - pt2flag = 0; - eta[2] = 1.0; - prat[2] = 1.0; - prat[4] = 1.0; - eta[3] = .959; - eta[4] = .984; - eta[5] = .982; - eta[7] = .92; - eta[13] = 1.0; - area8d = 1.524; - area8max = .335; - area8rat = .335; - - u0max = 1500f; - u0d = 0.0; - areaRatioScheduler = 0; + Aref = Area; + TPR = totalPressureRecovery; + BPR = bypassRatio; + CPR = compressorRatio; + FPR = fanRatio; + M_d = designMach; + T_d = designTemperature; + eta_c = compressorEta; + eta_t = turbineEta; + eta_n = nozzleEta; + h_f = heatOfFuel; + Tt4 = max_TIT; + Tt7 = max_TAB; + exhaustMixer = useExhaustMixer; + + gamma_c = CalculateGamma(T_d, 0); + Cp_c = CalculateCp(T_d, 0); + T1 = T_d * (1 + 0.5 * (gamma_c - 1) * M_d * M_d); //calculate TTR at design point first + T2 = T1 * Math.Pow(FPR, (gamma_c - 1) / gamma_c / eta_c); + T3 = T1 * Math.Pow(CPR, (gamma_c - 1) / gamma_c / eta_c); + + ff = Cp_c * (Tt4 - T3) / (Cp_c * (Tt4 - T3) + h_f);//fuel fraction + gamma_t = CalculateGamma(Tt4, ff); + Cp_t = CalculateCp(Tt4, ff); + + + TTR = 1 - (BPR * Cp_c * (T2 - T1) + Cp_c * (T3 - T1)) / ((1 + ff) * Cp_t * Tt4); - wtflag = 0; weight = 3875f; - minlt = 1; dinlt = 170f; tinlt = 900f; - mfan = 2; dfan = 293f; tfan = 1500f; - mcomp = 2; dcomp = 293f; tcomp = 1700f; - mburner = 4; dburner = 515f; tburner = 2500f; - mturbin = 4; dturbin = 515f; tturbin = 2500f; - mnozl = 5; dnozl = 400.2; tnozl = 4100f; - ncflag = 0; ntflag = 0; - - // con.setPanl() ; - return; } - public void loadRamj() - { - - entype = 3; - areaThroatScheduler = 0; - areaExitScheduler = 0; - areaRamThroatd = .4; - areaRamExitd = 3.0; - abflag = 0; - fueltype = 0; - fhvd = fhv = 18600f; - tt[4] = tt4 = tt4d = 4000f; - t4max = 4500f; - tt[7] = tt7 = tt7d = 4000f; - prat[3] = p3p2d = 1.0; - prat[13] = p3fp2d = 1.0; - byprat = 0.0; - a2d = a2 = areaCore = 1.753; - diameng = Math.Sqrt(4.0 * a2d / 3.14159); - areaFan = areaCore * (1.0 + byprat); - area4 = .323; - area4p = .818; - areaCap = .9 * a2; - gamma = 1.4; - gamopt = 1; - pt2flag = 0; - eta[2] = 1.0; - prat[2] = 1.0; - prat[4] = 1.0; - eta[3] = 1.0; - eta[4] = .982; - eta[5] = 1.0; - eta[7] = 1.0; - eta[13] = 1.0; - area8 = area8d = 2.00; - area8max = 15f; - area8rat = 4.0; - a7 = .50; - - u0max = 4500f; - u0d = 2200.0; - areaRatioScheduler = 0; - wtflag = 0; weight = 976f; - minlt = 2; dinlt = 293f; tinlt = 4000; - mfan = 2; dfan = 293f; tfan = 1500f; - mcomp = 2; dcomp = 293f; tcomp = 1500f; - mburner = 7; dburner = 515f; tburner = 4500f; - mturbin = 4; dturbin = 515f; tturbin = 2500f; - mnozr = 5; dnozr = 515.2; tnozr = 4500f; - ncflag = 0; ntflag = 0; - - // con.setPanl() ; - return; - } - public void getFreeStream() + public void CalculatePerformance(double pressure, double temperature, double velocity, double commandedThrottle) { - rgas = 1718f; /* ft2/sec2 R */ - /* if (inptype >= 2) - { - ps0 = ps0 * 144f; - } - if (inptype <= 1) - { /* input altitude */ - /* alt = altd / lconv1; - if (alt < 36152f) - { - ts0 = 518.6 - 3.56 * alt / 1000f; - ps0 = 2116f * Math.Pow(ts0 / 518.6, 5.256); - } - if (alt >= 36152f && alt <= 82345f) - { // Stratosphere - ts0 = 389.98; - ps0 = 2116f * .2236 * - Math.Exp((36000f - alt) / (53.35 * 389.98)); - } - if (alt >= 82345f) - { - ts0 = 389.98 + 1.645 * (alt - 82345) / 1000f; - ps0 = 2116f * .02456 * Math.Pow(ts0 / 389.98, -11.388); - } - ts00 = ts0; - if (precooled != -1) - { - tt[0] = precooled; - } - - } */ - - ts0 = FARts0 * 1.8; // kelvin to rankine - ps0 = FARps0 * 14.696 * 144; // atm to psi to lb/sqft - - - a0 = Math.Sqrt(gamma * rgas * ts0); /* speed of sound ft/sec */ - - - - if (inptype == 0 || inptype == 2) - { /* input speed */ - u0 = u0d / MPH2KPH * 5280f / 3600f; /* airspeed ft/sec */ - fsmach = u0 / a0; - q0 = gamma / 2.0 * fsmach * fsmach * ps0; - } - if (inptype == 1 || inptype == 3) - { /* input mach */ - u0 = fsmach * a0; - u0d = u0 * MPH2KPH / 5280f * 3600f; /* airspeed ft/sec */ - q0 = gamma / 2.0 * fsmach * fsmach * ps0; + if (Tt7 == 0) + { + mainThrottle = commandedThrottle; } - if (u0 > .0001) rho0 = q0 / (u0 * u0); - else rho0 = 1.0; - - if (precooled != -1) - tt[0] = precooled; else - tt[0] = ts0 * (1.0 + .5 * (gamma - 1.0) * fsmach * fsmach); - - - - pt[0] = ps0 * Math.Pow(tt[0] / ts0, gamma / (gamma - 1.0)); - ps0 = ps0 / 144f; - pt[0] = pt[0] / 144f; - cpair = getCp(tt[0], gamopt); /* BTU/lbm R */ - tsout = ts0; - psout = ps0; - - - - return; - } - - public void getThermo() - { - double m5; - double delhc, delhht, delhf, delhlt; - double deltc, deltht, deltf, deltlt; + { + mainThrottle = Math.Min(commandedThrottle * 1.5, 1.0); + abThrottle = Math.Max(commandedThrottle - 0.667, 0); + } - prat[2] = eta[2]; // assume the inlet already took care of this - // so just use the entered value. - - /* protection for overwriting input */ - // don't clamp values. - /*if (eta[3] < .5) eta[3] = .5; - if (eta[5] < .5) eta[5] = .5;*/ - trat[7] = 1.0; - prat[7] = 1.0; - tt[2] = tt[1] = tt[0]; - - - - pt[1] = pt[0]; - gam[2] = getGamma(tt[2], gamopt); - cp[2] = getCp(tt[2], gamopt); - pt[2] = pt[1] * prat[2]; - /* design - p3p2 specified - tt4 specified */ - if (entype <= 1) - { /* turbojet */ - prat[3] = p3p2d; /* core compressor */ - if (prat[3] < .5) prat[3] = .5; - delhc = (cp[2] * tt[2] / eta[3]) * - (Math.Pow(prat[3], (gam[2] - 1.0) / gam[2]) - 1.0); - deltc = delhc / cp[2]; - pt[3] = pt[2] * prat[3]; - tt[3] = tt[2] + deltc; - trat[3] = tt[3] / tt[2]; - gam[3] = getGamma(tt[3], gamopt); - cp[3] = getCp(tt[3], gamopt); - tt[4] = tt4 * throtl / 100.0; - gam[4] = getGamma(tt[4], gamopt); - cp[4] = getCp(tt[4], gamopt); - trat[4] = tt[4] / tt[3]; - pt[4] = pt[3] * prat[4]; - delhht = delhc; - deltht = delhht / cp[4]; - tt[5] = tt[4] - deltht; - gam[5] = getGamma(tt[5], gamopt); - cp[5] = getCp(tt[5], gamopt); - trat[5] = tt[5] / tt[4]; - prat[5] = Math.Pow((1.0 - delhht / cp[4] / tt[4] / eta[5]), - (gam[4] / (gam[4] - 1.0))); - pt[5] = pt[4] * prat[5]; - /* fan conditions */ - prat[13] = 1.0; - trat[13] = 1.0; - tt[13] = tt[2]; - pt[13] = pt[2]; - gam[13] = gam[2]; - cp[13] = cp[2]; - prat[15] = 1.0; - pt[15] = pt[5]; - trat[15] = 1.0; - tt[15] = tt[5]; - gam[15] = gam[5]; - cp[15] = cp[5]; - } + p0 = pressure * 1000; //freestream + t0 = temperature; - if (entype == 2) - { /* turbofan */ - prat[13] = p3fp2d; - if (prat[13] < .5) prat[13] = .5; - delhf = (cp[2] * tt[2] / eta[13]) * - (Math.Pow(prat[13], (gam[2] - 1.0) / gam[2]) - 1.0); - deltf = delhf / cp[2]; - tt[13] = tt[2] + deltf; - pt[13] = pt[2] * prat[13]; - trat[13] = tt[13] / tt[2]; - gam[13] = getGamma(tt[13], gamopt); - cp[13] = getCp(tt[13], gamopt); - prat[3] = p3p2d; /* core compressor */ - if (prat[3] < .5) prat[3] = .5; - delhc = (cp[13] * tt[13] / eta[3]) * - (Math.Pow(prat[3], (gam[13] - 1.0) / gam[13]) - 1.0); - deltc = delhc / cp[13]; - tt[3] = tt[13] + deltc; - pt[3] = pt[13] * prat[3]; - trat[3] = tt[3] / tt[13]; - gam[3] = getGamma(tt[3], gamopt); - cp[3] = getCp(tt[3], gamopt); - tt[4] = tt4 * throtl / 100.0; - pt[4] = pt[3] * prat[4]; - gam[4] = getGamma(tt[4], gamopt); - cp[4] = getCp(tt[4], gamopt); - trat[4] = tt[4] / tt[3]; - delhht = delhc; - deltht = delhht / cp[4]; - tt[5] = tt[4] - deltht; - gam[5] = getGamma(tt[5], gamopt); - cp[5] = getCp(tt[5], gamopt); - trat[5] = tt[5] / tt[4]; - prat[5] = Math.Pow((1.0 - delhht / cp[4] / tt[4] / eta[5]), - (gam[4] / (gam[4] - 1.0))); - pt[5] = pt[4] * prat[5]; - delhlt = (1.0 + byprat) * delhf; - deltlt = delhlt / cp[5]; - tt[15] = tt[5] - deltlt; - gam[15] = getGamma(tt[15], gamopt); - cp[15] = getCp(tt[15], gamopt); - trat[15] = tt[15] / tt[5]; - prat[15] = Math.Pow((1.0 - delhlt / cp[5] / tt[5] / eta[5]), - (gam[5] / (gam[5] - 1.0))); - pt[15] = pt[5] * prat[15]; - } - - if (entype == 3) - { /* ramjet */ - prat[3] = 1.0; - pt[3] = pt[2] * prat[3]; - tt[3] = tt[2]; - trat[3] = 1.0; - gam[3] = getGamma(tt[3], gamopt); - cp[3] = getCp(tt[3], gamopt); - tt[4] = tt4 * throtl / 100.0; - gam[4] = getGamma(tt[4], gamopt); - cp[4] = getCp(tt[4], gamopt); - trat[4] = tt[4] / tt[3]; - pt[4] = pt[3] * prat[4]; - tt[5] = tt[4]; - gam[5] = getGamma(tt[5], gamopt); - cp[5] = getCp(tt[5], gamopt); - trat[5] = 1.0; - prat[5] = 1.0; - pt[5] = pt[4]; - /* fan conditions */ - prat[13] = 1.0; - trat[13] = 1.0; - tt[13] = tt[2]; - pt[13] = pt[2]; - gam[13] = gam[2]; - cp[13] = cp[2]; - prat[15] = 1.0; - pt[15] = pt[5]; - trat[15] = 1.0; - tt[15] = tt[5]; - gam[15] = gam[5]; - cp[15] = cp[5]; - } - - tt[7] = tt7; - /* analysis -assume flow choked at both turbine entrances */ - /* and nozzle throat ... then*/ + gamma_c = CalculateGamma(t0, 0); + Cp_c = CalculateCp(t0, 0); + Cv_c = Cp_c / gamma_c; + R_c = Cv_c * (gamma_c - 1); - prat[6] = 1.0; - pt[6] = pt[15]; - trat[6] = 1.0; - tt[6] = tt[15]; - gam[6] = getGamma(tt[6], gamopt); - cp[6] = getCp(tt[6], gamopt); - if (abflag > 0) - { /* afterburner */ - trat[7] = tt[7] / tt[6]; - m5 = getMach(0, getAir(1.0, gam[5]) * area4 / areaCore, gam[5]); - prat[7] = getRayleighLoss(m5, trat[7], tt[6]); - } - tt[7] = tt[6] * trat[7]; - pt[7] = pt[6] * prat[7]; - gam[7] = getGamma(tt[7], gamopt); - cp[7] = getCp(tt[7], gamopt); - /* engine press ratio EPR*/ - epr = prat[7] * prat[15] * prat[5] * prat[4] * prat[3] * prat[13]; - /* engine temp ratio ETR */ - etr = trat[7] * trat[15] * trat[5] * trat[4] * trat[3] * trat[13]; - return; - } + + M0 = velocity / Math.Sqrt(gamma_c * R_c * t0); - public void getPerform() - { /* determine engine performance */ - double fac1, game, cpe, cp3, rg, p8p5, rg1; - int index; + T1 = t0 * (1 + 0.5 * (gamma_c - 1) * M0 * M0); //inlet + P1 = p0 * Math.Pow(T1 / t0, gamma_c / (gamma_c - 1)) * TPR; - rg1 = 53.3; - rg = cpair * (gamma - 1.0) / gamma; - cp3 = getCp(tt[3], gamopt); /* BTU/lbm R */ - g0 = 32.1740; - ues = 0.0; - game = getGamma(tt[5], gamopt); - fac1 = (game - 1.0) / game; - cpe = getCp(tt[5], gamopt); - // remove minimums for eta7 and eta4 - //if (eta[7] < .8) eta[7] = .8; /* protection during overwriting */ - //if (eta[4] < .8) eta[4] = .8; - - /* specific net thrust - thrust / (g0*airflow) - lbf/lbm/sec */ - // turbine engine core - if (entype <= 2) + double prat3 = CPR; + double prat2 = FPR; + double k = FPR / CPR; + double p = Math.Pow(k, (gamma_c - 1) / eta_c / gamma_c); + for (int i = 0; i < 20; i++) //use iteration to calculate CPR { - /* airflow determined at choked nozzle exit */ - pt[8] = epr * prat[2] * pt[0]; - eair = getAir(1.0, game) * 144f * area8 * pt[8] / 14.7 / - Math.Sqrt(etr * tt[0] / 518f); - m2 = getMach(0, eair * Math.Sqrt(tt[0] / 518f) / - (prat[2] * pt[0] / 14.7 * areaCore * 144f), gamma); - npr = pt[8] / ps0; - uexit = Math.Sqrt(2.0 * rgas / fac1 * etr * tt[0] * eta[7] * - (1.0 - Math.Pow(1.0 / npr, fac1))); - if (npr <= 1.893) pexit = ps0; - else pexit = .52828 * pt[8]; - forceGross = (uexit + (pexit - ps0) * 144f * area8 / eair) / g0; - } + P2 = prat2 * P1; + P3 = prat3 * P1; + T2 = T1 * Math.Pow(prat2, (gamma_c - 1) / gamma_c / eta_c); //fan + T3 = T1 * Math.Pow(prat3, (gamma_c - 1) / gamma_c / eta_c); //compressor - // turbo fan -- added terms for fan flow - if (entype == 2) - { - fac1 = (gamma - 1.0) / gamma; - snpr = pt[13] / ps0; - ues = Math.Sqrt(2.0 * rgas / fac1 * tt[13] * eta[7] * - (1.0 - Math.Pow(1.0 / snpr, fac1))); - m2 = getMach(0, eair * (1.0 + byprat) * Math.Sqrt(tt[0] / 518f) / - (prat[2] * pt[0] / 14.7 * areaFan * 144f), gamma); - if (snpr <= 1.893) pfexit = ps0; - else pfexit = .52828 * pt[13]; - forceGross = forceGross + (byprat * ues + (pfexit - ps0) * 144f * byprat * areaCore / eair) / g0; - } + T4 = (Tt4 - T3 * 1.2) * mainThrottle + T3 * 1.2; //burner + P4 = P3; + ff = Cp_c * (T4 - T3) / (Cp_c * (T4 - T3) + h_f);//fuel fraction - // ramjets - if (entype == 3) - { - /* airflow determined at nozzle throat */ - eair = getAir(1.0, game) * 144.0 * a2 * areaRamThroatd * epr * prat[2] * pt[0] / 14.7 / - Math.Sqrt(etr * tt[0] / 518f); - m2 = getMach(0, eair * Math.Sqrt(tt[0] / 518f) / - (prat[2] * pt[0] / 14.7 * areaCore * 144f), gamma); - machExit = getMach(2, (getAir(1.0, game) / areaRamExitd), game); - uexit = machExit * Math.Sqrt(game * rgas * etr * tt[0] * eta[7] / - (1.0 + .5 * (game - 1.0) * machExit * machExit)); - pexit = Math.Pow((1.0 + .5 * (game - 1.0) * machExit * machExit), (-game / (game - 1.0))) - * epr * prat[2] * pt[0]; - forceGross = (uexit + (pexit - ps0) * areaRamExitd * areaRamThroatd * a2 / eair / 144f) / g0; - } + Cp_t = CalculateCp(T4, ff); - // ram drag - dragRam = u0 / g0; - if (entype == 2) dragRam = dragRam + u0 * byprat / g0; + T5 = T4 * TTR; //turbine + double x = prat3; - // mass flow ratio - if (fsmach > .01) mfr = getAir(m2, gamma) * prat[2] / getAir(fsmach, gamma); - else mfr = 5f; + prat3 = (1 + ff) * Cp_t * (T4 - T5) / T1 / Cp_c + 1 + BPR; + prat3 /= 1 + BPR * p; + prat3 = Math.Pow(prat3, eta_c * gamma_c / (gamma_c - 1)); + prat2 = k * prat3; - // net thrust - forceNet = forceGross - dragRam; - if (entype == 3 && fsmach < .3) - { - forceNet = 0.0; - forceGross = 0.0; + if (Math.Abs(x - prat3) < 0.01) + break; } - // thrust in pounds - forceNetlb = forceNet * eair; - forceGrosslb = forceGross * eair; - dragRamlb = dragRam * eair; + gamma_t = CalculateGamma(T5, ff);//gas parameters + Cp_t = CalculateCp(T5, ff); + Cv_t = Cp_t / gamma_t; + R_t = Cv_t * (gamma_t - 1); - //fuel-air ratio and sfc - fa = (trat[4] - 1.0) / (eta[4] * fhv / (cp3 * tt[3]) - trat[4]) + - (trat[7] - 1.0) / (fhv / (cpe * tt[15]) - trat[7]); - if (forceNet > 0.0) - { - sfc = 3600f * fa / forceNet; - fuelFlowlb = sfc * forceNetlb; - isp = (forceNetlb / fuelFlowlb) * 3600f; - } - else - { - forceNetlb = 0.0; - fuelFlowlb = 0.0; - sfc = 0.0; - isp = 0.0; - } + P5 = P4 * Math.Pow((1 - 1 / eta_t * (1 - TTR)), gamma_t / (gamma_t - 1)); - // plot output - tt[8] = tt[7]; - t8 = etr * tt[0] - uexit * uexit / (2.0 * rgas * game / (game - 1.0)); - trat[8] = tt[8] / tt[7]; - p8p5 = ps0 / (epr * prat[2] * pt[0]); - cp[8] = getCp(tt[8], gamopt); - pt[8] = pt[7]; - prat[8] = pt[8] / pt[7]; - /* thermal efficiency */ - if (entype == 2) + if (exhaustMixer && BPR > 0)//exhaust mixer { - eteng = (a0 * a0 * ((1.0 + fa) * (uexit * uexit / (a0 * a0)) - + byprat * (ues * ues / (a0 * a0)) - - (1.0 + byprat) * fsmach * fsmach)) / (2.0 * g0 * fa * fhv * 778.16); + double Cp6 = (Cp_c * BPR + Cp_t) / (1 + BPR);//Cp of mixed flow -- kind of + T6 = T5 * Cp_t / Cp6 * (1 + BPR * Cp_c * T2 / Cp_t / T5) / (1 + BPR); + P6 = (P5 + BPR * 0.98 * P2) / (1 + BPR); + ff /= (1 + ff + BPR); + gamma_t = CalculateGamma(T6, ff);//gas parameters + Cp_t = CalculateCp(T6, ff); + Cv_t = Cp_t / gamma_t; + R_t = Cv_t * (gamma_t - 1); + } else { - eteng = (a0 * a0 * ((1.0 + fa) * (uexit * uexit / (a0 * a0)) - - fsmach * fsmach)) / (2.0 * g0 * fa * fhv * 778.16); + T6 = T5; + P6 = P5; } - s[0] = s[1] = .2; - v[0] = v[1] = rg1 * ts0 / (ps0 * 144f); - for (index = 2; index <= 7; ++index) - { /* compute entropy */ - s[index] = s[index - 1] + cpair * Math.Log(trat[index]) - - rg * Math.Log(prat[index]); - v[index] = rg1 * tt[index] / (pt[index] * 144f); - } - s[13] = s[2] + cpair * Math.Log(trat[13]) - rg * Math.Log(prat[13]); - v[13] = rg1 * tt[13] / (pt[13] * 144f); - s[15] = s[5] + cpair * Math.Log(trat[15]) - rg * Math.Log(prat[15]); - v[15] = rg1 * tt[15] / (pt[15] * 144f); - s[8] = s[7] + cpair * Math.Log(t8 / (etr * tt[0])) - rg * Math.Log(p8p5); - v[8] = rg1 * t8 / (ps0 * 144f); - cp[0] = getCp(tt[0], gamopt); - forceNetTotallb = numeng * forceNetlb; - fuelrat = numeng * fuelFlowlb; - // weight calculation - /*if (wtflag == 0) - { - if (entype == 0) - { - weight = .132 * Math.Sqrt(acore * acore * acore) * - (dcomp * lcomp + dburner * lburn + dturbin * lturb + dnozl * lnoz); - } - if (entype == 1) - { - weight = .100 * Math.Sqrt(acore * acore * acore) * - (dcomp * lcomp + dburner * lburn + dturbin * lturb + dnozl * lnoz); - } - if (entype == 2) - { - weight = .0932 * acore * ((1.0 + byprat) * dfan * 4.0 + dcomp * (ncomp - 3) + - dburner + dturbin * nturb + dnozl * 2.0) * Math.Sqrt(acore / 6.965); - } - if (entype == 3) - { - weight = .1242 * acore * (dburner + dnozr * 6f + dinlt * 3f) * Math.Sqrt(acore / 1.753); - } - }*/ - // check for temp limits - if (entype < 3) - { - // if (tt[2] > tinlt) { - fireflag = (float)Math.Max(fireflag, (float)ts00 * (1.0 + .5 * (gamma - 1.0) * fsmach * fsmach) / tinlt); - /* out.vars.to1.setForeground(Color.red) ; - out.vars.to2.setForeground(Color.red) ; */ - // } - // if (tt[13] > tfan) { - fireflag = (float)Math.Max(fireflag, (float)tt[13] / tfan); - // out.vars.to2.setForeground(Color.red) ; - // } - // if (tt[3] > tcomp) { - fireflag = (float)Math.Max(fireflag, (float)tt[3] / tcomp); - // out.vars.to3.setForeground(Color.red) ; - // } - // if (tt[4] > tburner) { - // fireflag = (float)Math.Max (fireflag,(float)tt[4]/tburner) ; - // out.vars.to4.setForeground(Color.red) ; - // } - // if (tt[5] > tturbin) { - // fireflag = (float)Math.Max (fireflag,(float)tt[5]/tturbin) ; - // out.vars.to5.setForeground(Color.red) ; - // } - // if (tt[7] > tnozl) { - // fireflag = (float)Math.Max (fireflag,(float)tt[7]/tnozl) ; - // out.vars.to6.setForeground(Color.red) ; - // out.vars.to7.setForeground(Color.red) ; - // } - } - if (entype == 3) + if (Tt7 > 0) { - fireflag = (float)Math.Max(fireflag, (float)tt[3] / tinlt); - - /* out.vars.to1.setForeground(Color.red) ; - out.vars.to2.setForeground(Color.red) ; - out.vars.to3.setForeground(Color.red) ; */ - fireflag = (float)Math.Max(fireflag, (float)tt[4] / tburner); - - // out.vars.to4.setForeground(Color.red) ; - - fireflag = (float)Math.Max(fireflag, (float)tt[7] / tnozr); - - /* out.vars.to5.setForeground(Color.red) ; - out.vars.to6.setForeground(Color.red) ; - out.vars.to7.setForeground(Color.red) ;*/ - } - - //if (fireflag == 1) view.start() ; - } - - public void getGeo() - { - /* determine geometric variables */ - double gammaExit; - - if (entype <= 2) - { // turbine engines - if (areaFan < areaCore) areaFan = areaCore; - area8max = .75 * Math.Sqrt(etr) / epr; /* limits compressor face */ - /* mach number to < .5 */ - if (area8max > 1.0) area8max = 1.0; - if (area8rat > area8max) - { - area8rat = area8max; - } - /* dumb down limit - a8 schedule */ - if (areaRatioScheduler == 0) - { - area8rat = area8max; - } - area8 = area8rat * areaCore; - area8d = area8 * prat[7] / Math.Sqrt(trat[7]); - /* assumes choked a8 and a4 */ - area4 = area8 * prat[5] * prat[15] * prat[7] / - Math.Sqrt(trat[7] * trat[5] * trat[15]); - area4p = area8 * prat[15] * prat[7] / Math.Sqrt(trat[7] * trat[15]); - areaCap = .9 * a2; - } - - if (entype == 3) - { // ramjets - gammaExit = getGamma(tt[4], gamopt); - if (areaThroatScheduler == 0) - { // scheduled throat area - areaRamThroatd = getAir(fsmach, gamma) * Math.Sqrt(etr) / - (getAir(1.0, gammaExit) * epr * prat[2]); - if (areaRamThroatd < areaRamThroatMin) areaRamThroatd = areaRamThroatMin; - if (areaRamThroatd > areaRamThroatMax) areaRamThroatd = areaRamThroatMax; - } - if (areaExitScheduler == 0) - { // scheduled exit area - machExit = Math.Sqrt((2.0 / (gammaExit - 1.0)) * ((1.0 + .5 * (gamma - 1.0) * fsmach * fsmach) - * Math.Pow((epr * prat[2]), (gammaExit - 1.0) / gammaExit) - 1.0)); - areaRamExitd = getAir(1.0, gammaExit) / getAir(machExit, gammaExit); - if (areaRamExitd < areaRamExitMin) areaRamExitd = areaRamExitMin; - if (areaRamExitd > areaRamExitMax) areaRamExitd = areaRamExitMax; - } - } - } - - public int filter0(double inumbr) - { - // output only to . - float number; - int intermed; - - intermed = (int)(inumbr); - number = (float)(intermed); - return intermed; - } - - public float filter1(double inumbr) - { - // output only to .1 - float number; - int intermed; - - intermed = (int)(inumbr * 10f); - number = (float)(intermed / 10f); - return number; - } - - public float filter3(double inumbr) - { - // output only to .001 - float number; - int intermed; - - intermed = (int)(inumbr * 1000f); - number = (float)(intermed / 1000f); - return number; - } - - public double getGamma(double temp, int opt) - { - // Utility to get gamma as a function of temp - double number, a, b, c, d; - a = -7.6942651e-13; - b = 1.3764661e-08; - c = -7.8185709e-05; - d = 1.436914; - if (opt == 0) - { - number = 1.4; + T7 = (Tt7 - T6) * abThrottle * 3 + T6;//afterburner } else { - number = a * temp * temp * temp + b * temp * temp + c * temp + d; + T7 = T6; } - return (number); - } - // specific heat of air at constant pressure, as defined by temperature. - public double getCp(double temp, int opt) - { - // Utility to get cp as a function of temp - double number, a, b, c, d; - /* BTU/R */ - a = -4.4702130e-13; - b = -5.1286514e-10; - c = 2.8323331e-05; - d = 0.2245283; - if (opt == 0) - { - number = .2399; - } - else + P7 = P6;//rayleigh loss? + + ff_ab = ff + Cp_t * (T7 - T6) / (Cp_t * (T7 - T6) + h_f);//fuel fraction + gamma_ab = CalculateGamma(T7, ff_ab);//gas parameters + Cp_ab = CalculateCp(T7, ff_ab); + Cv_ab = Cp_ab / gamma_ab; + R_ab = Cv_ab * (gamma_ab - 1); + + //Nozzle code is from NASA + double P8 = P7; + double T8 = T7; + + double p8, V8, A8; + double epr = P8 / P1; + double etr = T8 / T1; + + double area8max = .75 * Math.Sqrt(etr) / epr;//ratio of nozzle area to ref area + A8 = area8max * Aref; + if (exhaustMixer && BPR > 0) + A8 *= (1 + BPR); + double eair = P8 * Math.Sqrt(gamma_ab / R_ab / T8) * + Math.Pow((.5 + .5 * gamma_ab), .5 * (1 + gamma_ab) / (1 - gamma_ab));//corrected mass flow per area + mdot = eair * A8; + double npr = P8 / p0; + double fac1 = (gamma_ab - 1.0) / gamma_ab; + V8 = Math.Sqrt(2.0 * R_c / fac1 * T8 * eta_n * (1.0 - Math.Pow(1.0 / npr, fac1))); //exit velocity + p8 = (npr <= 1.893) ? p0 : .52828 * P8; + thrust = V8 * mdot + (p8 - p0) * A8; + + if (BPR > 0 && FPR > 1 && exhaustMixer == false) { - number = a * temp * temp * temp + b * temp * temp + c * temp + d; + fac1 = (gamma_c - 1) / gamma_c; //fan thrust from NASA + double snpr = P2 / p0; + double ues = Math.Sqrt(2.0 * R_c / fac1 * T2 * eta_n * (1.0 - Math.Pow(1.0 / snpr, fac1))); + double pfexit = (snpr <= 1.893) ? p0 : .52828 * P2; //exit pressure of fan + if (snpr <= 1.893) pfexit = p0; + else pfexit = .52828 * P2; + thrust += BPR * ues * mdot + (pfexit - p0) * BPR * Aref; } - return (number); - } - public double getMach(int sub, double corair, double gamma) - { - /* Utility to get the Mach number given the corrected airflow per area */ - double number, chokair; /* iterate for mach number */ - double deriv, machn, macho, airo, airn; - int iter; - chokair = getAir(1.0, gamma); - if (corair > chokair) - { - number = 1.0; - return (number); - } - else - { - airo = .25618; /* initial guess */ - if (sub == 1) macho = 1.0; /* sonic */ - else - { - if (sub == 2) macho = 1.703; /* supersonic */ - else macho = .5; /* subsonic */ - iter = 1; - machn = macho - .2; - while (Math.Abs(corair - airo) > .0001 && iter < 20) - { - airn = getAir(machn, gamma); - deriv = (airn - airo) / (machn - macho); - airo = airn; - macho = machn; - machn = macho + (corair - airo) / deriv; - ++iter; - } - } - number = macho; - } - return (number); + thrust -= mdot * (1 + (exhaustMixer ? 0 : BPR)) * (velocity);//ram drag + + Isp = thrust / (mdot * ff_ab * 9.81); + /* + debugstring = ""; + debugstring += "TTR:\t" + TTR.ToString("F3") + "\r\n"; + debugstring += "CPR:\t" + prat3.ToString("F3") + "\r\n"; ; + debugstring += "p0: " + p0.ToString("F2") + "\tt0: " + t0.ToString("F2") + "\r\n"; + debugstring += "P1: " + P1.ToString("F2") + "\tT1: " + T1.ToString("F2") + "\r\n"; + debugstring += "P2: " + P2.ToString("F2") + "\tT2: " + T2.ToString("F2") + "\r\n"; + debugstring += "P3: " + P3.ToString("F2") + "\tT3: " + T3.ToString("F2") + "\r\n"; + debugstring += "P4: " + P4.ToString("F2") + "\tT4: " + T4.ToString("F2") + "\r\n"; + debugstring += "P5: " + P5.ToString("F2") + "\tT5: " + T5.ToString("F2") + "\r\n"; + debugstring += "P6: " + P6.ToString("F2") + "\tT6: " + T6.ToString("F2") + "\r\n"; + debugstring += "P7: " + P7.ToString("F2") + "\tT7: " + T7.ToString("F2") + "\r\n"; + debugstring += "EPR: " + epr.ToString("F2") + "\tETR: " + etr.ToString("F2") + "\r\n"; + + debugstring += "FF: " + ff.ToString("P") + "\t"; + debugstring += "FF_AB: " + ff_ab.ToString("P") + "\r\n"; + debugstring += "V8: " + V8.ToString("F2") + "\tA8: " + A8.ToString("F2") + "\r\n"; + debugstring += "Thrust: " + (thrust / 1000).ToString("F1") + "\tmdot: " + mdot.ToString("F2") + "\r\n"; + debugstring += "NetThrust: " + (thrust / 1000).ToString("F1") + "\tSFC: " + (3600 / Isp).ToString("F3") + "\r\n"; + Debug.Log(debugstring);*/ } - public double getRayleighLoss(double mach1, double ttrat, double tlow) + public void SetTPR(double t) { TPR = t; } + public double GetThrust() { return thrust; } + public double GetIsp() { return Isp; } + public double GetT3() { return T3; } + public double GetM0() { return M0; } + private double CalculateGamma(double temperature, double fuel_fraction) { - /* analysis for rayleigh flow */ - double number; - double wc1, wc2, mgueso, mach2, g1, gm1, g2, gm2; - double fac1, fac2, fac3, fac4; - - g1 = getGamma(tlow, gamopt); - gm1 = g1 - 1.0; - wc1 = getAir(mach1, g1); - g2 = getGamma(tlow * ttrat, gamopt); - gm2 = g2 - 1.0; - number = .95; - /* iterate for mach downstream */ - mgueso = .4; /* initial guess */ - mach2 = .5; - - int itcount = 0; - while (Math.Abs(mach2 - mgueso) > .0001 && itcount < 200) - { - itcount++; - mgueso = mach2; - fac1 = 1.0 + g1 * mach1 * mach1; - fac2 = 1.0 + g2 * mach2 * mach2; - fac3 = Math.Pow((1.0 + .5 * gm1 * mach1 * mach1), (g1 / gm1)); - fac4 = Math.Pow((1.0 + .5 * gm2 * mach2 * mach2), (g2 / gm2)); - number = fac1 * fac4 / fac2 / fac3; - wc2 = wc1 * Math.Sqrt(ttrat) / number; - mach2 = getMach(0, wc2, g2); - } - return (number); + double gamma = 1.4 - 0.1 * Math.Max((temperature - 300) * 0.0005, 0) * (1 + fuel_fraction); + gamma = Math.Min(1.4, gamma); + gamma = Math.Max(1.1, gamma); + return gamma; } - public double getAir(double mach, double gamma) + private double CalculateCp(double temperature, double fuel_fraction) { - /* Utility to get the corrected airflow per area given the Mach number */ - double number, fac1, fac2; - fac2 = (gamma + 1.0) / (2.0 * (gamma - 1.0)); - fac1 = Math.Pow((1.0 + .5 * (gamma - 1.0) * mach * mach), fac2); - number = .50161 * Math.Sqrt(gamma) * mach / fac1; - - return (number); + double Cp = 1004.5 + 250 * Math.Max((temperature - 300) * 0.0005, 0) * (1 + 10 * fuel_fraction); + Cp = Math.Min(1404.5, Cp); + Cp = Math.Max(1004.5, Cp); + return Cp; } - - } // end Solver - - - - - + } } - diff --git a/Source/EngineWrapper.cs b/Source/EngineWrapper.cs index db278c3..1017da9 100644 --- a/Source/EngineWrapper.cs +++ b/Source/EngineWrapper.cs @@ -55,7 +55,7 @@ public void SetIsp(float isp) return; FloatCurve resultcurve = new FloatCurve(); this.realIsp = isp; - isp = isp * IspMultiplier;//In 0.25 all Isp are 1/5 real value, weird. + isp = isp * IspMultiplier; resultcurve.Add(0, isp); resultcurve.Add(1, isp); @@ -74,11 +74,14 @@ public void SetIsp(float isp) } - public void SetThrust(float power) + public void SetThrust(float t) { - if (power > 0) + if (t > 0) { - this.maxThrust = Mathf.Min(power, ThrustUpperLimit); + if (t > ThrustUpperLimit) + this.maxThrust = ThrustUpperLimit + (t - ThrustUpperLimit) / 10; + else + this.maxThrust = t; } else {