RCAIDE-GUI 1.0.0__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.
Files changed (170) hide show
  1. common_widgets/__init__.py +6 -0
  2. common_widgets/animated_toggle.py +141 -0
  3. common_widgets/color.py +17 -0
  4. common_widgets/data_entry_widget.py +337 -0
  5. common_widgets/image_widget.py +21 -0
  6. common_widgets/unit_picker_widget.py +48 -0
  7. main.py +168 -0
  8. rcaide_gui-1.0.0.dist-info/METADATA +96 -0
  9. rcaide_gui-1.0.0.dist-info/RECORD +170 -0
  10. rcaide_gui-1.0.0.dist-info/WHEEL +5 -0
  11. rcaide_gui-1.0.0.dist-info/entry_points.txt +2 -0
  12. rcaide_gui-1.0.0.dist-info/top_level.txt +5 -0
  13. rcaide_io.py +818 -0
  14. tabs/__init__.py +10 -0
  15. tabs/aircraft_configs/__init__.py +3 -0
  16. tabs/aircraft_configs/aircraft_configs.py +301 -0
  17. tabs/analysis/__init__.py +4 -0
  18. tabs/analysis/analysis.py +92 -0
  19. tabs/analysis/widgets/__init__.py +13 -0
  20. tabs/analysis/widgets/aeroacoustics_widget.py +158 -0
  21. tabs/analysis/widgets/aerodynamics_widget.py +108 -0
  22. tabs/analysis/widgets/analysis_data_widget.py +29 -0
  23. tabs/analysis/widgets/atmosphere_widget.py +49 -0
  24. tabs/analysis/widgets/costs_widget.py +35 -0
  25. tabs/analysis/widgets/energy_widget.py +32 -0
  26. tabs/analysis/widgets/geometry_widget.py +55 -0
  27. tabs/analysis/widgets/planets_widget.py +34 -0
  28. tabs/analysis/widgets/propulsion_widget.py +53 -0
  29. tabs/analysis/widgets/stability_widget.py +34 -0
  30. tabs/analysis/widgets/weights_widget.py +94 -0
  31. tabs/geometry/__init__.py +6 -0
  32. tabs/geometry/aircraft_configs.py +232 -0
  33. tabs/geometry/frames/__init__.py +15 -0
  34. tabs/geometry/frames/booms/__init__.py +5 -0
  35. tabs/geometry/frames/booms/boom_frame.py +238 -0
  36. tabs/geometry/frames/cargo_bays/__init__.py +5 -0
  37. tabs/geometry/frames/cargo_bays/cargo_bay_frame.py +159 -0
  38. tabs/geometry/frames/default_frame.py +23 -0
  39. tabs/geometry/frames/energy_network/__init__.py +2 -0
  40. tabs/geometry/frames/energy_network/turbofan_network/__init__.py +3 -0
  41. tabs/geometry/frames/energy_network/turbofan_network/frames/__init__.py +1 -0
  42. tabs/geometry/frames/energy_network/turbofan_network/widgets/__init__.py +1 -0
  43. tabs/geometry/frames/fuselages/__init__.py +5 -0
  44. tabs/geometry/frames/fuselages/fuselage_frame.py +294 -0
  45. tabs/geometry/frames/geometry_frame.py +91 -0
  46. tabs/geometry/frames/landing_gears/__init__.py +5 -0
  47. tabs/geometry/frames/landing_gears/landing_gear_frame.py +189 -0
  48. tabs/geometry/frames/nacelles/__init__.py +1 -0
  49. tabs/geometry/frames/powertrain/__init__.py +6 -0
  50. tabs/geometry/frames/powertrain/converters/__init__.py +5 -0
  51. tabs/geometry/frames/powertrain/converters/converter_frame.py +137 -0
  52. tabs/geometry/frames/powertrain/distributors/__init__.py +5 -0
  53. tabs/geometry/frames/powertrain/distributors/distributor_frame.py +143 -0
  54. tabs/geometry/frames/powertrain/nacelles/__init__.py +5 -0
  55. tabs/geometry/frames/powertrain/nacelles/nacelle_frame.py +283 -0
  56. tabs/geometry/frames/powertrain/powertrain_frame.py +259 -0
  57. tabs/geometry/frames/powertrain/propulsors/__init__.py +5 -0
  58. tabs/geometry/frames/powertrain/propulsors/propulsor_frame.py +146 -0
  59. tabs/geometry/frames/powertrain/sources/__init__.py +6 -0
  60. tabs/geometry/frames/powertrain/sources/energy_source_frame.py +147 -0
  61. tabs/geometry/frames/vehicle_frame.py +171 -0
  62. tabs/geometry/frames/wings/__init__.py +5 -0
  63. tabs/geometry/frames/wings/wings_frame.py +457 -0
  64. tabs/geometry/geometry.py +513 -0
  65. tabs/geometry/widgets/__init__.py +12 -0
  66. tabs/geometry/widgets/booms/__init__.py +6 -0
  67. tabs/geometry/widgets/booms/boom_section_widget.py +109 -0
  68. tabs/geometry/widgets/cargo_bays/__init__.py +1 -0
  69. tabs/geometry/widgets/fuselages/__init__.py +8 -0
  70. tabs/geometry/widgets/fuselages/cabin_class_widget.py +188 -0
  71. tabs/geometry/widgets/fuselages/cabin_widget.py +217 -0
  72. tabs/geometry/widgets/fuselages/fuselage_section_widget.py +190 -0
  73. tabs/geometry/widgets/geometry_data_widget.py +25 -0
  74. tabs/geometry/widgets/landing_gears/__init__.py +6 -0
  75. tabs/geometry/widgets/nacelles/__init__.py +1 -0
  76. tabs/geometry/widgets/powertrain/__init__.py +9 -0
  77. tabs/geometry/widgets/powertrain/converters/__init__.py +5 -0
  78. tabs/geometry/widgets/powertrain/converters/turboelectric_generator_widget.py +74 -0
  79. tabs/geometry/widgets/powertrain/distributors/__init__.py +5 -0
  80. tabs/geometry/widgets/powertrain/distributors/fuel_line_widget.py +81 -0
  81. tabs/geometry/widgets/powertrain/modulators/__init__.py +5 -0
  82. tabs/geometry/widgets/powertrain/modulators/esc_widget.py +58 -0
  83. tabs/geometry/widgets/powertrain/nacelles/__init__.py +5 -0
  84. tabs/geometry/widgets/powertrain/nacelles/nacelle_section_widget.py +115 -0
  85. tabs/geometry/widgets/powertrain/powertrain_connector_widget.py +136 -0
  86. tabs/geometry/widgets/powertrain/powertrain_widget.py +206 -0
  87. tabs/geometry/widgets/powertrain/propulsors/__init__.py +5 -0
  88. tabs/geometry/widgets/powertrain/propulsors/turbofan_widget.py +462 -0
  89. tabs/geometry/widgets/powertrain/sources/__init__.py +6 -0
  90. tabs/geometry/widgets/powertrain/sources/fuel_tank_widget.py +103 -0
  91. tabs/geometry/widgets/powertrain/sources/source_selector_widget.py +35 -0
  92. tabs/geometry/widgets/wings/__init__.py +7 -0
  93. tabs/geometry/widgets/wings/wing_cs_widget.py +198 -0
  94. tabs/geometry/widgets/wings/wing_section_widget.py +298 -0
  95. tabs/home/__init__.py +3 -0
  96. tabs/home/home.py +585 -0
  97. tabs/mission/__init__.py +4 -0
  98. tabs/mission/mission.py +1124 -0
  99. tabs/mission/widgets/__init__.py +3 -0
  100. tabs/mission/widgets/flight_controls_widget.py +186 -0
  101. tabs/mission/widgets/mission_analysis_widget.py +166 -0
  102. tabs/mission/widgets/mission_segment_helper.py +358 -0
  103. tabs/mission/widgets/mission_segment_widget.py +358 -0
  104. tabs/solve/__init__.py +4 -0
  105. tabs/solve/plots/__init__.py +12 -0
  106. tabs/solve/plots/aeroacoustics/__init__.py +6 -0
  107. tabs/solve/plots/aeroacoustics/plot_2D_noise_contour.py +184 -0
  108. tabs/solve/plots/aeroacoustics/plot_3D_noise_contour.py +219 -0
  109. tabs/solve/plots/aeroacoustics/plot_noise_certification_contour.py +115 -0
  110. tabs/solve/plots/aeroacoustics/plot_noise_level.py +118 -0
  111. tabs/solve/plots/aerodynamics/__init__.py +10 -0
  112. tabs/solve/plots/aerodynamics/plot_aerodynamic_coefficients.py +156 -0
  113. tabs/solve/plots/aerodynamics/plot_aerodynamic_forces.py +155 -0
  114. tabs/solve/plots/aerodynamics/plot_aircraft_aerodynamics.py +136 -0
  115. tabs/solve/plots/aerodynamics/plot_drag_components.py +157 -0
  116. tabs/solve/plots/aerodynamics/plot_lift_distribution.py +107 -0
  117. tabs/solve/plots/aerodynamics/plot_rotor_conditions.py +255 -0
  118. tabs/solve/plots/aerodynamics/plot_rotor_disc_performance.py +144 -0
  119. tabs/solve/plots/aerodynamics/plot_rotor_performance.py +124 -0
  120. tabs/solve/plots/common/__init__.py +4 -0
  121. tabs/solve/plots/common/plot_style.py +71 -0
  122. tabs/solve/plots/common/set_axes.py +55 -0
  123. tabs/solve/plots/create_plot_widgets.py +34 -0
  124. tabs/solve/plots/emissions/__init__.py +3 -0
  125. tabs/solve/plots/emissions/plot_emissions.py +167 -0
  126. tabs/solve/plots/energy/__init__.py +12 -0
  127. tabs/solve/plots/energy/plot_altitude_sfc_weight.py +134 -0
  128. tabs/solve/plots/energy/plot_battery_cell_conditions.py +154 -0
  129. tabs/solve/plots/energy/plot_battery_degradation.py +157 -0
  130. tabs/solve/plots/energy/plot_battery_module_C_rates.py +139 -0
  131. tabs/solve/plots/energy/plot_battery_module_conditions.py +157 -0
  132. tabs/solve/plots/energy/plot_battery_pack_conditions.py +164 -0
  133. tabs/solve/plots/energy/plot_battery_ragone_diagram.py +97 -0
  134. tabs/solve/plots/energy/plot_battery_temperature.py +136 -0
  135. tabs/solve/plots/energy/plot_electric_propulsor_efficiencies.py +136 -0
  136. tabs/solve/plots/energy/plot_propulsor_throttles.py +119 -0
  137. tabs/solve/plots/mission/__init__.py +5 -0
  138. tabs/solve/plots/mission/plot_aircraft_velocities.py +145 -0
  139. tabs/solve/plots/mission/plot_flight_conditions.py +236 -0
  140. tabs/solve/plots/mission/plot_flight_trajectory.py +172 -0
  141. tabs/solve/plots/stability/__init__.py +5 -0
  142. tabs/solve/plots/stability/plot_flight_forces_and_moments.py +163 -0
  143. tabs/solve/plots/stability/plot_lateral_stability.py +151 -0
  144. tabs/solve/plots/stability/plot_longitudinal_stability.py +173 -0
  145. tabs/solve/plots/thermal_management/__init__.py +7 -0
  146. tabs/solve/plots/thermal_management/plot_air_cooled_conditions.py +152 -0
  147. tabs/solve/plots/thermal_management/plot_cross_flow_heat_exchanger_conditions.py +185 -0
  148. tabs/solve/plots/thermal_management/plot_reservoir_conditions.py +141 -0
  149. tabs/solve/plots/thermal_management/plot_thermal_management_performance.py +105 -0
  150. tabs/solve/plots/thermal_management/plot_wavy_channel_conditions.py +161 -0
  151. tabs/solve/plots/weights/__init__.py +4 -0
  152. tabs/solve/plots/weights/plot_load_diagram.py +163 -0
  153. tabs/solve/plots/weights/plot_weight_breakdown.py +164 -0
  154. tabs/solve/solve.py +1498 -0
  155. tabs/style_sheet.py +114 -0
  156. tabs/tab_widget.py +14 -0
  157. tabs/visualize_geometry/__init__.py +4 -0
  158. tabs/visualize_geometry/core_3d_viewer.py +253 -0
  159. tabs/visualize_geometry/features/__init__.py +10 -0
  160. tabs/visualize_geometry/features/axes_gizmo.py +173 -0
  161. tabs/visualize_geometry/features/background.py +161 -0
  162. tabs/visualize_geometry/features/blueprint.py +685 -0
  163. tabs/visualize_geometry/features/camera.py +364 -0
  164. tabs/visualize_geometry/features/drag_aircraft.py +219 -0
  165. tabs/visualize_geometry/features/grid.py +194 -0
  166. tabs/visualize_geometry/features/measurement.py +367 -0
  167. tabs/visualize_geometry/features/screenshot.py +91 -0
  168. tabs/visualize_geometry/geometry_helper_functions.py +3 -0
  169. tabs/visualize_geometry/visualize_geometry.py +731 -0
  170. utilities.py +257 -0
