diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg index 1c1c595bb..e5d0e65c7 100644 --- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg +++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg @@ -13,7 +13,7 @@ flareAngle = 0 [STICKANDRUDDER] rudderGroundPID = 0.035, 0.001, 0.1, 1.0, 1.0 ; Pk,Ik,Dk,I boundary, D boundary -throttleGroundPID = 1.0,0.10,10.0,10.0,20.0 +throttleGroundPID = 10.0, 0.0, 0.0, 10.0, 20.0 brakeDifferentialPID = 2.7, 0.001,10.0,1.0, 5.0 throttleDifferentialPID = 12.0 ,0.001,25.0,10.0,40.0 throttlePID = 50.0, 1.0, 200.0, 20.0, 500.0 diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg index fab8e2eca..44b7ae898 100644 --- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg +++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg @@ -3,7 +3,7 @@ major =1 minor =0 [VIEWS] -eyepoint = -18.55, -2, 11 ; (feet) longitudinal, lateral, vertical distance from reference datum +eyepoint = -41.69, -2, 11 ; -18.55, -2, 11 ; (feet) longitudinal, lateral, vertical distance from reference datum ;===================== CAMERADEFINITION ===================== diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg index 6a05f42f4..513fa40a4 100644 --- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg +++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg @@ -1,106 +1,129 @@ -[VERSION] -major = 1 -minor = 0 - -[GENERALENGINEDATA] -engine_type = 1 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop -fuel_flow_scalar = 1.44 ; Fuel flow scalar -min_throttle_limit = -0.25 ; Minimum percent throttle. Generally negative for turbine reverser -master_ignition_switch = 0 -starter_type = 2 ; 0=Electric, 1=Manual, 2=Bleed Air -max_contrail_temperature = -39.724 -Engine.0 = -119, -69.6, -7.1 -ThrustAnglesPitchHeading.0 = 0, 0 -Engine.1 = -92, -39.4, -7.5 -ThrustAnglesPitchHeading.1 = 0, 0 -Engine.2 = -92, 39.4, -7.5 -ThrustAnglesPitchHeading.2 = 0, 0 -Engine.3 = -119, 69.6, -7.1 -ThrustAnglesPitchHeading.3 = 0, 0 - -[TURBINEENGINEDATA] -fuel_flow_gain = 0.002 ; Gain on fuel flow -inlet_area = 60 ; Square Feet, engine nacelle inlet area -rated_N2_rpm = 29920 ; RPM, second stage compressor rated value -static_thrust = 66500 ; Lbs, max rated static thrust at Sea Level -reverser_available = 2.0 -reverser_mach_controlled = 0 -afterburner_available = 0 -afterburner_throttle_threshold = 0.011 -ThrustSpecificFuelConsumption = 0.24 -AfterBurnThrustSpecificFuelConsumption = 0.011 -mach_0_corrected_commanded_ne_table = 0.000000:1.000000:22.570000,0.000000:55.000000:82.500000,0.420000:78.800003:95.400002,0.510000:82.500000:98.500000,0.610000:87.400002:101.099998,0.700000:92.000000:103.099998,0.790000:96.199997:105.699997,0.930000:103.099998:108.059998,1.000000:107.000000:108.059998 -mach_hi_corrected_commanded_ne_table = 0.900000:1.000000:22.570000,0.000000:62.000000:82.500000,0.420000:77.000000:95.400002,0.510000:80.199997:98.500000,0.610000:84.800003:101.099998,0.700000:89.099998:103.099998,0.790000:92.199997:105.699997,0.930000:96.000000:108.059998,1.000000:98.199997:108.059998 -corrected_n2_from_ff_table = 0.000000:0.000000, 0.002940:10.000000, 0.011800:30.000000, 0.020660:40.000000, 0.033970:50.000000, 0.053170:60.000000, 0.133910:80.000000, 0.257710:90.000000, 0.540000:100.000000, 0.686860:108.000000 -n1_and_mach_on_thrust_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:0.025400:0.114000,25.000000:0.050800:0.222000,30.000000:0.079800:0.350000,35.000000:0.112500:0.451000,40.000000:0.152400:0.545000,45.000000:0.199500:0.640000,50.000000:0.254000:0.754000,55.000000:0.360000:0.869000,60.000000:0.480000:0.953000,65.000000:0.572000:1.040000,70.000000:0.653000:1.126000,75.000000:0.727000:1.210000,80.000000:0.788000:1.295000,85.000000:0.875000:1.378000,90.000000:0.985000:1.478000,95.000000:1.061000:1.578000,100.000000:1.153000:1.668000,105.000000:1.237000:1.778000,110.000000:1.338000:1.845000 -n2_to_n1_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,10.000000:1.100000:1.000000,20.000000:2.700000:2.400000,30.000000:5.700000:4.700000,40.000000:10.100000:8.400000,50.000000:17.500000:12.800000,60.000000:29.900000:21.200001,70.000000:49.400002:41.599998,80.000000:67.500000:60.400002,90.000000:90.599998:85.900002,100.000000:105.500000:102.400002,110.000000:118.000000:114.099998 -corrected_airflow_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:4.290000:14.081000,85.000000:22.000000:24.000000,90.000000:25.000000:25.000000,95.000000:27.000000:27.000000,100.000000:28.000000:28.000000,105.000000:29.000000:29.000000,110.000000:30.000000:30.000000 -epr_max = 1.4 -epr_tc = 14 -epr_tuning_constant = 1 -oil_temp_cooling_constant = 0 -oil_temp_heating_constant = 700 -oil_temp_tc = 0.07 -oil_temp_tuning_constant = 1 -oil_press_max = 12384 -oil_press_tc = 0.8 -oil_press_tuning_constant = 1 -fuel_flow_max_itt_factor = 2.0 -fuel_flow_min_itt_factor = 0.72 -n1_cooling_factor = 0.01 -itt_peak_temperature = 2141 -itt_tc = 2 -itt_tuning_constant = 1 -egt_peak_temperature = 1600 -egt_tc = 2 -egt_tuning_constant = 1 -fuel_press_max = 2376 -fuel_press_tc = 2 -fuel_press_tuning_constant = 1 -variable_inlet = 0 -primary_nozzle_available = 0 -primary_nozzle_afterburner_offset = 0.14 -primary_nozzle_n1_mach_to_nozzle_pos = 0.000000:0.000000:2.000000,53.000000:0.660000:0.100000,65.000000:0.690000:0.330000,96.000000:0.700000:0.440000 -density_on_torque_table = 0.000225:0.100000, 0.000352:0.300000, 0.000480:0.500000, 0.000607:0.700000, 0.000734:0.900000, 0.000862:1.000000, 0.001241:1.000000, 0.001620:1.000000, 0.001999:1.000000, 0.002378:1.000000 -starter_N1_max_pct = 12 ; Pct, percentage of max rpm that reached using only starter. -starter_N1_rate = 12 ; Rate at which the starter N1 increases. -ignition_auto_type = "Starter,Flaps,AntiIce" ; If the Ignition is set to AUTO - specifies how that is handled. 0(default) = Always on, 1 = Ignition follows starter status, 2 = Ignition enabled when Flaps are not neutral, when AntiIce is enabled, or when N1/N2 is below 50%. -min_condition_lever_for_combustion = 0.01 ; % - Minimum position of the Condition lever to obtain a combustion. Default at 0.01. -min_n1_for_combustion = 10 ; % - Minimum N1 required to maintain a combustion -min_n2_for_combustion = 19.4 ; % - Minimum N2 required to maintain a combustion -min_n1_for_starter_cutoff = 200 ; % - Minimum N1 at which the starter is automatically disabled -min_n2_for_starter_cutoff = 50 ; % - Minimum N2 at which the starter is automatically disabled -min_n2_for_apu_bleed_air_cutoff = 200 ; % - Minimum N2 at which the APU Bleed Air is automatically disabled -n2_from_bleed_air_psi_table = 0:0, 4:8, 10:18, 18:25 ; Table which contains the n2 generated depending on the pression from the bleed air from the APU (in psi). -bleed_air_on_n2_tc = 1 ; Time constant which contains the speed at which the bleed air pressure affect the N2 of the turbine. -N1_to_oil_pressure_table = 0:0, 0.21:0.88, 0.9:0.954, 1:1 ; % of max Oil Pressure for % N1. -n1_normal_tc = 0.5 ; Float factor changing N1 acceleration during normal use of the engine -n1_start_max_rate = 1.0 ; Float limiting N1 acceleration during starter use -n1_start_combustion_max_rate = 2.0 ; Float limiting N1 acceleration during startup when cumbustion has started -idle_fuel_flow = 1364 ; pound per hour -low_idle_n1 = 23.2 -low_idle_n2 = 60 -high_n1 = 98 -high_n2 = 102 -high_fuel_flow = 8000 -min_n2_for_fuel_flow = 22 -mach_influence_on_n1 = 10 -fuel_flow_max = 10000 -fuel_flow_controller_p = 0.5 -fuel_flow_controller_i = 0.1 -fuel_flow_controller_d = 0.5 -fuel_flow_controller_iboundary = 5 -fuel_flow_controller_dboundary = 100 -max_torque_protection = 0 ; 0 = no protection, value of the torque triggering a protection by automatically limiting the fuelflow -max_n1_protection = 104 ; 0 = no protection, value of the n1 triggering a protection by automatically limiting the fuelflow -max_n2_protection = 105 ; 0 = no protection, value of the n2 triggering a protection by automatically limiting the fuelflow -max_egt_protection = 2000 ; 0 = no protection, value of the egt triggering a protection by automatically limiting the fuelflow - -[JET_ENGINE] -thrust_scalar = 0.85 - -[DISABLED_CONTROLS] -DisableFuelValveControls = 0 ; Disable fuel valve controls -DisableMixtureControls = 1 ; Disable mixture controls -DisableParkingBrakeControls = 0 ; Disable parking brake controls -DisablePropellerControls = 1 ; Disable propeller controls +[VERSION] +major = 1 +minor = 0 + +[GENERALENGINEDATA] +engine_type = 1 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop +fuel_flow_scalar = 1 ; 0.8 ; Fuel flow scalar +min_throttle_limit = -0.25 ; Minimum percent throttle. Generally negative for turbine reverser +master_ignition_switch = 0 +starter_type = 2 ; 0=Electric, 1=Manual, 2=Bleed Air +max_contrail_temperature = -39.724 +Engine.0 = -142.5, -69.95, -4.5 ; -97.5, 0, 0 ; -119, -69.6, -7.1 +ThrustAnglesPitchHeading.0 = 0, 0 +Engine.1 = -117, -39.35, -6.8 ; -97.5, 0, 0 ; -92, -39.4, -7.5 +ThrustAnglesPitchHeading.1 = 0, 0 +Engine.2 = -117, 39.35, -6.8 ; -97.5, 0, 0 ; -92, 39.4, -7.5 +ThrustAnglesPitchHeading.2 = 0, 0 +Engine.3 = -142.5, 69.95, -4.5 ; -97.5, 0, 0 ; -119, 69.6, -7.1 +ThrustAnglesPitchHeading.3 = 0, 0 + +[TURBINEENGINEDATA] +use_old_fuelflow_simvar = 0 +use_corrected_N2_from_FF_table = 0 +use_commanded_Ne_table = 0 +use_n2_to_n1_table = 0 +fuel_flow_gain = 0.002 ; Gain on fuel flow +inlet_area = 60 ; Square Feet, engine nacelle inlet area +rated_N1_rpm = 2835 ; RPM ; fan +rated_N2_rpm = 11377 ; 29920 ; RPM, second stage compressor rated value +static_thrust = 67425 ; 67400 ; 67400 ; 66500 ; Lbs, max rated static thrust at Sea Level +reverser_available = 2.0 +reverser_mach_controlled = 0 +afterburner_available = 0 +afterburner_throttle_threshold = 0.011 +ThrustSpecificFuelConsumption = 0.27 +AfterBurnThrustSpecificFuelConsumption = 0.011 +mach_0_corrected_commanded_ne_table = 0:1:4.4593:18.5238,0.00:68.00:78.42:78.42,0.14:75.15:86.67:86.67,0.29:82.30:94.91:94.91,0.43:89.45:103.16:103.16,0.57:96.60:111.41:111.41,0.72:103.75:119.65:119.65,0.86:110.90:127.90:127.90,1.00:118.00:136.09:136.09 +mach_hi_corrected_commanded_ne_table = 0.999:1:4.4593:18.5238,0.00:62.09:71.60:71.60,0.14:68.61:79.13:79.13,0.29:75.14:86.66:86.66,0.43:81.67:94.19:94.19,0.57:88.20:101.72:101.72,0.72:94.73:109.24:109.24,0.86:101.25:116.77:116.77,1.00:107.74:124.25:124.25 +;corrected_n2_from_ff_table = 0.000000:0.000000, 0.002940:10.000000, 0.011800:30.000000, 0.020660:40.000000, 0.033970:50.000000, 0.053170:60.000000, 0.133910:80.000000, 0.257710:90.000000, 0.540000:100.000000, 0.686860:108.000000 +;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.0825:81.0, 0.2369:94.0, 0.2886:100.0 +;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.0825:88.4, 0.2369:110.5, 0.2886:118.0 +;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.3:118.0 +;n1_and_mach_on_thrust_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:0.025400:0.114000,25.000000:0.050800:0.222000,30.000000:0.079800:0.350000,35.000000:0.112500:0.451000,40.000000:0.152400:0.545000,45.000000:0.199500:0.640000,50.000000:0.254000:0.754000,55.000000:0.360000:0.869000,60.000000:0.480000:0.953000,65.000000:0.572000:1.040000,70.000000:0.653000:1.126000,75.000000:0.727000:1.210000,80.000000:0.788000:1.295000,85.000000:0.875000:1.378000,90.000000:0.985000:1.478000,95.000000:1.061000:1.578000,100.000000:1.153000:1.668000,105.000000:1.237000:1.778000,110.000000:1.338000:1.845000 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9,0.0:0:0:0:0:0:0:0:0:0:0,28.0:0.070:0.059:0.055:0.052:0.050:0.048:0.046:0.044:0.042:0.039,30.0:0.072:0.061:0.057:0.054:0.051:0.049:0.048:0.046:0.043:0.041,40.0:0.095:0.080:0.075:0.071:0.068:0.065:0.063:0.060:0.057:0.053,50.0:0.155:0.131:0.122:0.116:0.111:0.106:0.102:0.098:0.093:0.087,60.0:0.260:0.220:0.205:0.194:0.186:0.178:0.172:0.165:0.156:0.146,70.0:0.400:0.339:0.315:0.299:0.286:0.274:0.264:0.253:0.241:0.225,80.0:0.580:0.491:0.457:0.433:0.414:0.398:0.383:0.367:0.349:0.326,85.0:0.700:0.593:0.552:0.523:0.500:0.480:0.462:0.443:0.421:0.394,89.4:0.800:0.678:0.631:0.597:0.571:0.549:0.528:0.506:0.481:0.450,91.8:0.850:0.720:0.670:0.635:0.607:0.583:0.561:0.538:0.512:0.478,93.6:0.900:0.762:0.710:0.672:0.643:0.618:0.594:0.570:0.542:0.506,97.9:1.000:0.847:0.788:0.747:0.714:0.686:0.660:0.633:0.602:0.563 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0:0:0:0:0:0:0:0:0:0:0,28.0:0.070:0.060:0.056:0.055:0.054:0.054:0.053:0.051:0.049:0.047:0.044,30.0:0.073:0.062:0.059:0.057:0.056:0.057:0.055:0.053:0.051:0.049:0.046,40.0:0.110:0.094:0.088:0.086:0.085:0.085:0.083:0.080:0.078:0.074:0.069,50.0:0.190:0.162:0.153:0.148:0.146:0.147:0.143:0.139:0.134:0.128:0.120,60.0:0.300:0.255:0.241:0.234:0.231:0.233:0.226:0.219:0.212:0.202:0.189,70.0:0.450:0.383:0.361:0.350:0.347:0.349:0.340:0.329:0.317:0.303:0.283,80.0:0.645:0.549:0.518:0.502:0.497:0.500:0.487:0.472:0.455:0.434:0.406,85.0:0.755:0.642:0.606:0.588:0.582:0.585:0.570:0.552:0.532:0.508:0.475,87.0:0.800:0.681:0.642:0.623:0.616:0.620:0.604:0.585:0.564:0.538:0.503,91.2:0.900:0.766:0.723:0.701:0.693:0.698:0.679:0.658:0.635:0.605:0.566,95.3:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0:0:0:0:0:0:0:0:0:0:0,27.3:0.046:0.039:0.037:0.036:0.035:0.036:0.035:0.034:0.032:0.031:0.029,29.2:0.054:0.046:0.043:0.042:0.042:0.042:0.041:0.039:0.038:0.036:0.034,39.0:0.108:0.092:0.087:0.084:0.084:0.084:0.082:0.079:0.076:0.073:0.068,48.7:0.185:0.158:0.149:0.144:0.143:0.144:0.140:0.136:0.131:0.125:0.117,58.5:0.289:0.246:0.232:0.225:0.222:0.224:0.218:0.211:0.203:0.194:0.182,68.2:0.418:0.356:0.336:0.325:0.322:0.324:0.315:0.306:0.295:0.281:0.263,78.0:0.578:0.492:0.464:0.450:0.445:0.448:0.436:0.423:0.407:0.389:0.364,82.9:0.669:0.570:0.537:0.521:0.516:0.519:0.505:0.490:0.472:0.450:0.421,89.4:0.803:0.683:0.645:0.625:0.619:0.623:0.606:0.587:0.566:0.540:0.505,93.6:0.897:0.764:0.720:0.699:0.691:0.696:0.677:0.656:0.633:0.603:0.565,97.9:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.032:0.030:0.028:0.027:0.024:0.022:0.019:0.016:0.014,69.4:0.319:0.270:0.249:0.233:0.220:0.208:0.189:0.169:0.148:0.127:0.106,70.0:0.332:0.281:0.260:0.243:0.229:0.217:0.197:0.176:0.154:0.133:0.111,75.0:0.424:0.359:0.331:0.310:0.293:0.277:0.252:0.224:0.197:0.169:0.142,80.0:0.533:0.451:0.416:0.390:0.368:0.348:0.316:0.282:0.247:0.213:0.178,85.0:0.661:0.559:0.516:0.483:0.456:0.432:0.392:0.349:0.307:0.264:0.221,89.4:0.795:0.672:0.621:0.582:0.549:0.520:0.472:0.420:0.369:0.317:0.265,97.9:1.000:0.845:0.781:0.732:0.690:0.654:0.593:0.529:0.464:0.399:0.334 +;TABLE n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.032:0.030:0.028:0.027:0.025:0.024:0.023:0.022:0.021,69.4:0.319:0.270:0.249:0.233:0.220:0.208:0.198:0.188:0.179:0.171:0.163,70.0:0.332:0.281:0.260:0.243:0.229:0.217:0.206:0.196:0.187:0.178:0.170,75.0:0.424:0.359:0.331:0.310:0.293:0.277:0.263:0.250:0.238:0.227:0.216,80.0:0.533:0.451:0.416:0.390:0.368:0.348:0.331:0.315:0.300:0.285:0.272,85.0:0.661:0.559:0.516:0.483:0.456:0.432:0.410:0.390:0.371:0.354:0.337,89.4:0.795:0.672:0.621:0.582:0.549:0.520:0.493:0.469:0.447:0.426:0.405,97.9:1.000:0.845:0.781:0.732:0.690:0.654:0.620:0.590:0.562:0.535:0.510 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.035:0.033:0.032:0.031:0.032:0.031:0.030:0.029:0.027:0.026,69.4:0.319:0.271:0.256:0.248:0.246:0.247:0.241:0.233:0.225:0.215:0.201,70.0:0.332:0.283:0.267:0.259:0.256:0.258:0.251:0.243:0.234:0.224:0.209,75.0:0.424:0.361:0.341:0.330:0.327:0.329:0.320:0.310:0.299:0.285:0.267,80.0:0.533:0.454:0.428:0.415:0.411:0.413:0.402:0.390:0.376:0.359:0.335,85.0:0.661:0.562:0.531:0.515:0.509:0.512:0.499:0.483:0.466:0.444:0.416,89.4:0.795:0.677:0.639:0.619:0.613:0.616:0.600:0.582:0.561:0.535:0.500,97.9:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629 +;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.031:0.029:0.027:0.026:0.024:0.023:0.022:0.021:0.020,30.0:0.048:0.041:0.037:0.035:0.033:0.031:0.029:0.027:0.026:0.025:0.023,35.0:0.071:0.059:0.054:0.051:0.048:0.045:0.042:0.040:0.038:0.036:0.034,40.0:0.098:0.082:0.076:0.070:0.066:0.062:0.059:0.056:0.053:0.050:0.047,45.0:0.132:0.110:0.101:0.094:0.088:0.083:0.079:0.074:0.071:0.067:0.063,50.0:0.171:0.143:0.131:0.122:0.115:0.108:0.102:0.097:0.091:0.087:0.082,55.0:0.216:0.180:0.166:0.154:0.145:0.137:0.129:0.122:0.116:0.110:0.104,60.0:0.267:0.224:0.205:0.191:0.180:0.169:0.160:0.151:0.143:0.136:0.129,65.0:0.326:0.272:0.250:0.233:0.219:0.206:0.195:0.184:0.175:0.165:0.157,70.0:0.391:0.327:0.300:0.280:0.263:0.248:0.234:0.221:0.209:0.198:0.188,74.1:0.450:0.376:0.345:0.322:0.302:0.285:0.269:0.255:0.241:0.228:0.216,97.9:1.000:0.836:0.768:0.716:0.672:0.633:0.598:0.566:0.536:0.508:0.481 +n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.031:0.029:0.027:0.026:0.024:0.023:0.022:0.021:0.020,30.0:0.048:0.041:0.037:0.035:0.033:0.031:0.029:0.027:0.026:0.025:0.023,35.0:0.071:0.059:0.054:0.051:0.048:0.045:0.042:0.040:0.038:0.036:0.034,40.0:0.098:0.082:0.076:0.070:0.066:0.062:0.059:0.056:0.053:0.050:0.047,45.0:0.132:0.110:0.101:0.094:0.088:0.083:0.079:0.074:0.071:0.067:0.063,50.0:0.171:0.143:0.131:0.122:0.115:0.108:0.102:0.097:0.091:0.087:0.082,55.0:0.216:0.180:0.166:0.154:0.145:0.137:0.129:0.122:0.116:0.110:0.104,60.0:0.267:0.224:0.205:0.191:0.180:0.169:0.160:0.151:0.143:0.136:0.129,65.0:0.326:0.272:0.250:0.233:0.219:0.206:0.195:0.184:0.175:0.165:0.157,70.0:0.391:0.327:0.300:0.280:0.263:0.248:0.234:0.221:0.209:0.198:0.188,74.1:0.450:0.376:0.345:0.322:0.302:0.285:0.269:0.255:0.241:0.228:0.216,97.9:1.000:0.836:0.768:0.716:0.672:0.633:0.598:0.566:0.536:0.508:0.481,110.0:1.285:1.074:0.986:0.919:0.863:0.813:0.768:0.727:0.688:0.652:0.618 +;n2_to_n1_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,10.000000:1.100000:1.000000,20.000000:2.700000:2.400000,30.000000:5.700000:4.700000,40.000000:10.100000:8.400000,50.000000:17.500000:12.800000,60.000000:29.900000:21.200001,70.000000:49.400002:41.599998,80.000000:67.500000:60.400002,90.000000:90.599998:85.900002,100.000000:105.500000:102.400002,110.000000:118.000000:114.099998 +n2_to_n1_table = 0:0:0.999,0.00:0.00:0.00,10.00:0.86:0.94,20.00:2.37:2.59,30.00:4.61:5.05,40.00:7.60:8.33,50.00:11.33:12.41,60.00:15.80:17.30,70.00:22.03:24.13,80.00:32.95:36.09,90.00:47.01:51.49,100.00:64.59:70.74,120.00:111.93:122.60 +;corrected_airflow_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:4.290000:14.081000,85.000000:22.000000:24.000000,90.000000:25.000000:25.000000,95.000000:27.000000:27.000000,100.000000:28.000000:28.000000,105.000000:29.000000:29.000000,110.000000:30.000000:30.000000 +;JET_density_on_ff = 0.002378:1.0, 0.002049:0.8177, 0.001756:0.6638, 0.001496:0.5342, 0.001267:0.4271, 0.001066:0.3376, 0.000890:0.2646, 0.000737:0.2047, 0.000585:0.1575, 0.000460:0.1243 +;jet_density_on_ff_table = 0.000460:0.1243, 0.000585:0.1575, 0.000737:0.2047, 0.000890:0.2646, 0.001066:0.3376, 0.001267:0.4271, 0.001496:0.5342, 0.001756:0.6638, 0.002049:0.8177, 0.002378:1.0 +;jet_density_on_ff_table = 0.000460:0.2140, 0.000585:0.2721, 0.000737:0.3473, 0.000890:0.4483, 0.001066:0.5505, 0.001267:0.6420, 0.001496:0.7532, 0.001756:0.7786, 0.002049:0.8956, 0.002378:1.0 +jet_density_on_ff_table = 0.000460:0.3522, 0.000585:0.3847, 0.000737:0.4131, 0.000890:0.4695, 0.001066:0.5505, 0.001267:0.6420, 0.001496:0.7532, 0.001756:0.7786, 0.002049:0.8956, 0.002378:1.0 +epr_max = 1.4 +epr_tc = 14 +epr_tuning_constant = 1 +oil_temp_cooling_constant = 0 +oil_temp_heating_constant = 700 +oil_temp_tc = 0.07 +oil_temp_tuning_constant = 1 +oil_press_max = 12384 +oil_press_tc = 0.8 +oil_press_tuning_constant = 1 +fuel_flow_max_itt_factor = 1.5 ; 2.0 +fuel_flow_min_itt_factor = 0.67 ; 0.72 +n1_cooling_factor = 0 ; 0.01 +itt_peak_temperature = 3012 ; 2141 +itt_tc = 2 ; 2 +itt_tuning_constant = 1 +itt_cooling_factor = 0.01 +egt_peak_temperature = 1917 ; 1600 +egt_tc = 2 ; 2 +egt_tuning_constant = 1 +fuel_press_max = 2376 +fuel_press_tc = 2 +fuel_press_tuning_constant = 1 +variable_inlet = 0 +primary_nozzle_available = 0 +primary_nozzle_afterburner_offset = 0.14 +primary_nozzle_n1_mach_to_nozzle_pos = 0.000000:0.000000:2.000000,53.000000:0.660000:0.100000,65.000000:0.690000:0.330000,96.000000:0.700000:0.440000 +;density_on_torque_table = 0.000225:0.100000, 0.000352:0.300000, 0.000480:0.500000, 0.000607:0.700000, 0.000734:0.900000, 0.000862:1.000000, 0.001241:1.000000, 0.001620:1.000000, 0.001999:1.000000, 0.002378:1.000000 +starter_N1_max_pct = 12 ; Pct, percentage of max rpm that reached using only starter. +starter_N1_rate = 12 ; Rate at which the starter N1 increases. +ignition_auto_type = "Starter,Flaps,AntiIce,N2" ; If the Ignition is set to AUTO - specifies how that is handled. 0(default) = Always on, 1 = Ignition follows starter status, 2 = Ignition enabled when Flaps are not neutral, when AntiIce is enabled, or when N1/N2 is below 50%. +min_condition_lever_for_combustion = 0.01 ; % - Minimum position of the Condition lever to obtain a combustion. Default at 0.01. +min_n1_for_combustion = 10 ; % - Minimum N1 required to maintain a combustion +min_n2_for_combustion = 19.4 ; % - Minimum N2 required to maintain a combustion +min_n1_for_starter_cutoff = 200 ; % - Minimum N1 at which the starter is automatically disabled +min_n2_for_starter_cutoff = 50 ; % - Minimum N2 at which the starter is automatically disabled +min_n2_for_apu_bleed_air_cutoff = 200 ; % - Minimum N2 at which the APU Bleed Air is automatically disabled +n2_from_bleed_air_psi_table = 0:0, 4:8, 10:18, 18:25 ; Table which contains the n2 generated depending on the pression from the bleed air from the APU (in psi). +bleed_air_on_n2_tc = 1 ; Time constant which contains the speed at which the bleed air pressure affect the N2 of the turbine. +N1_to_oil_pressure_table = 0:0, 0.21:0.88, 0.9:0.954, 1:1 ; % of max Oil Pressure for % N1. +n1_normal_tc = 0.5 ; Float factor changing N1 acceleration during normal use of the engine +n1_start_max_rate = 1.0 ; Float limiting N1 acceleration during starter use +n1_start_combustion_max_rate = 2.0 ; Float limiting N1 acceleration during startup when cumbustion has started +idle_fuel_flow = 1714 ; 3100 ; pound per hour +low_idle_n1 = 20.2 ; 23.2 +low_idle_n2 = 68 ; 60 +high_n1 = 106.7 ; 106.7 ; 98 ; 106.7 ; 100 ; 98 +high_n2 = 118.0 ; 118.0 ; 102 ; 118.0 ; 100 ; 102 +high_fuel_flow = 20000 ; 8000 +min_n2_for_fuel_flow = 22 +mach_influence_on_n1 = 0 +fuel_flow_max = 25000 ; 10000 +fuel_flow_controller_p = 0.8 ; 0.5 +fuel_flow_controller_i = 0.1 +fuel_flow_controller_d = 0.5 +fuel_flow_controller_iboundary = 5 +fuel_flow_controller_dboundary = 100 +max_torque_protection = 0 ; 0 = no protection, value of the torque triggering a protection by automatically limiting the fuelflow +max_n1_protection = 0 ; 104 ; 0 = no protection, value of the n1 triggering a protection by automatically limiting the fuelflow +max_n2_protection = 0 ; 105 ; 0 = no protection, value of the n2 triggering a protection by automatically limiting the fuelflow +max_egt_protection = 0 ; 2408.67 ; 2000 ; 0 = no protection, value of the egt triggering a protection by automatically limiting the fuelflow + +[JET_ENGINE] +thrust_scalar = 1 ; 0.85 + +[DISABLED_CONTROLS] +DisableFuelValveControls = 0 ; Disable fuel valve controls +DisableMixtureControls = 1 ; Disable mixture controls +DisableParkingBrakeControls = 0 ; Disable parking brake controls +DisablePropellerControls = 1 ; Disable propeller controls + diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg index 279879080..72d0efff4 100644 --- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg +++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg @@ -1,579 +1,631 @@ -[VERSION] -major = 1 -minor = 0 - -[WEIGHT_AND_BALANCE] -max_gross_weight = 987000 ; Empty weight, (LBS) -empty_weight = 485300 ; Empty weight, (LBS) -reference_datum_position = 83.5, 0, 0 ; Position of reference datum relative to FS(0,0,0) (FEET), z, x, y -empty_weight_CG_position = -98, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y -CG_forward_limit = 0.14 ; Gravity center forward limit in %MAX (divided by 100: 0.14 = 14%MAC) -CG_aft_limit = 0.44 ; Gravity center aft limit in %MAX (divided by 100: 0.44 = 44%MAC) -empty_weight_pitch_MOI = 76427903; Empty pitch moment of inertia, Jxx (SLUG SQ FEET) -empty_weight_roll_MOI = 19300696 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET) -empty_weight_yaw_MOI = 89315555 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET) -empty_weight_coupled_MOI = 10000 ; Empty transverse moment of inertia, Jyz (SLUG SQ FEET) -activate_mach_limit_based_on_cg = 0 ; Activate mach limitation depending on CG position (true if > 0 /false othewise). Mostly for Concorde). -activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach value (true if > 0 /false othewise). Mostly for Concorde). -max_number_of_stations =11 -station_load.0 =170, -2.964119, -1.611132, 13.155828, TT:MENU.PAYLOAD.PILOT, 1 -station_load.1 =170, -2.923056, 1.508653, 12.5651, TT:MENU.PAYLOAD.COPILOT, 2 -station_load.2 =5000, -35.400535, -0.000003, 11.415958, TT:MENU.PAYLOAD.BUSINESS_UPPER -station_load.3 =1000, 0.04913, -0.000002, -0.000001, TT:MENU.PAYLOAD.FIRST_CLASS -station_load.4 =5400, -44.383345, -0.000001, -0.000001, TT:MENU.PAYLOAD.BUSINESS_MAIN -station_load.5 =6000, -100.362841, 0.000004, 2.013768, TT:MENU.PAYLOAD.PREMIUM_ECONOMY -station_load.6 =5000, -81.274814, -0, -0, TT:MENU.PAYLOAD.FORWARD_ECONOMY -station_load.7 =36000, -148.319361, 0.000004, 0.000002, TT:MENU.PAYLOAD.REAR_ECONOMY -station_load.8 =8000, -28.56284, -0.000005, -3.566868, TT:MENU.PAYLOAD.FORWARD_BAGGAGE -station_load.9 =8000, -138.077047, -0.000003, -3.834466, TT:MENU.PAYLOAD.REAR_BAGGAGE -station_load.10 =1800, -81.274814, -0, -0, TT:MENU.PAYLOAD.CREW - -[CONTACT_POINTS] -static_pitch = 0.2 ; degrees, pitch when at rest on the ground (+=Up, -=Dn) -static_cg_height = 15.13 ; feet, altitude of CG when at rest on the ground -gear_system_type = 1 ; gear system type (betweeen 0 and 4) 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none, 5 = undefined -tailwheel_lock = 0 ; Is tailwheel lock available TRUE/FALSE -max_number_of_points = 16 ; Number of contact points -gear_locked_on_ground = 1 ; Defines whether or not the landing gear handle is locked to down when the plane is on the ground. -gear_locked_above_speed = 270 ; Defines the speed at which the landing gear handle becomes locked in the up position. (-1 = Disabled) -max_speed_full_steering = 8 ; Defines the speed under which the full angle of steering is available (in feet/second). -max_speed_decreasing_steering = 50 ; Defines the speed above which the angle of steering stops decreasing (in feet/second). -min_available_steering_angle_pct = 0.2 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100). -max_speed_full_steering_castering = 20 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second). -max_speed_decreasing_steering_castering = 40 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels (in feet/second). -min_castering_angle = 0.05236 ; Defines the minimum angle a free castering wheel can take (in radians). -max_castering_angle = 3.14159265358979 ; Defines the maximum angle a free castering wheel can take (in radians). -; NOSE GEAR -point.0 = 1, -5.0, 0.0, -15.7, 720, 0, 2, 60.0, 0.90, 2.0, 0.5, 9, 8, 0, 220, 250, 2 -; OUTBD L BODY GEAR -point.1 = 1, -102.5, -18.0, -16.9, 1500, 1, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 2, 220, 250, 2 -point.2 = 1, -102.5, -16.0, -16.9, 1500, 1, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 2, 220, 250, 2 -; OUTBD R BODY GEAR -point.3 = 1, -102.5, 16.0, -16.9, 1500, 2, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 3, 220, 250, 2 -point.4 = 1, -102.5, 18.0, -16.9, 1500, 2, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 3, 220, 250, 2 -; INBD L BODY GEAR -point.5 = 1, -113.0, -9.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 -point.6 = 1, -113.0, -7.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 -; INBD R BODY GEAR -point.7 = 1, -113.0, 7.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 -point.8 = 1, -113.0, 9.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 -; MISC. PTS -point.9 = 2, -161.5, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1 -point.10 = 2, -161.5, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1 -point.11 = 2, 12, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1 -point.12 = 2, -180, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 -point.13 = 2, -220, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1 -point.14 = 2, -30, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 -point.15 = 2, -150, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 - -[FUEL] -LeftMain = -96, -28, -4, 12546, 0 ; For each tank: Tank position (z longitudinal, x lateral, y vertical) (FEET), total fuel capacity (GALLONS), unusable fuel capacity (GALLONS) -RightMain = -96, 28, -4, 12546, 0 -Center1 = -83.5, 0, -7, 17164, 0 -Center2 = -193.5, 0, 6, 3300, 0 -Center3 = -3.6, 0, 0, 0, 0 -LeftAux = -112, -48, -3, 4482, 0 -LeftTip = -130, -73, 0, 1322, 0 -RightAux = -112, 48, -3, 4482, 0 -RightTip = -130, 73, 0, 1322, 0 -External1 = -3.6, 0, 0, 0, 0 -External2 = -3.6, 0, 0, 0, 0 -fuel_type = 2 ; 1 = OCTANE 100, 2 = JET_A, 3 = OCTANE 80, 4 = AUTO GAS, 5 = JET B -number_of_tank_selectors = 1 ; Max 4 -electric_pump = 1 -engine_driven_pump = 1 -manual_transfer_pump = 0 -manual_pump = 0 -anemometer_pump = 0 -fuel_dump_rate = 0.0167 -default_fuel_tank_selector.1 = 1 ; Default fuel selector used in case of autostart for engine 1, default is ALL. -default_fuel_tank_selector.2 = 1 ; Default fuel selector used in case of autostart for engine 2, default is ALL. -default_fuel_tank_selector.3 = 1 ; Default fuel selector used in case of autostart for engine 3, default is ALL. -default_fuel_tank_selector.4 = 1 ; Default fuel selector used in case of autostart for engine 4, default is ALL. - -[FUEL_SYSTEM] -APU.1 = Name:APU#FuelBurnRate:10 -Engine.1 = Name:LeftTipEngine#Index:1 -Engine.2 = Name:LeftInnerEngine#Index:2 -Engine.3 = Name:RightInnerEngine#Index:3 -Engine.4 = Name:RightTipEngine#Index:4 -Tank.1 = Name:CenterWingTank#Title:TT:MENU.FUEL.CENTER_WING_TANK#Capacity:17000#UnusableCapacity:0#Position:-83.5,0,-7#Priority:1#OutputOnlyLines:CenterTankToCenterPumpFwd,CenterTankToCenterPumpAft#InputOnlyLines:StabTransferValve1ToCenterWingTank,StabTransferValve2ToCenterWingTank -Tank.2 = Name:MainTank1#Title:TT:MENU.FUEL.MAIN_TANK_1#Capacity:5320#UnusableCapacity:0#Position:-112,-48,-3#Priority:3#OutputOnlyLines:MainTank1ToMainTank1PumpFwd,MainTank1ToMainTank1PumpAft#InputOnlyLines:ReserveTank2JunctionToMainTank2 -Tank.3 = Name:MainTank2#Title:TT:MENU.FUEL.MAIN_TANK_2#Capacity:14430#UnusableCapacity:0#Position:-96,-28,-4#Priority:3#OutputOnlyLines:MainTank2ToMainTank2PumpFwd,MainTank2ToMainTank2PumpAft,MainTank2ToMainTank2OvrdPumpFwd,MainTank2ToMainTank2OvrdPumpAft -Tank.4 = Name:MainTank3#Title:TT:MENU.FUEL.MAIN_TANK_3#Capacity:14430#UnusableCapacity:0#Position:-96,28,-4#Priority:3#OutputOnlyLines:MainTank3ToMainTank3PumpFwd,MainTank3ToMainTank3PumpAft,MainTank3ToMainTank3OvrdPumpFwd,MainTank3ToMainTank3OvrdPumpAft -Tank.5 = Name:MainTank4#Title:TT:MENU.FUEL.MAIN_TANK_4#Capacity:5320#UnusableCapacity:0#Position:-112,48,-3#Priority:3#OutputOnlyLines:MainTank4ToMainTank4PumpFwd,MainTank4ToMainTank4PumpAft#InputOnlyLines:ReserveTank3JunctionToMainTank3 -Tank.6 = Name:ReserveTank2#Title:TT:MENU.FUEL.RESERVE_TANK_2#Capacity:1534#UnusableCapacity:0#Position:-130,-73,0#Priority:2#OutputOnlyLines:ReserveTank2ToReservePump1Fwd,ReserveTank2ToReservePump1Aft -Tank.7 = Name:ReserveTank3#Title:TT:MENU.FUEL.RESERVE_TANK_3#Capacity:1534#UnusableCapacity:0#Position:-130,73,0#Priority:2#OutputOnlyLines:ReserveTank3ToReservePumpFwd,ReserveTank3ToReservePumpAft -Tank.8 = Name:StabTank#Title:TT:MENU.FUEL.STAB_TANK#Capacity:3300#UnusableCapacity:0#Position:-193.5,0,6#Priority:0#OutputOnlyLines:StabTankToStabTankPumpFwd,StabTankToStabTankPumpAft -Line.1 = Name:CenterTankToCenterPumpFwd#Source:CenterWingTank#Destination:CenterWingTankPumpFwd -Line.2 = Name:CenterTankToCenterPumpAft#Source:CenterWingTank#Destination:CenterWingTankPumpAft -Line.3 = Name:CenterPumpFwdToCenterLeftJunc#Source:CenterWingTankPumpFwd#Destination:CenterLeftJunction -Line.4 = Name:CenterPumpAftToCenterRightJunc#Source:CenterWingTankPumpAft#Destination:CenterRightJunction -Line.5 = Name:MainTank1ToMainTank1PumpFwd#Source:MainTank1#Destination:MainTank1PumpFwd -Line.6 = Name:MainTank1ToMainTank1PumpAft#Source:MainTank1#Destination:MainTank1PumpAft -Line.7 = Name:MainTank1PumpFwdToMainTank1Junc#Source:MainTank1PumpFwd#Destination:MainTank1Junction -Line.8 = Name:MainTank1PumpAftToMainTank1Junc#Source:MainTank1PumpAft#Destination:MainTank1Junction -Line.9 = Name:MainTank1JuncToEng1Junc#Source:MainTank1Junction#Destination:Eng1Junction -Line.10 = Name:Eng1JuncToEng1Pump#Source:Eng1Junction#Destination:Eng1Pump -Line.11 = Name:LeftTipEngineValveToLeftTipEngine#Source:LeftTipEngineValve#Destination:LeftTipEngine -Line.12 = Name:Eng1JuncToEng1XFeedValve#Source:Eng1Junction#Destination:LeftTipCrossFeedValve -Line.13 = Name:Eng1XFeedValveToLeftSideJunc#Source:LeftTipCrossFeedValve#Destination:LeftSideJunction -Line.14 = Name:MainTank2ToMainTank2PumpFwd#Source:MainTank2#Destination:MainTank2PumpFwd -Line.15 = Name:MainTank2ToMainTank2PumpAft#Source:MainTank2#Destination:MainTank2PumpAft -Line.16 = Name:MainTank2PumpFwdToMainTank2Junc#Source:MainTank2PumpFwd#Destination:MainTank2Junction -Line.17 = Name:MainTank2PumpAftToMainTank2ToAPUJunc#Source:MainTank2PumpAft#Destination:MainTank2ToAPUJunction -Line.18 = Name:MainTank2ToAPUJuncToMainTank2Junc#Source:MainTank2ToAPUJunction#Destination:MainTank2Junction -Line.19 = Name:MainTank2ToAPUJuncToMainTank2AftToAPUJunc#Source:MainTank2ToAPUJunction#Destination:MainTank2AftToAPUJunction -Line.20 = Name:MainTank2ToAPUDCPump#Source:MainTank2#Destination:APUDCPump -Line.21 = Name:APUDCPumpToMainTank2AftToAPUJunction#Source:APUDCPump#Destination:MainTank2AftToAPUJunction -Line.22 = Name:MainTank2AftToAPUValve#Source:MainTank2AftToAPUJunction#Destination:APUValve -Line.23 = Name:APUValveToAPU#Source:APUValve#Destination:APU -Line.24 = Name:MainTank2JuncToEng2Junc#Source:MainTank2Junction#Destination:Eng2Junction -Line.25 = Name:Eng2JuncToEng2Pump#Source:Eng2Junction#Destination:Eng2Pump -Line.26 = Name:LeftInnerEngineValveToLeftInnerEngine#Source:LeftInnerEngineValve#Destination:LeftInnerEngine -Line.27 = Name:Eng2JuncToEng2XFeedValve#Source:Eng2Junction#Destination:LeftInnerCrossFeedValve -Line.28 = Name:Eng2XFeedValveToLeftSideJunc#Source:LeftInnerCrossFeedValve#Destination:LeftSideJunction -Line.29 = Name:LeftSideJuncToCenterLeftJunc#Source:LeftSideJunction#Destination:CenterLeftJunction -Line.30 = Name:MainTank3ToMainTank3PumpFwd#Source:MainTank3#Destination:MainTank3PumpFwd -Line.31 = Name:MainTank3ToMainTank3PumpAft#Source:MainTank3#Destination:MainTank3PumpAft -Line.32 = Name:MainTank3PumpFwdToMainTank3Junc#Source:MainTank3PumpFwd#Destination:MainTank3Junction -Line.33 = Name:MainTank3PumpAftToMainTank3Junc#Source:MainTank3PumpAft#Destination:MainTank3Junction -Line.34 = Name:MainTank3JuncToEng3Junc#Source:MainTank3Junction#Destination:Eng3Junction -Line.35 = Name:Eng3JuncToEng3Pump#Source:Eng3Junction#Destination:Eng3Pump -Line.36 = Name:RightInnerEngineValveToRightInnerEngine#Source:RightInnerEngineValve#Destination:RightInnerEngine -Line.37 = Name:Eng3JuncToEng3XFeedValve#Source:Eng3Junction#Destination:RightInnerCrossFeedValve -Line.38 = Name:Eng3XFeedValveToRightSideJunc#Source:RightInnerCrossFeedValve#Destination:RightSideJunction -Line.39 = Name:RightSideJuncToCenterRightJunc#Source:RightSideJunction#Destination:CenterRightJunction -Line.40 = Name:CenterLeftJuncToCenterRightJunc#Source:CenterLeftJunction#Destination:CenterRightJunction -Line.41 = Name:MainTank4ToMainTank4PumpFwd#Source:MainTank4#Destination:MainTank4PumpFwd -Line.42 = Name:MainTank4ToMainTank4PumpAft#Source:MainTank4#Destination:MainTank4PumpAft -Line.43 = Name:MainTank4PumpFwdToMainTank4Junc#Source:MainTank4PumpFwd#Destination:MainTank4Junction -Line.44 = Name:MainTank4PumpAftToMainTank4Junc#Source:MainTank4PumpAft#Destination:MainTank4Junction -Line.45 = Name:MainTank4JuncToEng4Junc#Source:MainTank4Junction#Destination:Eng4Junction -Line.46 = Name:Eng4JuncToEng4Pump#Source:Eng4Junction#Destination:Eng4Pump -Line.47 = Name:RightTipEngineValveToRightTipEngine#Source:RightTipEngineValve#Destination:RightTipEngine -Line.48 = Name:Eng4JuncToEng4XFeedValve#Source:Eng4Junction#Destination:RightTipCrossFeedValve -Line.49 = Name:Eng4XFeedValveToRightSideJunc#Source:RightTipCrossFeedValve#Destination:RightSideJunction -Line.50 = Name:MainTank2ToMainTank2OvrdPumpFwd#Source:MainTank2#Destination:MainTank2OvrdPumpFwd -Line.51 = Name:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#Source:MainTank2OvrdPumpFwd#Destination:MainTank2OverrideJunction -Line.52 = Name:MainTank2ToMainTank2OvrdPumpAft#Source:MainTank2#Destination:MainTank2OvrdPumpAft -Line.53 = Name:MainTank2OvrdPumpAftToMainTank2OvrdJunc#Source:MainTank2OvrdPumpAft#Destination:MainTank2OverrideJunction -Line.54 = Name:MainTank2OvrdJuncToLeftSideJunc#Source:MainTank2OverrideJunction#Destination:LeftSideJunction -Line.55 = Name:MainTank3ToMainTank3OvrdPumpFwd#Source:MainTank3#Destination:MainTank3OvrdPumpFwd -Line.56 = Name:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#Source:MainTank3OvrdPumpFwd#Destination:MainTank3OverrideJunction -Line.57 = Name:MainTank3ToMainTank3OvrdPumpAft#Source:MainTank3#Destination:MainTank3OvrdPumpAft -Line.58 = Name:MainTank3OvrdPumpAftToMainTank3OvrdJunc#Source:MainTank3OvrdPumpAft#Destination:MainTank3OverrideJunction -Line.59 = Name:MainTank3OvrdJuncToRightSideJunc#Source:MainTank3OverrideJunction#Destination:RightSideJunction -Line.60 = Name:StabTankToStabTankPumpFwd#Source:StabTank#Destination:StabTankPumpFwd -Line.61 = Name:StabTankPumpFwdToStabTankJuncAft#Source:StabTankPumpFwd#Destination:StabTankJunctionAft -Line.62 = Name:StabTankToStabTankPumpAft#Source:StabTank#Destination:StabTankPumpAft -Line.63 = Name:StabTankPumpAftToStabTankJuncAft#Source:StabTankPumpAft#Destination:StabTankJunctionAft -Line.64 = Name:StabTankJuncAftToStabTankJuncMid#Source:StabTankJunctionAft#Destination:StabTankJuncMid -Line.65 = Name:StabTankJuncMidToStabTankValve1#Source:StabTankJuncMid#Destination:StabTankValve1 -Line.66 = Name:StabTankJuncMidToStabTankValve2#Source:StabTankJuncMid#Destination:StabTankValve2 -Line.67 = Name:StabTankValve1ToStabTankJuncFwd#Source:StabTankValve1#Destination:StabTankJuncFwd -Line.68 = Name:StabTankValve2ToStabTankJuncFwd#Source:StabTankValve2#Destination:StabTankJuncFwd -Line.69 = Name:StabTankJuncFwdToCenterWingStabJunc#Source:StabTankJuncFwd#Destination:CenterWingStabJunc -Line.70 = Name:CenterWingStabJuncToCenterWingStabJuncValve1#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve1 -Line.71 = Name:CenterWingStabJuncToCenterWingStabJuncValve2#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve2 -Line.72 = Name:CenterWingStabJuncValve1ToMainJettisonJunc#Source:CenterWingStabJuncValve1#Destination:StabTransferValve1 -Line.73 = Name:CenterWingStabJuncValve2ToMainJettisonJunc#Source:CenterWingStabJuncValve2#Destination:StabTransferValve2 -Line.74 = Name:StabTransferValve1ToCenterWingTank#Source:StabTransferValve1#Destination:CenterWingTank -Line.75 = Name:StabTransferValve2ToCenterWingTank#Source:StabTransferValve2#Destination:CenterWingTank -Line.76 = Name:ReserveTank2ToReservePump1Fwd#Source:ReserveTank2#Destination:ReservePump1Fwd -Line.77 = Name:ReserveTank2ValveFwdToReserveTank2Junction#Source:ReserveTank2ValveFwd#Destination:ReserveTank2Junction -Line.78 = Name:ReserveTank2ToReservePump1Aft#Source:ReserveTank2#Destination:ReservePump1Aft -Line.79 = Name:ReserveTank2ValveAftToReserveTank2Junction#Source:ReserveTank2ValveAft#Destination:ReserveTank2Junction -Line.80 = Name:ReserveTank2JunctionToMainTank2#Source:ReserveTank2Junction#Destination:MainTank1 -Line.81 = Name:ReserveTank3ToReservePump4Fwd#Source:ReserveTank3#Destination:ReservePump4Fwd -Line.82 = Name:ReserveTank3ValveFwdToReserveTank3Junction#Source:ReserveTank3ValveFwd#Destination:ReserveTank3Junction -Line.83 = Name:ReserveTank3ToReservePump4Aft#Source:ReserveTank3#Destination:ReservePump4Aft -Line.84 = Name:ReserveTank3ValveAftToReserveTank3Junction#Source:ReserveTank3ValveAft#Destination:ReserveTank3Junction -Line.85 = Name:ReserveTank3JunctionToMainTank3#Source:ReserveTank3Junction#Destination:MainTank4 -Line.86 = Name:MainTank2OverrideJunctionToMainTank2JettisonValve#Source:MainTank2OverrideJunction#Destination:MainTank2JettisonValve -Line.87 = Name:MainTank2JettisonValveToMainJettisonJunc#Source:MainTank2JettisonValve#Destination:MainJettisonJunction -Line.88 = Name:MainTank2OvrdJuncToCenterLeftAftJettisonValve#Source:MainTank2OverrideJunction#Destination:CenterLeftAftJettisonValve -Line.89 = Name:CenterLeftAftJettisonValveToMainJettisonJunc#Source:CenterLeftAftJettisonValve#Destination:MainJettisonJunction -Line.90 = Name:MainTank3OverrideJunctionToMainTank3JettisonValve#Source:MainTank3OverrideJunction#Destination:MainTank3JettisonValve -Line.91 = Name:MainTank3JettisonValveToMainJettisonJunc#Source:MainTank3JettisonValve#Destination:MainJettisonJunction -Line.92 = Name:MainTank3OvrdJuncToCenterRightAftJettisonValve#Source:MainTank3OverrideJunction#Destination:CenterRightAftJettisonValve -Line.93 = Name:CenterRightAftJettisonValveToMainJettisonJunc#Source:CenterRightAftJettisonValve#Destination:MainJettisonJunction -Line.94 = Name:MainJettisonJuncToJettisonNozzleValve1#Source:MainJettisonJunction#Destination:JettisonNozzleValve1 -Line.95 = Name:MainJettisonJuncToJettisonNozzleValve2#Source:MainJettisonJunction#Destination:JettisonNozzleValve2 -Line.96 = Name:MainTank1ToLeftTanksTransferValve#Source:MainTank1#Destination:LeftTanksTransferValve#GravityBasedFuelFlow:100 -Line.97 = Name:LeftTanksTransferValveToMainTank2#Source:LeftTanksTransferValve#Destination:MainTank2#GravityBasedFuelFlow:100 -Line.98 = Name:MainTank4ToRightTanksTransferValve#Source:MainTank4#Destination:RightTanksTransferValve#GravityBasedFuelFlow:100 -Line.99 = Name:RightTanksTransferValveToMainTank3#Source:RightTanksTransferValve#Destination:MainTank3#GravityBasedFuelFlow:100 -Line.100 = Name:Eng1PumpToEng1Valve#Source:Eng1Pump#Destination:LeftTipEngineValve -Line.101 = Name:Eng2PumpToEng2Valve#Source:Eng2Pump#Destination:LeftInnerEngineValve -Line.102 = Name:Eng3PumpToEng3Valve#Source:Eng3Pump#Destination:RightInnerEngineValve -Line.103 = Name:Eng4PumpToEng4Valve#Source:Eng4Pump#Destination:RightTipEngineValve -Line.104 = Name:ReservePump1FwdToReserveTank2ValveFwd#Source:ReservePump1Fwd#Destination:ReserveTank2ValveFwd -Line.105 = Name:ReservePump1AftToReserveTank2ValveAft#Source:ReservePump1Aft#Destination:ReserveTank2ValveAft -Line.106 = Name:ReservePump4FwdToReserveTank3ValveFwd#Source:ReservePump4Fwd#Destination:ReserveTank3ValveFwd -Line.107 = Name:ReservePump4AftToReserveTank3ValveAft#Source:ReservePump4Aft#Destination:ReserveTank3ValveAft -Junction.1 = Name:MainTank1Junction#InputOnlyLines:MainTank1PumpFwdToMainTank1Junc,MainTank1PumpAftToMainTank1Junc#OutputOnlyLines:MainTank1JuncToEng1Junc -Junction.2 = Name:Eng1Junction#InputOnlyLines:MainTank1JuncToEng1Junc#OutputOnlyLines:Eng1JuncToEng1Pump -Junction.3 = Name:MainTank2Junction#InputOnlyLines:MainTank2PumpFwdToMainTank2Junc,MainTank2PumpAftToMainTank2Junc#OutputOnlyLines:MainTank2JuncToEng2Junc -Junction.4 = Name:Eng2Junction#InputOnlyLines:MainTank2JuncToEng2Junc#OutputOnlyLines:Eng2JuncToEng2Pump -Junction.5 = Name:MainTank3Junction#InputOnlyLines:MainTank3PumpFwdToMainTank3Junc,MainTank3PumpAftToMainTank3Junc#OutputOnlyLines:MainTank3JuncToEng3Junc -Junction.6 = Name:Eng3Junction#InputOnlyLines:MainTank3JuncToEng3Junc#OutputOnlyLines:Eng3JuncToEng3Pump -Junction.7 = Name:MainTank4Junction#InputOnlyLines:MainTank4PumpFwdToMainTank4Junc,MainTank4PumpAftToMainTank4Junc#OutputOnlyLines:MainTank4JuncToEng4Junc -Junction.8 = Name:Eng4Junction#InputOnlyLines:MainTank4JuncToEng4Junc#OutputOnlyLines:Eng4JuncToEng4Pump -Junction.9 = Name:MainTank2OverrideJunction#InputOnlyLines:MainTank2OvrdPumpFwdToMainTank2OvrdJunc,MainTank2OvrdPumpAftToMainTank2OvrdJunc#OutputOnlyLines:MainTank2OvrdJuncToCenterLeftAftJettisonValve -Junction.10 = Name:MainTank3OverrideJunction#InputOnlyLines:MainTank3OvrdPumpFwdToMainTank3OvrdJunc,MainTank3OvrdPumpAftToMainTank3OvrdJunc#OutputOnlyLines:MainTank3OvrdJuncToCenterRightAftJettisonValve -Junction.11 = Name:LeftSideJunction#InputOnlyLines:MainTank2OvrdJuncToLeftSideJunc -Junction.12 = Name:RightSideJunction#InputOnlyLines:MainTank3OvrdJuncToRightSideJunc -Junction.13 = Name:CenterLeftJunction#InputOnlyLines:CenterPumpFwdToCenterLeftJunc -Junction.14 = Name:CenterRightJunction#InputOnlyLines:CenterPumpAftToCenterRightJunc -Junction.15 = Name:MainTank2ToAPUJunction#OutputOnlyLines:MainTank2ToAPUJuncToMainTank2Junc,MainTank2ToAPUJuncToMainTank2AftToAPUJunc -Junction.16 = Name:MainTank2AftToAPUJunction#InputOnlyLines:MainTank2ToAPUJuncToMainTank2AftToAPUJunc,APUDCPumpToMainTank2AftToAPUJunction -Junction.17 = Name:ReserveTank2Junction#OutputOnlyLines:ReserveTank2JunctionToMainTank2 -Junction.18 = Name:ReserveTank3Junction#OutputOnlyLines:ReserveTank3JunctionToMainTank3 -Junction.19 = Name:StabTankJunctionAft#InputOnlyLines:StabTankPumpAftToStabTankJuncFwd,StabTankPumpAftToStabTankJuncAft -Junction.20 = Name:StabTankJuncMid -Junction.21 = Name:StabTankJuncFwd -Junction.22 = Name:CenterWingStabJunc -Junction.23 = Name:MainJettisonJunction -Valve.1 = Name:LeftTipCrossFeedValve#Circuit:1 -Valve.2 = Name:LeftInnerCrossFeedValve#Circuit:2 -Valve.3 = Name:RightInnerCrossFeedValve#Circuit:3 -Valve.4 = Name:RightTipCrossFeedValve#Circuit:4 -Valve.5 = Name:LeftTipEngineValve#Circuit:5 -Valve.6 = Name:LeftInnerEngineValve#Circuit:6 -Valve.7 = Name:RightInnerEngineValve#Circuit:7 -Valve.8 = Name:RightTipEngineValve#Circuit:8 -Valve.9 = Name:APUValve#Circuit:9 -Valve.10 = Name:ReserveTank2ValveFwd#Circuit:10 -Valve.11 = Name:ReserveTank2ValveAft#Circuit:11 -Valve.12 = Name:ReserveTank3ValveFwd#Circuit:12 -Valve.13 = Name:ReserveTank3ValveAft#Circuit:13 -Valve.14 = Name:StabTankValve1#Circuit:14 -Valve.15 = Name:StabTankValve2#Circuit:15 -Valve.16 = Name:CenterWingStabJuncValve1#Circuit:16 -Valve.17 = Name:CenterWingStabJuncValve2#Circuit:17 -Valve.18 = Name:StabTransferValve1#Circuit:18 -Valve.19 = Name:StabTransferValve2#Circuit:19 -Valve.20 = Name:MainTank2JettisonValve#Circuit:20 -Valve.21 = Name:CenterLeftAftJettisonValve#Circuit:21 -Valve.22 = Name:MainTank3JettisonValve#Circuit:22 -Valve.23 = Name:CenterRightAftJettisonValve#Circuit:23 -Valve.24 = Name:JettisonNozzleValve1#Circuit:24 -Valve.25 = Name:JettisonNozzleValve2#Circuit:25 -Valve.26 = Name:LeftTanksTransferValve#Circuit:26 -Valve.27 = Name:RightTanksTransferValve#Circuit:27 -Pump.1 = Name:CenterWingTankPumpFwd#Pressure:45#DestinationLine:CenterPumpFwdToCenterLeftJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:13 -Pump.2 = Name:CenterWingTankPumpAft#Pressure:45#DestinationLine:CenterPumpAftToCenterRightJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:14 -Pump.3 = Name:MainTank1PumpFwd#Pressure:20#DestinationLine:MainTank1PumpFwdToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:1 -Pump.4 = Name:MainTank1PumpAft#Pressure:20#DestinationLine:MainTank1PumpAftToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:2 -Pump.5 = Name:MainTank2PumpFwd#Pressure:20#DestinationLine:MainTank2PumpFwdToMainTank2Junc#TankFuelRequired:MainTank2#Type:Electric#Index:3 -Pump.6 = Name:MainTank2PumpAft#Pressure:20#DestinationLine:MainTank2PumpAftToMainTank2ToAPUJunc#TankFuelRequired:MainTank2#Type:Electric#Index:4 -Pump.7 = Name:MainTank2OvrdPumpFwd#Pressure:35#DestinationLine:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:5 -Pump.8 = Name:MainTank2OvrdPumpAft#Pressure:35#DestinationLine:MainTank2OvrdPumpAftToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:6 -Pump.9 = Name:MainTank3PumpFwd#Pressure:20#DestinationLine:MainTank3PumpFwdToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:7 -Pump.10 = Name:MainTank3PumpAft#Pressure:20#DestinationLine:MainTank3PumpAftToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:8 -Pump.11 = Name:MainTank3OvrdPumpFwd#Pressure:35#DestinationLine:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:9 -Pump.12 = Name:MainTank3OvrdPumpAft#Pressure:35#DestinationLine:MainTank3OvrdPumpAftToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:10 -Pump.13 = Name:MainTank4PumpFwd#Pressure:20#DestinationLine:MainTank4PumpFwdToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:11 -Pump.14 = Name:MainTank4PumpAft#Pressure:20#DestinationLine:MainTank4PumpAftToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:12 -Pump.15 = Name:StabTankPumpFwd#Pressure:10#DestinationLine:StabTankPumpFwdToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:15 -Pump.16 = Name:StabTankPumpAft#Pressure:10#DestinationLine:StabTankPumpAftToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:16 -Pump.17 = Name:APUDCPump#Pressure:10#DestinationLine:APUDCPumpToMainTank2AftToAPUJunction#TankFuelRequired:MainTank2#Type:Electric#Index:17 -Pump.18 = Name:Eng1Pump#Pressure:10#DestinationLine:Eng1PumpToEng1Valve#Type:EngineDriven#Index:1 -Pump.19 = Name:Eng2Pump#Pressure:10#DestinationLine:Eng2PumpToEng2Valve#Type:EngineDriven#Index:2 -Pump.20 = Name:Eng3Pump#Pressure:10#DestinationLine:Eng3PumpToEng3Valve#Type:EngineDriven#Index:3 -Pump.21 = Name:Eng4Pump#Pressure:10#DestinationLine:Eng4PumpToEng4Valve#Type:EngineDriven#Index:4 -Pump.22 = Name:ReservePump1Fwd#Pressure:10#DestinationLine:ReservePump1FwdToReserveTank2ValveFwd#Type:EngineDriven#Index:1 -Pump.23 = Name:ReservePump1Aft#Pressure:10#DestinationLine:ReservePump1AftToReserveTank2ValveAft#Type:EngineDriven#Index:2 -Pump.24 = Name:ReservePump4Fwd#Pressure:10#DestinationLine:ReservePump4FwdToReserveTank3ValveFwd#Type:EngineDriven#Index:3 -Pump.25 = Name:ReservePump4Aft#Pressure:10#DestinationLine:ReservePump4AftToReserveTank3ValveAft#Type:EngineDriven#Index:4 -Trigger.1 = Condition:Autostart_Enabled#EffectTrue:OpenValve.LeftTipEngineValve,OpenValve.LeftInnerEngineValve,OpenValve.RightInnerEngineValve,OpenValve.RightTipEngineValve,OpenValve.LeftTipCrossFeedValve,OpenValve.LeftInnerCrossFeedValve,OpenValve.RightInnerCrossFeedValve,OpenValve.RightTipCrossFeedValve,StartPump.CenterWingTankPumpFwd,StartPump.CenterWingTankPumpAft,StartPump.MainTank1PumpFwd,StartPump.MainTank1PumpAft,StartPump.MainTank2PumpFwd,StartPump.MainTank2PumpAft,StartPump.MainTank3PumpFwd,StartPump.MainTank3PumpAft,StartPump.MainTank4PumpFwd,StartPump.MainTank4PumpAft,StartPump.MainTank2OvrdPumpFwd,StartPump.MainTank2OvrdPumpAft,StartPump.MainTank3OvrdPumpFwd,StartPump.MainTank3OvrdPumpAft,StartPump.StabTankPumpFwd,StartPump.StabTankPumpAft,StartPump.Eng1Pump,StartPump.Eng2Pump,StartPump.Eng3Pump,StartPump.Eng4Pump -Trigger.2 = Condition:Autoshutdown_Enabled#EffectTrue:CloseValve.LeftTipEngineValve,CloseValve.LeftInnerEngineValve,CloseValve.RightInnerEngineValve,CloseValve.RightTipEngineValve,CloseValve.LeftTipCrossFeedValve,CloseValve.LeftInnerCrossFeedValve,CloseValve.RightInnerCrossFeedValve,CloseValve.RightTipCrossFeedValve,StopPump.CenterWingTankPumpFwd,StopPump.CenterWingTankPumpAft,StopPump.MainTank1PumpFwd,StopPump.MainTank1PumpAft,StopPump.MainTank2PumpFwd,StopPump.MainTank2PumpAft,StopPump.MainTank3PumpFwd,StopPump.MainTank3PumpAft,StopPump.MainTank4PumpFwd,StopPump.MainTank4PumpAft,StopPump.MainTank2OvrdPumpFwd,StopPump.MainTank2OvrdPumpAft,StopPump.MainTank3OvrdPumpFwd,StopPump.MainTank3OvrdPumpAft,StopPump.StabTankPumpFwd,StopPump.StabTankPumpAft -Trigger.3 = Target:CenterWingTank#Threshold:11940#Condition:TankQuantityBelow#EffectTrue:OpenValve.StabTankValve1,OpenValve.StabTankValve2,OpenValve.CenterWingStabJuncValve1,OpenValve.CenterWingStabJuncValve2,OpenValve.StabTransferValve1,OpenValve.StabTransferValve2 -Trigger.4 = Target:StabTank#Threshold:1#Condition:TankQuantityBelow#EffectTrue:CloseValve.StabTankValve1,CloseValve.StabTankValve2,CloseValve.CenterWingStabJuncValve1,CloseValve.CenterWingStabJuncValve2,CloseValve.StabTransferValve1,CloseValve.StabTransferValve2 -Trigger.5 = Target:MainTank1#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank2ValveFwd,OpenValve.ReserveTank2ValveAft,StartPump.ReservePump1Fwd,StartPump.ReservePump1Aft -Trigger.6 = Target:MainTank4#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank3ValveFwd,OpenValve.ReserveTank3ValveAft,StartPump.ReservePump4Fwd,StartPump.ReservePump4Aft -Trigger.7 = Target:ReserveTank2#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump1Fwd,StopPump.ReservePump1Aft,CloseValve.ReserveTank2ValveFwd,CloseValve.ReserveTank2ValveAft -Trigger.8 = Target:ReserveTank3#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump4Fwd,StopPump.ReservePump4Aft,CloseValve.ReserveTank3ValveFwd,CloseValve.ReserveTank3ValveAft - -[AIRPLANE_GEOMETRY] -wing_area = 5960 ; Wing area S (SQUARE FEET) -wing_span = 224.57 ; Wing span b (FEET) -wing_root_chord = 55; Wing root chord croot (FEET) -wing_camber = 1 ; (DEGREES) -wing_thickness_ratio = 0.02 ; Local thickness is local_chord(x)*wing_thickness_ratio, x = lateral coord -wing_dihedral = 7 ; Dihedral angle Lambda (DEGREES) -wing_incidence = 2 ; Wing incidence (DEGREES) -wing_twist = -5 ; Wing twist epsilon (DEGREES) -oswald_efficiency_factor = 0.75 ; Wing Oswald efficiency factor e (non dimensional) -wing_winglets_flag = 0 ; Has winglets true/false -wing_sweep = 41.0 ; Wing sweep (DEGREES) -wing_pos_apex_lon = -80 ; Longitudinal (z) position of wing apex w.r.t reference datum (FEET) -wing_pos_apex_vert = -4 ; Vertical (y) position of wing apex w.r.t reference datum (FEET) -htail_area = 800 ; Horizontal tail area (SQUARE FEET) -htail_span = 70 ; Horizontal tail span (FEET) -htail_pos_lon = -207 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET) -htail_pos_vert = 11 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET) -htail_incidence = 0 ; Horizontal tail incidence (DEGREES) -htail_sweep = 45 ; Horizontal tail sweep angle (DEGREES) -htail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*htail_thickness_ratio, x = lateral coord -vtail_area = 800 ; Vertical tail area (SQUARE FEET) -vtail_span = 35 ; Vertical tail span (FEET) -vtail_sweep = 45 ; Vertical tail sweep angle (DEGREES) -vtail_pos_lon = -192 ; Longitudinal (z) position of vertical tail w.r.t reference datum (FEET) -vtail_pos_vert = 29 ; Vertical (y) position of vertical tail w.r.t reference datum (FEET) -vtail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*vtail_thickness_ratio, x = lateral coord -fuselage_length = 240 ; Nose to tail (FEET) -fuselage_diameter = 25.56 -fuselage_center_pos = -88.0, 0, 5 -elevator_area = 700 ; Elevator area (SQUARE FEET) -aileron_area = 210 ; Elevator area (SQUARE FEET) -rudder_area = 550 ; Elevator area (SQUARE FEET) -elevator_up_limit = 25 ; Elevator max deflection up angle (DEGREES) -elevator_down_limit = 20 ; Elevator max deflection down angle (absolute value) (DEGREES) -aileron_up_limit = 25 ; Aileron max deflection angle (DEGREES) -aileron_down_limit = 15 ; Aileron max deflection down angle (absolute value) (DEGREES) -rudder_limit = 35 ; Rudder max deflection angle (absolute value) (DEGREES) -rudder_trim_limit = 10 ; Rudder trim max deflection angle (absolute value) (DEGREES) -elevator_trim_limit = 15 ; Elevator trim max angle (absolute value) (DEGREES) -spoiler_limit = 45 ; Spoiler max deflection angle (absolute value) (DEGREES) -spoilerons_available = 1 ; Aircraft has spoilerons true/false -aileron_to_spoileron_gain = 3 ; Aileron influence on spoileron angle (non-dimensional) -min_ailerons_for_spoilerons = 10 ; Minimum aileron deflection (absolute value) in which spoilerons are active (DEGREES) -min_flaps_for_spoilerons = 0 ; Minimum flaps deflection (absolute value) in which spoilerons are active (DEGREES) -spoiler_extension_time = 2 ; Spoilers extension time (SECONDS) -spoiler_handle_available = 1 ; Spoiler handles available true/false -auto_spoiler_available = 1 ; Auto spoilers available true/false -auto_spoiler_min_speed = 80 ; Auto spoilers minimum trigger speed -auto_spoiler_auto_retracts = 1 -positive_g_limit_flaps_up = 4 ; Flap positive load limit when up. Same dimension as gravity vector FEET/SECONDS^2 -positive_g_limit_flaps_down = 3 ; Flap positive load limit when down. Same dimension as gravity vector FEET/SECONDS^2 -negative_g_limit_flaps_up = -3 ; Flap negative load limit when up. Same dimension as gravity vector FEET/SECONDS^2 -negative_g_limit_flaps_down = -2 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2 -load_safety_factor = 1.5 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2 -elevator_trim_neutral = 0 ; Elevator trim max angle (absolute value) (DEGREES), for indicators only (no influence on flight model) -aileron_to_rudder_scale = 0 ; non-dimensional -flap_to_aileron_scale = 0 ; non-dimensional -fly_by_wire = 0 ; Fly-by-wire available true/false -aileron_span_outboard = 0.7 -elevator_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 -aileron_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 -rudder_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 -elevator_trim_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 -controls_reactivity_scalar = 0.5 - -[AERODYNAMICS] -lift_coef_pitch_rate = -109.70206 ; The change in lift per change in pitch rate -lift_coef_daoa = 0.0 -lift_coef_delta_elevator = -1.80648 ; The change in lift per change in elevator deflection -lift_coef_horizontal_incidence = 0.0 -lift_coef_flaps = 1.11620 -lift_coef_spoilers = -0.20000 -drag_coef_zero_lift = 0.02300 -drag_coef_flaps = 0.11860 -drag_coef_gear = 0.01000 -drag_coef_spoilers = 0.10000 -side_force_slip_angle = -2.96232 ; (yaw angle) The change in side force per change in side slip angle -side_force_roll_rate = 2.35547 ; (roll velocity) The change in side force per change in roll rate -side_force_yaw_rate = 31.35555 ; (yaw velocity) The change in side force per change in yaw rate -side_force_delta_rudder = -3.04370 ; The change in side force per change in rudder deflection -pitch_moment_horizontal_incidence = 0.0 -pitch_moment_delta_elevator = -7.30733 ; The change in pitch moment per change in elevator deflection -pitch_moment_delta_trim = -7.30733 ; The change in pitch moment per change in trim -pitch_moment_pitch_damping = -877.85809 ; The change in pitch moment per change in pitch rate(PRIMARY PITCH STABILITY FACTOR). deg/s -pitch_moment_aoa_0 = -0.06566 ; Pitch moment at zero angle - of - attack -pitch_moment_daoa = 0.0 -pitch_moment_flaps = 0.15282 ; The pitch moment due to flaps -pitch_moment_gear = 0.00395 ; The pitch moment due to gear -pitch_moment_spoilers = -0.08202 ; The pitch moment due to spoilers -pitch_moment_delta_elevator_propwash = -1.82683 -pitch_moment_pitch_propwash = 0.0 -roll_moment_slip_angle = 0.39912 ; The change in roll moment per sideslip angle(DIHEDRAL EFFECT) -roll_moment_roll_damping = -1.50166 -roll_moment_yaw_rate = -3.51870 -roll_moment_spoilers = 0.0 -roll_moment_delta_aileron = -0.30568 ; (control)The change in roll moment per change in aileron deflection -roll_moment_delta_rudder = 0.25999 ; (control)The change in roll moment per change rudder deflection -roll_moment_delta_aileron_trim_scalar = -0.30568 ; Change in roll moment due to aileron trim -yaw_moment_slip_angle = 1.30053 ; The change in yaw moment per change sideslip angle(WEATHER VANING EFFECT) -yaw_moment_roll = 0.53921 ; (adverse yaw) The change in yaw moment per change in roll rate deg/s -yaw_moment_yaw_damping = -38.36003 ; (damping)The change in yaw moment per change in yaw rate(PRIMARY YAW STABILITY FACTOR deg/s) -yaw_moment_yaw_propwash = 0.0 -yaw_moment_delta_aileron = -0.01319 ; (adverse yaw) The change in yaw moment per change aileron deflection -yaw_moment_delta_rudder = 0.95632 ; (control)The change in yaw moment per change in rudder deflection PRIMARY YAW POWER FACTOR -yaw_moment_delta_rudder_propwash = 0.23908 ; (control) -yaw_moment_delta_rudder_trim_scalar = 0.95632 ; Change in yaw moment due to rudder trim -compute_aero_center = 0 -aero_center_lift = -14.00000 -lift_coef_aoa_table = -3.15:0, -0.8:-1.154, -0.4:-0.928, -0.2:-0.781, -0.1:-0.372, 0:0.250, 0.20:1.215, 0.23:1.293, 0.26:1.314, 0.29:1.117, 0.31:1.049, 0.4:0.941, 0.8:1.183, 3.15:0 -lift_coef_ground_effect_mach_table = 0.054:1.05 -lift_coef_mach_table = 0:1 -lift_coef_delta_elevator_mach_table = 0:0 -lift_coef_daoa_mach_table = 0:0 -lift_coef_pitch_rate_mach_table = 0:0 -lift_coef_horizontal_incidence_mach_table = 0:0 -drag_coef_zero_lift_mach_tab = 0:0.000, 0.5:0.000, 0.55:0.000, 0.6:0.000, 0.65:0.000, 0.7:0.000, 0.75:0.000, 0.8:0.000, 0.85:0.000, 0.9:0.000, 0.95:0.100, 1.0:1.000, 1.1:0.532, 1.5:0.046 -side_force_slip_angle_mach_table = 0:0 -side_force_delta_rudder_mach_table = 0:0 -side_force_yaw_rate_mach_table = 0:0 -side_force_roll_rate_mach_table = 0:0 -pitch_moment_aoa_table = -3.15:0, -0.8:-1.767, -0.4:-0.918, -0.2:-0.833, -0.1:-0.555, 0:0, 0.20:0.964, 0.23:1.003, 0.26:1.024, 0.29:1.116, 0.31:1.080, 0.4:1.046, 0.8:1.745, 3.15:0 -pitch_moment_delta_elevator_aoa_table = -180:-1, -40:0.154, -20:0.528, -14:0.912, -7:0.887, 0:1, 7:0.873, 14:0.955, 20:0.592, 40:0.147, 180:-1 ; AoA(alpha) is given in DEGREES -pitch_moment_horizontal_incidence_aoa_table = 0:1 -pitch_moment_daoa_aoa_table = 0:1 -pitch_moment_pitch_alpha_table = 0:1 -pitch_moment_delta_elevator_mach_table = 0:0 -pitch_moment_daoa_mach_table = 0:0 -pitch_moment_pitch_rate_mach_table = 0:0 -pitch_moment_horizontal_incidence_mach_table = 0:0 -pitch_moment_aoa_0_mach_table = 0:0 -roll_moment_aoa_table = 0:0 -roll_moment_slip_angle_aoa_table = 0:1 -roll_moment_roll_rate_aoa_table = 0:1 -roll_moment_delta_aileron_aoa_table = 0:1 -roll_moment_slip_angle_mach_table = 0:0 -roll_moment_delta_rudder_mach_table = 0:0 -roll_moment_delta_aileron_mach_table = 0:0 -roll_moment_yaw_rate_mach_table = 0:0 -roll_moment_roll_rate_mach_table = 0:0 -yaw_moment_aoa_table = 0:0 -yaw_moment_slip_angle_aoa_table = 0:1 -yaw_moment_yaw_rate_aoa_table = 0:1 -yaw_moment_delta_rudder_aoa_table = 0:1 -yaw_moment_slip_angle_mach_table = 0:0 -yaw_moment_delta_rudder_mach_table = 0:0 -yaw_moment_delta_aileron_mach_table = 0:0 -yaw_moment_yaw_rate_mach_table = 0:0 -yaw_moment_roll_rate_mach_table = 0:0 -elevator_scaling_table = 0:1 -aileron_scaling_table = 0:1 -rudder_scaling_table = 0:1 -aileron_load_factor_effectiveness_table = 0:1 -lift_coef_at_drag_zero = 0.10000 -lift_coef_at_drag_zero_flaps = 0.10000 - -[FLIGHT_TUNING] -modern_fm_only = 1 -cruise_lift_scalar = 1 -parasite_drag_scalar = 1 -induced_drag_scalar = 1 -flap_induced_drag_scalar = 1 -elevator_effectiveness = 0.75 -elevator_maxangle_scalar = 0.66 -aileron_effectiveness = 1.0 -rudder_effectiveness = 0.66 -rudder_maxangle_scalar = 0.5 -pitch_stability = 0.1 -roll_stability = 0.1 -yaw_stability = 0.1 -pitch_gyro_stability = 1 -roll_gyro_stability = 1 -yaw_gyro_stability = 1 -elevator_trim_effectiveness = 1 -aileron_trim_effectiveness = 1 -rudder_trim_effectiveness = 1 -hi_alpha_on_roll = 0 -hi_alpha_on_yaw = 0 -p_factor_on_yaw = 0 -torque_on_roll = 0 -gyro_precession_on_roll = 0 -gyro_precession_on_yaw = 0 -engine_wash_on_roll = 0 ; Torque effect -wingflex_scalar = 1.3 -wingflex_offset = 0.425 -stall_coef_at_min_weight = 0.72 - -[REFERENCE SPEEDS] -full_flaps_stall_speed = 130 ; Knots True (KTAS) -flaps_up_stall_speed = 205 ; Knots True (KTAS) -cruise_speed = 493 ; Knots True (KTAS) -cruise_mach = 0.90 -crossover_speed = 310 ; Knots Indicated (KIAS) -max_mach = 0.92 -max_indicated_speed = 450 ; Red line (KIAS) -max_flaps_extended = 274.030126 -normal_operating_speed = 360 -airspeed_indicator_max = 562.5 -rotation_speed_min = 140 ; Min speed required (Kts) -climb_speed = 250 ; Climb speed (Kts) -cruise_alt = 36000 ; (ft) -takeoff_speed = 155 ; Takeoff Speed (Kts) -spawn_cruise_altitude = 5000 ; Spawn Cruise Altitude (ft) -spawn_descent_altitude = 500 ; Spawn Descent Altitude (ft) -best_angle_climb_speed = 267 ; Best angle climb speed (Kts) -approach_speed = 195 ; Approach speed (Kts) -best_glide = 267 ; Best Glide (Kts) -max_gear_extended = 280 ; (Kts) -fly_assistant_use_dynamic_speeds = 1 ; 0 to display only POH values, 1 to display an estimated value with current flaps / weight - -[INTERACTIVE POINTS] -number_of_interactive_points = 17 -interactive_point.0 = 0.4, 150, -9.6, 1.3, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0 -interactive_point.1 = 0.4, -177.2, 7.4, 1.3, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0 -interactive_point.2 = 0.4, -32.2, -8.1, 11.2, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 -interactive_point.3 = 0.4, -32.2, 8.1, 11.2, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 -interactive_point.4 = 0.4, -57, -10.3, 1.3, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 -interactive_point.5 = 0.4, -56, 10.3, 1.3, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 -interactive_point.6 = 0.4, -94.6, -11, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 -interactive_point.7 = 0.4, -93.4, 11, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 -interactive_point.8 = 0.4, -132, -10, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 -interactive_point.9 = 0.4, -131, 10, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 -interactive_point.10 = 0.4, -15, -9.2, 1.3, 0, 0, 0, -85, 25, 4, 35, 1.5, 0, 0 -interactive_point.11 = 0.4, -15, 9.2, 1.3, 0, 0, 0, 85, 35, 1.5, 25, 4, 0, 0 -interactive_point.12 = 0.4, -26.3, 7, -5.4, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0 -interactive_point.13 = 0.4, -145, 6.4, -6, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0 -interactive_point.14 = 0.4, -87.98, -58.25, -12.6, 3, 0, 0, -45, 0, 0, 0, 0, 0, 0 -interactive_point.15 = 0, 1.9, 10.8, -10.5, 4, 0, 0, 45, 0, 0, 0, 0, 0, 0 -interactive_point.16 = 0, -96, 0, -8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0 - -[STALL PROTECTION] -stall_protection = 1 ; Stick Shaker -off_limit = 11.5 ; Stick Shaker Min -on_limit = 14.5 ; Stick Shaker Max - -;===================== FLAPS ===================== - -[FLAPS.0] -type = 1 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge -system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none -system_type_index = 120 -span-outboard = 0.55 ; Outboard span area (added area) (percentage, non dimensional) -extending-time = 55 ; Flap extension time (SECONDS) -damaging-speed = 285 ; Speed above which flap is damaged (Kts) -blowout-speed = 350 ; Speed above which flap is blown out (Kts) -maneuvering_flaps = 0 -lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned) -drag_scalar = 1.0 ; Scalar coefficient to ponderate global flap drag coef (non dimensioned) -pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned) -max_on_ground_position = 6 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found. -flaps-sequence-increasing = 1 -flaps-position.0 = 0, -1, 0 -flaps-position.1 = 0, 285, 0.1 -flaps-position.2 = 5, 265, 0.2 -flaps-position.3 = 10, 245, 0.4 -flaps-position.4 = 20, 235, 0.6 -flaps-position.5 = 25, 210, 0.8 -flaps-position.6 = 30, 185, 1 - -[FLAPS.1] -type = 2 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge -system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none -system_type_index = 119 -span-outboard = 0.8 ; Outboard span area (added area) (percentage, non dimensional) -extending-time = 8 ; Flap extension time (SECONDS) -damaging-speed = 285 ; Speed above which flap is damaged (Kts) -blowout-speed = 350 ; Speed above which flap is blown out (Kts) -maneuvering_flaps = 0 -lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned) -drag_scalar = 1.0; Scalar coefficient to ponderate global flap drag coef (non dimensioned) -pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned) -max_on_ground_position = 1 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found. -flaps-sequence-decreasing = 0 -flaps-position.0 = 0, -1, 0 -flaps-position.1 = 21, 285, 0.1 -flaps-position.2 = 21, 265, 0.2 -flaps-position.3 = 21, 245, 0.4 -flaps-position.4 = 21, 235, 0.6 -flaps-position.5 = 21, 215, 0.8 -flaps-position.6 = 21, 185, 1.0 - + +[VERSION] +major = 1 +minor = 0 + +[WEIGHT_AND_BALANCE] +max_gross_weight = 992080.2 ; 987000 ; Empty weight, (LBS) +empty_weight = 440924.5 ; 992080.2 ; 881849 ; 771617.9 ; 661386.8 ; 551155.7 ; 440924.5 ; 485300 ; Empty weight, (LBS) +reference_datum_position = 106.64, 0, 0 ; 83.5, 0, 0 ; Position of reference datum relative to FS(0,0,0) (FEET), z, x, y +empty_weight_CG_position = -117.68357, 0, 0 ; -123.64, 0, 0 ; -120.64, 0, 0 ; -98, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y +CG_forward_limit = 0.11 ; 0.14 ; Gravity center forward limit in %MAX (divided by 100: 0.14 = 14%MAC) +CG_aft_limit = 0.33 ; 0.44 ; Gravity center aft limit in %MAX (divided by 100: 0.44 = 44%MAC) +empty_weight_pitch_MOI = 76427903; Empty pitch moment of inertia, Jxx (SLUG SQ FEET) +empty_weight_roll_MOI = 19300696 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET) +empty_weight_yaw_MOI = 89315555 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET) +empty_weight_coupled_MOI = 10000 ; Empty transverse moment of inertia, Jyz (SLUG SQ FEET) +activate_mach_limit_based_on_cg = 0 ; Activate mach limitation depending on CG position (true if > 0 /false othewise). Mostly for Concorde). +activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach value (true if > 0 /false othewise). Mostly for Concorde). +max_number_of_stations =11 +station_load.0 =170, -26.5, -1.5, 13, TT:MENU.PAYLOAD.PILOT, 1 ; station_load.0 =170, -2.964119, -1.611132, 13.155828, TT:MENU.PAYLOAD.PILOT, 1 +station_load.1 =170, -26.5, 1.5, 13, TT:MENU.PAYLOAD.COPILOT, 2 ; station_load.1 =170, -2.923056, 1.508653, 12.5651, TT:MENU.PAYLOAD.COPILOT, 2 +station_load.2 =5000, -62.5, 0, 13, TT:MENU.PAYLOAD.BUSINESS_UPPER ; station_load.2 =5000, -35.400535, -0.000003, 11.415958, TT:MENU.PAYLOAD.BUSINESS_UPPER +station_load.3 =1000, -20, 0, 4, TT:MENU.PAYLOAD.FIRST_CLASS ; station_load.3 =1000, 0.04913, -0.000002, -0.000001, TT:MENU.PAYLOAD.FIRST_CLASS +station_load.4 =5400, -60, 0, 4, TT:MENU.PAYLOAD.BUSINESS_MAIN ; station_load.4 =5400, -44.383345, -0.000001, -0.000001, TT:MENU.PAYLOAD.BUSINESS_MAIN +station_load.5 =6000, -125, 0, 4, TT:MENU.PAYLOAD.PREMIUM_ECONOMY ; station_load.5 =6000, -100.362841, 0.000004, 2.013768, TT:MENU.PAYLOAD.PREMIUM_ECONOMY +station_load.6 =5000, -100, 0, 4, TT:MENU.PAYLOAD.FORWARD_ECONOMY ; station_load.6 =5000, -81.274814, -0, -0, TT:MENU.PAYLOAD.FORWARD_ECONOMY +station_load.7 =36000, -180, 0, 4, TT:MENU.PAYLOAD.REAR_ECONOMY ; station_load.7 =36000, -148.319361, 0.000004, 0.000002, TT:MENU.PAYLOAD.REAR_ECONOMY +station_load.8 =8000, -55, 0, -3, TT:MENU.PAYLOAD.FORWARD_BAGGAGE ; station_load.8 =8000, -28.56284, -0.000005, -3.566868, TT:MENU.PAYLOAD.FORWARD_BAGGAGE +station_load.9 =8000, -160, 0, -3, TT:MENU.PAYLOAD.REAR_BAGGAGE ; station_load.9 =8000, -138.077047, -0.000003, -3.834466, TT:MENU.PAYLOAD.REAR_BAGGAGE +station_load.10 =1800, -106.64, 0, 4, TT:MENU.PAYLOAD.CREW ; station_load.10 =1800, -81.274814, -0, -0, TT:MENU.PAYLOAD.CREW + +[CONTACT_POINTS] +static_pitch = 0.2 ; degrees, pitch when at rest on the ground (+=Up, -=Dn) +static_cg_height = 15.13 ; feet, altitude of CG when at rest on the ground +gear_system_type = 1 ; gear system type (betweeen 0 and 4) 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none, 5 = undefined +tailwheel_lock = 0 ; Is tailwheel lock available TRUE/FALSE +max_number_of_points = 100 ; 11 ; Number of contact points +gear_locked_on_ground = 1 ; Defines whether or not the landing gear handle is locked to down when the plane is on the ground. +gear_locked_above_speed = 270 ; Defines the speed at which the landing gear handle becomes locked in the up position. (-1 = Disabled) +max_speed_full_steering = 8 ; Defines the speed under which the full angle of steering is available (in feet/second). +max_speed_decreasing_steering = 50 ; Defines the speed above which the angle of steering stops decreasing (in feet/second). +min_available_steering_angle_pct = 0.1 ; 0.2 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100). +max_speed_full_steering_castering = 20 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second). +max_speed_decreasing_steering_castering = 40 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels (in feet/second). +min_castering_angle = 0.05236 ; Defines the minimum angle a free castering wheel can take (in radians). +max_castering_angle = 3.14159265358979 ; Defines the maximum angle a free castering wheel can take (in radians). + +;point.0 = 1, -9, -2.0, -16.5, 720, 0, 2, 70, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; point.0 = 1, -5, 0, -15.7, 720, 0, 2, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 +;point.1 = 1, -9, 2.0, -16.5, 720, 0, 2, 70, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; new nose wheel #2 +;point.2 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L ; point.1 = 1, -102.5, -17, -16.9, 1500, 1, 2, 6.5, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 +;point.3 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L +;point.4 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L +;point.5 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L +;point.3 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R ; point.2 = 1, -102.5, 17, -16.9, 1500, 2, 2, 6.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 +;point.7 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R +;point.8 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R +;point.9 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R +;point.4 = 1, -106.7, -7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L +;point.5 = 1, -106.7, -4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #2 +;point.6 = 1, -111.6, -7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #3 +;point.7 = 1, -111.6, -4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #4 +;point.8 = 1, -106.7, 7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R +;point.9 = 1, -106.7, 4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #2 +;point.10 = 1, -111.6, 7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #3 +;point.11 = 1, -111.6, 4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #4 +;point.8 = 1, -113, 0, -16.9, 1500, 2, 2, 0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 +;point.12 = 2, -161.5, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1 +;point.13 = 2, -161.5, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1 +;point.14 = 2, 12, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1 +;point.15 = 2, -180, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 +;point.16 = 2, -220, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1 +;point.17 = 2, -30, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 +;point.18 = 2, -150, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 + +;nose wheel +point.0 = 1, -32.64, 0, -15.7, 720, 0, 4.16, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; point.0 = 1, -5, 0, -15.7, 720, 0, 2, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 +;wing gear +point.1 = 1, -121.64,-17, -16.2, 1500, 1, 4.33, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; left +point.2 = 1, -121.64, 17, -16.2, 1500, 1, 4.33, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; right +;body gear +point.3 = 1, -132.14, 6.2, -16.2, 1500, 2, 4.33, 13.5, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 ; left +point.4 = 1, -132.14,-6.2, -16.2, 1500, 2, 4.33, 13.5, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 ; right +;scrape points +point.5 = 2, -184.64, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1 +point.6 = 2, -184.64, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1 +point.7 = 2, -11.14, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1 +point.8 = 2, -203.14, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 +point.9 = 2, -243.14, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1 +point.10 = 2, -53.14, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 +point.11 = 2, -173.14, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1 + +[FUEL] +;LeftMain = -119.14, -28, -4, 12546, 0 ; -96, -28, -4, 12546, 0 ; For each tank: Tank position (z longitudinal, x lateral, y vertical) (FEET), total fuel capacity (GALLONS), unusable fuel capacity (GALLONS) +;RightMain = -150, 28, -4, 12546, 0 ; remove 23.14 from 1st coordinate for all fuel tanks to retrieve default +;Center1 = -106.64, 0, -7, 17164, 0 +;Center2 = -216.64, 0, 6, 3300, 0 +;Center3 = -26.74, 0, 0, 0, 0 +;LeftAux = -135.14, -48, -3, 4482, 0 +;LeftTip = -153.14, -73, 0, 1322, 0 +;RightAux = -135.14, 48, -3, 4482, 0 +;RightTip = -153.14, 73, 0, 1322, 0 +;External1 = -26.74, 0, 0, 0, 0 +;External2 = -26.74, 0, 0, 0, 0 +fuel_type = 2 ; 1 = OCTANE 100, 2 = JET_A, 3 = OCTANE 80, 4 = AUTO GAS, 5 = JET B +;number_of_tank_selectors = 1 ; Max 4 +;electric_pump = 1 +;engine_driven_pump = 1 +;manual_transfer_pump = 0 +;manual_pump = 0 +;anemometer_pump = 0 +;fuel_dump_rate = 0.0167 +;default_fuel_tank_selector.1 = 1 ; Default fuel selector used in case of autostart for engine 1, default is ALL. +;default_fuel_tank_selector.2 = 1 ; Default fuel selector used in case of autostart for engine 2, default is ALL. +;default_fuel_tank_selector.3 = 1 ; Default fuel selector used in case of autostart for engine 3, default is ALL. +;default_fuel_tank_selector.4 = 1 ; Default fuel selector used in case of autostart for engine 4, default is ALL. + +[FUEL_SYSTEM] +APU.1 = Name:APU#FuelBurnRate:10 +Engine.1 = Name:LeftTipEngine#Index:1 +Engine.2 = Name:LeftInnerEngine#Index:2 +Engine.3 = Name:RightInnerEngine#Index:3 +Engine.4 = Name:RightTipEngine#Index:4 +Tank.1 = Name:CenterWingTank#Title:TT:MENU.FUEL.CENTER_WING_TANK#Capacity:17000#UnusableCapacity:0#Position:-106.64,0,-7#Priority:1#OutputOnlyLines:CenterTankToCenterPumpFwd,CenterTankToCenterPumpAft#InputOnlyLines:StabTransferValve1ToCenterWingTank,StabTransferValve2ToCenterWingTank +Tank.2 = Name:MainTank1#Title:TT:MENU.FUEL.MAIN_TANK_1#Capacity:5320#UnusableCapacity:0#Position:-135.14,-48,-3#Priority:3#OutputOnlyLines:MainTank1ToMainTank1PumpFwd,MainTank1ToMainTank1PumpAft#InputOnlyLines:ReserveTank2JunctionToMainTank2 +Tank.3 = Name:MainTank2#Title:TT:MENU.FUEL.MAIN_TANK_2#Capacity:14430#UnusableCapacity:0#Position:-119.14,-28,-4#Priority:3#OutputOnlyLines:MainTank2ToMainTank2PumpFwd,MainTank2ToMainTank2PumpAft,MainTank2ToMainTank2OvrdPumpFwd,MainTank2ToMainTank2OvrdPumpAft +Tank.4 = Name:MainTank3#Title:TT:MENU.FUEL.MAIN_TANK_3#Capacity:14430#UnusableCapacity:0#Position:-119.14,28,-4#Priority:3#OutputOnlyLines:MainTank3ToMainTank3PumpFwd,MainTank3ToMainTank3PumpAft,MainTank3ToMainTank3OvrdPumpFwd,MainTank3ToMainTank3OvrdPumpAft#InputOnlyLines:ReserveTank3ValveToMainTank3 +Tank.5 = Name:MainTank4#Title:TT:MENU.FUEL.MAIN_TANK_4#Capacity:5320#UnusableCapacity:0#Position:-135.14,48,-3#Priority:3#OutputOnlyLines:MainTank4ToMainTank4PumpFwd,MainTank4ToMainTank4PumpAft#InputOnlyLines:ReserveTank3JunctionToMainTank3 +Tank.6 = Name:ReserveTank2#Title:TT:MENU.FUEL.RESERVE_TANK_2#Capacity:1534#UnusableCapacity:0#Position:-153.14,-73,0#Priority:2#OutputOnlyLines:ReserveTank2ToReservePump1Fwd,ReserveTank2ToReservePump1Aft +Tank.7 = Name:ReserveTank3#Title:TT:MENU.FUEL.RESERVE_TANK_3#Capacity:1534#UnusableCapacity:0#Position:-153.14,73,0#Priority:2#OutputOnlyLines:ReserveTank3ToReservePumpFwd,ReserveTank3ToReservePumpAft +Tank.8 = Name:StabTank#Title:TT:MENU.FUEL.STAB_TANK#Capacity:3300#UnusableCapacity:0#Position:-216.64,0,6#Priority:0#OutputOnlyLines:StabTankToStabTankPumpFwd,StabTankToStabTankPumpAft +Line.1 = Name:CenterTankToCenterPumpFwd#Source:CenterWingTank#Destination:CenterWingTankPumpFwd +Line.2 = Name:CenterTankToCenterPumpAft#Source:CenterWingTank#Destination:CenterWingTankPumpAft +Line.3 = Name:CenterPumpFwdToCenterLeftJunc#Source:CenterWingTankPumpFwd#Destination:CenterLeftJunction +Line.4 = Name:CenterPumpAftToCenterRightJunc#Source:CenterWingTankPumpAft#Destination:CenterRightJunction +Line.5 = Name:MainTank1ToMainTank1PumpFwd#Source:MainTank1#Destination:MainTank1PumpFwd +Line.6 = Name:MainTank1ToMainTank1PumpAft#Source:MainTank1#Destination:MainTank1PumpAft +Line.7 = Name:MainTank1PumpFwdToMainTank1Junc#Source:MainTank1PumpFwd#Destination:MainTank1Junction +Line.8 = Name:MainTank1PumpAftToMainTank1Junc#Source:MainTank1PumpAft#Destination:MainTank1Junction +Line.9 = Name:MainTank1JuncToEng1Junc#Source:MainTank1Junction#Destination:Eng1Junction +Line.10 = Name:Eng1JuncToEng1Pump#Source:Eng1Junction#Destination:Eng1Pump +Line.11 = Name:LeftTipEngineValveToLeftTipEngine#Source:LeftTipEngineValve#Destination:LeftTipEngine +Line.12 = Name:Eng1JuncToEng1XFeedValve#Source:Eng1Junction#Destination:LeftTipCrossFeedValve +Line.13 = Name:Eng1XFeedValveToLeftSideJunc#Source:LeftTipCrossFeedValve#Destination:LeftSideJunction +Line.14 = Name:MainTank2ToMainTank2PumpFwd#Source:MainTank2#Destination:MainTank2PumpFwd +Line.15 = Name:MainTank2ToMainTank2PumpAft#Source:MainTank2#Destination:MainTank2PumpAft +Line.16 = Name:MainTank2PumpFwdToMainTank2Junc#Source:MainTank2PumpFwd#Destination:MainTank2Junction +Line.17 = Name:MainTank2PumpAftToMainTank2ToAPUJunc#Source:MainTank2PumpAft#Destination:MainTank2ToAPUJunction +Line.18 = Name:MainTank2ToAPUJuncToMainTank2Junc#Source:MainTank2ToAPUJunction#Destination:MainTank2Junction +Line.19 = Name:MainTank2ToAPUJuncToMainTank2AftToAPUJunc#Source:MainTank2ToAPUJunction#Destination:MainTank2AftToAPUJunction +Line.20 = Name:MainTank2ToAPUDCPump#Source:MainTank2#Destination:APUDCPump +Line.21 = Name:APUDCPumpToMainTank2AftToAPUJunction#Source:APUDCPump#Destination:MainTank2AftToAPUJunction +Line.22 = Name:MainTank2AftToAPUValve#Source:MainTank2AftToAPUJunction#Destination:APUValve +Line.23 = Name:APUValveToAPU#Source:APUValve#Destination:APU +Line.24 = Name:MainTank2JuncToEng2Junc#Source:MainTank2Junction#Destination:Eng2Junction +Line.25 = Name:Eng2JuncToEng2Pump#Source:Eng2Junction#Destination:Eng2Pump +Line.26 = Name:LeftInnerEngineValveToLeftInnerEngine#Source:LeftInnerEngineValve#Destination:LeftInnerEngine +Line.27 = Name:Eng2JuncToEng2XFeedValve#Source:Eng2Junction#Destination:LeftInnerCrossFeedValve +Line.28 = Name:Eng2XFeedValveToLeftSideJunc#Source:LeftInnerCrossFeedValve#Destination:LeftSideJunction +Line.29 = Name:LeftSideJuncToCenterLeftJunc#Source:LeftSideJunction#Destination:CenterLeftJunction +Line.30 = Name:MainTank3ToMainTank3PumpFwd#Source:MainTank3#Destination:MainTank3PumpFwd +Line.31 = Name:MainTank3ToMainTank3PumpAft#Source:MainTank3#Destination:MainTank3PumpAft +Line.32 = Name:MainTank3PumpFwdToMainTank3Junc#Source:MainTank3PumpFwd#Destination:MainTank3Junction +Line.33 = Name:MainTank3PumpAftToMainTank3Junc#Source:MainTank3PumpAft#Destination:MainTank3Junction +Line.34 = Name:MainTank3JuncToEng3Junc#Source:MainTank3Junction#Destination:Eng3Junction +Line.35 = Name:Eng3JuncToEng3Pump#Source:Eng3Junction#Destination:Eng3Pump +Line.36 = Name:RightInnerEngineValveToRightInnerEngine#Source:RightInnerEngineValve#Destination:RightInnerEngine +Line.37 = Name:Eng3JuncToEng3XFeedValve#Source:Eng3Junction#Destination:RightInnerCrossFeedValve +Line.38 = Name:Eng3XFeedValveToRightSideJunc#Source:RightInnerCrossFeedValve#Destination:RightSideJunction +Line.39 = Name:RightSideJuncToCenterRightJunc#Source:RightSideJunction#Destination:CenterRightJunction +Line.40 = Name:CenterLeftJuncToCenterRightJunc#Source:CenterLeftJunction#Destination:CenterRightJunction +Line.41 = Name:MainTank4ToMainTank4PumpFwd#Source:MainTank4#Destination:MainTank4PumpFwd +Line.42 = Name:MainTank4ToMainTank4PumpAft#Source:MainTank4#Destination:MainTank4PumpAft +Line.43 = Name:MainTank4PumpFwdToMainTank4Junc#Source:MainTank4PumpFwd#Destination:MainTank4Junction +Line.44 = Name:MainTank4PumpAftToMainTank4Junc#Source:MainTank4PumpAft#Destination:MainTank4Junction +Line.45 = Name:MainTank4JuncToEng4Junc#Source:MainTank4Junction#Destination:Eng4Junction +Line.46 = Name:Eng4JuncToEng4Pump#Source:Eng4Junction#Destination:Eng4Pump +Line.47 = Name:RightTipEngineValveToRightTipEngine#Source:RightTipEngineValve#Destination:RightTipEngine +Line.48 = Name:Eng4JuncToEng4XFeedValve#Source:Eng4Junction#Destination:RightTipCrossFeedValve +Line.49 = Name:Eng4XFeedValveToRightSideJunc#Source:RightTipCrossFeedValve#Destination:RightSideJunction +Line.50 = Name:MainTank2ToMainTank2OvrdPumpFwd#Source:MainTank2#Destination:MainTank2OvrdPumpFwd +Line.51 = Name:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#Source:MainTank2OvrdPumpFwd#Destination:MainTank2OverrideJunction +Line.52 = Name:MainTank2ToMainTank2OvrdPumpAft#Source:MainTank2#Destination:MainTank2OvrdPumpAft +Line.53 = Name:MainTank2OvrdPumpAftToMainTank2OvrdJunc#Source:MainTank2OvrdPumpAft#Destination:MainTank2OverrideJunction +Line.54 = Name:MainTank2OvrdJuncToLeftSideJunc#Source:MainTank2OverrideJunction#Destination:LeftSideJunction +Line.55 = Name:MainTank3ToMainTank3OvrdPumpFwd#Source:MainTank3#Destination:MainTank3OvrdPumpFwd +Line.56 = Name:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#Source:MainTank3OvrdPumpFwd#Destination:MainTank3OverrideJunction +Line.57 = Name:MainTank3ToMainTank3OvrdPumpAft#Source:MainTank3#Destination:MainTank3OvrdPumpAft +Line.58 = Name:MainTank3OvrdPumpAftToMainTank3OvrdJunc#Source:MainTank3OvrdPumpAft#Destination:MainTank3OverrideJunction +Line.59 = Name:MainTank3OvrdJuncToRightSideJunc#Source:MainTank3OverrideJunction#Destination:RightSideJunction +Line.60 = Name:StabTankToStabTankPumpFwd#Source:StabTank#Destination:StabTankPumpFwd +Line.61 = Name:StabTankPumpFwdToStabTankJuncAft#Source:StabTankPumpFwd#Destination:StabTankJunctionAft +Line.62 = Name:StabTankToStabTankPumpAft#Source:StabTank#Destination:StabTankPumpAft +Line.63 = Name:StabTankPumpAftToStabTankJuncAft#Source:StabTankPumpAft#Destination:StabTankJunctionAft +Line.64 = Name:StabTankJuncAftToStabTankJuncMid#Source:StabTankJunctionAft#Destination:StabTankJuncMid +Line.65 = Name:StabTankJuncMidToStabTankValve1#Source:StabTankJuncMid#Destination:StabTankValve1 +Line.66 = Name:StabTankJuncMidToStabTankValve2#Source:StabTankJuncMid#Destination:StabTankValve2 +Line.67 = Name:StabTankValve1ToStabTankJuncFwd#Source:StabTankValve1#Destination:StabTankJuncFwd +Line.68 = Name:StabTankValve2ToStabTankJuncFwd#Source:StabTankValve2#Destination:StabTankJuncFwd +Line.69 = Name:StabTankJuncFwdToCenterWingStabJunc#Source:StabTankJuncFwd#Destination:CenterWingStabJunc +Line.70 = Name:CenterWingStabJuncToCenterWingStabJuncValve1#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve1 +Line.71 = Name:CenterWingStabJuncToCenterWingStabJuncValve2#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve2 +Line.72 = Name:CenterWingStabJuncValve1ToMainJetissonJunc#Source:CenterWingStabJuncValve1#Destination:MainJettisonJunction +Line.73 = Name:CenterWingStabJuncValve2ToMainJetissonJunc#Source:CenterWingStabJuncValve2#Destination:MainJettisonJunction +Line.74 = Name:MainJettisonJuncToStabTransferValve1#Source:MainJettisonJunction#Destination:StabTransferValve1 +Line.75 = Name:MainJettisonJuncToStabTransferValve2#Source:MainJettisonJunction#Destination:StabTransferValve2 +Line.76 = Name:StabTransferValve1ToCenterWingTank#Source:StabTransferValve1#Destination:CenterWingTank +Line.77 = Name:StabTransferValve2ToCenterWingTank#Source:StabTransferValve2#Destination:CenterWingTank +Line.78 = Name:ReserveTank2ToReservePump1Fwd#Source:ReserveTank2#Destination:ReservePump1Fwd +Line.79 = Name:ReserveTank2ValveFwdToReserveTank2Junction#Source:ReserveTank2ValveFwd#Destination:ReserveTank2Junction +Line.80 = Name:ReserveTank2ToReservePump1Aft#Source:ReserveTank2#Destination:ReservePump1Aft +Line.81 = Name:ReserveTank2ValveAftToReserveTank2Junction#Source:ReserveTank2ValveAft#Destination:ReserveTank2Junction +Line.82 = Name:ReserveTank2JunctionToMainTank2#Source:ReserveTank2Junction#Destination:MainTank1 +Line.83 = Name:ReserveTank3ToReservePump4Fwd#Source:ReserveTank3#Destination:ReservePump4Fwd +Line.84 = Name:ReserveTank3ValveFwdToReserveTank3Junction#Source:ReserveTank3ValveFwd#Destination:ReserveTank3Junction +Line.85 = Name:ReserveTank3ToReservePump4Aft#Source:ReserveTank3#Destination:ReservePump4Aft +Line.86 = Name:ReserveTank3ValveAftToReserveTank3Junction#Source:ReserveTank3ValveAft#Destination:ReserveTank3Junction +Line.87 = Name:ReserveTank3JunctionToMainTank3#Source:ReserveTank3Junction#Destination:MainTank4 +Line.88 = Name:MainTank2OverrideJunctionToMainTank2JetissonValve#Source:MainTank2OverrideJunction#Destination:MainTank2JetissonValve +Line.89 = Name:MainTank2JetissonValveToMainJettisonJunc#Source:MainTank2JetissonValve#Destination:MainJettisonJunction +Line.90 = Name:MainTank2OvrdJuncToCenterLeftAftJetissonValve#Source:MainTank2OverrideJunction#Destination:CenterLeftAftJetissonValve +Line.91 = Name:CenterLeftAftJetissonValveToMainJettisonJunc#Source:CenterLeftAftJetissonValve#Destination:MainJettisonJunction +Line.92 = Name:MainTank3OverrideJunctionToMainTank3JetissonValve#Source:MainTank3OverrideJunction#Destination:MainTank3JetissonValve +Line.93 = Name:MainTank3JetissonValveToMainJettisonJunc#Source:MainTank3JetissonValve#Destination:MainJettisonJunction +Line.94 = Name:MainTank3OvrdJuncToCenterRightAftJetissonValve#Source:MainTank3OverrideJunction#Destination:CenterRightAftJetissonValve +Line.95 = Name:CenterRightAftJetissonValveToMainJettisonJunc#Source:CenterRightAftJetissonValve#Destination:MainJettisonJunction +Line.96 = Name:MainJettisonJuncToJetissonNozzleValve1#Source:MainJettisonJunction#Destination:JetissonNozzleValve1 +Line.97 = Name:MainJettisonJuncToJetissonNozzleValve2#Source:MainJettisonJunction#Destination:JetissonNozzleValve2 +Line.98 = Name:MainTank1ToLeftTanksTransferValve#Source:MainTank1#Destination:LeftTanksTransferValve#GravityBasedFuelFlow:100 +Line.99 = Name:LeftTanksTransferValveToMainTank2#Source:LeftTanksTransferValve#Destination:MainTank2#GravityBasedFuelFlow:100 +Line.100 = Name:MainTank4ToRightTanksTransferValve#Source:MainTank4#Destination:RightTanksTransferValve#GravityBasedFuelFlow:100 +Line.101 = Name:RightTanksTransferValveToMainTank3#Source:RightTanksTransferValve#Destination:MainTank3#GravityBasedFuelFlow:100 +Line.102 = Name:Eng1PumpToEng1Valve#Source:Eng1Pump#Destination:LeftTipEngineValve +Line.103 = Name:Eng2PumpToEng2Valve#Source:Eng2Pump#Destination:LeftInnerEngineValve +Line.104 = Name:Eng3PumpToEng3Valve#Source:Eng3Pump#Destination:RightInnerEngineValve +Line.105 = Name:Eng4PumpToEng4Valve#Source:Eng4Pump#Destination:RightTipEngineValve +Line.106 = Name:ReservePump1FwdToReserveTank2ValveFwd#Source:ReservePump1Fwd#Destination:ReserveTank2ValveFwd +Line.107 = Name:ReservePump1AftToReserveTank2ValveAft#Source:ReservePump1Aft#Destination:ReserveTank2ValveAft +Line.108 = Name:ReservePump4FwdToReserveTank3ValveFwd#Source:ReservePump4Fwd#Destination:ReserveTank3ValveFwd +Line.109 = Name:ReservePump4AftToReserveTank3ValveAft#Source:ReservePump4Aft#Destination:ReserveTank3ValveAft +Junction.1 = Name:MainTank1Junction#InputOnlyLines:MainTank1PumpFwdToMainTank1Junc,MainTank1PumpAftToMainTank1Junc#OutputOnlyLines:MainTank1JuncToEng1Junc +Junction.2 = Name:Eng1Junction#InputOnlyLines:MainTank1JuncToEng1Junc#OutputOnlyLines:Eng1JuncToEng1Pump +Junction.3 = Name:MainTank2Junction#InputOnlyLines:MainTank2PumpFwdToMainTank2Junc,MainTank2PumpAftToMainTank2Junc#OutputOnlyLines:MainTank2JuncToEng2Junc +Junction.4 = Name:Eng2Junction#InputOnlyLines:MainTank2JuncToEng2Junc#OutputOnlyLines:Eng2JuncToEng2Pump +Junction.5 = Name:MainTank3Junction#InputOnlyLines:MainTank3PumpFwdToMainTank3Junc,MainTank3PumpAftToMainTank3Junc#OutputOnlyLines:MainTank3JuncToEng3Junc +Junction.6 = Name:Eng3Junction#InputOnlyLines:MainTank3JuncToEng3Junc#OutputOnlyLines:Eng3JuncToEng3Pump +Junction.7 = Name:MainTank4Junction#InputOnlyLines:MainTank4PumpFwdToMainTank4Junc,MainTank4PumpAftToMainTank4Junc#OutputOnlyLines:MainTank4JuncToEng4Junc +Junction.8 = Name:Eng4Junction#InputOnlyLines:MainTank4JuncToEng4Junc#OutputOnlyLines:Eng4JuncToEng4Pump +Junction.9 = Name:MainTank2OverrideJunction#InputOnlyLines:MainTank2OvrdPumpFwdToMainTank2OvrdJunc,MainTank2OvrdPumpAftToMainTank2OvrdJunc#OutputOnlyLines:MainTank2OvrdJuncToCenterLeftAftJetissonValve +Junction.10 = Name:MainTank3OverrideJunction#InputOnlyLines:MainTank3OvrdPumpFwdToMainTank3OvrdJunc,MainTank3OvrdPumpAftToMainTank3OvrdJunc#OutputOnlyLines:MainTank3OvrdJuncToCenterRightAftJetissonValve +Junction.11 = Name:LeftSideJunction#InputOnlyLines:MainTank2OvrdJuncToLeftSideJunc +Junction.12 = Name:RightSideJunction#InputOnlyLines:MainTank3OvrdJuncToRightSideJunc +Junction.13 = Name:CenterLeftJunction#InputOnlyLines:CenterPumpFwdToCenterLeftJunc +Junction.14 = Name:CenterRightJunction#InputOnlyLines:CenterPumpAftToCenterRightJunc +Junction.15 = Name:MainTank2ToAPUJunction#OutputOnlyLines:MainTank2ToAPUJuncToMainTank2Junc,MainTank2ToAPUJuncToMainTank2AftToAPUJunc +Junction.16 = Name:MainTank2AftToAPUJunction#InputOnlyLines:MainTank2ToAPUJuncToMainTank2AftToAPUJunc,APUDCPumpToMainTank2AftToAPUJunction +Junction.17 = Name:ReserveTank2Junction#OutputOnlyLines:ReserveTank2JunctionToMainTank2 +Junction.18 = Name:ReserveTank3Junction#OutputOnlyLines:ReserveTank3JunctionToMainTank3 +Junction.19 = Name:StabTankJunctionAft#IntputOnlyLines:StabTankPumpAftToStabTankJuncFwd,StabTankPumpAftToStabTankJuncAft +Junction.20 = Name:StabTankJuncMid +Junction.21 = Name:StabTankJuncFwd +Junction.22 = Name:CenterWingStabJunc +Junction.23 = Name:MainJettisonJunction +Valve.1 = Name:LeftTipCrossFeedValve#Circuit:1 +Valve.2 = Name:LeftInnerCrossFeedValve#Circuit:2 +Valve.3 = Name:RightInnerCrossFeedValve#Circuit:3 +Valve.4 = Name:RightTipCrossFeedValve#Circuit:4 +Valve.5 = Name:LeftTipEngineValve#Circuit:5 +Valve.6 = Name:LeftInnerEngineValve#Circuit:6 +Valve.7 = Name:RightInnerEngineValve#Circuit:7 +Valve.8 = Name:RightTipEngineValve#Circuit:8 +Valve.9 = Name:APUValve#Circuit:9 +Valve.10 = Name:ReserveTank2ValveFwd#Circuit:10 +Valve.11 = Name:ReserveTank2ValveAft#Circuit:11 +Valve.12 = Name:ReserveTank3ValveFwd#Circuit:12 +Valve.13 = Name:ReserveTank3ValveAft#Circuit:13 +Valve.14 = Name:StabTankValve1#Circuit:14 +Valve.15 = Name:StabTankValve2#Circuit:15 +Valve.16 = Name:CenterWingStabJuncValve1#Circuit:16 +Valve.17 = Name:CenterWingStabJuncValve2#Circuit:17 +Valve.18 = Name:StabTransferValve1#Circuit:18 +Valve.19 = Name:StabTransferValve2#Circuit:19 +Valve.20 = Name:MainTank2JetissonValve#Circuit:20 +Valve.21 = Name:CenterLeftAftJetissonValve#Circuit:21 +Valve.22 = Name:MainTank3JetissonValve#Circuit:22 +Valve.23 = Name:CenterRightAftJetissonValve#Circuit:23 +Valve.24 = Name:JetissonNozzleValve1#Circuit:24 +Valve.25 = Name:JetissonNozzleValve2#Circuit:25 +Valve.26 = Name:LeftTanksTransferValve#Circuit:26 +Valve.27 = Name:RightTanksTransferValve#Circuit:27 +Pump.1 = Name:CenterWingTankPumpFwd#Pressure:45#DestinationLine:CenterPumpFwdToCenterLeftJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:13 +Pump.2 = Name:CenterWingTankPumpAft#Pressure:45#DestinationLine:CenterPumpAftToCenterRightJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:14 +Pump.3 = Name:MainTank1PumpFwd#Pressure:20#DestinationLine:MainTank1PumpFwdToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:1 +Pump.4 = Name:MainTank1PumpAft#Pressure:20#DestinationLine:MainTank1PumpAftToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:2 +Pump.5 = Name:MainTank2PumpFwd#Pressure:20#DestinationLine:MainTank2PumpFwdToMainTank2Junc#TankFuelRequired:MainTank2#Type:Electric#Index:3 +Pump.6 = Name:MainTank2PumpAft#Pressure:20#DestinationLine:MainTank2PumpAftToMainTank2ToAPUJunc#TankFuelRequired:MainTank2#Type:Electric#Index:4 +Pump.7 = Name:MainTank2OvrdPumpFwd#Pressure:35#DestinationLine:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:5 +Pump.8 = Name:MainTank2OvrdPumpAft#Pressure:35#DestinationLine:MainTank2OvrdPumpAftToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:6 +Pump.9 = Name:MainTank3PumpFwd#Pressure:20#DestinationLine:MainTank3PumpFwdToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:7 +Pump.10 = Name:MainTank3PumpAft#Pressure:20#DestinationLine:MainTank3PumpAftToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:8 +Pump.11 = Name:MainTank3OvrdPumpFwd#Pressure:35#DestinationLine:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:9 +Pump.12 = Name:MainTank3OvrdPumpAft#Pressure:35#DestinationLine:MainTank3OvrdPumpAftToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:10 +Pump.13 = Name:MainTank4PumpFwd#Pressure:20#DestinationLine:MainTank4PumpFwdToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:11 +Pump.14 = Name:MainTank4PumpAft#Pressure:20#DestinationLine:MainTank4PumpAftToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:12 +Pump.15 = Name:StabTankPumpFwd#Pressure:20#DestinationLine:StabTankPumpFwdToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:15 +Pump.16 = Name:StabTankPumpAft#Pressure:20#DestinationLine:StabTankPumpAftToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:16 +Pump.17 = Name:APUDCPump#Pressure:10#DestinationLine:APUDCPumpToMainTank2AftToAPUJunction#TankFuelRequired:MainTank2#Type:Electric#Index:17 +Pump.18 = Name:Eng1Pump#Pressure:10#DestinationLine:Eng1PumpToEng1Valve#Type:EngineDriven#Index:1 +Pump.19 = Name:Eng2Pump#Pressure:10#DestinationLine:Eng2PumpToEng2Valve#Type:EngineDriven#Index:2 +Pump.20 = Name:Eng3Pump#Pressure:10#DestinationLine:Eng3PumpToEng3Valve#Type:EngineDriven#Index:3 +Pump.21 = Name:Eng4Pump#Pressure:10#DestinationLine:Eng4PumpToEng4Valve#Type:EngineDriven#Index:4 +Pump.22 = Name:ReservePump1Fwd#Pressure:10#DestinationLine:ReservePump1FwdToReserveTank2ValveFwd#Type:EngineDriven#Index:1 +Pump.23 = Name:ReservePump1Aft#Pressure:10#DestinationLine:ReservePump1AftToReserveTank2ValveAft#Type:EngineDriven#Index:2 +Pump.24 = Name:ReservePump4Fwd#Pressure:10#DestinationLine:ReservePump4FwdToReserveTank3ValveFwd#Type:EngineDriven#Index:3 +Pump.25 = Name:ReservePump4Aft#Pressure:10#DestinationLine:ReservePump4AftToReserveTank3ValveAft#Type:EngineDriven#Index:4 +Trigger.1 = Condition:Autostart_Enabled#EffectTrue:OpenValve.LeftTipEngineValve,OpenValve.LeftInnerEngineValve,OpenValve.RightInnerEngineValve,OpenValve.RightTipEngineValve,OpenValve.LeftTipCrossFeedValve,OpenValve.LeftInnerCrossFeedValve,OpenValve.RightInnerCrossFeedValve,OpenValve.RightTipCrossFeedValve,StartPump.CenterWingTankPumpFwd,StartPump.CenterWingTankPumpAft,StartPump.MainTank1PumpFwd,StartPump.MainTank1PumpAft,StartPump.MainTank2PumpFwd,StartPump.MainTank2PumpAft,StartPump.MainTank3PumpFwd,StartPump.MainTank3PumpAft,StartPump.MainTank4PumpFwd,StartPump.MainTank4PumpAft,StartPump.MainTank2OvrdPumpFwd,StartPump.MainTank2OvrdPumpAft,StartPump.MainTank3OvrdPumpFwd,StartPump.MainTank3OvrdPumpAft,StartPump.StabTankPumpFwd,StartPump.StabTankPumpAft,StartPump.Eng1Pump,StartPump.Eng2Pump,StartPump.Eng3Pump,StartPump.Eng4Pump +Trigger.2 = Condition:Autoshutdown_Enabled#EffectTrue:CloseValve.LeftTipEngineValve,CloseValve.LeftInnerEngineValve,CloseValve.RightInnerEngineValve,CloseValve.RightTipEngineValve,CloseValve.LeftTipCrossFeedValve,CloseValve.LeftInnerCrossFeedValve,CloseValve.RightInnerCrossFeedValve,CloseValve.RightTipCrossFeedValve,StopPump.CenterWingTankPumpFwd,StopPump.CenterWingTankPumpAft,StopPump.MainTank1PumpFwd,StopPump.MainTank1PumpAft,StopPump.MainTank2PumpFwd,StopPump.MainTank2PumpAft,StopPump.MainTank3PumpFwd,StopPump.MainTank3PumpAft,StopPump.MainTank4PumpFwd,StopPump.MainTank4PumpAft,StopPump.MainTank2OvrdPumpFwd,StopPump.MainTank2OvrdPumpAft,StopPump.MainTank3OvrdPumpFwd,StopPump.MainTank3OvrdPumpAft,StopPump.StabTankPumpFwd,StopPump.StabTankPumpAft +Trigger.3 = Target:CenterWingTank#Threshold:11940#Condition:TankQuantityBelow#EffectTrue:OpenValve.StabTankValve1,OpenValve.StabTankValve2,OpenValve.CenterWingStabJuncValve1,OpenValve.CenterWingStabJuncValve2,OpenValve.StabTransferValve1,OpenValve.StabTransferValve2 +Trigger.4 = Target:StabTank#Threshold:1#Condition:TankQuantityBelow#EffectTrue:CloseValve.StabTankValve1,CloseValve.StabTankValve2,CloseValve.CenterWingStabJuncValve1,CloseValve.CenterWingStabJuncValve2,CloseValve.StabTransferValve1,CloseValve.StabTransferValve2 +Trigger.5 = Target:MainTank1#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank2ValveFwd,OpenValve.ReserveTank2ValveAft,StartPump.ReservePump1Fwd,StartPump.ReservePump1Aft +Trigger.6 = Target:MainTank4#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank3ValveFwd,OpenValve.ReserveTank3ValveAft,StartPump.ReservePump4Fwd,StartPump.ReservePump4Aft +Trigger.7 = Target:ReserveTank2#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump1Fwd,StopPump.ReservePump1Aft,CloseValve.ReserveTank2ValveFwd,CloseValve.ReserveTank2ValveAft +Trigger.8 = Target:ReserveTank3#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump4Fwd,StopPump.ReservePump4Aft,CloseValve.ReserveTank3ValveFwd,CloseValve.ReserveTank3ValveAft + +[AIRPLANE_GEOMETRY] +wing_area = 5960 ; 5962.397 ; 5960 ; Wing area S (SQUARE FEET) +wing_span = 224.4094 ; 224.5 ; 224.57 ; Wing span b (FEET) +wing_root_chord = 42.66 ; 26.5396 ; 55 ; Wing root chord croot (FEET) ; 26.5396 for taper ratio of 1 +wing_camber = 1 ; (DEGREES) +wing_thickness_ratio = 0.02 ; Local thickness is local_chord(x)*wing_thickness_ratio, x = lateral coord +wing_dihedral = 7 ; Dihedral angle Lambda (DEGREES) +wing_incidence = 2 ; Wing incidence (DEGREES) +wing_twist = -3 ; -5 ; Wing twist epsilon (DEGREES) +oswald_efficiency_factor = 0.806 ; 0.9237 ; 0.806 ; 0.806 ; 0.9205 ; 0.75 ; Wing Oswald efficiency factor e (non dimensional) +wing_winglets_flag = 0 ; Has winglets true/false +wing_sweep = 4.10123 ; 4.106 ; 41.0 ; Wing sweep (DEGREES) +;wing_cg_ref_chord = 27.32 ; test +;wing_pos_cg_ref_chord = -104.83 ; test +wing_pos_apex_lon = -95.975 ; -104.83 ; -80 ; -83.75 ; -80 ; Longitudinal (z) position of wing apex w.r.t reference datum (FEET) +wing_pos_apex_vert = -4 ; Vertical (y) position of wing apex w.r.t reference datum (FEET) +htail_area = 1089.5626 ; 1470.35 ; 800 ; Horizontal tail area (SQUARE FEET) +htail_span = 72.17848 ; 70 ; Horizontal tail span (FEET) +htail_pos_lon = -233.14 ; -210 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET) +htail_pos_vert = 11 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET) +htail_incidence = 3 ; 0 ; Horizontal tail incidence (DEGREES) +htail_sweep = 46 ; Horizontal tail sweep angle (DEGREES) +htail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*htail_thickness_ratio, x = lateral coord +vtail_area = 884.874 ; 829 ; 800 ; Vertical tail area (SQUARE FEET) +vtail_span = 33.33 ; Vertical tail span (FEET) +vtail_sweep = 40 ; Vertical tail sweep angle (DEGREES) +vtail_pos_lon = -223.14 ; -200 ; Longitudinal (z) position of vertical tail w.r.t reference datum (FEET) +vtail_pos_vert = 31 ; Vertical (y) position of vertical tail w.r.t reference datum (FEET) +vtail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*vtail_thickness_ratio, x = lateral coord +fuselage_length = 250 ; 231.63 ; 250 ; Nose to tail (FEET) +fuselage_diameter = 25.56 +fuselage_center_pos = -110.64, 0, 5 ; -110.64, 0, 5 ; -87.5, 0, 5 +elevator_area = 340.488 ; 500 ; Elevator area (SQUARE FEET) +aileron_area = 68.098 ; 210 ; Aileron area (SQUARE FEET) +rudder_area = 238.3418 ; 500 ; Rudder area (SQUARE FEET) +elevator_up_limit = 17 ; 25 ; Elevator max deflection up angle (DEGREES) +elevator_down_limit = 23 ; 20 ; Elevator max deflection down angle (absolute value) (DEGREES) +aileron_up_limit = 15 ; 25 ; Aileron max deflection angle (DEGREES) +aileron_down_limit = 25 ; 15 ; Aileron max deflection down angle (absolute value) (DEGREES) +rudder_limit = 32 ; 25 ; 35 ; Rudder max deflection angle (absolute value) (DEGREES) +rudder_trim_limit = 10 ; Rudder trim max deflection angle (absolute value) (DEGREES) +elevator_trim_limit = 7.5 ; 20 ; Elevator trim max angle (absolute value) (DEGREES) +spoiler_limit = 45 ; Spoiler max deflection angle (absolute value) (DEGREES) +air_spoiler_limit = 31.41 ; Spoiler max deflection angle IN THE AIR (absolute value) (DEGREES) +spoilerons_available = 1 ; Aircraft has spoilerons true/false +aileron_to_spoileron_gain = 3 ; Aileron influence on spoileron angle (non-dimensional) +min_ailerons_for_spoilerons = 10 ; Minimum aileron deflection (absolute value) in which spoilerons are active (DEGREES) +min_flaps_for_spoilerons = 0 ; Minimum flaps deflection (absolute value) in which spoilerons are active (DEGREES) +spoiler_extension_time = 2 ; Spoilers extension time (SECONDS) +spoiler_handle_available = 1 ; Spoiler handles available true/false +auto_spoiler_available = 1 ; Auto spoilers available true/false +auto_spoiler_min_speed = 80 ; Auto spoilers minimum trigger speed +auto_spoiler_auto_retracts = 0 +positive_g_limit_flaps_up = 4 ; Flap positive load limit when up. Same dimension as gravity vector FEET/SECONDS^2 +positive_g_limit_flaps_down = 3 ; Flap positive load limit when down. Same dimension as gravity vector FEET/SECONDS^2 +negative_g_limit_flaps_up = -3 ; Flap negative load limit when up. Same dimension as gravity vector FEET/SECONDS^2 +negative_g_limit_flaps_down = -2 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2 +load_safety_factor = 1.5 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2 +elevator_trim_neutral = -4.5 ; Elevator trim max angle (absolute value) (DEGREES), for indicators only (no influence on flight model) +aileron_to_rudder_scale = 0 ; non-dimensional +flap_to_aileron_scale = 0 ; non-dimensional +fly_by_wire = 0 ; Fly-by-wire available true/false +aileron_span_outboard = 0.7 +;elevator_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 +;aileron_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 +;rudder_elasticity_table = 0:1, 162:1, 209:0.625, 390:0.32, 410:0.25 +rudder_elasticity_table = 0:1, 8.135:1, 13.070:0.625, 36.14:0.32 +;elevator_trim_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25 +controls_reactivity_scalar = 20.0 ; 0.25 + +[AERODYNAMICS] +;elevator_lift_coef = 3 +lift_coef_pitch_rate = -109.70206 +lift_coef_daoa = 0.0 +lift_coef_delta_elevator = -1.80648 +lift_coef_horizontal_incidence = 0.0 +lift_coef_flaps = 1.0 ; 1.11620 +lift_coef_spoilers = -0.20000 +drag_coef_zero_lift = 0.02300 ; 0.02300 ; 0.020500 ; 0.02300 ; 0.02300 ; 0.01790 ; 0.01600 ; 0.01600 ; 0.02100 ; 0.02300 +drag_coef_flaps = 0.10000 ; 0.11860 +drag_coef_gear = 0.01500 ; 0.01000 +drag_coef_spoilers = 0.030 ; 0.10000 +;presspt_fwd_Alpha0_pMAC = -0.5 +side_force_slip_angle = -2.96232 +side_force_roll_rate = 2.35547 +side_force_yaw_rate = 31.35555 +side_force_delta_rudder = -3.04370 +pitch_moment_horizontal_incidence = 0.0 +pitch_moment_delta_elevator = -5 ; -5.937 ; -9.0000 ; -7.30733 +pitch_moment_delta_trim = -5 ; -5.937 ; -9.00000 ; -7.30733 +pitch_moment_pitch_damping = -877.85809 +pitch_moment_aoa_0 = -0.06566 +pitch_moment_daoa = 0.0 +pitch_moment_flaps = 0.15282 +pitch_moment_gear = 0.00395 +pitch_moment_spoilers = -0.08202 +pitch_moment_delta_elevator_propwash = -1.82683 +pitch_moment_pitch_propwash = 0.0 +roll_moment_slip_angle = 0.39912 +roll_moment_roll_damping = -1.50166 +roll_moment_yaw_rate = -3.51870 +roll_moment_spoilers = 0.0 +roll_moment_delta_aileron = -0.30568 +roll_moment_delta_rudder = 0.25999 +roll_moment_delta_aileron_trim_scalar = -0.30568 +yaw_moment_slip_angle = 1.30053 +yaw_moment_roll = 0.53921 +yaw_moment_yaw_damping = -38.36003 +yaw_moment_yaw_propwash = 0.0 +yaw_moment_delta_aileron = -0.01319 +yaw_moment_delta_rudder = 0.95632 +yaw_moment_delta_rudder_propwash = 0.23908 +yaw_moment_delta_rudder_trim_scalar = 0.95632 +compute_aero_center = 0 +aero_center_lift = -13.13167 ; -2.0881 ; -1.7898 ; -4.1762 ; -2.0881 ; -0.44745 ; -14.00000 ; 0.2983 per 1%MAC +;lift_coef_aoa_table = -3.15:0, -0.8:-1.154, -0.4:-0.928, -0.2:-0.781, -0.1:-0.372, 0:0.250, 0.20:1.215, 0.23:1.293, 0.26:1.314, 0.29:1.117, 0.31:1.049, 0.4:0.941, 0.8:1.183, 3.15:0 <--- DEFAULT +;lift_coef_aoa_table = -3.15:0, 0:-0.080, 0.175:0.86, 0.192:0.94, 0.209:1.01, 0.227:1.07, 0.244:1.11, 0.262:1.15, 0.279:1.17, 0.297:1.195, 0.314:1.22, 0.332:1.24, 0.349:1.26, 3.15:0 <--- LOW SPEED +lift_coef_aoa_table = -3.15:0.0315, -0.1396:-0.6606, 0:0.0945, 0.2793:1.6053, 3.15:0.0315 ; <--- GOOD ONE +lift_coef_ground_effect_mach_table = 0.054:1.0 +;lift_coef_mach_table = 0:0.40, 0.340:0.40, 0.612:0.46, 0.806:0.50, 0.83:0.53 <---- GOOD ONE ! +;lift_coef_mach_table = 0:0.457, 0.3:0.457, 0.35:0.465, 0.4:0.475, 0.45:0.488, 0.5:0.503, 0.55:0.522, 0.6:0.545, 0.612:0.551, 0.65:0.574, 0.7:0.610, 0.75:0.659, 0.80:0.726, 0.83:0.782, 0.85:0.827, 0.9:1.0 ; <---- PRANDTL CORRECTION FOR COMPRESSIBILITY +;lift_coef_mach_table = 0:0.457, 0.3:0.457, 0.35:0.465, 0.4:0.475, 0.45:0.488, 0.5:0.503, 0.55:0.522, 0.6:0.545, 0.612:0.841, 0.65:0.574, 0.667:0.879, 0.7:0.610, 0.75:0.659, 0.80:0.726, 0.83:0.782, 0.85:0.827, 0.9:1.0 +lift_coef_mach_table = 0:0.720, 0.308:0.720, 0.340:0.811, 0.612:1 +lift_coef_delta_elevator_mach_table = 0:0 +lift_coef_daoa_mach_table = 0:0 +lift_coef_pitch_rate_mach_table = 0:0 +lift_coef_horizontal_incidence_mach_table = 0:0 +;drag_coef_zero_lift_mach_tab = 0:0.000, 0.5:0.000, 0.55:0.000, 0.6:0.000, 0.65:0.000, 0.7:0.000, 0.75:0.000, 0.8:0.000, 0.85:0.000, 0.9:0.000, 0.95:0.100, 1.0:1.000, 1.1:0.532, 1.5:0.046 +;drag_coef_zero_lift_mach_tab = 0:0, 0.71:0.0, 0.80:0.00145, 0.85:0.01670, 0.9:0.04685 +;drag_coef_zero_lift_mach_tab = 0:0.0, 0.469:0.0009, 0.559:0.0016, 0.672:0.0002, 0.815:0.0, 0.83:0.004 +drag_coef_zero_lift_mach_tab = 0:0, 0.83:0.0, 0.86:0.001 +side_force_slip_angle_mach_table = 0:0 +side_force_delta_rudder_mach_table = 0:0 +side_force_yaw_rate_mach_table = 0:0 +side_force_roll_rate_mach_table = 0:0 +pitch_moment_aoa_table = -3.15:0, -0.8:-1.767, -0.4:-0.918, -0.2:-0.833, -0.1:-0.555, 0:0, 0.20:0.964, 0.23:1.003, 0.26:1.024, 0.29:1.116, 0.31:1.080, 0.4:1.046, 0.8:1.745, 3.15:0 +pitch_moment_delta_elevator_aoa_table = -180:-1, -40:0.154, -20:0.528, -14:0.912, -7:0.887, 0:1, 7:0.873, 14:0.955, 20:0.592, 40:0.147, 180:-1 +pitch_moment_horizontal_incidence_aoa_table = 0:1 +pitch_moment_daoa_aoa_table = 0:1 +pitch_moment_pitch_alpha_table = 0:1 +pitch_moment_delta_elevator_mach_table = 0:0 +pitch_moment_daoa_mach_table = 0:0 +pitch_moment_pitch_rate_mach_table = 0:0 +pitch_moment_horizontal_incidence_mach_table = 0:0 +pitch_moment_aoa_0_mach_table = 0:0 +roll_moment_aoa_table = 0:0 +roll_moment_slip_angle_aoa_table = 0:1 +roll_moment_roll_rate_aoa_table = 0:1 +roll_moment_delta_aileron_aoa_table = 0:1 +roll_moment_slip_angle_mach_table = 0:0 +roll_moment_delta_rudder_mach_table = 0:0 +roll_moment_delta_aileron_mach_table = 0:0 +roll_moment_yaw_rate_mach_table = 0:0 +roll_moment_roll_rate_mach_table = 0:0 +yaw_moment_aoa_table = 0:0 +yaw_moment_slip_angle_aoa_table = 0:1 +yaw_moment_yaw_rate_aoa_table = 0:1 +yaw_moment_delta_rudder_aoa_table = 0:1 +yaw_moment_slip_angle_mach_table = 0:0 +yaw_moment_delta_rudder_mach_table = 0:0 +yaw_moment_delta_aileron_mach_table = 0:0 +yaw_moment_yaw_rate_mach_table = 0:0 +yaw_moment_roll_rate_mach_table = 0:0 +elevator_scaling_table = 0:1 +aileron_scaling_table = 0:1 +rudder_scaling_table = 0:1 +aileron_load_factor_effectiveness_table = 0:1 +lift_coef_at_drag_zero = 0 ; -0.0317 ; 0.0945 ; 0.5 ; 0.150 ; 0.515 ; 0.283 ; 0.338 ; 0.378 ; 0.272 ; GOOD -0.03165 ; -0.059 ; 0.150 ; 0.162 ; 0.150 ; 0.242 ; 0.25 ; 0.15 ; 0.10000 +lift_coef_at_drag_zero_flaps = 0 ; -0.10000 + +[FLIGHT_TUNING] +cruise_lift_scalar = 1.0 ; 1.35 ; 2.0 +parasite_drag_scalar = 1.0 +induced_drag_scalar = 1.75 ; 1.091 ; 1.80 ; 1.75 ; 1.0 ; 0.4 ; 1.0 +flap_induced_drag_scalar = 0.922 ; 1.0 +elevator_effectiveness = 1.0 +elevator_maxangle_scalar = 1.0 ; 0.5 +aileron_effectiveness = 1.0 +rudder_effectiveness = 1.0 +rudder_maxangle_scalar = 1.0 ; 0.33 +pitch_stability = 1.0 ; 0.5 +roll_stability = 1.0; 0.5 +yaw_stability = 1.0 ; 0.5 +pitch_gyro_stability = 1.0 +roll_gyro_stability = 1.0 +yaw_gyro_stability = 1.0 +elevator_trim_effectiveness = 1.0 +aileron_trim_effectiveness = 1.0 +rudder_trim_effectiveness = 1.0 +hi_alpha_on_roll = 0 +hi_alpha_on_yaw = 0 +p_factor_on_yaw = 0 +torque_on_roll = 0 +gyro_precession_on_roll = 0 +gyro_precession_on_yaw = 0 +engine_wash_on_roll = 0 ; Torque effect +wingflex_scalar = 1.3 +wingflex_offset = 0.425 +stall_coef_at_min_weight = 0.684 ; 0.72 + +[REFERENCE SPEEDS] +full_flaps_stall_speed = 0 ; 151 ; 151 ; 145 ; 150 ; 130 ; Knots True (KTAS) +flaps_up_stall_speed = 0 ; 217 ; 217 ; 212 ; 217 ; 205 ; Knots True (KTAS) +cruise_speed = 478 ; 493 ; Knots True (KTAS) +cruise_mach = 0.830 ; 0.845 +crossover_speed = 310 ; Knots Indicated (KIAS) +max_mach = 0.90 ; 0.92 +max_indicated_speed = 450 ; Red line (KIAS) +max_flaps_extended = 275 ; 274.030126 +normal_operating_speed = 365 ; 360 +airspeed_indicator_max = 562.5 +rotation_speed_min = 140 ; Min speed required (Kts) +climb_speed = 250 ; Climb speed (Kts) +cruise_alt = 35000 ; 36000 ; (ft) +takeoff_speed = 155 ; Takeoff Speed (Kts) +spawn_cruise_altitude = 15000 ; 5000 ; Spawn Cruise Altitude (ft) +spawn_descent_altitude = 3000 ; 500 ; Spawn Descent Altitude (ft) +best_angle_climb_speed = 266 ; 267 ; Best angle climb speed (Kts) +approach_speed = 191 ; 195 ; Approach speed (Kts) +best_glide = 266 ; 0 ; 267 ; Best Glide (Kts) +max_gear_extended = 320 ; 280 ; (Kts) + +[INTERACTIVE POINTS] +number_of_interactive_points = 17 +interactive_point.0 = 0.4, 150, -9.6, 1.3, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0 +interactive_point.1 = 0.4, -177.2, 7.4, 1.3, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0 +interactive_point.2 = 0.4, -32.2, -8.1, 11.2, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 +interactive_point.3 = 0.4, -32.2, 8.1, 11.2, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 +interactive_point.4 = 0.4, -57, -10.3, 1.3, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 +interactive_point.5 = 0.4, -56, 10.3, 1.3, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 +interactive_point.6 = 0.4, -94.6, -11, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 +interactive_point.7 = 0.4, -93.4, 11, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 +interactive_point.8 = 0.4, -132, -10, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0 +interactive_point.9 = 0.4, -131, 10, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0 +interactive_point.10 = 0.4, -15, -9.2, 1.3, 0, 0, 0, -85, 25, 4, 35, 1.5, 0, 0 +interactive_point.11 = 0.4, -15, 9.2, 1.3, 0, 0, 0, 85, 35, 1.5, 25, 4, 0, 0 +interactive_point.12 = 0.4, -26.3, 7, -5.4, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0 +interactive_point.13 = 0.4, -145, 6.4, -6, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0 +interactive_point.14 = 0.4, -87.98, -58.25, -12.6, 3, 0, 0, -45, 0, 0, 0, 0, 0, 0 +interactive_point.15 = 0, 1.9, 10.8, -10.5, 4, 0, 0, 45, 0, 0, 0, 0, 0, 0 +interactive_point.16 = 0, -96, 0, -8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0 + +;[STALL PROTECTION] +;stall_protection = 0 ; 1 ; Stick Shaker +;off_limit = 11.5 ; Stick Shaker Min +;on_limit = 14.5 ; Stick Shaker Max + + +[ALPHA PROTECTION] +off_limit = 14 +on_limit = 15 +on_goal = 13 +timer_trigger = 3 + + +;===================== FLAPS ===================== + +[FLAPS.0] +type = 1 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge +system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none +system_type_index = 120 +span-outboard = 0.55 ; Outboard span area (added area) (percentage, non dimensional) +extending-time = 55 ; Flap extension time (SECONDS) +damaging-speed = 285 ; Speed above which flap is damaged (Kts) +blowout-speed = 350 ; Speed above which flap is blown out (Kts) +maneuvering_flaps = 0 +lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned) +drag_scalar = 0.3 ; Scalar coefficient to ponderate global flap drag coef (non dimensioned) +pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned) +max_on_ground_position = 6 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found. +delay_between_flap_index = 1.0 +flaps-sequence-increasing = 1 +flaps-position.0 = 0, -1, 0, 0 +flaps-position.1 = 0, 285, 0.0, 0.0 +flaps-position.2 = 5, 265, 0.0, 2.5 +flaps-position.3 = 10, 245, 0.0, 2.9 +flaps-position.4 = 20, 235, 0.0, 3.2 +flaps-position.5 = 25, 210, 0.0, 4.1 +flaps-position.6 = 30, 185, 0.0, 4.1 + +[FLAPS.1] +type = 2 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge +system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none +system_type_index = 119 +span-outboard = 0.8 ; Outboard span area (added area) (percentage, non dimensional) +extending-time = 8 ; Flap extension time (SECONDS) +damaging-speed = 285 ; Speed above which flap is damaged (Kts) +blowout-speed = 350 ; Speed above which flap is blown out (Kts) +maneuvering_flaps = 0 +lift_scalar = 0.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned) +drag_scalar = 1.0; Scalar coefficient to ponderate global flap drag coef (non dimensioned) +pitch_scalar = 0.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned) +max_on_ground_position = 1 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found. +flaps-sequence-decreasing = 0 +flaps-position.0 = 0, -1, 0 +flaps-position.1 = 21, 285, 0.30 +flaps-position.2 = 21, 265, 0.30 +flaps-position.3 = 21, 245, 0.30 +flaps-position.4 = 21, 235, 0.30 +flaps-position.5 = 21, 215, 0.30 +flaps-position.6 = 21, 185, 0.30 +;flaps-position.0 = 0, -1, 0, 0 +;flaps-position.1 = 21, 285, 0.39, 0.0 +;flaps-position.2 = 21, 265, 0.0, 0.0 +;flaps-position.3 = 21, 245, 0.0, 0.0 +;flaps-position.4 = 21, 235, 0.0, 0.0 +;flaps-position.5 = 21, 215, 0.0, 0.0 +;flaps-position.6 = 21, 185, 0.0, 0.0 diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg index df69dd6ad..0525df06a 100644 --- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg +++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg @@ -27,34 +27,34 @@ lightdef.20 = Type:5#Index:2#LocalPosition:-65.1,-13.8,-1.9#LocalRotation:0,0,10 lightdef.21 = Type:5#Index:3#LocalPosition:-65.1,13.8,-1.9#LocalRotation:0,0,-10#EffectFile:LIGHT_ASOBO_LandingLarge#Node:LIGHT_ASOBO_LandingInnerRight#PotentiometerIndex:20#EmMesh:LIGHT_ASOBO_LandingInnerRight lightdef.22 = Type:8#Index:1#LocalPosition:0,0,0#LocalRotation:0,0,130#EffectFile:LIGHT_ASOBO_WingLarge#Node:LIGHT_ASOBO_Wing_Left#PotentiometerIndex:0#EmMesh:LIGHT_ASOBO_Wing_Left lightdef.23 = Type:8#Index:1#LocalPosition:0,0,0#LocalRotation:0,0,-130#EffectFile:LIGHT_ASOBO_WingLarge#Node:LIGHT_ASOBO_Wing_Right#PotentiometerIndex:0#EmMesh:LIGHT_ASOBO_Wing_Right -lightdef.24 = Type:12#Index:1#LocalPosition:-1.1,-1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.25 = Type:12#Index:1#LocalPosition:-1.1,-0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.26 = Type:12#Index:1#LocalPosition:-1.1,-0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.27 = Type:12#Index:1#LocalPosition:-1.1,-0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.28 = Type:12#Index:1#LocalPosition:-1.1,0,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.29 = Type:12#Index:1#LocalPosition:-1.1,0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.30 = Type:12#Index:1#LocalPosition:-1.1,0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.31 = Type:12#Index:1#LocalPosition:-1.1,0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.32 = Type:12#Index:1#LocalPosition:-1.1,1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 -lightdef.33 = Type:12#Index:1#LocalPosition:-1.52,0,14.96#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GaugeSmall#PotentiometerIndex:0 -lightdef.34 = Type:12#Index:2#LocalPosition:-0.8,-1.9,13.75#LocalRotation:60,0,-35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0 -lightdef.35 = Type:12#Index:3#LocalPosition:-0.8,1.9,13.75#LocalRotation:60,0,35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0 -lightdef.36 = Type:13#Index:0#LocalPosition:-0.5,-1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:40 -lightdef.37 = Type:13#Index:0#LocalPosition:-0.5,-1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:41 -lightdef.38 = Type:13#Index:0#LocalPosition:-0.5,0,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:42 -lightdef.39 = Type:13#Index:0#LocalPosition:-0.5,1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:43 -lightdef.40 = Type:13#Index:0#LocalPosition:-0.5,1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:44 -lightdef.41 = Type:10#Index:1#LocalPosition:-2.35,-1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 -lightdef.42 = Type:13#Index:0#LocalPosition:-3.800003,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:45 -lightdef.43 = Type:10#Index:3#LocalPosition:-4.3,-1.45,15.8#LocalRotation:80,0,30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0 -lightdef.44 = Type:13#Index:0#LocalPosition:-3.8,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:22 -lightdef.45 = Type:10#Index:2#LocalPosition:-2.35,1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 -lightdef.46 = Type:13#Index:0#LocalPosition:-3.800003,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:46 -lightdef.47 = Type:10#Index:3#LocalPosition:-4.3,1.45,15.8#LocalRotation:80,0,-30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0 -lightdef.48 = Type:13#Index:0#LocalPosition:-3.8,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:23 -lightdef.49 = Type:11#Index:1#LocalPosition:-3.3,0,14.8#LocalRotation:72,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 -lightdef.50 = Type:13#Index:0#LocalPosition:-3.2,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:24 -lightdef.51 = Type:13#Index:0#LocalPosition:-1,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CockpitMinimalAmbiant#PotentiometerIndex:1 +lightdef.24 = Type:12#Index:1#LocalPosition:-24.24,-1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.25 = Type:12#Index:1#LocalPosition:-24.24,-0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.26 = Type:12#Index:1#LocalPosition:-24.24,-0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.27 = Type:12#Index:1#LocalPosition:-24.24,-0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.28 = Type:12#Index:1#LocalPosition:-24.24,0,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.29 = Type:12#Index:1#LocalPosition:-24.24,0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.30 = Type:12#Index:1#LocalPosition:-24.24,0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.31 = Type:12#Index:1#LocalPosition:-24.24,0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.32 = Type:12#Index:1#LocalPosition:-24.24,1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0 +lightdef.33 = Type:12#Index:1#LocalPosition:-24.66,0,14.96#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GaugeSmall#PotentiometerIndex:0 +lightdef.34 = Type:12#Index:2#LocalPosition:-23.94,-1.9,13.75#LocalRotation:60,0,-35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0 +lightdef.35 = Type:12#Index:3#LocalPosition:-23.94,1.9,13.75#LocalRotation:60,0,35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0 +lightdef.36 = Type:13#Index:0#LocalPosition:-23.64,-1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:40 +lightdef.37 = Type:13#Index:0#LocalPosition:-23.64,-1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:41 +lightdef.38 = Type:13#Index:0#LocalPosition:-23.64,0,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:42 +lightdef.39 = Type:13#Index:0#LocalPosition:-23.64,1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:43 +lightdef.40 = Type:13#Index:0#LocalPosition:-23.64,1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:44 +lightdef.41 = Type:10#Index:1#LocalPosition:-25.49,-1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 +lightdef.42 = Type:13#Index:0#LocalPosition:-26.94,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:45 +lightdef.43 = Type:10#Index:3#LocalPosition:-27.44,-1.45,15.8#LocalRotation:80,0,30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0 +lightdef.44 = Type:13#Index:0#LocalPosition:-26.94,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:22 +lightdef.45 = Type:10#Index:2#LocalPosition:-25.49,1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 +lightdef.46 = Type:13#Index:0#LocalPosition:-26.94,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:46 +lightdef.47 = Type:10#Index:3#LocalPosition:-27.44,1.45,15.8#LocalRotation:80,0,-30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0 +lightdef.48 = Type:13#Index:0#LocalPosition:-26.94,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:23 +lightdef.49 = Type:11#Index:1#LocalPosition:-26.44,0,14.8#LocalRotation:72,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0 +lightdef.50 = Type:13#Index:0#LocalPosition:-26.34,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:24 +lightdef.51 = Type:13#Index:0#LocalPosition:-24.14,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CockpitMinimalAmbiant#PotentiometerIndex:1 [BRAKES] parking_brake = 1 ; BrakeTypes enum @@ -75,8 +75,8 @@ bus.4 = Connections:bus.1#Name:AC_BUS_3 bus.5 = Connections:bus.1#Name:AC_BUS_4 bus.6 = Connections:bus.4,bus.7#Name:BATTERY_BUS bus.7 = Name:HOT_BATTERY_BUS -battery.1 = Connections:bus.7#Capacity:28#Voltage:curve.1#Name:Main_Battery ; Main_Battery -battery.2 = Connections:bus.7#Capacity:28#Voltage:curve.1#Name:APU_Battery ; APU_Battery +battery.1 = Connections:bus.7#Capacity:53#Voltage:curve.1#Name:Main_Battery ; Main_Battery 28 capacity original +battery.2 = Connections:bus.7#Capacity:53#Voltage:curve.1#Name:APU_Battery ; APU_Battery " " " alternator.1 = Connections:bus.2#iEng:0#RatedVoltage:28#Load:curve.2 alternator.2 = Connections:bus.3#iEng:1#RatedVoltage:28#Load:curve.2 alternator.3 = Connections:bus.4#iEng:2#RatedVoltage:28#Load:curve.2 @@ -234,9 +234,9 @@ pitot_heat = 1.0 ; Scalar on heat effectiveness, 0 = not available max_pressure = 5.150000 vacuum_type = 2 -[STALL_WARNING] -type = 2 -stick_shaker = 1 +;[STALL_WARNING] +;type = 2 +;stick_shaker = 1 [DEICE_SYSTEM] structural_deice_type = 1 ; 0 = None, 1 = Heated Leading Edge, 2 = Bleed Air Boots, 3 = Eng Pump Boots @@ -269,7 +269,7 @@ autothrottle_available = 1 autothrottle_arming_required = 1 autothrottle_max_rpm = 106 autothrottle_takeoff_ga = 1 -autothrottle_managed_by_plane = false +autothrottle_managed_by_plane = 0 ; false pitch_takeoff_ga = 8 max_pitch = 25.0 max_pitch_acceleration = 1.0 @@ -284,7 +284,7 @@ auto_max_bank_min_alt = 200 auto_max_bank_min_alt_angle = 8 max_bank_acceleration = 5 max_bank_velocity = 10 -max_throttle_rate = 0.30 +max_throttle_rate = 0.01 yaw_damper_gain = 1.0 min_vertical_speed_ref = -8000 max_vertical_speed_ref = 6000 @@ -300,7 +300,7 @@ min_flight_time_for_ap = 3 english_VS_increment = 50 use_no_default_bank = 0 use_no_default_pitch = 0 -min_feet_ra_for_ap = -1000 +;min_feet_ra_for_ap = -1000 altitude_english_slow_increment = 100 altitude_english_fast_increment = 200 altitude_english_fastest_increment = 1000 diff --git a/salty-747/html_ui/Pages/Salty/SaltyADC.js b/salty-747/html_ui/Pages/Salty/SaltyADC.js new file mode 100644 index 000000000..5dcf9370c --- /dev/null +++ b/salty-747/html_ui/Pages/Salty/SaltyADC.js @@ -0,0 +1,280 @@ +class SaltyADC { + constructor() { + this.ncd = -1; //No Computed Data state + this.a0 = 340.294; //Speed of sound at ISA sea level (M/sec) + this.p0 = 101325 //Standard pressure (Pascals) + this.temp0 = 288.15; //ISA Temp at sea level (Kelvin) + this.r = 8.31446261815324; //Gas constant (J.K/mol) + this.g = 9.80665; //Accel due to gravity (M/sec^2) + this.mm = 0.0289644; //Molar mass of air (kg/mol) + this.mToFeet = 3.28084; //Metres to feet + this.mpsToKnots = 1,944012; //Metres per sec to knots + this.rho0 = 1.225; //Kg per cubic meter + this.l0 = -0.0065; //Lapse rate in °K/meter + this.h1 = 11000; //36089 ft of height in ISA + this.temp1 = 216.65; //Temperature in °K at 36089 ft + this.p1 = 22632; //Pressure in Pa at 36089 ft + this.h0 = 0; + + //Alt samples for vertical speed + this.altSample = false; + this.t0 = 0; + this.t1 = 0; + this.alt0 = 0; + this.alt1 = 0; + + console.log("Salty ADC loaded"); + } + init() { + //this.irsTimer = -1; + } + update() { + //Return No Computed Data if ADC unpowered or in fault state. + if ((SimVar.GetSimVarValue("ELECTRICAL MAIN BUS VOLTAGE", "volts") < 20) || SimVar.GetSimVarValue("L:74S_ADC_STATE", "enum") === -1) { + SimVar.SetSimVarValue("L:74S_ADC_CAS", "knots", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_TAS", "knots", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_MACH", "number", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_SAT", "number", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_ALT", "feet", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_BARO_CORR_ALT", "feet", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_ALT_RATE", "feet", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_VMO", "knots", this.ncd); + SimVar.SetSimVarValue("L:74S_ADC_OVERSPEED_DISCREET", "boolean", this.ncd); + return; + } + + //Inputs + const q = SimVar.GetSimVarValue("DYNAMIC PRESSURE", "pascal"); + const p = SimVar.GetSimVarValue("AMBIENT PRESSURE", "pascal"); + const tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin"); + const baroSetting = SimVar.GetSimVarValue("KOHLSMAN SETTING MB:0", "pascal"); + //const mach = SimVar.GetSimVarValue("AIRSPEED MACH", "mach"); + + //Intermediate Values + const mach = this.calculateMach(q, p); + const sat = this.calculateSAT(mach, tat); + const satC = this.SATtoCelsius(sat); + const alt = this.calculateAlt(p); + const baroCorrAlt = this.calculateBaroCorrAlt(p, baroSetting); + const vmo = this.getBarberPoleSpeed(); + const eas = this.calculateEAS(mach, p); + const tas = this.calculateTAS(mach, sat); + const qc = this.calculateQC(p, mach); + const cas = this.calculateCAS(qc); + const isOverspeed = this.getIsOverspeed(vmo, cas); + const altRate = this.calculateAltRate(); + + //Outputs + SimVar.SetSimVarValue("L:74S_ADC_CAS", "knots", cas); + SimVar.SetSimVarValue("L:74S_ADC_TAS", "knots", tas); + SimVar.SetSimVarValue("L:74S_ADC_EAS", "knots", eas); + SimVar.SetSimVarValue("L:74S_ADC_MACH", "number", mach); + SimVar.SetSimVarValue("L:74S_ADC_SAT", "number", satC); + SimVar.SetSimVarValue("L:74S_ADC_ALT", "feet", alt); + SimVar.SetSimVarValue("L:74S_ADC_BARO_CORR_ALT", "feet", baroCorrAlt); + SimVar.SetSimVarValue("L:74S_ADC_ALT_RATE", "feet", altRate); + SimVar.SetSimVarValue("L:74S_ADC_VMO", "knots", vmo); + SimVar.SetSimVarValue("L:74S_ADC_OVERSPEED_DISCREET", "boolean", isOverspeed); + } + + getBarberPoleSpeed() { + const vmo = Math.min(365, this.calculateMMO()); + if (vmo < 150 || vmo > 450) { + return this.ncd; + } + return vmo; + } + + calculateMMO() { + const mmo = 0.9; + const mmoInKnots = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mmo); + return mmoInKnots; + } + + getIsOverspeed(vmo, cas) { + const isOverspeed = cas > vmo ? true : false; + return isOverspeed; + } + + calculateQC(p, mach) { + const qc = ((1 + 0.2 * mach ** 2) ** 3.5 - 1) * p; + return qc; + } + + calculateCAS(qc) { + const cas = this.a0 * (5 * (((qc / this.p0) + 1) ** (2 / 7) - 1)) ** 0.5 * this.mpsToKnots; + if (cas < 30 || cas > 450) { + return this.ncd; + } + return cas; + } + + calculateEAS(mach, p) { + const eas = this.a0 * mach * (p / this.p0) ** 0.5 * this.mpsToKnots; + return eas; + } + + calculateTAS(mach, sat) { + const tas = this.a0 * mach * (sat / this.temp0) ** 0.5 * this.mpsToKnots; + if (tas < 100 || tas > 599) { + return this.ncd; + } + return tas; + } + + calculateMach(q, p) { + const mach = ((2 * q) / (1.4 * p)) ** 0.5; + if (mach < 0.1 || mach > 1.0) { + return this.ncd; + } + return mach; + } + + calculateSAT(mach, tat) { + const sat = tat / (1 + 0.2 * mach ** 2); + if (sat < -174.15 || sat > 333.15) { + return this.ncd; + } + return sat; + } + + SATtoCelsius(sat) { + const satC = sat - 273.15; + return satC; + } + + /*calculateAlt(p) { + //const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(this.p0 / p) * this.mToFeet; + const altH = this.h1 - ((this.r * this.t1) / (this.g0 * this.mm)) * Math.log(p / this.p1); + SimVar.SetSimVarValue ("L:74S_ADC_ALTH", "feet", altH); + const altL = this.h0 + ((p / this.p0) ** ((-this.r * this.l0) / (this.g0 * this.mm)) - 1) * (this.t0 / this.l0); + SimVar.SetSimVarValue("L:74S_ADC_ALTL", "feet", altL); + const alt = 15000; + if (!this.altSample) { + this.alt0 = alt; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = alt; + this.t1 = performance.now(); + this.altSample = false; + } + if (alt < -1000 || alt > 50000) { + return this.ncd; + } + if (p >= 22632) { + if (!this.altSample) { + this.alt0 = altL; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = altL; + this.t1 = performance.now(); + this.altSample = false; + } + if (altL < -1000 || altL > 50000) { + return this.ncd; + } + //SimVar.SetSimVarValue("L:74S_ADC_ALTL", "feet", altL); + const alt = altL; + return alt; + } + else { + if (!this.altSample) { + this.alt0 = altH; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = altH; + this.t1 = performance.now(); + this.altSample = false; + } + if (altH < -1000 || altH > 50000) { + return this.ncd; + } + //SimVar.SetSimVarValue("L:74S_ADC_ALTH", "feet", altH); + const alt = altH; + return alt; + } + }*/ + + calculateAlt(p) { + //const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(this.p0 / p) * this.mToFeet; + const altH = (this.h1 - ((this.r * this.temp1) / (this.g * this.mm)) * Math.log(p / this.p1)) * this.mToFeet; + const altL = (this.h0 + ((p / this.p0) ** ((-this.r * this.l0) / (this.g * this.mm)) - 1) * (this.temp0 / this.l0)) * this.mToFeet; + /*if (!this.altSample) { + this.alt0 = alt; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = alt; + this.t1 = performance.now(); + this.altSample = false; + } + if (alt < -1000 || alt > 50000) { + return this.ncd; + }*/ + if (p >= 22632) { + if (!this.altSample) { + this.alt0 = altL; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = altL; + this.t1 = performance.now(); + this.altSample = false; + } + if (altL < -1000 || altL > 50000) { + return this.ncd; + } + const alt = altL; + return alt; + } + else { + if (!this.altSample) { + this.alt0 = altH; + this.t0 = performance.now(); + this.altSample = true; + } + else { + this.alt1 = altH; + this.t1 = performance.now(); + this.altSample = false; + } + if (altH < -1000 || altH > 50000) { + return this.ncd; + } + const alt = altH; + return alt; + } + } + + /*calculateBaroCorrAlt(sat, p, baroSetting) { + const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(baroSetting / p) * this.mToFeet; + if (alt < -1000 || alt > 50000) { + return this.ncd; + } + return alt; + }*/ + + calculateBaroCorrAlt(p, baroSetting) { + const altcorr = ((p / baroSetting) ** ((-this.r * this.l0) / (this.g * this.mm)) - 1) * (this.temp0 / this.l0) * this.mToFeet; + if (altcorr < -1000 || altcorr > 50000) { + return this.ncd; + } + return altcorr; + } + + calculateAltRate() { + const vs = (this.alt1 - this.alt0) / (this.t1 - this.t0) * 60; + if (vs < -20000 || vs > 20000) { + return this.ncd; + } + return vs * 1000; + } +} diff --git a/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js b/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js new file mode 100644 index 000000000..3a0148e43 --- /dev/null +++ b/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js @@ -0,0 +1,41 @@ +class SaltyAirGroundLogic { + constructor() { + console.log('Salty Air/Ground logic loaded'); + } + init() { + return; + } + RMGisOnGround() { + let compression = SimVar.GetSimVarValue("CONTACT POINT COMPRESSION:1", "percent"); + if (compression > 5) { + return true; + } + else { + return false; + } + } + LMGisOnGround() { + let compression = SimVar.GetSimVarValue("CONTACT POINT COMPRESSION:2", "percent"); + if (compression > 5) { + return true; + } + else { + return false; + } + } + SaltyisOnGround(){ + let RMG = this.RMGisOnGround(); + let LMG = this.LMGisOnGround(); + if (!RMG && !LMG) { + return false; + } + else { + return true; + } + } + update() { + let ground = this.SaltyisOnGround(); + SimVar.SetSimVarValue("L:SALTY_GROUND", "bool", ground); + return ground; + } +} \ No newline at end of file diff --git a/salty-747/html_ui/Pages/Salty/SaltyBase.js b/salty-747/html_ui/Pages/Salty/SaltyBase.js index 6f7a43fcd..ba885c4f6 100644 --- a/salty-747/html_ui/Pages/Salty/SaltyBase.js +++ b/salty-747/html_ui/Pages/Salty/SaltyBase.js @@ -3,15 +3,27 @@ class SaltyBase { this.irs = new SaltyIRS(); this.pilots = new SaltyPilots(); this.jettison = new SaltyJettison(); + this.airground = new SaltyAirGroundLogic(); + //this.flightphase = new SaltyFlightPhaseLogic(); + this.adc = new SaltyADC(); + //this.fadec = new SaltyFADEC(); } init() { this.irs.init(); this.pilots.init(); this.jettison.init(); + this.airground.init(); + //this.flightphase.init(); + this.adc.init(); + //this.fadec.init(); } update(electricityIsAvail) { // alternatively may be able to use this.isElectricityAvailable() SimVar.GetSimVarValue("CIRCUIT GENERAL PANEL ON", "Bool") to get electricity status this.irs.update(electricityIsAvail); this.jettison.update(); + this.airground.update(); + //this.flightphase.update(); + this.adc.update(); + //this.fadec.update(); } } diff --git a/salty-747/html_ui/Pages/Salty/SaltyFADEC.js b/salty-747/html_ui/Pages/Salty/SaltyFADEC.js new file mode 100644 index 000000000..7fcef43e8 --- /dev/null +++ b/salty-747/html_ui/Pages/Salty/SaltyFADEC.js @@ -0,0 +1,103 @@ +class SaltyFADEC { + constructor() { + console.log('Salty FADEC loaded'); + + } + init() { + return; + } + getEAI(index) { + let eai = SimVar.GetSimVarValue(`ENGINE ANTI ICE:${index}`, "bool"); + return eai; + } + getBleed(index) { + let bleed = SimVar.GetSimVarValue(`BLEED AIR ENGINE:${index}`, "bool"); + return bleed; + } + getAlternate(index) { + SimVar.SetSimVarValue(`L:SALTY_ALT_ENG_MODE:${index}`, "bool", false); + let alternate = SimVar.GetSimVarValue(`L:SALTY_ALT_ENG_MODE:${index}`, "bool"); + return alternate; + } + getTLA(index) { + let tla = SimVar.GetSimVarValue(`GENERAL ENG THROTTLE LEVER POSITION:${index}`, "percent"); + SimVar.SetSimVarValue(`L:SALTY_TLA:${index}`, "percent", tla); + return tla; + } + getIdleN1(index){ + //let flaps = this.getFlaps(); + let eai = this.getEAI(index); + //let reverser = this.getReverser(index); + let idleN1 = 20.2; + if (eai /*|| flaps >= 20 || reverser*/) { + idleN1 = 29.2; + } + SimVar.SetSimVarValue(`L:SALTY_IDLE_N1:${index}`, "percent", idleN1); + return idleN1; + } + getMaxN1(index) { + //let eai = this.getEAI(index); + let bleed = this.getBleed(index); + let alternate = this.getAlternate(index); + let maxN1 = 98.5; + if (bleed) { + maxN1 -= 0.6; + } + if (alternate) { + maxN1 = 106.7; + } + //SimVar.SetGameVarValue(`ENG MAX N1${index}`, "percent", maxN1); + //let test = SimVar.GetGameVarValue(`ENG MAX N1${index}`, "percent"); + SimVar.SetSimVarValue("L:SALTY_MAX_N1_TEST", "percent", maxN1); + //console.log(test); + return maxN1; + } + setCommandedN1(index) { + //let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet"); + let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin"); + let theta2 = tat / 288.15; + let tla = this.getTLA(index); + let idleN1 = this.getIdleN1(index); + let maxN1 = this.getMaxN1(index); + let comN1 = Math.min(Math.max(idleN1, 20.2) + 86.5 * tla * 0.01, maxN1); + SimVar.SetSimVarValue(`L:SALTY_COM_N1:${index}`, "percent", comN1); + SimVar.SetSimVarValue(`TURB ENG COMMANDED N1:${index}`, "percent", comN1); + SimVar.SetSimVarValue(`TURB ENG THROTTLE COMMANDED N1:${index}`, "percent", comN1); + return; + } + update() { + + for (let i = 1; i < 5; i++){ + let index = i; + /*RegisterViewListener("JS_LISTENER_KEYEVENT"); + this.keyListener = RegisterViewListener('JS_LISTENER_KEYEVENT', () => { + Coherent.call('INTERCEPT_KEY_EVENT', 'INCREASE_THROTTLE', 0); + Coherent.call('INTERCEPT_KEY_EVENT', 'DECREASE_THROTTLE', 0); + Coherent.call('INTERCEPT_KEY_EVENT', 'THROTTLE_CUT', 0); + this.keyListener.on('keyIntercepted', keyEventName => { + if (keyEventName === 'THROTTLE_CUT') { + if (SimVar.GetSimVarValue("GPS OBS ACTIVE", "boolean")) { + SimVar.SetSimVarValue("K:GPS_OBS_SET", "degrees", SimVar.GetSimVarValue("NAV OBS:1", "degree")); + } + console.log('THROTTLE CUT INTERCEPTED'); + SimVar.SetSimVarValue("K:AXIS_THROTTLE_SET", "position 16K", 5995); + } + if (keyEventName === 'VOR1_OBI_DEC') { + if (SimVar.GetSimVarValue("GPS OBS ACTIVE", "boolean")) { + SimVar.SetSimVarValue("K:GPS_OBS_SET", "degrees", SimVar.GetSimVarValue("NAV OBS:1", "degree")); + } + } + }); + + });*/ + //this.getEAI(index); + //this.getBleed(index); + //this.getAlternate(index); + //this.getTLA(index); + //this.getIdleN1(index); + //this.getMaxN1(index); + this.setCommandedN1(index); + } + return; + } +} \ No newline at end of file diff --git a/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js b/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js index 347d7620d..5424c99bc 100644 --- a/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js +++ b/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js @@ -1606,7 +1606,7 @@ return; } this.currentAutoThrottleStatus = AutoThrottleModeState.THR; - SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 80); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 80); SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1); } else if (mcpAlt < altitude) { @@ -1652,7 +1652,7 @@ activateThrustRefMode() { this.currentAutoThrottleStatus = AutoThrottleModeState.THRREF; Coherent.call("GENERAL_ENG_THROTTLE_MANAGED_MODE_SET", ThrottleMode.CLIMB); - SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 90); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 90); SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1); } @@ -1666,8 +1666,9 @@ activateIdleMode() { this.currentAutoThrottleStatus = AutoThrottleModeState.IDLE; - SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 23.2); - SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 23.2); + //SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1); + SimVar.SetSimVarValue("K:THROTTLE_CUT", "bool", 1); } setAPSpeedHoldMode() { diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js index 39376b3ce..a603c454d 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js @@ -10,23 +10,74 @@ var Boeing; getText(phase, mode) { let text = "-"; - let alt = Simplane.getAltitude(); - let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number"); + //let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool"); //Simplane.getIsGrounded(); + //let mode = (ground ? SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number") : SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number")); + //let alt = Simplane.getAltitude(); + //let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number"); - if (phase <= FlightPhase.FLIGHT_PHASE_CLIMB) + /*if (phase <= FlightPhase.FLIGHT_PHASE_CLIMB) text = `${(alt <= thrRedAlt && phase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) ? "TO" : "CLB"}${(mode == 1 || mode == 2) ? " - " + mode : ""}`; - else if (phase <= FlightPhase.FLIGHT_PHASE_CRUISE) - text = `CRZ`; - - return text; + */ + if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool") == false) { + text = "-"; + return text; + } + else if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool") == true) { + /*let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number");*/ + if (mode == 0){ + if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool") == true) { + let AT = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); + text = "D-TO " + "+" + AT + "C"; + return text; + } + else { + text = "TO"; + return text; + } + } + else if (mode == 1 || mode == 2){ + if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool") == true) { + let AT = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); + text = "D-TO " + mode + "+" + AT + "C"; + return text; + } + else { + text = "TO - " + mode; + return text; + } + } + } + else { + /*let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number");*/ + if (mode == 0){ + text = "CLB"; + return text; + } + else if (mode == 1 || mode == 2){ + text = "CLB - " + mode; + return text; + } + else if (mode == 3) { + text = "GA"; + return text; + } + else if (mode == 4) { + text = "CON"; + return text; + } + else { + text = "CRZ"; + return text; + } + } } - update() { - let phase = Simplane.getCurrentFlightPhase(); - let mode = 0; + let phase = Simplane.getCurrentFlightPhase(); //SimVar.GetSimVarValue("L:SALTY_PHASE", "Enum") ; //Simplane.getCurrentFlightPhase(); + //let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool") ; //Simplane.getIsGrounded(); let alt = Simplane.getAltitude(); let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number"); - if (phase <= FlightPhase.FLIGHT_PHASE_TAKEOFF && alt < thrRedAlt) { + var mode; + if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && alt < thrRedAlt) { mode = Simplane.getEngineThrustTakeOffMode(0); } else { @@ -94,14 +145,13 @@ var Boeing; this.bar = _bar; this.gauge = _gauge; this.cockpitSettings = SimVar.GetGameVarValue("", "GlassCockpitSettings"); - this.refreshValue(0, 0, 0, 0, true); + this.refreshValue(0, 0, 0, true); } update(_deltaTime) { var leverPos = Simplane.getFlapsHandleIndex(); var flapsPercent = ((SimVar.GetSimVarValue("TRAILING EDGE FLAPS LEFT PERCENT", "percent") + SimVar.GetSimVarValue("TRAILING EDGE FLAPS RIGHT PERCENT", "percent")) * 0.5) * 0.01; - var leadingEdgePercent = ((SimVar.GetSimVarValue("LEADING EDGE FLAPS LEFT PERCENT", "percent") + SimVar.GetSimVarValue("LEADING EDGE FLAPS RIGHT PERCENT", "percent")) * 0.5) * 0.01; var flapsAngle = (SimVar.GetSimVarValue("TRAILING EDGE FLAPS LEFT ANGLE", "degrees") + SimVar.GetSimVarValue("TRAILING EDGE FLAPS RIGHT ANGLE", "degrees")) * 0.5; - this.refreshValue(leverPos, flapsPercent, flapsAngle, leadingEdgePercent); + this.refreshValue(leverPos, flapsPercent, flapsAngle); if ((this.currentAngle <= 0) && (this.timeout > 0)) { this.timeout -= _deltaTime; if (this.timeout <= 0) { @@ -111,11 +161,10 @@ var Boeing; } } } - refreshValue(_leverPos, _realFlapsPercent, _realFlapsAngle, _leadingEdgeFlapsPercent, _force = false) { - if ((_leverPos != this.currentLeverPosition) || (_realFlapsPercent != this.currentPercent) || (_realFlapsAngle != this.currentAngle) || (_leadingEdgeFlapsPercent != this.currentLeadingEdgePercent) || _force) { + refreshValue(_leverPos, _realFlapsPercent, _realFlapsAngle, _force = false) { + if ((_leverPos != this.currentLeverPosition) || (_realFlapsPercent != this.currentPercent) || (_realFlapsAngle != this.currentAngle) || _force) { this.currentLeverPosition = _leverPos; this.currentPercent = _realFlapsPercent; - this.currentLeadingEdgePercent = _leadingEdgeFlapsPercent; this.currentAngle = _realFlapsAngle; var targetAngle = this.flapsLeverPositionToAngle(this.currentLeverPosition); var barTop = 0; @@ -137,25 +186,11 @@ var Boeing; this.valueText.setAttribute("y", markerYStr - 2); } if (this.gauge != null) { - //Normalises non-linear flap settings for gauge. - const seg1 = barHeight * this.currentLeadingEdgePercent / 6; - const seg2 = barHeight * Math.min(this.currentPercent, 0.333); - const seg3 = Math.min(barHeight * 0.5 * Math.max(this.currentPercent - 0.333, 0), 22); - const seg4 = barHeight * Math.max(this.currentPercent - 0.667, 0); - var height = seg1 + seg2 + seg3 + seg4; - + var height = barHeight * this.currentPercent; this.gauge.setAttribute("height", height.toString()); } if (this.rootElement != null) { - if (this.currentLeverPosition == 0) { - this.rootElement.setAttribute("class", (Math.round(_leadingEdgeFlapsPercent * 100) == Math.round(0)) ? "static" : "transit"); - } - else if (this.currentLeverPosition == 1) { - this.rootElement.setAttribute("class", (Math.round(_leadingEdgeFlapsPercent * 100) == Math.round(100) && Math.round(this.currentAngle) == Math.round(0)) ? "static" : "transit"); - } - else { - this.rootElement.setAttribute("class", (Math.round(this.currentAngle) == Math.round(targetAngle)) ? "static" : "transit"); - } + this.rootElement.setAttribute("class", (Math.round(this.currentAngle) == Math.round(targetAngle)) ? "static" : "transit"); } if (this.currentAngle <= 0) { this.timeout = Boeing.FlapsDisplay.TIMEOUT_LENGTH; @@ -173,9 +208,9 @@ var Boeing; flapsAngleToPercentage(_angle) { const angToPercent = { 0: 0, - 1: 0.167, - 5: 0.333, - 10: 0.5, + 1: 0.033, + 5: 0.167, + 10: 0.333, 20: 0.667, 25: 0.833, 30: 1 diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js index 3b18cc110..8b6575215 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js @@ -121,12 +121,12 @@ var B747_8_LowerEICAS_Engine; createN2GaugeDefinition() { var definition = new B747_8_EICAS_Common.GaugeDefinition(); definition.getValue = this.eicas.getN2Value.bind(this, this.engineId); - definition.maxValue = 1100; + definition.maxValue = 1180; definition.valueBoxWidth = 70; definition.valueTextPrecision = 0; definition.barHeight = 40; definition.type = 2; - definition.addLineDefinition(1100, 32, "gaugeMarkerDanger"); + definition.addLineDefinition(1180, 32, "gaugeMarkerDanger"); definition.addLineDefinition(0, 40, "gaugeMarkerNormal", this.eicas.getN2IdleValue.bind(this)); return definition; } @@ -140,10 +140,19 @@ var B747_8_LowerEICAS_Engine; return definition; } getFFValue() { + /*var mach = SimVar.GetSimVarValue("AIRSPEED MACH", "mach"); + var theta2 = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "rankine") / 518.67; + var P = SimVar.GetSimVarValue("AMBIENT PRESSURE", "hectopascal"); + var P0 = 1013.25; + var delta = P / P0; + var delta2 = delta * ((1 + 0.2 * (mach ** 2)) ** 3.5); + SimVar.SetSimVarValue("L:SALTY_THETA2", "number", theta2); + SimVar.SetSimVarValue("L:SALTY_DELTA2", "number", delta2); + SimVar.SetSimVarValue("L:SALTY_DELTA", "number", delta);*/ if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) { - return (SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "kilogram") / 100); + return SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "kilogram") / 100; } - return (SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "pounds") / 100); + return SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "pounds") / 100; } getOilPValue() { return SimVar.GetSimVarValue("ENG OIL PRESSURE:" + this.engineId, "psi"); diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js index 9988fb1dc..84a66a747 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js @@ -7,6 +7,7 @@ var B747_8_LowerEICAS_Fuel; this.allFuelComponents = new Array(); this.gallonToMegagrams = 0; this.gallonToMegapounds = 0; + this.units = true; this.isInitialised = false; } get templateID() { return "B747_8LowerEICASFuelTemplate"; } @@ -136,6 +137,17 @@ var B747_8_LowerEICAS_Fuel; } } update(_deltaTime) { + const storedUnits = SaltyDataStore.get("OPTIONS_UNITS", "KG"); + switch (storedUnits) { + case "KG": + this.units = true; + break; + case "LBS": + this.units = false; + break; + default: + this.units = true; + } if (!this.isInitialised) { return; } @@ -154,7 +166,7 @@ var B747_8_LowerEICAS_Fuel; } } if (this.unitTextSVG) { - if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) { + if (this.units) { this.unitTextSVG.textContent = "KGS X 1000"; } else { @@ -192,14 +204,14 @@ var B747_8_LowerEICAS_Fuel; } getTotalFuelInMegagrams() { let factor = this.gallonToMegapounds; - if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) { + if (this.units) { factor = this.gallonToMegagrams; } return (SimVar.GetSimVarValue("FUEL TOTAL QUANTITY", "gallons") * factor); } getMainTankFuelInMegagrams(_index) { let factor = this.gallonToMegapounds; - if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) { + if (this.units) { factor = this.gallonToMegagrams; } return (SimVar.GetSimVarValue("FUELSYSTEM TANK QUANTITY:" + _index, "gallons") * factor); diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js index 2e5ccac73..eaff2ad69 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js @@ -138,7 +138,7 @@ var B747_8_UpperEICAS; } updateReferenceThrust() { - const MAX_POSSIBLE_THRUST_DISP = 1060; + const MAX_POSSIBLE_THRUST_DISP = 1067; for (var i = 1; i < 5; ++i) { this.engRevStatus[i] = SimVar.GetSimVarValue("TURB ENG REVERSE NOZZLE PERCENT:" + i, "percent"); if (this.engRevStatus[i] > 1) { @@ -146,8 +146,13 @@ var B747_8_UpperEICAS; this.refThrust[i].setAttribute("x", (i * 15) - 2 + "%"); this.refThrustDecimal[i].style.visibility = "hidden"; } + else if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) { + this.refThrust[i].textContent = Math.min(SimVar.GetSimVarValue("L:SALTY_REF_N1", "percent") * 10, MAX_POSSIBLE_THRUST_DISP).toFixed(0); + this.refThrust[i].setAttribute("x", (i * 15) - 1 + "%"); + this.refThrustDecimal[i].style.visibility = "visible"; + } else { - this.refThrust[i].textContent = Math.min((Simplane.getEngineThrottleMaxThrust(i - 1) * 10), MAX_POSSIBLE_THRUST_DISP).toFixed(0); + this.refThrust[i].textContent = "----"; this.refThrust[i].setAttribute("x", (i * 15) - 1 + "%"); this.refThrustDecimal[i].style.visibility = "visible"; } @@ -232,12 +237,18 @@ var B747_8_UpperEICAS; return Math.abs(Simplane.getEngineThrottleCommandedN1(this.engine - 1)) * 10; } getN1LimitValue() { - return Math.abs(Simplane.getEngineThrottleMaxThrust(this.engine - 1)) * 10; + let N1 = "--.-"; + if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) { + return N1 = Math.abs(Simplane.getEngineThrottleMaxThrust(this.engine - 1)) * 10; + } + else { + return N1; + } } createEGTGaugeDefinition(_engine) { var definition = new B747_8_EICAS_Common.GaugeDefinition(); definition.getValue = this.getEGTValue.bind(this); - definition.maxValue = 1000; + definition.maxValue = 1060; definition.valueBoxWidth = 70; definition.barHeight = 40; definition.type = 1; diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html index 39aba467e..d8cb1e7f1 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html @@ -38,6 +38,10 @@ + + + + diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js index fcce266fc..2819e792b 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js @@ -51,7 +51,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { this._takeOffN1TempRow = [70, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, -10, -20, -30, -40, -50]; this._thrustTakeOffMode = 0; this._thrustCLBMode = 0; - this._thrustTakeOffTemp = 20; + //this._thrustTakeOffTemp = undefined; this._lastUpdateAPTime = NaN; this.refreshFlightPlanCooldown = 0; this.updateAutopilotCooldown = 0; @@ -88,7 +88,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { this.sentMessages = []; this.units; this.useLbs; - this.atcComm = { + this.atcComm = { estab: false, loggedTo: "", nextCtr: "", @@ -135,7 +135,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { finResFuel: "", contFuel: "", route_distance: "", - rteUplinkReady: false, + rteUplinkReady: false, perfUplinkReady: false } this.fixInfo = []; @@ -152,7 +152,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { } } get templateID() { return "B747_8_FMC"; } - + // Property for EXEC handling get fpHasChanged() { return this._fpHasChanged; @@ -189,13 +189,14 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { // Maybe this gets rid of slowdown on first fpln mod this.flightPlanManager.copyCurrentFlightPlanInto(1); this.timer = 0; - let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius"); - this._thrustTakeOffTemp = Math.ceil(oat / 10) * 10; + //let oat = Math.round(SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius")); + //this._thrustTakeOffTemp = Math.ceil(oat / 10) * 10; + SimVar.SetSimVarValue("L:SALTY_ASSUMED_TEMP", "number", 15); this.aircraftType = Aircraft.B747_8; this.maxCruiseFL = 430; this.saltyBase = new SaltyBase(); - this.saltyModules = new SaltyModules(); this.saltyBase.init(); + SimVar.SetSimVarValue("K:YAW_DAMPER_ON", "bool", 1); if (SaltyDataStore.get("OPTIONS_UNITS", "KG") == "KG") { this.units = true; this.useLbs = false; @@ -205,7 +206,12 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { } this.updateVREF30(); this.onInit = () => { - B747_8_FMC_InitRefIndexPage.ShowPage1(this); + if (Simplane.getCurrentFlightPhase() === FlightPhase.FLIGHT_PHASE_CLIMB) { + FMCThrustLimPage.ShowPage1(this); + } + else { + B747_8_FMC_InitRefIndexPage.ShowPage1(this); + } }; this.onLegs = () => { B747_8_FMC_LegsPage.ShowPage1(this); @@ -235,13 +241,13 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { this.onProg = () => { B747_8_FMC_ProgPage.ShowPage1(this); }; - this.onAtc = () => { + this.onAtc = () => { FMC_ATC_Index.ShowPage(this); }; - this.onFmcComm = () => { + this.onFmcComm = () => { FMC_COMM_Index.ShowPage(this); }; - this.onMenu = () => { + this.onMenu = () => { FMC_Menu.ShowPage(this); }; this.onHold = () => { @@ -277,7 +283,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { this.timer = 0; } this.saltyBase.update(this.isElectricityAvailable()); - this.saltyModules.update(_deltaTime); + //this.saltyBase.update(electricityIsAvail); if (SaltyDataStore.get("OPTIONS_UNITS", "KG") == "KG") { this.units = true; this.useLbs = false; @@ -563,7 +569,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { let machCross = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mach); let machMode = Simplane.getAutoPilotMachModeActive(); let isSpeedIntervention = SimVar.GetSimVarValue("L:AP_SPEED_INTERVENTION_ACTIVE", "number"); - //When flaps 1 - commands UP + 20 or speed transition, whichever higher + //When flaps 1 - commands UP + 20 or speed transition, whichever higher if (flapsHandleIndex <= 1 && alt <= speedTrans) { speed = Math.max(flapsUPmanueverSpeed + 20, 250); } @@ -597,7 +603,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { /* Returns VNAV cruise speed target in accordance with active VNAV mode */ getCrzManagedSpeed(cduSpeedRequest) { - let flapsUPmanueverSpeed = SimVar.GetSimVarValue("L:SALTY_VREF30", "knots") + 80; + let flapsUPmanueverSpeed = SimVar.GetSimVarValue("L:SALTY_VREF30", "knots") + 80; let mach = this.getCrzMach(); let machlimit = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mach); let machMode = Simplane.getAutoPilotMachModeActive(); @@ -834,8 +840,8 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { B747_8_FMC_SelectWptPage.ShowPage(this, waypoints, callback); }); } - getClimbThrustN1(temperature, altitude) { - let lineIndex = 0; + /*getClimbThrustN1(temperature, altitude) { + /*let lineIndex = 0; for (let i = 0; i < this._climbN1TempRow.length; i++) { lineIndex = i; if (temperature > this._climbN1TempRow[i]) { @@ -846,6 +852,11 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { rowIndex = Math.max(0, rowIndex); rowIndex = Math.min(rowIndex, this._climbN1Table[0].length - 1); return this._climbN1Table[lineIndex][rowIndex]; + let targetCN1 = 90.34; + let TAT = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "rankine"); + let T0 = 518.67; + let theta2 = TAT / T0; + return targetCN1 * theta2 ** 0.5; } getTakeOffThrustN1(temperature, airportAltitude) { let lineIndex = 0; @@ -859,7 +870,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { rowIndex = Math.max(0, rowIndex); rowIndex = Math.min(rowIndex, this._takeOffN1Table[0].length - 1); return this._takeOffN1Table[lineIndex][rowIndex]; - } + }*/ getThrustTakeOffMode() { return this._thrustTakeOffMode; } @@ -873,42 +884,160 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { return this._thrustCLBMode; } setThrustCLBMode(m) { - if (m >= 0 && m <= 2) { + if (m >= 0 && m <= 5) { this._thrustCLBMode = m; SimVar.SetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number", this._thrustCLBMode); } } getThrustTakeOffTemp() { - return this._thrustTakeOffTemp; + return SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); } setThrustTakeOffTemp(s) { let v = parseFloat(s); if (isFinite(v)) { - let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius"); - if (v >= oat && v < 80) { - this._thrustTakeOffTemp = v; - return true; + let oat = Math.round(SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius")); + if (v >= oat && v < 100) { + SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", true); + return SimVar.SetSimVarValue("L:SALTY_ASSUMED_TEMP", "number", v); } this.showErrorMessage("OUT OF RANGE"); return false; } - this.showErrorMessage(this.defaultInputErrorMessage); - return false; - } - getThrustTakeOffLimit() { - /*let airport = this.flightPlanManager.getOrigin(); - if (airport) { - let altitude = airport.infos.coordinates.alt; - let n1 = this.getTakeOffThrustN1(this.getThrustTakeOffTemp(), altitude) - this.getThrustTakeOffMode() * 10; - return n1; - }*/ - return 85; + else if (v==FMCMainDisplay.clrValue) { + return SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", false); + } + //this.showErrorMessage(this.defaultInputErrorMessage); + //return false; } + + getThrustTakeOffLimit () { + let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number"); + let temp = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin"); + let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet"); + let atm = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); + let isatemp = Math.round(288.15 - 2 * (alt / 1000)); + let theta = 288.15 / (atm + 273.15); + if (mode === 0) { + let refN1 = 97.9; + /*if (alt < 0) { + refN1 += alt * 0.00155; + } + else if (0 <= alt )*/ + let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5; + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + return N1; + } + if (mode === 1) { + let refN1 = 93.6; + let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5 + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + return N1; + } + if (mode === 2) { + let refN1 = 89.4; + let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5 + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + return N1; + } + } + getThrustClimbLimit() { - /*let altitude = Simplane.getAltitude(); - let temperature = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius");*/ - return 80; - } + let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number"); + let mach = SimVar.GetSimVarValue("AIRSPEED MACH", "number"); + let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin"); + let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin"); + let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet"); + let isa = Math.max(288.15 - 2 * (alt / 1000), 216.65); + let thetabrk = 303.15 / 288.15; + let thetamax = thetabrk * (1 + 0.2 * mach ** 2); + let theta = (oat / isa) * (1 + 0.2 * mach ** 2); + //if (theta) + if (mode === 0) { + //let N1 = 90.38; + let refN1 = 88.00; + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + if (mode === 1) { + let refN1 = 84.74; + if (alt > 9999) { + refN1 += 0.000652 * (alt - 10000); + refN1 = Math.min(refN1, 88.00); + } + if (alt > 14999) { + refN1 = 88.00; + this.setThrustCLBMode(0); + } + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + if (mode === 2) { + let refN1 = 81.48; + if (alt > 9999) { + refN1 += 0.001304 * (alt - 10000); + refN1 = Math.min(refN1, 88.00); + } + if (alt > 14999) { + refN1 = 88.00; + this.setThrustCLBMode(0); + } + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + if (mode === 3) { + let refN1 = 91.87; + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + if (mode === 4) { + let refN1 = 92.56; + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + if (mode === 5) { + let refN1 = 90.45; + let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100); + SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1); + let tla = (N1 - 20.2) / 0.798 ; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return N1; + } + } + /*refreshThrustLimit() { + let N1 = SimVar.GetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent"); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + return; + }*/ updateAutopilot() { let now = performance.now(); let dt = now - this._lastUpdateAPTime; @@ -928,14 +1057,19 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { } this._apHasDeactivated = !currentApMasterStatus && this._previousApMasterStatus; this._previousApMasterStatus = currentApMasterStatus; - if (this.currentFlightPhase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) { - let n1 = this.getThrustTakeOffLimit() / 100; - SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "number", n1); + /*if (this.currentFlightPhase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) { + let N1 = this.getThrustTakeOffLimit(); //* 100; + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); } + else { + let N1 = this.getThrustClimbLimit(); + SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1); + }*/ + //this.refreshThrustLimit(); if (!this._navModeSelector) { this._navModeSelector = new CJ4NavModeSelector(this.flightPlanManager); } - + //RUN VNAV ALWAYS if (this._vnav === undefined) { this._vnav = new WT_BaseVnav(this.flightPlanManager, this); @@ -989,7 +1123,6 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { if (altitude > 400) { this._pendingVNAVActivation = false; SimVar.SetSimVarValue("L:WT_CJ4_VNAV_ON", "bool", 1); - this._navModeSelector.currentAutoThrottleStatus = AutoThrottleModeState.THRREF; this._navModeSelector.onNavChangedEvent('VNAV_PRESSED'); } } @@ -1030,10 +1163,9 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { //Sets CLB Thrust when passing thrust reduction altitude let alt = Simplane.getAltitude(); let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number"); - let n1 = 85; - if (alt > thrRedAlt) { - n1 = this.getThrustClimbLimit() / 100; - SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "number", n1); + if (alt >= thrRedAlt) { + N1 = this.getThrustClimbLimit() / 100; + SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", N1); } } } @@ -1047,18 +1179,21 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { if (this.getIsVNAVActive()) { let speed = this.getCrzManagedSpeed(); this.setAPManagedSpeed(speed, Aircraft.B747_8); + this.setThrustCLBMode(5); } } else if (this.currentFlightPhase === FlightPhase.FLIGHT_PHASE_DESCENT) { if (this.getIsVNAVActive()) { let speed = this.getDesManagedSpeed(); this.setAPManagedSpeed(speed, Aircraft.B747_8); + this.setThrustCLBMode(5); } } else if (this.currentFlightPhase === FlightPhase.FLIGHT_PHASE_APPROACH) { if (this.getIsVNAVActive()) { let speed = this.getDesManagedSpeed(); this.setAPManagedSpeed(speed, Aircraft.B747_8); + this.setThrustCLBMode(3); } } this.updateAutopilotCooldown = this._apCooldown; @@ -1084,7 +1219,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { if (vSpeed > 400) { if (mcpAlt - alt <= 900 && mcpAlt - alt >= 200) { SimVar.SetSimVarValue("L:SALTY_ALT_ALERT", "bool", 1); - } + } } else if (vSpeed < -400) { if (alt - mcpAlt <= 900 && alt - mcpAlt >= 200) { @@ -1103,7 +1238,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC { const m = parseInt(value.slice(2, 4)); return h.toFixed(0).padStart(2, "0") + ":" + m.toFixed(0).padStart(2, "0"); } - + refreshGrossWeight(_force = false) { let gw = 0; let isInMetric = BaseAirliners.unitIsMetric(Aircraft.A320_NEO); diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js index e9366a945..9c5510ec4 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js @@ -88,15 +88,22 @@ class FMCTakeOffPage { }; let thrustCell = "---"; let selectedTemp = fmc.getThrustTakeOffTemp(); - let mode = Simplane.getEngineThrustTakeOffMode(0); + let mode = Simplane.getEngineThrustTakeOffMode(); let modeText = ""; if (mode === 1) { - modeText = "-1"; + modeText = "\xa01"; } if (mode === 2) { - modeText = "-2"; + modeText = "\xa02"; + } + if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) { + if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool")) { + thrustCell = selectedTemp.toFixed(0) + "°\xa0D-TO" + modeText; + } + else { + thrustCell = "---\xa0\xa0TO" + modeText; + } } - thrustCell = selectedTemp.toFixed(0) + "°\xa0\xa0\xa0TO" + modeText; let cgCell = "--%"; if (isFinite(fmc.zeroFuelWeightMassCenter)) { cgCell = fmc.zeroFuelWeightMassCenter.toFixed(1) + "%"; @@ -166,20 +173,24 @@ class FMCTakeOffPage { let limitTakeoffGrossWeightCell = ""; //Acceleration Height Settable - let accelHtCell = ""; - let airportElevation = 0; + let accelHtCell = ""; //SaltyDataStore.get("TO_ACC_HT", 1000); + /*let airportElevation = 0; let origin = fmc.flightPlanManager.getOrigin(); - if (origin) { - if(origin.altitudeinFP) { - airportElevation = Math.round(origin.altitudeinFP / 10) * 10; - } - } - let accelHt = SimVar.GetSimVarValue("L:AIRLINER_ACC_ALT", "number") - airportElevation; + if(origin) { + airportElevation = origin; + } + else if (Simplane.getIsGrounded()) { + airportElevation = SimVar.GetSimVarValue("GROUND ALTITUDE", "feet"); + }*/ + let accelHt = SaltyDataStore.get("TO_ACCEL_HT", 1000); //SimVar.GetSimVarValue("L:AIRLINER_ACC_ALT", "number") - airportElevation; + fmc.trySetAccelerationAltitude(accelHt); if (accelHt) { - accelHtCell = accelHt.toFixed(0) + "FT"; + parseInt(accelHt); + accelHtCell = accelHt + "FT"; } fmc.onRightInput[1] = () => { let value = fmc.inOut; + SaltyDataStore.set("TO_ACCEL_HT", value); fmc.clearUserInput(); fmc.trySetAccelerationAltitude(value, (result) => { if (result) { @@ -198,12 +209,15 @@ class FMCTakeOffPage { if (mode === 2) { armedCLBThrust += "-2"; } - let thrRedHt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number") - airportElevation; + let thrRedHt = SaltyDataStore.get("TO_THR_REDUCTION", 1500); //SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number") - airportElevation; + fmc.trySetThrustReductionAltitude(thrRedHt); if (thrRedHt) { - thrRedCell = armedCLBThrust + "\xa0\xa0\xa0\xa0" + thrRedHt.toFixed(0) + "FT"; + parseInt(thrRedHt); + thrRedCell = armedCLBThrust + "\xa0\xa0\xa0\xa0" + thrRedHt + "FT"; } fmc.onRightInput[2] = () => { let value = fmc.inOut; + SaltyDataStore.set("TO_THR_REDUCTION", value); fmc.clearUserInput(); fmc.trySetThrustReductionAltitude(value, (result) => { if (result) { diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js index bf2bfaf36..4c1e908ef 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js @@ -1,63 +1,143 @@ class FMCThrustLimPage { static ShowPage1(fmc) { fmc.clearDisplay(); - let selectedTempCell = fmc.getThrustTakeOffTemp() + "°"; + FMCThrustLimPage._timer = 0; + fmc.pageUpdate = () => { + FMCThrustLimPage._timer++; + if (FMCThrustLimPage._timer >= 50) { + /*if (fmc.flightPhaseHasChangedToCruise === true) { + fmc.flightPhaseHasChangedToCruise = false; + fmc.setThrustCLBMode(5); + } + else if (fmc.flightPhaseHasChangedToDescent === true) { + fmc.flightPhaseHasChangedToDescent = false; + fmc.setThrustCLBMode(5); + FMCThrustLimPage.ShowPage1(fmc); + } + else if (fmc.flightPhaseHasChangedToGoAround === true) { + fmc.setThrustCLBMode(3); + FMCThrustLimPage.ShowPage1(fmc); + } + else { + FMCThrustLimPage.ShowPage1(fmc); + }*/ + FMCThrustLimPage.ShowPage1(fmc); + } + } + let assumedTempSet = SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool"); + let selectedTempCell = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); //fmc.getThrustTakeOffTemp(); + if (!assumedTempSet) { + selectedTempCell = "--"; + } fmc.onLeftInput[0] = () => { let value = fmc.inOut; fmc.clearUserInput(); if (fmc.setThrustTakeOffTemp(value)) { + SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", true); + FMCThrustLimPage.ShowPage1(fmc); + } + else if (value==FMCMainDisplay.clrValue) { + SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", false); FMCThrustLimPage.ShowPage1(fmc); } }; - let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%"; + //let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin"); + //let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin"); + //let theta = tat / oat; + //let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%"; + //let clbN1Cell = fmc.getThrustClimbLimit().toFixed(1) + "%"; let oatValue = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius"); let oatCell = oatValue.toFixed(0) + "°C"; let thrustTOMode = fmc.getThrustTakeOffMode(); let thrustClimbMode = fmc.getThrustCLBMode(); + let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool"); //Simplane.getIsGrounded(); fmc.onLeftInput[1] = () => { - fmc.setThrustTakeOffMode(0); - fmc.setThrustCLBMode(0); - FMCThrustLimPage.ShowPage1(fmc); + if (ground) { + fmc.setThrustTakeOffMode(0); + fmc.setThrustCLBMode(0); + SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(0)); + FMCThrustLimPage.ShowPage1(fmc); + } + else { + fmc.setThrustCLBMode(3); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(0)); + FMCThrustLimPage.ShowPage1(fmc); + } + }; fmc.onLeftInput[2] = () => { - fmc.setThrustTakeOffMode(1); - fmc.setThrustCLBMode(1); - FMCThrustLimPage.ShowPage1(fmc); + if (ground) { + fmc.setThrustTakeOffMode(1); + fmc.setThrustCLBMode(1); + SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(1)); + FMCThrustLimPage.ShowPage1(fmc); + } + else { + fmc.setThrustCLBMode(4); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(1)); + FMCThrustLimPage.ShowPage1(fmc); + } }; fmc.onLeftInput[3] = () => { - fmc.setThrustTakeOffMode(2); - fmc.setThrustCLBMode(2); - FMCThrustLimPage.ShowPage1(fmc); + if (ground) { + fmc.setThrustTakeOffMode(2); + fmc.setThrustCLBMode(2); + SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(2)); + FMCThrustLimPage.ShowPage1(fmc); + } + else { + fmc.setThrustCLBMode(5); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(5)); + FMCThrustLimPage.ShowPage1(fmc); + } }; fmc.onRightInput[1] = () => { fmc.setThrustCLBMode(0); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(0)); FMCThrustLimPage.ShowPage1(fmc); }; fmc.onRightInput[2] = () => { fmc.setThrustCLBMode(1); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(1)); FMCThrustLimPage.ShowPage1(fmc); }; fmc.onRightInput[3] = () => { fmc.setThrustCLBMode(2); + SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true); + //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(2)); FMCThrustLimPage.ShowPage1(fmc); }; + //let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%"; + //let clbN1Cell = fmc.getThrustClimbLimit().toFixed(1) + "%"; + let N1cell; fmc.setTemplate([ ["THRUST LIM"], - ["SEL", "TO N1", "OAT"], - [selectedTempCell, toN1Cell, oatCell], + [(ground ? "SEL" : ""), (ground ? "TO N1" : (thrustClimbMode === 3 ? "GA N1" : (thrustClimbMode === 4 ? "CON N1" : (thrustClimbMode === 5 ? "CRZ N1" : (thrustClimbMode === 0 ? "CLB N1" : (thrustClimbMode === 1 ? "CLB 1 N1" : "CLB 2 N1")))))), (ground ? "OAT" : "")], + [(ground ? selectedTempCell + "°": ""),(ground ? N1cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%" : N1cell = fmc.getThrustClimbLimit().toFixed(1) + "%"), (ground ? oatCell : "")], + [""], + [(ground ? (thrustTOMode === 0 ? "<TO <SEL>" : "<TO") : (thrustClimbMode === 3 ? "<GA <SEL>" : "<GA")), (ground ? (thrustClimbMode === 0 ? "<ARM> CLB>" : "CLB>") : (thrustClimbMode === 0 ? "<SEL> CLB>" : "CLB>"))], + [(ground ? "TO 1" : "")], + [(ground ? (thrustTOMode === 1 ? "<-10% <SEL>" : "<-10%") : (thrustClimbMode === 4 ? "<CON <SEL>" : "<CON")), (ground ? (thrustClimbMode === 1 ? "<ARM> CLB 1>" : "CLB 1>") : (thrustClimbMode === 1) ? "<SEL> CLB 1>" : "CLB 1>")], + [(ground ? "TO 2" : "")], + [(ground ? (thrustTOMode === 2 ? "<-20% <SEL>" : "<-20%") : (thrustClimbMode === 5 ? "<CRZ <SEL>" : "<CRZ")), (ground ? (thrustClimbMode === 2 ? "<ARM> CLB 2>" : "CLB 2>") : (thrustClimbMode === 2) ? "<SEL> CLB 2>" : "CLB 2>")], [""], - ["\" : ""), (thrustClimbMode === 0 ? " " : "") + "CLB>"], - ["TO 1"], - ["\<-10%" + (thrustTOMode === 1 ? " " : ""), (thrustClimbMode === 1 ? " " : "") + "CLB 1>"], - ["TO 2"], - ["\<-20%" + (thrustTOMode === 2 ? " " : ""), (thrustClimbMode === 2 ? " " : "") + "CLB 2>"], [""], - ["\"] + ["<INDEX", (ground ? "TAKEOFF>" : "APPROACH>")] ]); fmc.onLeftInput[5] = () => { B747_8_FMC_InitRefIndexPage.ShowPage1(fmc); }; - fmc.onRightInput[5] = () => { FMCTakeOffPage.ShowPage1(fmc); }; + fmc.onRightInput[5] = () => { (ground ? FMCTakeOffPage.ShowPage1(fmc) : FMCApproachPage.ShowPage1(fmc)); }; } } -//# sourceMappingURL=B747_8_FMC_ThrustLimPage.js.map \ No newline at end of file +//# sourceMappingURL=B747_8_FMC_ThrustLimPage.js.map \ No newline at end of file diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js index 177b9790c..53494d948 100644 --- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js +++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js @@ -61,7 +61,7 @@ class FMC_MAINT_AirlinePol { } /* RSK3 */ - fmc.onLeftInput[2] = () => { + fmc.onRightInput[2] = () => { let value = fmc.inOut; fmc.clearUserInput(); SaltyDataStore.set("TO_CLB_AT", value); @@ -69,7 +69,7 @@ class FMC_MAINT_AirlinePol { } /* LSK4 */ - fmc.onLeftInput[2] = () => { + fmc.onLeftInput[3] = () => { let value = fmc.inOut; fmc.clearUserInput(); SaltyDataStore.set("TO_THR_REDUCTION", value); @@ -77,7 +77,7 @@ class FMC_MAINT_AirlinePol { } /* RSK4 */ - fmc.onLeftInput[2] = () => { + fmc.onRightInput[3] = () => { let value = fmc.inOut; fmc.clearUserInput(); SaltyDataStore.set("TO_CLB_BY", value);