diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 9c2e03788eed..b568648c8898 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -83,6 +83,7 @@ 1. [EFB] Added missing localization for SimBridge related settings in SimOptions page - @implasmatbh (Plasma) 1. [FWC] Implement non-cancellable master warning for overspeed and gear not down - @tracernz (Mike) 1. [EFB] Checklist restructure to add more capabilities and use json configs - @frankkopp (Frank Kopp) +1. [ATHR/FADEC] Improved reverse thrust limit - @aguther (Andreas Guther) ## 0.11.0 diff --git a/fbw-a32nx/docs/Configuration/ModelConfiguration.ini b/fbw-a32nx/docs/Configuration/ModelConfiguration.ini index f5a45e1894c5..1b5a43461f61 100644 --- a/fbw-a32nx/docs/Configuration/ModelConfiguration.ini +++ b/fbw-a32nx/docs/Configuration/ModelConfiguration.ini @@ -33,8 +33,8 @@ [autothrust] ; !! WARNING CHANGE AT YOUR OWN RISK !! -; sets the target N1 for full reverse -;thrust_limit_reverse = -45.0 +; sets the target N1 in percentage of TOGA limit for full reverse +;thrust_limit_reverse_percentage_toga = 0.8 ; !! WARNING CHANGE AT YOUR OWN RISK !! ; if enabled, thrust limits IDLE, CLB and TOGA are taken from local variables diff --git a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/engines.cfg b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/engines.cfg index 750f9776b046..62b50b0a3422 100644 --- a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/engines.cfg +++ b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/engines.cfg @@ -4,7 +4,7 @@ minor = 0 [GENERALENGINEDATA] engine_type = 1 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop -min_throttle_limit = -0.2 ; Minimum percent throttle. Generally negative for turbine reverser +min_throttle_limit = -1.0 ; 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 diff --git a/fbw-a32nx/src/systems/instruments/src/EWD/N1Limit.tsx b/fbw-a32nx/src/systems/instruments/src/EWD/N1Limit.tsx index dc7be0896b32..f926eb5d5e07 100644 --- a/fbw-a32nx/src/systems/instruments/src/EWD/N1Limit.tsx +++ b/fbw-a32nx/src/systems/instruments/src/EWD/N1Limit.tsx @@ -52,7 +52,7 @@ export class N1Limit extends DisplayComponent<N1LimitProps> { }); sub.on('autoThrustLimit').whenChanged().handle((l) => { - this.autoThrustLimit = l; + this.autoThrustLimit = Math.abs(l); }); sub.on('thrustLimitType').whenChanged().handle((l) => { diff --git a/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.cpp b/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.cpp index 83b949e95414..5aa05b18d76d 100644 --- a/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.cpp +++ b/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.cpp @@ -223,13 +223,11 @@ void FlyByWireInterface::loadConfiguration() { // -------------------------------------------------------------------------- // load values - autothrust - autothrustThrustLimitReverse = INITypeConversion::getDouble(iniStructure, "AUTOTHRUST", "THRUST_LIMIT_REVERSE", -45.0); - - // initialize local variable for reverse - idAutothrustThrustLimitREV->set(autothrustThrustLimitReverse); + autothrustThrustLimitReversePercentageToga = + INITypeConversion::getDouble(iniStructure, "AUTOTHRUST", "THRUST_LIMIT_REVERSE_PERCENTAGE_TOGA", 0.8); // print configuration into console - std::cout << "WASM: AUTOTHRUST : THRUST_LIMIT_REVERSE = " << autothrustThrustLimitReverse << std::endl; + std::cout << "WASM: AUTOTHRUST : THRUST_LIMIT_REVERSE_PERCENTAGE_TOGA = " << autothrustThrustLimitReversePercentageToga << std::endl; // -------------------------------------------------------------------------- // load values - flight controls @@ -2407,6 +2405,9 @@ bool FlyByWireInterface::updateAutothrust(double sampleTime) { idThrottlePosition3d_1->set(idThrottlePositionLookupTable3d.get(thrustLeverAngle_1->get())); idThrottlePosition3d_2->set(idThrottlePositionLookupTable3d.get(thrustLeverAngle_2->get())); + // update reverser thrust limit + idAutothrustThrustLimitREV->set(idAutothrustThrustLimitTOGA->get() * autothrustThrustLimitReversePercentageToga); + // set client data if needed if (!autoThrustEnabled || !autopilotStateMachineEnabled || !flyByWireEnabled) { ClientDataLocalVariablesAutothrust ClientDataLocalVariablesAutothrust = { diff --git a/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.h b/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.h index 135756339411..18b80a8f94a1 100644 --- a/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.h +++ b/fbw-a32nx/src/wasm/fbw_a320/src/FlyByWireInterface.h @@ -76,7 +76,7 @@ class FlyByWireInterface { bool wasPaused = false; bool wasInSlew = false; - double autothrustThrustLimitReverse = -45; + double autothrustThrustLimitReversePercentageToga = 0.0; bool flightDirectorConnectLatch_1 = false; bool flightDirectorConnectLatch_2 = false; diff --git a/fbw-a32nx/src/wasm/fbw_a320/src/model/Autothrust_data.cpp b/fbw-a32nx/src/wasm/fbw_a320/src/model/Autothrust_data.cpp index 4d55c0868eef..7fe4c426c361 100644 --- a/fbw-a32nx/src/wasm/fbw_a320/src/model/Autothrust_data.cpp +++ b/fbw-a32nx/src/wasm/fbw_a320/src/model/Autothrust_data.cpp @@ -180,13 +180,13 @@ Autothrust::Parameters_Autothrust_T Autothrust::Autothrust_P{ 0.0, - -20.0, + -100.0, -2.0, 0.0, - -20.0, + -100.0, { 1.8, 1.8, 1.0, 1.2, 1.2 },