@@ -0,0 +1,358 @@
1
+ # RCAIDE_GUI/tabs/mission/widgets/mission_segment_helper.py
2
+
3
+ # Created: May 2023, M. Clarke
4
+ # ------------------------------------------------------------------------------
5
+ # Imports
6
+ # ------------------------------------------------------------------------------
7
+ from utilities import Units
8
+
9
+ import RCAIDE.Framework.Mission.Segments as Segments
10
+
11
+ segment_data_fields = [
12
+ { # Climb Subsegments
13
+ "Constant CAS-Constant Rate": [
14
+ ("Altitude Start", Units.Length, "altitude_start"),
15
+ ("Altitude End", Units.Length, "altitude_end"),
16
+ ("Climb Rate", Units.Velocity, "climb_rate"),
17
+ ("CAS", Units.Velocity, "calibrated_air_speed"),
18
+ ("True Course Angle", Units.Angle, "true_course")
19
+ ],
20
+ "Constant Dynamic Pressure-Constant Angle": [
21
+ ("Altitude Start", Units.Length, "altitude_start"),
22
+ ("Altitude End", Units.Length, "altitude_end"),
23
+ ("Climb Angle", Units.Angle, "climb_angle"),
24
+ ("Dynamic Pressure", Units.Pressure, "dynamic_pressure"),
25
+ ("True Course Angle", Units.Angle, "true_course")
26
+ ],
27
+ "Constant Dynamic Pressure-Constant Rate": [
28
+ ("Altitude Start", Units.Length, "altitude_start"),
29
+ ("Altitude End", Units.Length, "altitude_end"),
30
+ ("Climb Rate", Units.Velocity, "climb_rate"),
31
+ ("Dynamic Pressure", Units.Pressure, "dynamic_pressure"),
32
+ ("True Course Angle", Units.Angle, "true_course")
33
+ ],
34
+ "Constant EAS-Constant Rate": [
35
+ ("Altitude Start", Units.Length, "altitude_start"),
36
+ ("Altitude End", Units.Length, "altitude_end"),
37
+ ("Climb Rate", Units.Velocity, "climb_rate"),
38
+ ("EAS", Units.Velocity, "equivalent_air_speed"),
39
+ ("True Course Angle", Units.Angle, "true_course")
40
+ ],
41
+ "Constant Mach-Constant Angle": [
42
+ ("Altitude Start", Units.Length, "altitude_start"),
43
+ ("Altitude End", Units.Length, "altitude_end"),
44
+ ("Climb Angle", Units.Angle, "climb_angle"),
45
+ ("True Course Angle", Units.Angle, "true_course")
46
+ ],
47
+ "Constant Mach-Constant Rate": [
48
+ ("Altitude Start", Units.Length, "altitude_start"),
49
+ ("Altitude End", Units.Length, "altitude_end"),
50
+ ("Climb Rate", Units.Velocity, "climb_rate"),
51
+ ("Mach Number", Units.Unitless, "mach_number"),
52
+ ("True Course Angle", Units.Angle, "true_course")
53
+ ],
54
+ "Constant Mach-Linear Altitude": [
55
+ ("Mach Number", Units.Unitless, "mach_number"),
56
+ ("Distance", Units.Length, "distance"),
57
+ ("Altitude Start", Units.Length, "altitude_start"),
58
+ ("Altitude End", Units.Length, "altitude_end"),
59
+ ("True Course Angle", Units.Angle, "true_course")
60
+ ],
61
+ "Constant Speed-Constant Angle Noise": [
62
+ ("Altitude Start", Units.Length, "altitude_start"),
63
+ ("Altitude End", Units.Length, "altitude_end"),
64
+ ("Climb Angle", Units.Angle, "climb_angle"),
65
+ ("Air Speed", Units.Velocity, "air_speed"),
66
+ ("True Course Speed", Units.Velocity, "true_course_speed")
67
+ ],
68
+ "Constant Speed-Constant Angle": [
69
+ ("Altitude Start", Units.Length, "altitude_start"),
70
+ ("Altitude End", Units.Length, "altitude_end"),
71
+ ("Climb Angle", Units.Angle, "climb_angle"),
72
+ ("Air Speed", Units.Velocity, "air_speed"),
73
+ ("True Course Speed", Units.Velocity, "true_course_speed")
74
+ ],
75
+ "Constant Speed-Constant Rate": [
76
+ ("Altitude Start", Units.Length, "altitude_start"),
77
+ ("Altitude End", Units.Length, "altitude_end"),
78
+ ("Climb Rate", Units.Velocity, "climb_rate"),
79
+ ("Air Speed", Units.Velocity, "air_speed"),
80
+ ("True Course Angle", Units.Angle, "true_course")
81
+ ],
82
+ "Constant Speed-Linear Altitude": [
83
+ ("Air Speed", Units.Velocity, "air_speed"),
84
+ ("Distance", Units.Length, "distance"),
85
+ ("Altitude Start", Units.Length, "altitude_start"),
86
+ ("Altitude End", Units.Length, "altitude_end"),
87
+ ("True Course Angle", Units.Angle, "true_course")
88
+ ],
89
+ "Constant Throttle-Constant Speed": [
90
+ ("Altitude Start", Units.Length, "altitude_start"),
91
+ ("Altitude End", Units.Length, "altitude_end"),
92
+ ("Throttle", Units.Unitless, "throttle"),
93
+ ("Air Speed", Units.Velocity, "air_speed"),
94
+ ("True Course Angle", Units.Angle, "true_course")
95
+ ],
96
+ "Linear Mach-Constant Rate": [
97
+ ("Altitude Start", Units.Length, "altitude_start"),
98
+ ("Altitude End", Units.Length, "altitude_end"),
99
+ ("Climb Rate", Units.Velocity, "climb_rate"),
100
+ ("Mach Number End", Units.Unitless, "mach_number_end"),
101
+ ("Mach Number Start", Units.Unitless, "mach_number_start"),
102
+ ("True Course Angle", Units.Angle, "true_course")
103
+ ],
104
+ "Linear Speed-Constant Rate": [
105
+ ("Altitude Start", Units.Length, "altitude_start"),
106
+ ("Altitude End", Units.Length, "altitude_end"),
107
+ ("Climb Rate", Units.Velocity, "climb_rate"),
108
+ ("Air Speed Start", Units.Velocity, "air_speed_start"),
109
+ ("Air Speed End", Units.Velocity, "air_speed_end"),
110
+ ("True Course Angle", Units.Angle, "true_course")
111
+ ],
112
+ },
113
+ {
114
+ # Cruise Subsegments
115
+ "Constant Acceleration-Constant Altitude": [
116
+ ("Altitude", Units.Length, "altitude"),
117
+ ("Acceleration", Units.Acceleration, "acceleration"),
118
+ ("Air Speed Start", Units.Velocity, "air_speed_start"),
119
+ ("Air Speed End", Units.Velocity, "air_speed_end"),
120
+ ("True Course Angle", Units.Angle, "true_course")
121
+ ],
122
+ "Constant Dynamic Pressure-Constant Altitude Loiter": [
123
+ ("Altitude", Units.Length, "altitude"),
124
+ ("Dynamic Pressure", Units.Pressure, "dynamic_pressure"),
125
+ ("Time", Units.Time, "time"),
126
+ ("True Course Angle", Units.Angle, "true_course")
127
+ ],
128
+ "Constant Dynamics Pressure-Constant Altitude": [
129
+ ("Altitude", Units.Length, "altitude"),
130
+ ("Acceleration", Units.Acceleration, "acceleration"),
131
+ ("Air Speed Start", Units.Velocity, "air_speed_start"),
132
+ ("Air Speed End", Units.Velocity, "air_speed_end"),
133
+ ("True Course Angle", Units.Angle, "true_course")
134
+ ],
135
+ "Constant Mach-Constant Altitude Loiter": [
136
+ ("Altitude", Units.Length, "altitude"),
137
+ ("Mach Number", Units.Unitless, "mach_number"),
138
+ ("Time", Units.Time, "time"),
139
+ ("True Course Angle", Units.Angle, "true_course")
140
+ ],
141
+ "Constant Mach-Constant Altitude": [
142
+ ("Altitude", Units.Length, "altitude"),
143
+ ("Mach Number", Units.Unitless, "mach_number"),
144
+ ("Distance", Units.Length, "distance"),
145
+ ("True Course Angle", Units.Angle, "true_course")
146
+ ],
147
+ "Constant Pitch Rate-Constant Altitude": [
148
+ ("Altitude", Units.Length, "altitude"),
149
+ ("Pitch Rate", Units.Velocity, "pitch_rate"),
150
+ ("Pitch Initial", Units.Angle, "pitch_initial"),
151
+ ("Pitch Final", Units.Angle, "pitch_final"),
152
+ ("True Course Angle", Units.Angle, "true_course")
153
+ ],
154
+ "Constant Speed-Constant Altitude Loiter": [
155
+ ("Altitude", Units.Length, "altitude"),
156
+ ("Air Speed", Units.Velocity, "air_speed"),
157
+ ("Time", Units.Time, "time"),
158
+ ("True Course Angle", Units.Angle, "true_course")
159
+ ],
160
+ "Constant Speed-Constant Altitude": [
161
+ ("Altitude", Units.Length, "altitude"),
162
+ ("Air Speed", Units.Velocity, "air_speed"),
163
+ ("Distance", Units.Length, "distance"),
164
+ ("True Course Angle", Units.Angle, "true_course")
165
+ ],
166
+ },
167
+ {
168
+ # Descent Subsegments
169
+ "Constant CAS-Constant Rate": [
170
+ ("Altitude Start", Units.Length, "altitude_start"),
171
+ ("Altitude End", Units.Length, "altitude_end"),
172
+ ("Descent Rate", Units.Velocity, "descent_rate"),
173
+ ("CAS", Units.Velocity, "calibrated_air_speed"),
174
+ ("True Course Angle", Units.Angle, "true_course")
175
+ ],
176
+ "Constant EAS-Constant Rate": [
177
+ ("Altitude Start", Units.Length, "altitude_start"),
178
+ ("Altitude End", Units.Length, "altitude_end"),
179
+ ("Descent Rate", Units.Velocity, "descent_rate"),
180
+ ("EAS", Units.Velocity, "equivalent_air_speed"),
181
+ ("True Course Angle", Units.Angle, "true_course")
182
+ ],
183
+ "Constant Speed-Constant Angle Noise": [
184
+ ("Altitude Start", Units.Length, "altitude_start"),
185
+ ("Altitude End", Units.Length, "altitude_end"),
186
+ ("Descent Angle", Units.Angle, "descent_angle"),
187
+ ("Air Speed", Units.Velocity, "air_speed"),
188
+ ("True Course Angle", Units.Angle, "true_course")
189
+ ],
190
+ "Constant Speed-Constant Angle": [
191
+ ("Altitude Start", Units.Length, "altitude_start"),
192
+ ("Altitude End", Units.Length, "altitude_end"),
193
+ ("Descent Angle", Units.Angle, "descent_angle"),
194
+ ("Air Speed", Units.Velocity, "air_speed"),
195
+ ("True Course Angle", Units.Angle, "true_course")
196
+ ],
197
+ "Constant Speed-Constant Rate": [
198
+ ("Altitude Start", Units.Length, "altitude_start"),
199
+ ("Altitude End", Units.Length, "altitude_end"),
200
+ ("Descent Rate", Units.Velocity, "descent_rate"),
201
+ ("Air Speed", Units.Velocity, "air_speed"),
202
+ ("True Course Angle", Units.Angle, "true_course")
203
+ ],
204
+ "Linear Mach-Constant Rate": [
205
+ ("Altitude Start", Units.Length, "altitude_start"),
206
+ ("Altitude End", Units.Length, "altitude_end"),
207
+ ("Descent Rate", Units.Velocity, "descent_rate"),
208
+ ("Mach Number End", Units.Unitless, "mach_number_end"),
209
+ ("Mach Number Start", Units.Unitless, "mach_number_start"),
210
+ ("True Course Angle", Units.Angle, "true_course")
211
+ ],
212
+ "Linear Speed-Constant Rate": [
213
+ ("Altitude Start", Units.Length, "altitude_start"),
214
+ ("Altitude End", Units.Length, "altitude_end"),
215
+ ("Descent Rate", Units.Velocity, "descent_rate"),
216
+ ("Air Speed Start", Units.Velocity, "air_speed_start"),
217
+ ("Air Speed End", Units.Velocity, "air_speed_end"),
218
+ ("True Course Angle", Units.Angle, "true_course")
219
+ ],
220
+ },
221
+ {
222
+ # Ground Subsegments
223
+ "Landing": [
224
+ ("Velocity Start", Units.Velocity, "velocity_start"),
225
+ ("Velocity End", Units.Velocity, "velocity_end"),
226
+ ("Friction Coefficient", Units.Unitless, "friction_coefficient"),
227
+ ("Throttle", Units.Angle, "throttle"),
228
+ ("Altitude", Units.Length, "altitude"),
229
+ ("Reverse Thrust Ratio", Units.Unitless, "reverse_thrust_ratio"),
230
+ ("True Course Angle", Units.Angle, "true_course")
231
+ ],
232
+ "Takeoff": [
233
+ ("Ground Incline", Units.Angle, "ground_incline"),
234
+ ("Velocity Start", Units.Velocity, "velocity_start"),
235
+ ("Velocity End", Units.Velocity, "velocity_end"),
236
+ ("Friction Coefficient", Units.Unitless, "friction_coefficient"),
237
+ ("Throttle", Units.Unitless, "throttle"),
238
+ ("Altitude", Units.Length, "altitude"),
239
+ ("True Course Angle", Units.Angle, "true_course")
240
+ ],
241
+ "Battery Discharge": [
242
+ ("Altitude", Units.Length, "altitude"),
243
+ ("Time", Units.Time, "time"),
244
+ ("Current", Units.Unitless, "current"),
245
+ ("Overcharge Contingency", Units.Unitless, "overcharge_contingency"),
246
+ ("True Course Angle", Units.Angle, "true_course")
247
+ ],
248
+ "Battery Recharge": [
249
+ ("Altitude", Units.Length, "altitude"),
250
+ ("Time", Units.Time, "time"),
251
+ ("Current", Units.Unitless, "current"),
252
+ ("Overcharge Contingency", Units.Unitless, "overcharge_contingency"),
253
+ ("True Course Angle", Units.Angle, "true_course")
254
+ ]
255
+ },
256
+ {
257
+ # Single Point Subsegments
258
+ "Set Speed-Set Altitude-No Propulsion": [
259
+ ("Altitude", Units.Length, "altitude"),
260
+ ("Air Speed", Units.Velocity, "air_speed"),
261
+ ("Distance", Units.Length, "distance"),
262
+ ("Acceleration Z", Units.Acceleration, "acceleration_z"),
263
+ ("True Course Angle", Units.Angle, "true_course")
264
+ ],
265
+ "Set Speed-Set Altitude": [
266
+ ("Altitude", Units.Length, "altitude"),
267
+ ("Air Speed", Units.Velocity, "air_speed"),
268
+ ("Distance", Units.Length, "distance"),
269
+ ("Acceleration X", Units.Acceleration, "acceleration_x"),
270
+ ("Acceleration Z", Units.Acceleration, "acceleration_z"),
271
+ ("State Numerics Number of Control Points", Units.Unitless, "state_numerics_control_points")
272
+ ],
273
+ "Set Speed-Set Throttle": [
274
+ ("Altitude", Units.Length, "altitude"),
275
+ ("Air Speed", Units.Velocity, "air_speed"),
276
+ ("Throttle", Units.Unitless, "throttle"),
277
+ ("Acceleration Z", Units.Acceleration, "acceleration_z"),
278
+ ("True Course Angle", Units.Angle, "true_course")
279
+ ],
280
+ },
281
+ {
282
+ # Vertical Flight Subsegments
283
+ "Climb": [
284
+ ("Altitude Start", Units.Length, "altitude_start"),
285
+ ("Altitude End", Units.Length, "altitude_end"),
286
+ ("Climb Rate", Units.Velocity, "climb_rate"),
287
+ ("True Course Angle", Units.Angle, "true_course")
288
+ ],
289
+ "Descent": [
290
+ ("Altitude Start", Units.Length, "altitude_start"),
291
+ ("Altitude End", Units.Length, "altitude_end"),
292
+ ("Descent Rate", Units.Velocity, "descent_rate"),
293
+ ("True Course Angle", Units.Angle, "true_course")
294
+ ],
295
+ "Hover": [
296
+ ("Altitude", Units.Length, "altitude"),
297
+ ("Time", Units.Time, "time"),
298
+ ("True Course Angle", Units.Angle, "true_course")
299
+ ]
300
+ }
301
+ ]
302
+
303
+ segment_rcaide_classes = [
304
+ { # Climb Subsegments
305
+ "Constant CAS-Constant Rate": Segments.Climb.Constant_CAS_Constant_Rate,
306
+ "Constant Dynamic Pressure-Constant Angle": Segments.Climb.Constant_Dynamic_Pressure_Constant_Angle,
307
+ "Constant Dynamic Pressure-Constant Rate": Segments.Climb.Constant_Dynamic_Pressure_Constant_Rate,
308
+ "Constant EAS-Constant Rate": Segments.Climb.Constant_EAS_Constant_Rate,
309
+ "Constant Mach-Constant Angle": Segments.Climb.Constant_Mach_Constant_Angle,
310
+ "Constant Mach-Constant Rate": Segments.Climb.Constant_Mach_Constant_Rate,
311
+ "Constant Mach-Linear Altitude": Segments.Climb.Constant_Mach_Linear_Altitude,
312
+ "Constant Speed-Constant Angle": Segments.Climb.Constant_Speed_Constant_Angle,
313
+ "Constant Speed-Constant Rate": Segments.Climb.Constant_Speed_Constant_Rate,
314
+ "Constant Speed-Linear Altitude": Segments.Climb.Constant_Speed_Linear_Altitude,
315
+ "Constant Throttle-Constant Speed": Segments.Climb.Constant_Throttle_Constant_Speed,
316
+ "Linear Mach-Constant Rate": Segments.Climb.Linear_Mach_Constant_Rate,
317
+ "Linear Speed-Constant Rate": Segments.Climb.Linear_Speed_Constant_Rate,
318
+ },
319
+ {
320
+ # Cruise Subsegments
321
+ "Constant Acceleration-Constant Altitude": Segments.Cruise.Constant_Acceleration_Constant_Altitude,
322
+ "Constant Dynamic Pressure-Constant Altitude Loiter": Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude_Loiter,
323
+ "Constant Dynamics Pressure-Constant Altitude": Segments.Cruise.Constant_Dynamic_Pressure_Constant_Altitude,
324
+ "Constant Mach-Constant Altitude Loiter": Segments.Cruise.Constant_Mach_Constant_Altitude_Loiter,
325
+ "Constant Mach-Constant Altitude": Segments.Cruise.Constant_Mach_Constant_Altitude,
326
+ "Constant Pitch Rate-Constant Altitude": Segments.Cruise.Constant_Pitch_Rate_Constant_Altitude,
327
+ "Constant Speed-Constant Altitude Loiter": Segments.Cruise.Constant_Speed_Constant_Altitude_Loiter,
328
+ "Constant Speed-Constant Altitude": Segments.Cruise.Constant_Speed_Constant_Altitude,
329
+ },
330
+ {
331
+ # Descent Subsegments
332
+ "Constant CAS-Constant Rate": Segments.Descent.Constant_CAS_Constant_Rate,
333
+ "Constant EAS-Constant Rate": Segments.Descent.Constant_EAS_Constant_Rate,
334
+ "Constant Speed-Constant Angle": Segments.Descent.Constant_Speed_Constant_Angle,
335
+ "Constant Speed-Constant Rate": Segments.Descent.Constant_Speed_Constant_Rate,
336
+ "Linear Mach-Constant Rate": Segments.Descent.Linear_Mach_Constant_Rate,
337
+ "Linear Speed-Constant Rate": Segments.Descent.Linear_Speed_Constant_Rate,
338
+ },
339
+ {
340
+ # Ground Subsegments
341
+ "Landing": Segments.Ground.Landing,
342
+ "Takeoff": Segments.Ground.Takeoff,
343
+ "Battery Discharge": Segments.Ground.Battery_Discharge,
344
+ "Battery Recharge": Segments.Ground.Battery_Recharge
345
+ },
346
+ {
347
+ # Single Point Subsegments
348
+ "Set Speed-Set Altitude-No Propulsion": Segments.Single_Point.Set_Speed_Set_Altitude_No_Propulsion,
349
+ "Set Speed-Set Altitude": Segments.Single_Point.Set_Speed_Set_Altitude,
350
+ "Set Speed-Set Throttle": Segments.Single_Point.Set_Speed_Set_Throttle,
351
+ },
352
+ {
353
+ # Vertical Flight Subsegments
354
+ "Climb": Segments.Vertical_Flight.Climb,
355
+ "Descent": Segments.Vertical_Flight.Descent,
356
+ "Hover": Segments.Vertical_Flight.Hover,
357
+ }
358
+ ]