Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Move cg further aft #7691

Merged
merged 13 commits into from
Jan 11, 2023
3 changes: 2 additions & 1 deletion .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
1. [SEC] Fix GND SPLR logic, add missing GND SPLR partial extension condition - @lukecologne (luke)
1. [FMGC] Improved importing flight plans from MSFS World Map - @frankkopp (Frank Kopp)
1. [EFB] Added boarding time indication to Payload page - @ChristianLutzCL (Christian Lutz) @frankkopp (Frank Kopp)
1. [FLIGHT MODEL/EFB] Modified empty weight cg and loading station/fuel tank locations - @donstim (donbikes#4084)

## 0.9.0

Expand Down Expand Up @@ -1156,4 +1157,4 @@
1. [DCDU] Fixed MSG- and MSG+ button labels - @tyler58546 (tyler58546)
1. [ISIS] Fixed issue where ISIS was allowing a bug to be set while in the OFF state - Patrick Macken (@Pat M on
Discord)
1. [EFB] Added estimated boarding time to Payload screen - @ChristianLutzCL (Christian Lutz)
1. [EFB] Added estimated boarding time to Payload screen - @ChristianLutzCL (Christian Lutz)
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@

;For future reference:
; Left/ Right Aux Tanks: 228 total/ 0 unusable USG
; Left/ Right Main Tanks: 1823.75 total/ 7.75 unusable USG
; Center Tank: 2185.16 total/ 6.1 unusable USG

[VERSION]
major = 1
minor = 0
Expand All @@ -12,8 +6,7 @@ minor = 0
max_gross_weight = 174165 ; Maximum takeoff weight, (LBS)
empty_weight = 93697 ; Empty weight, (LBS); Includes weight to account for crew, pantry, galleys, lavs, potable water, emergency equipment etc.
reference_datum_position = 0, 0, 0 ; Position of reference datum relative to FS(0,0,0) (FEET), z, x, y
; adjust empty weight CG position to ensure 25% MAC at Empty Weight
empty_weight_CG_position = -8.75, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y
empty_weight_CG_position = -9.42, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y 30% CG
CG_forward_limit = 0.16 ; Gravity center forward limit (longitudinal offset) for longitudinal stability
CG_aft_limit = 0.4 ; Gravity center after limit (longitudinal offset z) w.r.t reference datum for longitudinal stability (FEET)
empty_weight_pitch_MOI = 2453714 ; Empty pitch moment of inertia, Jxx (SLUG SQ FEET)
Expand All @@ -34,16 +27,16 @@ activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach v
; Passenger baggage weight of 20 kg/pax is also added, making total pax + baggage weight = 104 kg/pax (i.e. Passenger weight on Simbrief)
; Starting load is 50% of capacity
max_number_of_stations = 10 ; Number of payload stations
station_load.0 = 3300, 21.98, 0, 5, ECONOMY ROWS 1-6 (seats: 36 max: 6670lbs/3024kg), 0
station_load.1 = 3850, 2.86, 0, 5.1, ECONOMY ROWS 7-13 (seats: 42 max: 7780lb/3530kg), 0
station_load.2 = 4400, -15.34, 0, 5.3, ECONOMY ROWS 14-21 (seats: 48 max: 8880lb/4032kg), 0
station_load.3 = 6600, -32.81, 0, 5.5, ECONOMY ROWS 22-29 (seats: 48 max: 8880lb/4032kg), 0
station_load.4 = 2800, 18.28, 0, 0.9, FWD BAGGAGE/CONTAINER (max: 7500lb/3402kg), 0
station_load.5 = 1950, -15.96, 0, 1, AFT CONTAINER (max: 5350lb/2426kg), 0
station_load.6 = 1700, -27.10, 0, 1.2, AFT BAGGAGE (max: 4650lb/2110kg), 0
station_load.7 = 1300, -37.35, 0, 1.4, AFT BULK/LOOSE (max: 3300lb/1497kg), 0
station_load.8 = 1, 42.36, 0, 0, PILOT, 1
station_load.9 = 1, 42.36, 0, 0, CO-PILOT, 2
station_load.0 = 3300, 20.0, 0, 5, ECONOMY ROWS 1-6 (seats: 36 max: 6670lbs/3024kg), 0
station_load.1 = 3850, 0.9, 0, 5.1, ECONOMY ROWS 7-13 (seats: 42 max: 7780lb/3530kg), 0
station_load.2 = 4400, -17.3, 0, 5.3, ECONOMY ROWS 14-21 (seats: 48 max: 8880lb/4032kg), 0
station_load.3 = 6600, -36.3, 0, 5.5, ECONOMY ROWS 22-29 (seats: 48 max: 8880lb/4032kg), 0
station_load.4 = 2800, 16.3, 0, 0.9, FWD BAGGAGE/CONTAINER (max: 7500lb/3402kg), 0
station_load.5 = 1950, -25.1, 0, 1, AFT CONTAINER (max: 5350lb/2426kg), 0
station_load.6 = 1700, -35.1, 0, 1.2, AFT BAGGAGE (max: 4650lb/2110kg), 0
station_load.7 = 1300, -44.4, 0, 1.4, AFT BULK/LOOSE (max: 3300lb/1497kg), 0
station_load.8 = 1, 40.7, 0, 0, PILOT, 1
station_load.9 = 1, 40.7, 0, 0, CO-PILOT, 2

[CONTACT_POINTS]
static_pitch = -0.2 ; degrees, pitch when at rest on the ground (+=Up, -=Dn)
Expand Down Expand Up @@ -96,11 +89,11 @@ fuel_type = 2 ; 1 = OCTANE 100, 2 = JET_A, 3 = OCTANE 80, 4 = AUTO GAS, 5 = JET
APU.1 = Name:APU#FuelBurnRate:33
Engine.1 = Name:LeftEngine#Index:1
Engine.2 = Name:RightEngine#Index:2
Tank.1 = Name:Center#Title:TT:MENU.FUEL.CENTER#Capacity:2179#UnusableCapacity:0#Position:-6,0,1#Priority:1#OutputOnlyLines:TankCenterToCenterTankPump1,TankCenterToCenterTankPump2
Tank.1 = Name:Center#Title:TT:MENU.FUEL.CENTER#Capacity:2179#UnusableCapacity:0#Position:-4.5,0,1#Priority:1#OutputOnlyLines:TankCenterToCenterTankPump1,TankCenterToCenterTankPump2
Tank.2 = Name:LeftInner#Title:TT:MENU.FUEL.LEFT_INNER#Capacity:1816#UnusableCapacity:0#Position:-8,-13,2#Priority:2#InputOnlyLines:Eng1ToTank2,Xfer1ToTank2,Xfer1ToTank2_2#OutputOnlyLines:TankLeftToLeftTankPump1,TankLeftToLeftTankPump2
Tank.3 = Name:RightInner#Title:TT:MENU.FUEL.RIGHT_INNER#Capacity:1816#UnusableCapacity:0#Position:-8,13,2#Priority:2#InputOnlyLines:Eng2ToTank3,Xfer2ToTank3,Xfer2ToTank3_2#OutputOnlyLines:TankRightToRightTankPump1,TankRightToRightTankPump2
Tank.4 = Name:LeftOuter#Title:TT:MENU.FUEL.LEFT_OUTER#Capacity:228#UnusableCapacity:0#Position:-13,-27,3#Priority:3#OutputOnlyLines:Tank4ToXfer1,Tank4ToXfer1_2
Tank.5 = Name:RightOuter#Title:TT:MENU.FUEL.RIGHT_OUTER#Capacity:228#UnusableCapacity:0#Position:-13,27,3#Priority:3#OutputOnlyLines:Tank5ToXfer2,Tank5ToXfer2_2
Tank.4 = Name:LeftOuter#Title:TT:MENU.FUEL.LEFT_OUTER#Capacity:228#UnusableCapacity:0#Position:-17.6,-27,3#Priority:3#OutputOnlyLines:Tank4ToXfer1,Tank4ToXfer1_2
Tank.5 = Name:RightOuter#Title:TT:MENU.FUEL.RIGHT_OUTER#Capacity:228#UnusableCapacity:0#Position:-17.6,27,3#Priority:3#OutputOnlyLines:Tank5ToXfer2,Tank5ToXfer2_2
Line.1 = Name:TankCenterToCenterTankPump1#Source:Center#Destination:CenterTankPump1
Line.2 = Name:TankLeftToLeftTankPump1#Source:LeftInner#Destination:LeftInnerTankPump1
Line.3 = Name:TankRightToRightTankPump1#Source:RightInner#Destination:RightInnerTankPump1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class A32NX_PayloadConstructor {
pax: 0,
paxTarget: 0,
stationIndex: 0 + 1,
position: 21.98,
position: 20.0,
seatsRange: [1, 36],
simVar: "A32NX_PAX_TOTAL_ROWS_1_6"
},
Expand All @@ -19,7 +19,7 @@ class A32NX_PayloadConstructor {
pax: 0,
paxTarget: 0,
stationIndex: 1 + 1,
position: 2.86,
position: 0.9,
seatsRange: [37, 78],
simVar: "A32NX_PAX_TOTAL_ROWS_7_13"
},
Expand All @@ -30,7 +30,7 @@ class A32NX_PayloadConstructor {
pax: 0,
paxTarget: 0,
stationIndex: 2 + 1,
position: -15.34,
position: -17.3,
seatsRange: [79, 126],
simVar: "A32NX_PAX_TOTAL_ROWS_14_21"
},
Expand All @@ -41,7 +41,7 @@ class A32NX_PayloadConstructor {
pax: 0,
paxTarget: 0,
stationIndex: 3 + 1,
position: -32.81,
position: -36.3,
seatsRange: [127, 174],
simVar: "A32NX_PAX_TOTAL_ROWS_22_29"
},
Expand All @@ -53,7 +53,7 @@ class A32NX_PayloadConstructor {
weight: Math.round(NXUnits.kgToUser(3402)),
load: 0,
stationIndex: 4 + 1,
position: 18.28,
position: 16.3,
visible: true,
simVar: 'A32NX_CARGO_FWD_BAGGAGE_CONTAINER',
},
Expand All @@ -62,7 +62,7 @@ class A32NX_PayloadConstructor {
weight: Math.round(NXUnits.kgToUser(2426)),
load: 0,
stationIndex: 5 + 1,
position: -15.96,
position: -25.1,
visible: true,
simVar: 'A32NX_CARGO_AFT_CONTAINER',
},
Expand All @@ -71,7 +71,7 @@ class A32NX_PayloadConstructor {
weight: Math.round(NXUnits.kgToUser(2110)),
load: 0,
stationIndex: 6 + 1,
position: -27.10,
position: -35.1,
visible: true,
simVar: 'A32NX_CARGO_AFT_BAGGAGE',
},
Expand All @@ -80,7 +80,7 @@ class A32NX_PayloadConstructor {
weight: Math.round(NXUnits.kgToUser(1497)),
load: 0,
stationIndex: 7 + 1,
position: -37.35,
position: -44.4,
visible: true,
simVar: 'A32NX_CARGO_AFT_BULK_LOOSE',
},
Expand All @@ -98,11 +98,11 @@ const MAX_SEAT_AVAILABLE = 174;
*/
function getZfwcg() {

const leMacZ = -5.386; // Accurate to 3 decimals, replaces debug weight values
const macSize = 13.454; // Accurate to 3 decimals, replaces debug weight values
const leMacZ = -5.383; // Accurate to 3 decimals, replaces debug weight values
const macSize = 13.464; // Accurate to 3 decimals, replaces debug weight values

const emptyWeight = (SimVar.GetSimVarValue("EMPTY WEIGHT", getUserUnit()));
const emptyPosition = -8.75; // Value from flight_model.cfg
const emptyPosition = -9.42; // Value from flight_model.cfg
const emptyMoment = emptyPosition * emptyWeight;
const PAX_WEIGHT = SimVar.GetSimVarValue("L:A32NX_WB_PER_PAX_WEIGHT", "Number");

Expand Down
22 changes: 11 additions & 11 deletions src/instruments/src/EFB/Ground/Pages/Payload/Loadsheet/a20nv55.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"specs": {
"prefix": "A32NX",
"emptyPosition": -8.75,
"macSize": 13.454,
"leMacZ": -5.386,
"emptyPosition": -9.42,
"macSize": 13.464,
"leMacZ": -5.383,
"weights": {
"maxZfw": 64300,
"minZfw": 42500
Expand Down Expand Up @@ -288,7 +288,7 @@
],
"index": 0,
"stationIndex": 1,
"position": 21.98,
"position": 20.0,
"fill": 0.19,
"simVar": "A32NX_PAX_TOTAL_ROWS_1_6"
},
Expand Down Expand Up @@ -606,7 +606,7 @@
],
"index": 1,
"stationIndex": 2,
"position": 2.86,
"position": 0.9,
"fill": 0.25,
"simVar": "A32NX_PAX_TOTAL_ROWS_7_13"
},
Expand Down Expand Up @@ -968,7 +968,7 @@
],
"index": 2,
"stationIndex": 3,
"position": -15.34,
"position": -17.3,
"fill": 0.28,
"simVar": "A32NX_PAX_TOTAL_ROWS_14_21"
},
Expand Down Expand Up @@ -1331,7 +1331,7 @@
"fill": 0.28,
"index": 3,
"stationIndex": 4,
"position": -32.81,
"position": -36.3,
"simVar": "A32NX_PAX_TOTAL_ROWS_22_29"
}
],
Expand All @@ -1341,7 +1341,7 @@
"weight": 3402,
"index": 0,
"stationIndex": 5,
"position": 18.28,
"position": 16.3,
"progressBarWidth": 160,
"simVar": "A32NX_CARGO_FWD_BAGGAGE_CONTAINER"
},
Expand All @@ -1350,7 +1350,7 @@
"weight": 2426,
"index": 1,
"stationIndex": 6,
"position": -15.96,
"position": -25.1,
"progressBarWidth": 100,
"simVar": "A32NX_CARGO_AFT_CONTAINER"
},
Expand All @@ -1359,7 +1359,7 @@
"weight": 2110,
"index": 2,
"stationIndex": 7,
"position": -27.1,
"position": -35.1,
"progressBarWidth": 100,
"simVar": "A32NX_CARGO_AFT_BAGGAGE"
},
Expand All @@ -1368,7 +1368,7 @@
"weight": 1497,
"index": 3,
"stationIndex": 8,
"position": -37.35,
"position": -44.4,
"progressBarWidth": 100,
"simVar": "A32NX_CARGO_AFT_BULK_LOOSE"
}
Expand Down
4 changes: 2 additions & 2 deletions src/instruments/src/EFB/Ground/Pages/Payload/Payload.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -519,9 +519,9 @@ export const Payload = () => {
}, [boardingStarted]);

useEffect(() => {
const centerTankMoment = -6;
const centerTankMoment = -4.5;
const innerTankMoment = -8;
const outerTankMoment = -13;
const outerTankMoment = -17.6;
// Adjust ZFW CG Values based on payload
const newZfw = emptyWeight + totalPax * paxWeight + totalCargo;
const newZfwDesired = emptyWeight + totalPaxDesired * paxWeight + totalCargoDesired;
Expand Down