pyBADA 0.1.6__py3-none-any.whl → 0.1.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyBADA/TCL.py +176 -176
- pyBADA/aircraft.py +13 -13
- pyBADA/atmosphere.py +91 -60
- pyBADA/bada3.py +189 -190
- pyBADA/bada4.py +271 -251
- pyBADA/badaH.py +201 -201
- pyBADA/conversions.py +22 -18
- pyBADA/geodesic.py +19 -19
- pyBADA/trajectoryPrediction.py +11 -11
- pyBADA/utils.py +43 -38
- {pybada-0.1.6.dist-info → pybada-0.1.7.dist-info}/METADATA +7 -7
- {pybada-0.1.6.dist-info → pybada-0.1.7.dist-info}/RECORD +15 -15
- {pybada-0.1.6.dist-info → pybada-0.1.7.dist-info}/WHEEL +0 -0
- {pybada-0.1.6.dist-info → pybada-0.1.7.dist-info}/licenses/AUTHORS +0 -0
- {pybada-0.1.6.dist-info → pybada-0.1.7.dist-info}/licenses/LICENCE.txt +0 -0
pyBADA/TCL.py
CHANGED
|
@@ -8,10 +8,10 @@ from math import asin, atan, cos, degrees, radians, sin, tan
|
|
|
8
8
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
|
-
from pyBADA import utils
|
|
12
11
|
from pyBADA import atmosphere as atm
|
|
13
12
|
from pyBADA import constants as const
|
|
14
13
|
from pyBADA import conversions as conv
|
|
14
|
+
from pyBADA import utils
|
|
15
15
|
from pyBADA.flightTrajectory import FlightTrajectory as FT
|
|
16
16
|
from pyBADA.geodesic import RhumbLine as rhumb
|
|
17
17
|
from pyBADA.geodesic import Turn as turn
|
|
@@ -34,7 +34,7 @@ def constantSpeedLevel(
|
|
|
34
34
|
v,
|
|
35
35
|
Hp_init,
|
|
36
36
|
m_init,
|
|
37
|
-
|
|
37
|
+
deltaTemp,
|
|
38
38
|
maxRFL=float("Inf"),
|
|
39
39
|
wS=0.0,
|
|
40
40
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
@@ -61,7 +61,7 @@ def constantSpeedLevel(
|
|
|
61
61
|
:param v: The target speed in [kt] for CAS/TAS or [-] for MACH.
|
|
62
62
|
:param Hp_init: Initial pressure altitude at the start of the flight segment [ft].
|
|
63
63
|
:param m_init: Initial mass of the aircraft [kg].
|
|
64
|
-
:param
|
|
64
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
65
65
|
:param maxRFL: Maximum cruise altitude limit [ft]. Default is infinity.
|
|
66
66
|
:param wS: Wind speed component along the longitudinal axis (positive for headwind, negative for tailwind) [kt]. Default is 0.0.
|
|
67
67
|
:param turnMetrics: Dictionary containing turn parameters:
|
|
@@ -336,7 +336,7 @@ def constantSpeedLevel(
|
|
|
336
336
|
# atmosphere properties
|
|
337
337
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
338
338
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
339
|
-
h=H_m,
|
|
339
|
+
h=H_m, deltaTemp=deltaTemp
|
|
340
340
|
)
|
|
341
341
|
# aircraft speed
|
|
342
342
|
[M_i, CAS_i, TAS_i] = atm.convertSpeed(
|
|
@@ -430,7 +430,7 @@ def constantSpeedLevel(
|
|
|
430
430
|
phase=flightPhase,
|
|
431
431
|
v=CAS_i,
|
|
432
432
|
mass=mass_i,
|
|
433
|
-
|
|
433
|
+
deltaTemp=deltaTemp,
|
|
434
434
|
)
|
|
435
435
|
else:
|
|
436
436
|
config_i = config_default
|
|
@@ -459,7 +459,7 @@ def constantSpeedLevel(
|
|
|
459
459
|
THR_i = Drag
|
|
460
460
|
CT = AC.CT(Thrust=THR_i, delta=delta)
|
|
461
461
|
FUEL_i = AC.ff(
|
|
462
|
-
CT=CT, delta=delta, theta=theta, M=M_i,
|
|
462
|
+
CT=CT, delta=delta, theta=theta, M=M_i, deltaTemp=deltaTemp
|
|
463
463
|
) # [kg/s]
|
|
464
464
|
|
|
465
465
|
# BADA3
|
|
@@ -471,7 +471,7 @@ def constantSpeedLevel(
|
|
|
471
471
|
phase=flightPhase,
|
|
472
472
|
v=CAS_i,
|
|
473
473
|
mass=mass_i,
|
|
474
|
-
|
|
474
|
+
deltaTemp=deltaTemp,
|
|
475
475
|
)
|
|
476
476
|
else:
|
|
477
477
|
config_i = config_default
|
|
@@ -735,7 +735,7 @@ def constantSpeedLevel(
|
|
|
735
735
|
nextHp = min(Hp_i + HpStep, maxRFL)
|
|
736
736
|
H_m = conv.ft2m(nextHp) # altitude [m]
|
|
737
737
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
738
|
-
h=H_m,
|
|
738
|
+
h=H_m, deltaTemp=deltaTemp
|
|
739
739
|
)
|
|
740
740
|
|
|
741
741
|
# aircraft speed at upper cruise altitude
|
|
@@ -753,7 +753,7 @@ def constantSpeedLevel(
|
|
|
753
753
|
phase=flightPhase,
|
|
754
754
|
v=CAS_up,
|
|
755
755
|
mass=mass_i,
|
|
756
|
-
|
|
756
|
+
deltaTemp=deltaTemp,
|
|
757
757
|
)
|
|
758
758
|
else:
|
|
759
759
|
config_i = config_default
|
|
@@ -792,7 +792,7 @@ def constantSpeedLevel(
|
|
|
792
792
|
phase=flightPhase,
|
|
793
793
|
v=CAS_up,
|
|
794
794
|
mass=mass_i,
|
|
795
|
-
|
|
795
|
+
deltaTemp=deltaTemp,
|
|
796
796
|
)
|
|
797
797
|
else:
|
|
798
798
|
config_i = config_default
|
|
@@ -829,7 +829,7 @@ def constantSpeedLevel(
|
|
|
829
829
|
delta=delta,
|
|
830
830
|
theta=theta,
|
|
831
831
|
M=M_up,
|
|
832
|
-
|
|
832
|
+
deltaTemp=deltaTemp,
|
|
833
833
|
) # [kg/s]
|
|
834
834
|
|
|
835
835
|
# Compare specific range at current and upper cruise altitudes
|
|
@@ -841,14 +841,14 @@ def constantSpeedLevel(
|
|
|
841
841
|
delta=delta,
|
|
842
842
|
theta=theta,
|
|
843
843
|
M=M_up,
|
|
844
|
-
|
|
844
|
+
deltaTemp=deltaTemp,
|
|
845
845
|
) # MCMB Thrust
|
|
846
846
|
elif AC.BADAFamily.BADA3:
|
|
847
847
|
THR_CL = AC.Thrust(
|
|
848
848
|
rating="MCMB",
|
|
849
849
|
v=TAS,
|
|
850
850
|
h=H_m,
|
|
851
|
-
|
|
851
|
+
deltaTemp=deltaTemp,
|
|
852
852
|
config=config_i,
|
|
853
853
|
) # MCMB Thrust
|
|
854
854
|
|
|
@@ -857,10 +857,10 @@ def constantSpeedLevel(
|
|
|
857
857
|
h=H_m,
|
|
858
858
|
flightEvolution=flightEvolution,
|
|
859
859
|
M=M_up,
|
|
860
|
-
|
|
860
|
+
deltaTemp=deltaTemp,
|
|
861
861
|
)
|
|
862
862
|
temp_const = (theta * const.temp_0) / (
|
|
863
|
-
theta * const.temp_0 -
|
|
863
|
+
theta * const.temp_0 - deltaTemp
|
|
864
864
|
) # T/T-dT
|
|
865
865
|
ROCD_up = (
|
|
866
866
|
conv.m2ft(
|
|
@@ -892,7 +892,7 @@ def constantSpeedLevel(
|
|
|
892
892
|
Hp_step=HpStep,
|
|
893
893
|
m_init=mass_i,
|
|
894
894
|
wS=wS,
|
|
895
|
-
|
|
895
|
+
deltaTemp=deltaTemp,
|
|
896
896
|
Lat=LAT[-1],
|
|
897
897
|
Lon=LON[-1],
|
|
898
898
|
initialHeading={
|
|
@@ -913,7 +913,7 @@ def constantSpeedLevel(
|
|
|
913
913
|
Hp_step=HpStep,
|
|
914
914
|
m_init=mass_i,
|
|
915
915
|
wS=wS,
|
|
916
|
-
|
|
916
|
+
deltaTemp=deltaTemp,
|
|
917
917
|
turnMetrics=turnMetrics,
|
|
918
918
|
)
|
|
919
919
|
|
|
@@ -982,7 +982,7 @@ def constantSpeedLevel(
|
|
|
982
982
|
phase=flightPhase,
|
|
983
983
|
v=CAS_up,
|
|
984
984
|
mass=mass[-1],
|
|
985
|
-
|
|
985
|
+
deltaTemp=deltaTemp,
|
|
986
986
|
)
|
|
987
987
|
else:
|
|
988
988
|
config_i = config_default
|
|
@@ -1025,7 +1025,7 @@ def constantSpeedLevel(
|
|
|
1025
1025
|
phase=flightPhase,
|
|
1026
1026
|
v=CAS_up,
|
|
1027
1027
|
mass=mass[-1],
|
|
1028
|
-
|
|
1028
|
+
deltaTemp=deltaTemp,
|
|
1029
1029
|
)
|
|
1030
1030
|
else:
|
|
1031
1031
|
config_i = config_default
|
|
@@ -1064,7 +1064,7 @@ def constantSpeedLevel(
|
|
|
1064
1064
|
delta=delta,
|
|
1065
1065
|
theta=theta,
|
|
1066
1066
|
M=M_up,
|
|
1067
|
-
|
|
1067
|
+
deltaTemp=deltaTemp,
|
|
1068
1068
|
) # [kg/s]
|
|
1069
1069
|
|
|
1070
1070
|
Hp.append(Hp[-1])
|
|
@@ -1166,7 +1166,7 @@ def constantSpeedROCD(
|
|
|
1166
1166
|
Hp_final,
|
|
1167
1167
|
ROCDtarget,
|
|
1168
1168
|
m_init,
|
|
1169
|
-
|
|
1169
|
+
deltaTemp,
|
|
1170
1170
|
wS=0.0,
|
|
1171
1171
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
1172
1172
|
Lat=None,
|
|
@@ -1194,7 +1194,7 @@ def constantSpeedROCD(
|
|
|
1194
1194
|
:param Hp_final: Final pressure altitude at the end of the segment [ft].
|
|
1195
1195
|
:param ROCDtarget: Target rate of climb/descent [ft/min].
|
|
1196
1196
|
:param m_init: Initial aircraft mass at the start of the segment [kg].
|
|
1197
|
-
:param
|
|
1197
|
+
:param deltaTemp: Deviation from standard ISA temperature [K].
|
|
1198
1198
|
:param wS: Wind speed component along the longitudinal axis [kt]. Positive values for headwind, negative for tailwind. Default is 0.0.
|
|
1199
1199
|
:param turnMetrics: Dictionary defining turn parameters:
|
|
1200
1200
|
|
|
@@ -1467,10 +1467,10 @@ def constantSpeedROCD(
|
|
|
1467
1467
|
# atmosphere properties
|
|
1468
1468
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
1469
1469
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
1470
|
-
h=H_m,
|
|
1470
|
+
h=H_m, deltaTemp=deltaTemp
|
|
1471
1471
|
)
|
|
1472
1472
|
temp_const = (theta * const.temp_0) / (
|
|
1473
|
-
theta * const.temp_0 -
|
|
1473
|
+
theta * const.temp_0 - deltaTemp
|
|
1474
1474
|
)
|
|
1475
1475
|
|
|
1476
1476
|
# aircraft speed
|
|
@@ -1486,7 +1486,7 @@ def constantSpeedROCD(
|
|
|
1486
1486
|
] = AC.ARPM.ARPMProcedure(
|
|
1487
1487
|
phase=phase,
|
|
1488
1488
|
h=H_m,
|
|
1489
|
-
|
|
1489
|
+
deltaTemp=deltaTemp,
|
|
1490
1490
|
mass=mass[-1],
|
|
1491
1491
|
rating="ARPM",
|
|
1492
1492
|
)
|
|
@@ -1501,7 +1501,7 @@ def constantSpeedROCD(
|
|
|
1501
1501
|
ESF_i = AC.esf(
|
|
1502
1502
|
h=H_m,
|
|
1503
1503
|
M=M_i,
|
|
1504
|
-
|
|
1504
|
+
deltaTemp=deltaTemp,
|
|
1505
1505
|
flightEvolution=("const" + speedType),
|
|
1506
1506
|
)
|
|
1507
1507
|
|
|
@@ -1535,7 +1535,7 @@ def constantSpeedROCD(
|
|
|
1535
1535
|
# Compute power required for target ROCD
|
|
1536
1536
|
Preq_target_i = AC.Peng_target(
|
|
1537
1537
|
temp=theta * const.temp_0,
|
|
1538
|
-
|
|
1538
|
+
deltaTemp=deltaTemp,
|
|
1539
1539
|
ROCD=ROCDisu,
|
|
1540
1540
|
mass=mass_i,
|
|
1541
1541
|
Preq=Preq_i,
|
|
@@ -1551,7 +1551,7 @@ def constantSpeedROCD(
|
|
|
1551
1551
|
phase=phase,
|
|
1552
1552
|
v=CAS_i,
|
|
1553
1553
|
mass=mass_i,
|
|
1554
|
-
|
|
1554
|
+
deltaTemp=deltaTemp,
|
|
1555
1555
|
)
|
|
1556
1556
|
else:
|
|
1557
1557
|
config_i = config_default
|
|
@@ -1591,7 +1591,7 @@ def constantSpeedROCD(
|
|
|
1591
1591
|
phase=phase,
|
|
1592
1592
|
v=CAS_i,
|
|
1593
1593
|
mass=mass_i,
|
|
1594
|
-
|
|
1594
|
+
deltaTemp=deltaTemp,
|
|
1595
1595
|
)
|
|
1596
1596
|
else:
|
|
1597
1597
|
config_i = config_default
|
|
@@ -1637,7 +1637,7 @@ def constantSpeedROCD(
|
|
|
1637
1637
|
mass=mass_i,
|
|
1638
1638
|
ESF=ESF_i,
|
|
1639
1639
|
theta=theta,
|
|
1640
|
-
|
|
1640
|
+
deltaTemp=deltaTemp,
|
|
1641
1641
|
)
|
|
1642
1642
|
)
|
|
1643
1643
|
* 60
|
|
@@ -1652,7 +1652,7 @@ def constantSpeedROCD(
|
|
|
1652
1652
|
mass=mass_i,
|
|
1653
1653
|
ESF=ESF_i,
|
|
1654
1654
|
theta=theta,
|
|
1655
|
-
|
|
1655
|
+
deltaTemp=deltaTemp,
|
|
1656
1656
|
)
|
|
1657
1657
|
)
|
|
1658
1658
|
* 60
|
|
@@ -1682,7 +1682,7 @@ def constantSpeedROCD(
|
|
|
1682
1682
|
mass=mass_i,
|
|
1683
1683
|
ESF=ESF_i,
|
|
1684
1684
|
theta=theta,
|
|
1685
|
-
|
|
1685
|
+
deltaTemp=deltaTemp,
|
|
1686
1686
|
)
|
|
1687
1687
|
)
|
|
1688
1688
|
* 60
|
|
@@ -1697,7 +1697,7 @@ def constantSpeedROCD(
|
|
|
1697
1697
|
mass=mass_i,
|
|
1698
1698
|
ESF=ESF_i,
|
|
1699
1699
|
theta=theta,
|
|
1700
|
-
|
|
1700
|
+
deltaTemp=deltaTemp,
|
|
1701
1701
|
)
|
|
1702
1702
|
)
|
|
1703
1703
|
* 60
|
|
@@ -1723,28 +1723,28 @@ def constantSpeedROCD(
|
|
|
1723
1723
|
delta=delta,
|
|
1724
1724
|
theta=theta,
|
|
1725
1725
|
M=M_i,
|
|
1726
|
-
|
|
1726
|
+
deltaTemp=deltaTemp,
|
|
1727
1727
|
) # IDLE Thrust
|
|
1728
1728
|
FUEL_min = AC.ff(
|
|
1729
1729
|
rating="LIDL",
|
|
1730
1730
|
delta=delta,
|
|
1731
1731
|
theta=theta,
|
|
1732
1732
|
M=M_i,
|
|
1733
|
-
|
|
1733
|
+
deltaTemp=deltaTemp,
|
|
1734
1734
|
) # IDLE Fuel Flow
|
|
1735
1735
|
THR_max = AC.Thrust(
|
|
1736
1736
|
rating="MCMB",
|
|
1737
1737
|
delta=delta,
|
|
1738
1738
|
theta=theta,
|
|
1739
1739
|
M=M_i,
|
|
1740
|
-
|
|
1740
|
+
deltaTemp=deltaTemp,
|
|
1741
1741
|
) # MCMB Thrust
|
|
1742
1742
|
FUEL_max = AC.ff(
|
|
1743
1743
|
rating="MCMB",
|
|
1744
1744
|
delta=delta,
|
|
1745
1745
|
theta=theta,
|
|
1746
1746
|
M=M_i,
|
|
1747
|
-
|
|
1747
|
+
deltaTemp=deltaTemp,
|
|
1748
1748
|
) # MCMB Fuel Flow
|
|
1749
1749
|
if THR_i < THR_min:
|
|
1750
1750
|
THR_i = THR_min
|
|
@@ -1779,7 +1779,7 @@ def constantSpeedROCD(
|
|
|
1779
1779
|
delta=delta,
|
|
1780
1780
|
theta=theta,
|
|
1781
1781
|
M=M_i,
|
|
1782
|
-
|
|
1782
|
+
deltaTemp=deltaTemp,
|
|
1783
1783
|
) # [kg/s]
|
|
1784
1784
|
ROCD_i = ROCDtarget
|
|
1785
1785
|
|
|
@@ -1790,7 +1790,7 @@ def constantSpeedROCD(
|
|
|
1790
1790
|
v=TAS_i,
|
|
1791
1791
|
h=H_m,
|
|
1792
1792
|
config="CR",
|
|
1793
|
-
|
|
1793
|
+
deltaTemp=deltaTemp,
|
|
1794
1794
|
) # IDLE Thrust
|
|
1795
1795
|
FUEL_min = AC.ff(
|
|
1796
1796
|
flightPhase="Descent",
|
|
@@ -1804,7 +1804,7 @@ def constantSpeedROCD(
|
|
|
1804
1804
|
rating="MCMB",
|
|
1805
1805
|
v=TAS_i,
|
|
1806
1806
|
h=H_m,
|
|
1807
|
-
|
|
1807
|
+
deltaTemp=deltaTemp,
|
|
1808
1808
|
config="CR",
|
|
1809
1809
|
) # MCMB Thrust
|
|
1810
1810
|
FUEL_max = AC.ff(
|
|
@@ -2206,7 +2206,7 @@ def constantSpeedROCD_time(
|
|
|
2206
2206
|
Hp_init,
|
|
2207
2207
|
ROCDtarget,
|
|
2208
2208
|
m_init,
|
|
2209
|
-
|
|
2209
|
+
deltaTemp,
|
|
2210
2210
|
wS=0.0,
|
|
2211
2211
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
2212
2212
|
Lat=None,
|
|
@@ -2233,7 +2233,7 @@ def constantSpeedROCD_time(
|
|
|
2233
2233
|
:param Hp_init: Initial pressure altitude [ft].
|
|
2234
2234
|
:param ROCDtarget: Rate of climb or descent [ft/min].
|
|
2235
2235
|
:param m_init: Initial aircraft mass at the start of the segment [kg].
|
|
2236
|
-
:param
|
|
2236
|
+
:param deltaTemp: Deviation from standard ISA temperature [K].
|
|
2237
2237
|
:param wS: Wind speed component along the longitudinal axis [kt]. Default is 0.0.
|
|
2238
2238
|
:param turnMetrics: Dictionary defining turn parameters:
|
|
2239
2239
|
|
|
@@ -2495,10 +2495,10 @@ def constantSpeedROCD_time(
|
|
|
2495
2495
|
# atmosphere properties
|
|
2496
2496
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
2497
2497
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
2498
|
-
h=H_m,
|
|
2498
|
+
h=H_m, deltaTemp=deltaTemp
|
|
2499
2499
|
)
|
|
2500
2500
|
temp_const = (theta * const.temp_0) / (
|
|
2501
|
-
theta * const.temp_0 -
|
|
2501
|
+
theta * const.temp_0 - deltaTemp
|
|
2502
2502
|
)
|
|
2503
2503
|
|
|
2504
2504
|
# aircraft speed
|
|
@@ -2514,7 +2514,7 @@ def constantSpeedROCD_time(
|
|
|
2514
2514
|
] = AC.ARPM.ARPMProcedure(
|
|
2515
2515
|
phase=phase,
|
|
2516
2516
|
h=H_m,
|
|
2517
|
-
|
|
2517
|
+
deltaTemp=deltaTemp,
|
|
2518
2518
|
mass=mass[-1],
|
|
2519
2519
|
rating="ARPM",
|
|
2520
2520
|
)
|
|
@@ -2529,7 +2529,7 @@ def constantSpeedROCD_time(
|
|
|
2529
2529
|
ESF_i = AC.esf(
|
|
2530
2530
|
h=H_m,
|
|
2531
2531
|
M=M_i,
|
|
2532
|
-
|
|
2532
|
+
deltaTemp=deltaTemp,
|
|
2533
2533
|
flightEvolution=("const" + speedType),
|
|
2534
2534
|
)
|
|
2535
2535
|
|
|
@@ -2559,7 +2559,7 @@ def constantSpeedROCD_time(
|
|
|
2559
2559
|
# Compute power required for target ROCD
|
|
2560
2560
|
Preq_target_i = AC.Peng_target(
|
|
2561
2561
|
temp=theta * const.temp_0,
|
|
2562
|
-
|
|
2562
|
+
deltaTemp=deltaTemp,
|
|
2563
2563
|
ROCD=ROCDisu,
|
|
2564
2564
|
mass=mass_i,
|
|
2565
2565
|
Preq=Preq_i,
|
|
@@ -2575,7 +2575,7 @@ def constantSpeedROCD_time(
|
|
|
2575
2575
|
phase=phase,
|
|
2576
2576
|
v=CAS_i,
|
|
2577
2577
|
mass=mass_i,
|
|
2578
|
-
|
|
2578
|
+
deltaTemp=deltaTemp,
|
|
2579
2579
|
)
|
|
2580
2580
|
else:
|
|
2581
2581
|
config_i = config_default
|
|
@@ -2615,7 +2615,7 @@ def constantSpeedROCD_time(
|
|
|
2615
2615
|
phase=phase,
|
|
2616
2616
|
v=CAS_i,
|
|
2617
2617
|
mass=mass_i,
|
|
2618
|
-
|
|
2618
|
+
deltaTemp=deltaTemp,
|
|
2619
2619
|
)
|
|
2620
2620
|
else:
|
|
2621
2621
|
config_i = config_default
|
|
@@ -2661,7 +2661,7 @@ def constantSpeedROCD_time(
|
|
|
2661
2661
|
mass=mass_i,
|
|
2662
2662
|
ESF=ESF_i,
|
|
2663
2663
|
theta=theta,
|
|
2664
|
-
|
|
2664
|
+
deltaTemp=deltaTemp,
|
|
2665
2665
|
)
|
|
2666
2666
|
)
|
|
2667
2667
|
* 60
|
|
@@ -2676,7 +2676,7 @@ def constantSpeedROCD_time(
|
|
|
2676
2676
|
mass=mass_i,
|
|
2677
2677
|
ESF=ESF_i,
|
|
2678
2678
|
theta=theta,
|
|
2679
|
-
|
|
2679
|
+
deltaTemp=deltaTemp,
|
|
2680
2680
|
)
|
|
2681
2681
|
)
|
|
2682
2682
|
* 60
|
|
@@ -2706,7 +2706,7 @@ def constantSpeedROCD_time(
|
|
|
2706
2706
|
mass=mass_i,
|
|
2707
2707
|
ESF=ESF_i,
|
|
2708
2708
|
theta=theta,
|
|
2709
|
-
|
|
2709
|
+
deltaTemp=deltaTemp,
|
|
2710
2710
|
)
|
|
2711
2711
|
)
|
|
2712
2712
|
* 60
|
|
@@ -2721,7 +2721,7 @@ def constantSpeedROCD_time(
|
|
|
2721
2721
|
mass=mass_i,
|
|
2722
2722
|
ESF=ESF_i,
|
|
2723
2723
|
theta=theta,
|
|
2724
|
-
|
|
2724
|
+
deltaTemp=deltaTemp,
|
|
2725
2725
|
)
|
|
2726
2726
|
)
|
|
2727
2727
|
* 60
|
|
@@ -2747,28 +2747,28 @@ def constantSpeedROCD_time(
|
|
|
2747
2747
|
delta=delta,
|
|
2748
2748
|
theta=theta,
|
|
2749
2749
|
M=M_i,
|
|
2750
|
-
|
|
2750
|
+
deltaTemp=deltaTemp,
|
|
2751
2751
|
) # IDLE Thrust
|
|
2752
2752
|
FUEL_min = AC.ff(
|
|
2753
2753
|
rating="LIDL",
|
|
2754
2754
|
delta=delta,
|
|
2755
2755
|
theta=theta,
|
|
2756
2756
|
M=M_i,
|
|
2757
|
-
|
|
2757
|
+
deltaTemp=deltaTemp,
|
|
2758
2758
|
) # IDLE Fuel Flow
|
|
2759
2759
|
THR_max = AC.Thrust(
|
|
2760
2760
|
rating="MCMB",
|
|
2761
2761
|
delta=delta,
|
|
2762
2762
|
theta=theta,
|
|
2763
2763
|
M=M_i,
|
|
2764
|
-
|
|
2764
|
+
deltaTemp=deltaTemp,
|
|
2765
2765
|
) # MCMB Thrust
|
|
2766
2766
|
FUEL_max = AC.ff(
|
|
2767
2767
|
rating="MCMB",
|
|
2768
2768
|
delta=delta,
|
|
2769
2769
|
theta=theta,
|
|
2770
2770
|
M=M_i,
|
|
2771
|
-
|
|
2771
|
+
deltaTemp=deltaTemp,
|
|
2772
2772
|
) # MCMB Fuel Flow
|
|
2773
2773
|
if THR_i < THR_min:
|
|
2774
2774
|
THR_i = THR_min
|
|
@@ -2803,7 +2803,7 @@ def constantSpeedROCD_time(
|
|
|
2803
2803
|
delta=delta,
|
|
2804
2804
|
theta=theta,
|
|
2805
2805
|
M=M_i,
|
|
2806
|
-
|
|
2806
|
+
deltaTemp=deltaTemp,
|
|
2807
2807
|
) # [kg/s]
|
|
2808
2808
|
ROCD_i = ROCDtarget
|
|
2809
2809
|
|
|
@@ -2814,7 +2814,7 @@ def constantSpeedROCD_time(
|
|
|
2814
2814
|
v=TAS_i,
|
|
2815
2815
|
h=H_m,
|
|
2816
2816
|
config="CR",
|
|
2817
|
-
|
|
2817
|
+
deltaTemp=deltaTemp,
|
|
2818
2818
|
) # IDLE Thrust
|
|
2819
2819
|
FUEL_min = AC.ff(
|
|
2820
2820
|
flightPhase="Descent",
|
|
@@ -2828,7 +2828,7 @@ def constantSpeedROCD_time(
|
|
|
2828
2828
|
rating="MCMB",
|
|
2829
2829
|
v=TAS_i,
|
|
2830
2830
|
h=H_m,
|
|
2831
|
-
|
|
2831
|
+
deltaTemp=deltaTemp,
|
|
2832
2832
|
config="CR",
|
|
2833
2833
|
) # MCMB Thrust
|
|
2834
2834
|
FUEL_max = AC.ff(
|
|
@@ -2979,10 +2979,10 @@ def constantSpeedROCD_time(
|
|
|
2979
2979
|
gamma_i = 90 * np.sign(ROCD_i)
|
|
2980
2980
|
else:
|
|
2981
2981
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
2982
|
-
h=conv.ft2m(Hp_i),
|
|
2982
|
+
h=conv.ft2m(Hp_i), deltaTemp=deltaTemp
|
|
2983
2983
|
)
|
|
2984
2984
|
temp_const = (theta * const.temp_0) / (
|
|
2985
|
-
theta * const.temp_0 -
|
|
2985
|
+
theta * const.temp_0 - deltaTemp
|
|
2986
2986
|
)
|
|
2987
2987
|
if AC.BADAFamily.BADAE:
|
|
2988
2988
|
gamma_i = degrees(
|
|
@@ -3223,7 +3223,7 @@ def constantSpeedSlope(
|
|
|
3223
3223
|
Hp_final,
|
|
3224
3224
|
slopetarget,
|
|
3225
3225
|
m_init,
|
|
3226
|
-
|
|
3226
|
+
deltaTemp,
|
|
3227
3227
|
wS=0.0,
|
|
3228
3228
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
3229
3229
|
Lat=None,
|
|
@@ -3250,7 +3250,7 @@ def constantSpeedSlope(
|
|
|
3250
3250
|
:param Hp_final: Final pressure altitude [ft].
|
|
3251
3251
|
:param slopetarget: Target slope (trajectory angle) to be maintained during climb/descent [deg].
|
|
3252
3252
|
:param m_init: Initial mass of the aircraft at the start of the segment [kg].
|
|
3253
|
-
:param
|
|
3253
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
3254
3254
|
:param wS: Wind speed component along the longitudinal axis (affects ground speed) [kt]. Default is 0.0.
|
|
3255
3255
|
:param turnMetrics: A dictionary defining the turn parameters:
|
|
3256
3256
|
|
|
@@ -3512,10 +3512,10 @@ def constantSpeedSlope(
|
|
|
3512
3512
|
# atmosphere properties
|
|
3513
3513
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
3514
3514
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
3515
|
-
h=H_m,
|
|
3515
|
+
h=H_m, deltaTemp=deltaTemp
|
|
3516
3516
|
)
|
|
3517
3517
|
temp_const = (theta * const.temp_0) / (
|
|
3518
|
-
theta * const.temp_0 -
|
|
3518
|
+
theta * const.temp_0 - deltaTemp
|
|
3519
3519
|
)
|
|
3520
3520
|
|
|
3521
3521
|
# aircraft speed
|
|
@@ -3531,7 +3531,7 @@ def constantSpeedSlope(
|
|
|
3531
3531
|
] = AC.ARPM.ARPMProcedure(
|
|
3532
3532
|
phase=phase,
|
|
3533
3533
|
h=H_m,
|
|
3534
|
-
|
|
3534
|
+
deltaTemp=deltaTemp,
|
|
3535
3535
|
mass=mass[-1],
|
|
3536
3536
|
rating="ARPM",
|
|
3537
3537
|
)
|
|
@@ -3561,7 +3561,7 @@ def constantSpeedSlope(
|
|
|
3561
3561
|
ESF_i = AC.esf(
|
|
3562
3562
|
h=H_m,
|
|
3563
3563
|
M=M_i,
|
|
3564
|
-
|
|
3564
|
+
deltaTemp=deltaTemp,
|
|
3565
3565
|
flightEvolution=("const" + speedType),
|
|
3566
3566
|
)
|
|
3567
3567
|
|
|
@@ -3586,7 +3586,7 @@ def constantSpeedSlope(
|
|
|
3586
3586
|
# Compute power required for target ROCD
|
|
3587
3587
|
Preq_target_i = AC.Peng_target(
|
|
3588
3588
|
temp=theta * const.temp_0,
|
|
3589
|
-
|
|
3589
|
+
deltaTemp=deltaTemp,
|
|
3590
3590
|
ROCD=ROCDisu,
|
|
3591
3591
|
mass=mass_i,
|
|
3592
3592
|
Preq=Preq_i,
|
|
@@ -3602,7 +3602,7 @@ def constantSpeedSlope(
|
|
|
3602
3602
|
phase=phase,
|
|
3603
3603
|
v=CAS_i,
|
|
3604
3604
|
mass=mass_i,
|
|
3605
|
-
|
|
3605
|
+
deltaTemp=deltaTemp,
|
|
3606
3606
|
)
|
|
3607
3607
|
else:
|
|
3608
3608
|
config_i = config_default
|
|
@@ -3642,7 +3642,7 @@ def constantSpeedSlope(
|
|
|
3642
3642
|
phase=phase,
|
|
3643
3643
|
v=CAS_i,
|
|
3644
3644
|
mass=mass_i,
|
|
3645
|
-
|
|
3645
|
+
deltaTemp=deltaTemp,
|
|
3646
3646
|
)
|
|
3647
3647
|
else:
|
|
3648
3648
|
config_i = config_default
|
|
@@ -3688,7 +3688,7 @@ def constantSpeedSlope(
|
|
|
3688
3688
|
mass=mass_i,
|
|
3689
3689
|
ESF=ESF_i,
|
|
3690
3690
|
theta=theta,
|
|
3691
|
-
|
|
3691
|
+
deltaTemp=deltaTemp,
|
|
3692
3692
|
)
|
|
3693
3693
|
)
|
|
3694
3694
|
* 60
|
|
@@ -3703,7 +3703,7 @@ def constantSpeedSlope(
|
|
|
3703
3703
|
mass=mass_i,
|
|
3704
3704
|
ESF=ESF_i,
|
|
3705
3705
|
theta=theta,
|
|
3706
|
-
|
|
3706
|
+
deltaTemp=deltaTemp,
|
|
3707
3707
|
)
|
|
3708
3708
|
)
|
|
3709
3709
|
* 60
|
|
@@ -3733,7 +3733,7 @@ def constantSpeedSlope(
|
|
|
3733
3733
|
mass=mass_i,
|
|
3734
3734
|
ESF=ESF_i,
|
|
3735
3735
|
theta=theta,
|
|
3736
|
-
|
|
3736
|
+
deltaTemp=deltaTemp,
|
|
3737
3737
|
)
|
|
3738
3738
|
)
|
|
3739
3739
|
* 60
|
|
@@ -3748,7 +3748,7 @@ def constantSpeedSlope(
|
|
|
3748
3748
|
mass=mass_i,
|
|
3749
3749
|
ESF=ESF_i,
|
|
3750
3750
|
theta=theta,
|
|
3751
|
-
|
|
3751
|
+
deltaTemp=deltaTemp,
|
|
3752
3752
|
)
|
|
3753
3753
|
)
|
|
3754
3754
|
* 60
|
|
@@ -3774,28 +3774,28 @@ def constantSpeedSlope(
|
|
|
3774
3774
|
delta=delta,
|
|
3775
3775
|
theta=theta,
|
|
3776
3776
|
M=M_i,
|
|
3777
|
-
|
|
3777
|
+
deltaTemp=deltaTemp,
|
|
3778
3778
|
) # IDLE Thrust
|
|
3779
3779
|
FUEL_min = AC.ff(
|
|
3780
3780
|
rating="LIDL",
|
|
3781
3781
|
delta=delta,
|
|
3782
3782
|
theta=theta,
|
|
3783
3783
|
M=M_i,
|
|
3784
|
-
|
|
3784
|
+
deltaTemp=deltaTemp,
|
|
3785
3785
|
) # IDLE Fuel Flow
|
|
3786
3786
|
THR_max = AC.Thrust(
|
|
3787
3787
|
rating="MCMB",
|
|
3788
3788
|
delta=delta,
|
|
3789
3789
|
theta=theta,
|
|
3790
3790
|
M=M_i,
|
|
3791
|
-
|
|
3791
|
+
deltaTemp=deltaTemp,
|
|
3792
3792
|
) # MCMB Thrust
|
|
3793
3793
|
FUEL_max = AC.ff(
|
|
3794
3794
|
rating="MCMB",
|
|
3795
3795
|
delta=delta,
|
|
3796
3796
|
theta=theta,
|
|
3797
3797
|
M=M_i,
|
|
3798
|
-
|
|
3798
|
+
deltaTemp=deltaTemp,
|
|
3799
3799
|
) # MCMB Fuel Flow
|
|
3800
3800
|
|
|
3801
3801
|
if THR_i < THR_min:
|
|
@@ -3831,7 +3831,7 @@ def constantSpeedSlope(
|
|
|
3831
3831
|
delta=delta,
|
|
3832
3832
|
theta=theta,
|
|
3833
3833
|
M=M_i,
|
|
3834
|
-
|
|
3834
|
+
deltaTemp=deltaTemp,
|
|
3835
3835
|
) # [kg/s]
|
|
3836
3836
|
ROCD_i = conv.m2ft(ROCDisu) * 60
|
|
3837
3837
|
|
|
@@ -3842,7 +3842,7 @@ def constantSpeedSlope(
|
|
|
3842
3842
|
v=TAS_i,
|
|
3843
3843
|
h=H_m,
|
|
3844
3844
|
config="CR",
|
|
3845
|
-
|
|
3845
|
+
deltaTemp=deltaTemp,
|
|
3846
3846
|
) # IDLE Thrust
|
|
3847
3847
|
FUEL_min = AC.ff(
|
|
3848
3848
|
flightPhase="Descent",
|
|
@@ -3856,7 +3856,7 @@ def constantSpeedSlope(
|
|
|
3856
3856
|
rating="MCMB",
|
|
3857
3857
|
v=TAS_i,
|
|
3858
3858
|
h=H_m,
|
|
3859
|
-
|
|
3859
|
+
deltaTemp=deltaTemp,
|
|
3860
3860
|
config="CR",
|
|
3861
3861
|
) # MCMB Thrust
|
|
3862
3862
|
FUEL_max = AC.ff(
|
|
@@ -4255,7 +4255,7 @@ def constantSpeedSlope_time(
|
|
|
4255
4255
|
Hp_init,
|
|
4256
4256
|
slopetarget,
|
|
4257
4257
|
m_init,
|
|
4258
|
-
|
|
4258
|
+
deltaTemp,
|
|
4259
4259
|
wS=0.0,
|
|
4260
4260
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
4261
4261
|
Lat=None,
|
|
@@ -4279,7 +4279,7 @@ def constantSpeedSlope_time(
|
|
|
4279
4279
|
:param Hp_init: Initial pressure altitude [ft].
|
|
4280
4280
|
:param slopetarget: Desired slope (trajectory angle) to follow [deg].
|
|
4281
4281
|
:param m_init: Initial aircraft mass [kg].
|
|
4282
|
-
:param
|
|
4282
|
+
:param deltaTemp: Deviation from standard ISA temperature [K].
|
|
4283
4283
|
:param wS: Longitudinal wind speed component (affects ground speed) [kt]. Default is 0.0.
|
|
4284
4284
|
:param turnMetrics: A dictionary defining the turn parameters:
|
|
4285
4285
|
|
|
@@ -4538,10 +4538,10 @@ def constantSpeedSlope_time(
|
|
|
4538
4538
|
# atmosphere properties
|
|
4539
4539
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
4540
4540
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
4541
|
-
h=H_m,
|
|
4541
|
+
h=H_m, deltaTemp=deltaTemp
|
|
4542
4542
|
)
|
|
4543
4543
|
temp_const = (theta * const.temp_0) / (
|
|
4544
|
-
theta * const.temp_0 -
|
|
4544
|
+
theta * const.temp_0 - deltaTemp
|
|
4545
4545
|
)
|
|
4546
4546
|
|
|
4547
4547
|
# aircraft speed
|
|
@@ -4557,7 +4557,7 @@ def constantSpeedSlope_time(
|
|
|
4557
4557
|
] = AC.ARPM.ARPMProcedure(
|
|
4558
4558
|
phase=phase,
|
|
4559
4559
|
h=H_m,
|
|
4560
|
-
|
|
4560
|
+
deltaTemp=deltaTemp,
|
|
4561
4561
|
mass=mass[-1],
|
|
4562
4562
|
rating="ARPM",
|
|
4563
4563
|
)
|
|
@@ -4587,7 +4587,7 @@ def constantSpeedSlope_time(
|
|
|
4587
4587
|
ESF_i = AC.esf(
|
|
4588
4588
|
h=H_m,
|
|
4589
4589
|
M=M_i,
|
|
4590
|
-
|
|
4590
|
+
deltaTemp=deltaTemp,
|
|
4591
4591
|
flightEvolution=("const" + speedType),
|
|
4592
4592
|
)
|
|
4593
4593
|
|
|
@@ -4613,7 +4613,7 @@ def constantSpeedSlope_time(
|
|
|
4613
4613
|
# Compute power required for target ROCD
|
|
4614
4614
|
Preq_target_i = AC.Peng_target(
|
|
4615
4615
|
temp=theta * const.temp_0,
|
|
4616
|
-
|
|
4616
|
+
deltaTemp=deltaTemp,
|
|
4617
4617
|
ROCD=ROCDisu,
|
|
4618
4618
|
mass=mass_i,
|
|
4619
4619
|
Preq=Preq_i,
|
|
@@ -4629,7 +4629,7 @@ def constantSpeedSlope_time(
|
|
|
4629
4629
|
phase=phase,
|
|
4630
4630
|
v=CAS_i,
|
|
4631
4631
|
mass=mass_i,
|
|
4632
|
-
|
|
4632
|
+
deltaTemp=deltaTemp,
|
|
4633
4633
|
)
|
|
4634
4634
|
else:
|
|
4635
4635
|
config_i = config_default
|
|
@@ -4669,7 +4669,7 @@ def constantSpeedSlope_time(
|
|
|
4669
4669
|
phase=phase,
|
|
4670
4670
|
v=CAS_i,
|
|
4671
4671
|
mass=mass_i,
|
|
4672
|
-
|
|
4672
|
+
deltaTemp=deltaTemp,
|
|
4673
4673
|
)
|
|
4674
4674
|
else:
|
|
4675
4675
|
config_i = config_default
|
|
@@ -4715,7 +4715,7 @@ def constantSpeedSlope_time(
|
|
|
4715
4715
|
mass=mass_i,
|
|
4716
4716
|
ESF=ESF_i,
|
|
4717
4717
|
theta=theta,
|
|
4718
|
-
|
|
4718
|
+
deltaTemp=deltaTemp,
|
|
4719
4719
|
)
|
|
4720
4720
|
)
|
|
4721
4721
|
* 60
|
|
@@ -4730,7 +4730,7 @@ def constantSpeedSlope_time(
|
|
|
4730
4730
|
mass=mass_i,
|
|
4731
4731
|
ESF=ESF_i,
|
|
4732
4732
|
theta=theta,
|
|
4733
|
-
|
|
4733
|
+
deltaTemp=deltaTemp,
|
|
4734
4734
|
)
|
|
4735
4735
|
)
|
|
4736
4736
|
* 60
|
|
@@ -4760,7 +4760,7 @@ def constantSpeedSlope_time(
|
|
|
4760
4760
|
mass=mass_i,
|
|
4761
4761
|
ESF=ESF_i,
|
|
4762
4762
|
theta=theta,
|
|
4763
|
-
|
|
4763
|
+
deltaTemp=deltaTemp,
|
|
4764
4764
|
)
|
|
4765
4765
|
)
|
|
4766
4766
|
* 60
|
|
@@ -4775,7 +4775,7 @@ def constantSpeedSlope_time(
|
|
|
4775
4775
|
mass=mass_i,
|
|
4776
4776
|
ESF=ESF_i,
|
|
4777
4777
|
theta=theta,
|
|
4778
|
-
|
|
4778
|
+
deltaTemp=deltaTemp,
|
|
4779
4779
|
)
|
|
4780
4780
|
)
|
|
4781
4781
|
* 60
|
|
@@ -4801,28 +4801,28 @@ def constantSpeedSlope_time(
|
|
|
4801
4801
|
delta=delta,
|
|
4802
4802
|
theta=theta,
|
|
4803
4803
|
M=M_i,
|
|
4804
|
-
|
|
4804
|
+
deltaTemp=deltaTemp,
|
|
4805
4805
|
) # IDLE Thrust
|
|
4806
4806
|
FUEL_min = AC.ff(
|
|
4807
4807
|
rating="LIDL",
|
|
4808
4808
|
delta=delta,
|
|
4809
4809
|
theta=theta,
|
|
4810
4810
|
M=M_i,
|
|
4811
|
-
|
|
4811
|
+
deltaTemp=deltaTemp,
|
|
4812
4812
|
) # IDLE Fuel Flow
|
|
4813
4813
|
THR_max = AC.Thrust(
|
|
4814
4814
|
rating="MCMB",
|
|
4815
4815
|
delta=delta,
|
|
4816
4816
|
theta=theta,
|
|
4817
4817
|
M=M_i,
|
|
4818
|
-
|
|
4818
|
+
deltaTemp=deltaTemp,
|
|
4819
4819
|
) # MCMB Thrust
|
|
4820
4820
|
FUEL_max = AC.ff(
|
|
4821
4821
|
rating="MCMB",
|
|
4822
4822
|
delta=delta,
|
|
4823
4823
|
theta=theta,
|
|
4824
4824
|
M=M_i,
|
|
4825
|
-
|
|
4825
|
+
deltaTemp=deltaTemp,
|
|
4826
4826
|
) # MCMB Fuel Flow
|
|
4827
4827
|
|
|
4828
4828
|
if THR_i < THR_min:
|
|
@@ -4858,7 +4858,7 @@ def constantSpeedSlope_time(
|
|
|
4858
4858
|
delta=delta,
|
|
4859
4859
|
theta=theta,
|
|
4860
4860
|
M=M_i,
|
|
4861
|
-
|
|
4861
|
+
deltaTemp=deltaTemp,
|
|
4862
4862
|
) # [kg/s]
|
|
4863
4863
|
ROCD_i = conv.m2ft(ROCDisu) * 60
|
|
4864
4864
|
|
|
@@ -4869,7 +4869,7 @@ def constantSpeedSlope_time(
|
|
|
4869
4869
|
v=TAS_i,
|
|
4870
4870
|
h=H_m,
|
|
4871
4871
|
config="CR",
|
|
4872
|
-
|
|
4872
|
+
deltaTemp=deltaTemp,
|
|
4873
4873
|
) # IDLE Thrust
|
|
4874
4874
|
FUEL_min = AC.ff(
|
|
4875
4875
|
flightPhase="Descent",
|
|
@@ -4883,7 +4883,7 @@ def constantSpeedSlope_time(
|
|
|
4883
4883
|
rating="MCMB",
|
|
4884
4884
|
v=TAS_i,
|
|
4885
4885
|
h=H_m,
|
|
4886
|
-
|
|
4886
|
+
deltaTemp=deltaTemp,
|
|
4887
4887
|
config="CR",
|
|
4888
4888
|
) # MCMB Thrust
|
|
4889
4889
|
FUEL_max = AC.ff(
|
|
@@ -5034,10 +5034,10 @@ def constantSpeedSlope_time(
|
|
|
5034
5034
|
gamma_i = 90 * np.sign(ROCD_i)
|
|
5035
5035
|
else:
|
|
5036
5036
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
5037
|
-
h=conv.ft2m(Hp_i),
|
|
5037
|
+
h=conv.ft2m(Hp_i), deltaTemp=deltaTemp
|
|
5038
5038
|
)
|
|
5039
5039
|
temp_const = (theta * const.temp_0) / (
|
|
5040
|
-
theta * const.temp_0 -
|
|
5040
|
+
theta * const.temp_0 - deltaTemp
|
|
5041
5041
|
)
|
|
5042
5042
|
if AC.BADAFamily.BADAE:
|
|
5043
5043
|
gamma_i = degrees(
|
|
@@ -5277,7 +5277,7 @@ def constantSpeedRating(
|
|
|
5277
5277
|
Hp_init,
|
|
5278
5278
|
Hp_final,
|
|
5279
5279
|
m_init,
|
|
5280
|
-
|
|
5280
|
+
deltaTemp,
|
|
5281
5281
|
wS=0.0,
|
|
5282
5282
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
5283
5283
|
Lat=None,
|
|
@@ -5305,7 +5305,7 @@ def constantSpeedRating(
|
|
|
5305
5305
|
:param Hp_init: Initial pressure altitude [ft].
|
|
5306
5306
|
:param Hp_final: Final pressure altitude [ft].
|
|
5307
5307
|
:param m_init: Initial mass of the aircraft at the start of the segment [kg].
|
|
5308
|
-
:param
|
|
5308
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
5309
5309
|
:param wS: Wind speed component along the longitudinal axis (affects ground speed) [kt]. Default is 0.0.
|
|
5310
5310
|
:param turnMetrics: A dictionary defining the turn parameters:
|
|
5311
5311
|
|
|
@@ -5595,10 +5595,10 @@ def constantSpeedRating(
|
|
|
5595
5595
|
# atmosphere properties
|
|
5596
5596
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
5597
5597
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
5598
|
-
h=H_m,
|
|
5598
|
+
h=H_m, deltaTemp=deltaTemp
|
|
5599
5599
|
)
|
|
5600
5600
|
temp_const = (theta * const.temp_0) / (
|
|
5601
|
-
theta * const.temp_0 -
|
|
5601
|
+
theta * const.temp_0 - deltaTemp
|
|
5602
5602
|
)
|
|
5603
5603
|
|
|
5604
5604
|
# aircraft speed
|
|
@@ -5614,7 +5614,7 @@ def constantSpeedRating(
|
|
|
5614
5614
|
] = AC.ARPM.ARPMProcedure(
|
|
5615
5615
|
phase=phase,
|
|
5616
5616
|
h=H_m,
|
|
5617
|
-
|
|
5617
|
+
deltaTemp=deltaTemp,
|
|
5618
5618
|
mass=mass[-1],
|
|
5619
5619
|
rating=rating,
|
|
5620
5620
|
)
|
|
@@ -5644,7 +5644,7 @@ def constantSpeedRating(
|
|
|
5644
5644
|
ESF_i = AC.esf(
|
|
5645
5645
|
h=H_m,
|
|
5646
5646
|
M=M_i,
|
|
5647
|
-
|
|
5647
|
+
deltaTemp=deltaTemp,
|
|
5648
5648
|
flightEvolution=("const" + speedType),
|
|
5649
5649
|
)
|
|
5650
5650
|
|
|
@@ -5695,14 +5695,14 @@ def constantSpeedRating(
|
|
|
5695
5695
|
delta=delta,
|
|
5696
5696
|
theta=theta,
|
|
5697
5697
|
M=M_i,
|
|
5698
|
-
|
|
5698
|
+
deltaTemp=deltaTemp,
|
|
5699
5699
|
) # [N]
|
|
5700
5700
|
FUEL_i = AC.ff(
|
|
5701
5701
|
rating=rating,
|
|
5702
5702
|
delta=delta,
|
|
5703
5703
|
theta=theta,
|
|
5704
5704
|
M=M_i,
|
|
5705
|
-
|
|
5705
|
+
deltaTemp=deltaTemp,
|
|
5706
5706
|
)
|
|
5707
5707
|
|
|
5708
5708
|
# BADA3
|
|
@@ -5714,7 +5714,7 @@ def constantSpeedRating(
|
|
|
5714
5714
|
phase=phase,
|
|
5715
5715
|
v=CAS_i,
|
|
5716
5716
|
mass=mass_i,
|
|
5717
|
-
|
|
5717
|
+
deltaTemp=deltaTemp,
|
|
5718
5718
|
)
|
|
5719
5719
|
else:
|
|
5720
5720
|
config_i = config_default
|
|
@@ -5733,7 +5733,7 @@ def constantSpeedRating(
|
|
|
5733
5733
|
v=TAS_i,
|
|
5734
5734
|
h=H_m,
|
|
5735
5735
|
config=config_i,
|
|
5736
|
-
|
|
5736
|
+
deltaTemp=deltaTemp,
|
|
5737
5737
|
)
|
|
5738
5738
|
FUEL_i = AC.ff(
|
|
5739
5739
|
flightPhase=phase, v=TAS_i, h=H_m, T=THR_i, config=config_i
|
|
@@ -5768,7 +5768,7 @@ def constantSpeedRating(
|
|
|
5768
5768
|
mass=mass_i,
|
|
5769
5769
|
ESF=ESF_i,
|
|
5770
5770
|
theta=theta,
|
|
5771
|
-
|
|
5771
|
+
deltaTemp=deltaTemp,
|
|
5772
5772
|
)
|
|
5773
5773
|
)
|
|
5774
5774
|
* 60
|
|
@@ -5783,7 +5783,7 @@ def constantSpeedRating(
|
|
|
5783
5783
|
phase=phase,
|
|
5784
5784
|
v=CAS_i,
|
|
5785
5785
|
mass=mass_i,
|
|
5786
|
-
|
|
5786
|
+
deltaTemp=deltaTemp,
|
|
5787
5787
|
)
|
|
5788
5788
|
else:
|
|
5789
5789
|
config_i = config_default
|
|
@@ -5834,7 +5834,7 @@ def constantSpeedRating(
|
|
|
5834
5834
|
phase=phase,
|
|
5835
5835
|
v=CAS_i,
|
|
5836
5836
|
mass=mass_i,
|
|
5837
|
-
|
|
5837
|
+
deltaTemp=deltaTemp,
|
|
5838
5838
|
)
|
|
5839
5839
|
else:
|
|
5840
5840
|
config_i = config_default
|
|
@@ -5868,7 +5868,7 @@ def constantSpeedRating(
|
|
|
5868
5868
|
mass=mass_i,
|
|
5869
5869
|
ESF=ESF_i,
|
|
5870
5870
|
h=H_m,
|
|
5871
|
-
|
|
5871
|
+
deltaTemp=deltaTemp,
|
|
5872
5872
|
reducedPower=reducedPower,
|
|
5873
5873
|
)
|
|
5874
5874
|
)
|
|
@@ -6227,7 +6227,7 @@ def constantSpeedRating_time(
|
|
|
6227
6227
|
Hp_init,
|
|
6228
6228
|
phase,
|
|
6229
6229
|
m_init,
|
|
6230
|
-
|
|
6230
|
+
deltaTemp,
|
|
6231
6231
|
wS=0.0,
|
|
6232
6232
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
6233
6233
|
Lat=None,
|
|
@@ -6255,7 +6255,7 @@ def constantSpeedRating_time(
|
|
|
6255
6255
|
:param Hp_init: Initial pressure altitude [ft].
|
|
6256
6256
|
:param phase: Phase of flight (Climb or Descent).
|
|
6257
6257
|
:param m_init: Initial mass of the aircraft at the start of the segment [kg].
|
|
6258
|
-
:param
|
|
6258
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
6259
6259
|
:param wS: Wind speed component along the longitudinal axis (affects ground speed) [kt]. Default is 0.0.
|
|
6260
6260
|
:param turnMetrics: A dictionary defining the turn parameters:
|
|
6261
6261
|
|
|
@@ -6549,10 +6549,10 @@ def constantSpeedRating_time(
|
|
|
6549
6549
|
# atmosphere properties
|
|
6550
6550
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
6551
6551
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
6552
|
-
h=H_m,
|
|
6552
|
+
h=H_m, deltaTemp=deltaTemp
|
|
6553
6553
|
)
|
|
6554
6554
|
temp_const = (theta * const.temp_0) / (
|
|
6555
|
-
theta * const.temp_0 -
|
|
6555
|
+
theta * const.temp_0 - deltaTemp
|
|
6556
6556
|
)
|
|
6557
6557
|
|
|
6558
6558
|
# aircraft speed
|
|
@@ -6568,7 +6568,7 @@ def constantSpeedRating_time(
|
|
|
6568
6568
|
] = AC.ARPM.ARPMProcedure(
|
|
6569
6569
|
phase=phase,
|
|
6570
6570
|
h=H_m,
|
|
6571
|
-
|
|
6571
|
+
deltaTemp=deltaTemp,
|
|
6572
6572
|
mass=mass[-1],
|
|
6573
6573
|
rating=rating,
|
|
6574
6574
|
)
|
|
@@ -6598,7 +6598,7 @@ def constantSpeedRating_time(
|
|
|
6598
6598
|
ESF_i = AC.esf(
|
|
6599
6599
|
h=H_m,
|
|
6600
6600
|
M=M_i,
|
|
6601
|
-
|
|
6601
|
+
deltaTemp=deltaTemp,
|
|
6602
6602
|
flightEvolution=("const" + speedType),
|
|
6603
6603
|
)
|
|
6604
6604
|
|
|
@@ -6651,14 +6651,14 @@ def constantSpeedRating_time(
|
|
|
6651
6651
|
delta=delta,
|
|
6652
6652
|
theta=theta,
|
|
6653
6653
|
M=M_i,
|
|
6654
|
-
|
|
6654
|
+
deltaTemp=deltaTemp,
|
|
6655
6655
|
) # [N]
|
|
6656
6656
|
FUEL_i = AC.ff(
|
|
6657
6657
|
rating=rating,
|
|
6658
6658
|
delta=delta,
|
|
6659
6659
|
theta=theta,
|
|
6660
6660
|
M=M_i,
|
|
6661
|
-
|
|
6661
|
+
deltaTemp=deltaTemp,
|
|
6662
6662
|
)
|
|
6663
6663
|
|
|
6664
6664
|
# BADA3
|
|
@@ -6670,7 +6670,7 @@ def constantSpeedRating_time(
|
|
|
6670
6670
|
phase=phase,
|
|
6671
6671
|
v=CAS_i,
|
|
6672
6672
|
mass=mass_i,
|
|
6673
|
-
|
|
6673
|
+
deltaTemp=deltaTemp,
|
|
6674
6674
|
)
|
|
6675
6675
|
else:
|
|
6676
6676
|
config_i = config_default
|
|
@@ -6689,7 +6689,7 @@ def constantSpeedRating_time(
|
|
|
6689
6689
|
v=TAS_i,
|
|
6690
6690
|
h=H_m,
|
|
6691
6691
|
config=config_i,
|
|
6692
|
-
|
|
6692
|
+
deltaTemp=deltaTemp,
|
|
6693
6693
|
)
|
|
6694
6694
|
FUEL_i = AC.ff(
|
|
6695
6695
|
flightPhase=phase, v=TAS_i, h=H_m, T=THR_i, config=config_i
|
|
@@ -6710,7 +6710,7 @@ def constantSpeedRating_time(
|
|
|
6710
6710
|
mass=mass_i,
|
|
6711
6711
|
ESF=ESF_i,
|
|
6712
6712
|
theta=theta,
|
|
6713
|
-
|
|
6713
|
+
deltaTemp=deltaTemp,
|
|
6714
6714
|
)
|
|
6715
6715
|
)
|
|
6716
6716
|
* 60
|
|
@@ -6725,7 +6725,7 @@ def constantSpeedRating_time(
|
|
|
6725
6725
|
phase=phase,
|
|
6726
6726
|
v=CAS_i,
|
|
6727
6727
|
mass=mass_i,
|
|
6728
|
-
|
|
6728
|
+
deltaTemp=deltaTemp,
|
|
6729
6729
|
)
|
|
6730
6730
|
else:
|
|
6731
6731
|
config_i = config_default
|
|
@@ -6776,7 +6776,7 @@ def constantSpeedRating_time(
|
|
|
6776
6776
|
phase=phase,
|
|
6777
6777
|
v=CAS_i,
|
|
6778
6778
|
mass=mass_i,
|
|
6779
|
-
|
|
6779
|
+
deltaTemp=deltaTemp,
|
|
6780
6780
|
)
|
|
6781
6781
|
else:
|
|
6782
6782
|
config_i = config_default
|
|
@@ -6810,7 +6810,7 @@ def constantSpeedRating_time(
|
|
|
6810
6810
|
mass=mass_i,
|
|
6811
6811
|
ESF=ESF_i,
|
|
6812
6812
|
h=H_m,
|
|
6813
|
-
|
|
6813
|
+
deltaTemp=deltaTemp,
|
|
6814
6814
|
reducedPower=reducedPower,
|
|
6815
6815
|
)
|
|
6816
6816
|
)
|
|
@@ -6924,10 +6924,10 @@ def constantSpeedRating_time(
|
|
|
6924
6924
|
gamma_i = 90 * np.sign(ROCD_i)
|
|
6925
6925
|
else:
|
|
6926
6926
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
6927
|
-
h=conv.ft2m(Hp_i),
|
|
6927
|
+
h=conv.ft2m(Hp_i), deltaTemp=deltaTemp
|
|
6928
6928
|
)
|
|
6929
6929
|
temp_const = (theta * const.temp_0) / (
|
|
6930
|
-
theta * const.temp_0 -
|
|
6930
|
+
theta * const.temp_0 - deltaTemp
|
|
6931
6931
|
)
|
|
6932
6932
|
if AC.BADAFamily.BADAE:
|
|
6933
6933
|
gamma_i = degrees(
|
|
@@ -7168,7 +7168,7 @@ def accDec(
|
|
|
7168
7168
|
phase,
|
|
7169
7169
|
Hp_init,
|
|
7170
7170
|
m_init,
|
|
7171
|
-
|
|
7171
|
+
deltaTemp,
|
|
7172
7172
|
wS=0.0,
|
|
7173
7173
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
7174
7174
|
control=None,
|
|
@@ -7210,7 +7210,7 @@ def accDec(
|
|
|
7210
7210
|
- ESFtarget: Energy Share Factor to be followed [-].
|
|
7211
7211
|
:param Hp_init: Initial pressure altitude [ft].
|
|
7212
7212
|
:param m_init: Initial aircraft mass [kg].
|
|
7213
|
-
:param
|
|
7213
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
7214
7214
|
:param wS: Wind speed component along the longitudinal axis (affects ground speed) [kt]. Default is 0.0.
|
|
7215
7215
|
:param turnMetrics: A dictionary defining turn parameters:
|
|
7216
7216
|
|
|
@@ -7609,10 +7609,10 @@ def accDec(
|
|
|
7609
7609
|
# atmosphere properties
|
|
7610
7610
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
7611
7611
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
7612
|
-
h=H_m,
|
|
7612
|
+
h=H_m, deltaTemp=deltaTemp
|
|
7613
7613
|
)
|
|
7614
7614
|
temp_const = (theta * const.temp_0) / (
|
|
7615
|
-
theta * const.temp_0 -
|
|
7615
|
+
theta * const.temp_0 - deltaTemp
|
|
7616
7616
|
)
|
|
7617
7617
|
|
|
7618
7618
|
# aircraft speed
|
|
@@ -7704,7 +7704,7 @@ def accDec(
|
|
|
7704
7704
|
mass=mass_i,
|
|
7705
7705
|
ESF=ESFc,
|
|
7706
7706
|
theta=theta,
|
|
7707
|
-
|
|
7707
|
+
deltaTemp=deltaTemp,
|
|
7708
7708
|
)
|
|
7709
7709
|
)
|
|
7710
7710
|
* 60
|
|
@@ -7734,7 +7734,7 @@ def accDec(
|
|
|
7734
7734
|
mass=mass_i,
|
|
7735
7735
|
ESF=ESFc,
|
|
7736
7736
|
theta=theta,
|
|
7737
|
-
|
|
7737
|
+
deltaTemp=deltaTemp,
|
|
7738
7738
|
)
|
|
7739
7739
|
)
|
|
7740
7740
|
* 60
|
|
@@ -7806,7 +7806,7 @@ def accDec(
|
|
|
7806
7806
|
phase=phase,
|
|
7807
7807
|
v=CAS_i,
|
|
7808
7808
|
mass=mass_i,
|
|
7809
|
-
|
|
7809
|
+
deltaTemp=deltaTemp,
|
|
7810
7810
|
)
|
|
7811
7811
|
else:
|
|
7812
7812
|
config_i = config_default
|
|
@@ -7855,28 +7855,28 @@ def accDec(
|
|
|
7855
7855
|
delta=delta,
|
|
7856
7856
|
theta=theta,
|
|
7857
7857
|
M=M_i,
|
|
7858
|
-
|
|
7858
|
+
deltaTemp=deltaTemp,
|
|
7859
7859
|
) # IDLE Thrust
|
|
7860
7860
|
FUEL_min = AC.ff(
|
|
7861
7861
|
rating="LIDL",
|
|
7862
7862
|
delta=delta,
|
|
7863
7863
|
theta=theta,
|
|
7864
7864
|
M=M_i,
|
|
7865
|
-
|
|
7865
|
+
deltaTemp=deltaTemp,
|
|
7866
7866
|
) # IDLE Fuel Flow
|
|
7867
7867
|
THR_max = AC.Thrust(
|
|
7868
7868
|
rating="MCMB",
|
|
7869
7869
|
delta=delta,
|
|
7870
7870
|
theta=theta,
|
|
7871
7871
|
M=M_i,
|
|
7872
|
-
|
|
7872
|
+
deltaTemp=deltaTemp,
|
|
7873
7873
|
) # MCMB Thrust
|
|
7874
7874
|
FUEL_max = AC.ff(
|
|
7875
7875
|
rating="MCMB",
|
|
7876
7876
|
delta=delta,
|
|
7877
7877
|
theta=theta,
|
|
7878
7878
|
M=M_i,
|
|
7879
|
-
|
|
7879
|
+
deltaTemp=deltaTemp,
|
|
7880
7880
|
) # MCMB Fuel Flow
|
|
7881
7881
|
|
|
7882
7882
|
if THR_i < THR_min:
|
|
@@ -7892,7 +7892,7 @@ def accDec(
|
|
|
7892
7892
|
delta=delta,
|
|
7893
7893
|
theta=theta,
|
|
7894
7894
|
M=M_i,
|
|
7895
|
-
|
|
7895
|
+
deltaTemp=deltaTemp,
|
|
7896
7896
|
)
|
|
7897
7897
|
else:
|
|
7898
7898
|
THR_i = AC.Thrust(
|
|
@@ -7900,7 +7900,7 @@ def accDec(
|
|
|
7900
7900
|
delta=delta,
|
|
7901
7901
|
theta=theta,
|
|
7902
7902
|
M=M_i,
|
|
7903
|
-
|
|
7903
|
+
deltaTemp=deltaTemp,
|
|
7904
7904
|
) # [N]
|
|
7905
7905
|
CT = AC.CT(Thrust=THR_i, delta=delta)
|
|
7906
7906
|
FUEL_i = AC.ff(
|
|
@@ -7908,7 +7908,7 @@ def accDec(
|
|
|
7908
7908
|
delta=delta,
|
|
7909
7909
|
theta=theta,
|
|
7910
7910
|
M=M_i,
|
|
7911
|
-
|
|
7911
|
+
deltaTemp=deltaTemp,
|
|
7912
7912
|
)
|
|
7913
7913
|
|
|
7914
7914
|
# compute excess power
|
|
@@ -7923,7 +7923,7 @@ def accDec(
|
|
|
7923
7923
|
phase=phase,
|
|
7924
7924
|
v=CAS_i,
|
|
7925
7925
|
mass=mass_i,
|
|
7926
|
-
|
|
7926
|
+
deltaTemp=deltaTemp,
|
|
7927
7927
|
)
|
|
7928
7928
|
else:
|
|
7929
7929
|
config_i = config_default
|
|
@@ -7967,7 +7967,7 @@ def accDec(
|
|
|
7967
7967
|
v=TAS_i,
|
|
7968
7968
|
h=H_m,
|
|
7969
7969
|
config="CR",
|
|
7970
|
-
|
|
7970
|
+
deltaTemp=deltaTemp,
|
|
7971
7971
|
) # IDLE Thrust
|
|
7972
7972
|
FUEL_min = AC.ff(
|
|
7973
7973
|
flightPhase="Descent",
|
|
@@ -7982,7 +7982,7 @@ def accDec(
|
|
|
7982
7982
|
v=TAS_i,
|
|
7983
7983
|
h=H_m,
|
|
7984
7984
|
config="CR",
|
|
7985
|
-
|
|
7985
|
+
deltaTemp=deltaTemp,
|
|
7986
7986
|
) # MCMB Thrust
|
|
7987
7987
|
FUEL_max = AC.ff(
|
|
7988
7988
|
flightPhase="Climb",
|
|
@@ -8013,7 +8013,7 @@ def accDec(
|
|
|
8013
8013
|
v=TAS_i,
|
|
8014
8014
|
h=H_m,
|
|
8015
8015
|
config=config_i,
|
|
8016
|
-
|
|
8016
|
+
deltaTemp=deltaTemp,
|
|
8017
8017
|
)
|
|
8018
8018
|
if rating == "MCMB" or rating == "MTKF":
|
|
8019
8019
|
FUEL_i = AC.ff(
|
|
@@ -8195,10 +8195,10 @@ def accDec(
|
|
|
8195
8195
|
gamma_i = 90 * np.sign(ROCD_i)
|
|
8196
8196
|
else:
|
|
8197
8197
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
8198
|
-
h=conv.ft2m(Hp_i),
|
|
8198
|
+
h=conv.ft2m(Hp_i), deltaTemp=deltaTemp
|
|
8199
8199
|
)
|
|
8200
8200
|
temp_const = (theta * const.temp_0) / (
|
|
8201
|
-
theta * const.temp_0 -
|
|
8201
|
+
theta * const.temp_0 - deltaTemp
|
|
8202
8202
|
)
|
|
8203
8203
|
if AC.BADAFamily.BADAE:
|
|
8204
8204
|
gamma_i = degrees(
|
|
@@ -8450,7 +8450,7 @@ def accDec_time(
|
|
|
8450
8450
|
phase,
|
|
8451
8451
|
Hp_init,
|
|
8452
8452
|
m_init,
|
|
8453
|
-
|
|
8453
|
+
deltaTemp,
|
|
8454
8454
|
wS=0.0,
|
|
8455
8455
|
turnMetrics={"rateOfTurn": 0.0, "bankAngle": 0.0, "directionOfTurn": None},
|
|
8456
8456
|
control=None,
|
|
@@ -8493,7 +8493,7 @@ def accDec_time(
|
|
|
8493
8493
|
- ESFtarget: Energy Share Factor to be followed [-].
|
|
8494
8494
|
:param Hp_init: Initial pressure altitude [ft].
|
|
8495
8495
|
:param m_init: Initial aircraft mass [kg].
|
|
8496
|
-
:param
|
|
8496
|
+
:param deltaTemp: Deviation from the standard ISA temperature [K].
|
|
8497
8497
|
:param wS: Wind speed component along the longitudinal axis (affects ground speed) [kt]. Default is 0.0.
|
|
8498
8498
|
:param turnMetrics: A dictionary defining turn parameters:
|
|
8499
8499
|
|
|
@@ -8805,7 +8805,7 @@ def accDec_time(
|
|
|
8805
8805
|
|
|
8806
8806
|
# initialize output parameters
|
|
8807
8807
|
[theta_init, delta_init, sigma_init] = atm.atmosphereProperties(
|
|
8808
|
-
h=conv.ft2m(Hp_init),
|
|
8808
|
+
h=conv.ft2m(Hp_init), deltaTemp=deltaTemp
|
|
8809
8809
|
)
|
|
8810
8810
|
[M_init, CAS_init, TAS_init] = atm.convertSpeed(
|
|
8811
8811
|
v=v_init,
|
|
@@ -8896,10 +8896,10 @@ def accDec_time(
|
|
|
8896
8896
|
# atmosphere properties
|
|
8897
8897
|
H_m = conv.ft2m(Hp_i) # altitude [m]
|
|
8898
8898
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
8899
|
-
h=H_m,
|
|
8899
|
+
h=H_m, deltaTemp=deltaTemp
|
|
8900
8900
|
)
|
|
8901
8901
|
temp_const = (theta * const.temp_0) / (
|
|
8902
|
-
theta * const.temp_0 -
|
|
8902
|
+
theta * const.temp_0 - deltaTemp
|
|
8903
8903
|
)
|
|
8904
8904
|
|
|
8905
8905
|
step_time = length_loop - time[-1]
|
|
@@ -8987,7 +8987,7 @@ def accDec_time(
|
|
|
8987
8987
|
mass=mass_i,
|
|
8988
8988
|
ESF=ESFc,
|
|
8989
8989
|
theta=theta,
|
|
8990
|
-
|
|
8990
|
+
deltaTemp=deltaTemp,
|
|
8991
8991
|
)
|
|
8992
8992
|
)
|
|
8993
8993
|
* 60
|
|
@@ -9016,7 +9016,7 @@ def accDec_time(
|
|
|
9016
9016
|
mass=mass_i,
|
|
9017
9017
|
ESF=ESFc,
|
|
9018
9018
|
theta=theta,
|
|
9019
|
-
|
|
9019
|
+
deltaTemp=deltaTemp,
|
|
9020
9020
|
)
|
|
9021
9021
|
)
|
|
9022
9022
|
* 60
|
|
@@ -9088,7 +9088,7 @@ def accDec_time(
|
|
|
9088
9088
|
phase=phase,
|
|
9089
9089
|
v=CAS_i,
|
|
9090
9090
|
mass=mass_i,
|
|
9091
|
-
|
|
9091
|
+
deltaTemp=deltaTemp,
|
|
9092
9092
|
)
|
|
9093
9093
|
else:
|
|
9094
9094
|
config_i = config_default
|
|
@@ -9137,28 +9137,28 @@ def accDec_time(
|
|
|
9137
9137
|
delta=delta,
|
|
9138
9138
|
theta=theta,
|
|
9139
9139
|
M=M_i,
|
|
9140
|
-
|
|
9140
|
+
deltaTemp=deltaTemp,
|
|
9141
9141
|
) # IDLE Thrust
|
|
9142
9142
|
FUEL_min = AC.ff(
|
|
9143
9143
|
rating="LIDL",
|
|
9144
9144
|
delta=delta,
|
|
9145
9145
|
theta=theta,
|
|
9146
9146
|
M=M_i,
|
|
9147
|
-
|
|
9147
|
+
deltaTemp=deltaTemp,
|
|
9148
9148
|
) # IDLE Fuel Flow
|
|
9149
9149
|
THR_max = AC.Thrust(
|
|
9150
9150
|
rating="MCMB",
|
|
9151
9151
|
delta=delta,
|
|
9152
9152
|
theta=theta,
|
|
9153
9153
|
M=M_i,
|
|
9154
|
-
|
|
9154
|
+
deltaTemp=deltaTemp,
|
|
9155
9155
|
) # MCMB Thrust
|
|
9156
9156
|
FUEL_max = AC.ff(
|
|
9157
9157
|
rating="MCMB",
|
|
9158
9158
|
delta=delta,
|
|
9159
9159
|
theta=theta,
|
|
9160
9160
|
M=M_i,
|
|
9161
|
-
|
|
9161
|
+
deltaTemp=deltaTemp,
|
|
9162
9162
|
) # MCMB Fuel Flow
|
|
9163
9163
|
|
|
9164
9164
|
if THR_i < THR_min:
|
|
@@ -9174,7 +9174,7 @@ def accDec_time(
|
|
|
9174
9174
|
delta=delta,
|
|
9175
9175
|
theta=theta,
|
|
9176
9176
|
M=M_i,
|
|
9177
|
-
|
|
9177
|
+
deltaTemp=deltaTemp,
|
|
9178
9178
|
)
|
|
9179
9179
|
else:
|
|
9180
9180
|
THR_i = AC.Thrust(
|
|
@@ -9182,7 +9182,7 @@ def accDec_time(
|
|
|
9182
9182
|
delta=delta,
|
|
9183
9183
|
theta=theta,
|
|
9184
9184
|
M=M_i,
|
|
9185
|
-
|
|
9185
|
+
deltaTemp=deltaTemp,
|
|
9186
9186
|
) # [N]
|
|
9187
9187
|
CT = AC.CT(Thrust=THR_i, delta=delta)
|
|
9188
9188
|
FUEL_i = AC.ff(
|
|
@@ -9190,10 +9190,10 @@ def accDec_time(
|
|
|
9190
9190
|
delta=delta,
|
|
9191
9191
|
theta=theta,
|
|
9192
9192
|
M=M_i,
|
|
9193
|
-
|
|
9193
|
+
deltaTemp=deltaTemp,
|
|
9194
9194
|
)
|
|
9195
9195
|
# FUEL_i = AC.ff(
|
|
9196
|
-
# CT=CT, delta=delta, theta=theta, M=M_i,
|
|
9196
|
+
# CT=CT, delta=delta, theta=theta, M=M_i, deltaTemp=deltaTemp
|
|
9197
9197
|
# )
|
|
9198
9198
|
|
|
9199
9199
|
# compute excess power
|
|
@@ -9208,7 +9208,7 @@ def accDec_time(
|
|
|
9208
9208
|
phase=phase,
|
|
9209
9209
|
v=CAS_i,
|
|
9210
9210
|
mass=mass_i,
|
|
9211
|
-
|
|
9211
|
+
deltaTemp=deltaTemp,
|
|
9212
9212
|
)
|
|
9213
9213
|
else:
|
|
9214
9214
|
config_i = config_default
|
|
@@ -9252,7 +9252,7 @@ def accDec_time(
|
|
|
9252
9252
|
v=TAS_i,
|
|
9253
9253
|
h=H_m,
|
|
9254
9254
|
config="CR",
|
|
9255
|
-
|
|
9255
|
+
deltaTemp=deltaTemp,
|
|
9256
9256
|
) # IDLE Thrust
|
|
9257
9257
|
FUEL_min = AC.ff(
|
|
9258
9258
|
flightPhase="Descent",
|
|
@@ -9267,7 +9267,7 @@ def accDec_time(
|
|
|
9267
9267
|
v=TAS_i,
|
|
9268
9268
|
h=H_m,
|
|
9269
9269
|
config="CR",
|
|
9270
|
-
|
|
9270
|
+
deltaTemp=deltaTemp,
|
|
9271
9271
|
) # MCMB Thrust
|
|
9272
9272
|
FUEL_max = AC.ff(
|
|
9273
9273
|
flightPhase="Climb",
|
|
@@ -9298,7 +9298,7 @@ def accDec_time(
|
|
|
9298
9298
|
v=TAS_i,
|
|
9299
9299
|
h=H_m,
|
|
9300
9300
|
config=config_i,
|
|
9301
|
-
|
|
9301
|
+
deltaTemp=deltaTemp,
|
|
9302
9302
|
)
|
|
9303
9303
|
if rating == "MCMB" or rating == "MTKF":
|
|
9304
9304
|
FUEL_i = AC.ff(
|
|
@@ -9476,10 +9476,10 @@ def accDec_time(
|
|
|
9476
9476
|
gamma_i = 90 * np.sign(ROCD_i)
|
|
9477
9477
|
else:
|
|
9478
9478
|
[theta, delta, sigma] = atm.atmosphereProperties(
|
|
9479
|
-
h=conv.ft2m(Hp_i),
|
|
9479
|
+
h=conv.ft2m(Hp_i), deltaTemp=deltaTemp
|
|
9480
9480
|
)
|
|
9481
9481
|
temp_const = (theta * const.temp_0) / (
|
|
9482
|
-
theta * const.temp_0 -
|
|
9482
|
+
theta * const.temp_0 - deltaTemp
|
|
9483
9483
|
)
|
|
9484
9484
|
if AC.BADAFamily.BADAE:
|
|
9485
9485
|
gamma_i = degrees(
|