FASTUAV 0.2.0b0__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 (213) hide show
  1. fastuav/__init__.py +0 -0
  2. fastuav/configurations/__init__.py +0 -0
  3. fastuav/configurations/doe_optimization_problem.yaml +189 -0
  4. fastuav/configurations/doe_simple_model.yaml +17 -0
  5. fastuav/configurations/doe_sobol_analysis.yaml +61 -0
  6. fastuav/configurations/fixedwing_mdo.yaml +224 -0
  7. fastuav/configurations/fixedwing_model.yaml +39 -0
  8. fastuav/configurations/hybrid_mdo.yaml +321 -0
  9. fastuav/configurations/hybrid_model.yaml +38 -0
  10. fastuav/configurations/multirotor_mda.yaml +48 -0
  11. fastuav/configurations/multirotor_mda_cots.yaml +61 -0
  12. fastuav/configurations/multirotor_mdo.yaml +193 -0
  13. fastuav/configurations/multirotor_mdo_cots.yaml +208 -0
  14. fastuav/configurations/multirotor_model.yaml +33 -0
  15. fastuav/configurations/multirotor_model_cots.yaml +36 -0
  16. fastuav/configurations/multirotor_performance.yaml +11 -0
  17. fastuav/constants.py +33 -0
  18. fastuav/data/__init__.py +12 -0
  19. fastuav/data/catalogues/Batteries/Non-Dominated-Augmented-Batteries.csv +498 -0
  20. fastuav/data/catalogues/ESC/ESC_data.csv +75 -0
  21. fastuav/data/catalogues/ESC/Non-Dominated-ESC.csv +27 -0
  22. fastuav/data/catalogues/Motors/Motors_Data.csv +205 -0
  23. fastuav/data/catalogues/Motors/Non-Dominated-Motors.csv +48 -0
  24. fastuav/data/catalogues/Propeller/APC_propellers.csv +2039 -0
  25. fastuav/data/catalogues/Propeller/APC_propellers_MR.csv +53 -0
  26. fastuav/data/catalogues/Propeller/performances/Non-Dominated-Propeller.csv +406 -0
  27. fastuav/data/catalogues/Propeller/performances/Propeller_Data.csv +2821 -0
  28. fastuav/missions/missions_fixedwing.yaml +22 -0
  29. fastuav/missions/missions_hybrid.yaml +24 -0
  30. fastuav/missions/missions_multirotor.yaml +28 -0
  31. fastuav/models/__init__.py +0 -0
  32. fastuav/models/add_ons/__init__.py +0 -0
  33. fastuav/models/add_ons/sample_discipline.py +35 -0
  34. fastuav/models/aerodynamics/__init__.py +0 -0
  35. fastuav/models/aerodynamics/aerodynamics_fixedwing.py +387 -0
  36. fastuav/models/aerodynamics/aerodynamics_hybrid.py +144 -0
  37. fastuav/models/aerodynamics/aerodynamics_multirotor.py +6 -0
  38. fastuav/models/geometry/__init__.py +0 -0
  39. fastuav/models/geometry/geometry_fixedwing.py +534 -0
  40. fastuav/models/geometry/geometry_hybrid.py +207 -0
  41. fastuav/models/geometry/geometry_multirotor.py +139 -0
  42. fastuav/models/mtow/__init__.py +0 -0
  43. fastuav/models/mtow/mtow.py +266 -0
  44. fastuav/models/mtow/mtow_fixedwing.py +19 -0
  45. fastuav/models/mtow/mtow_hybrid.py +19 -0
  46. fastuav/models/mtow/mtow_multirotor.py +19 -0
  47. fastuav/models/performance/__init__.py +0 -0
  48. fastuav/models/performance/mission/__init__.py +0 -0
  49. fastuav/models/performance/mission/flight_performance.py +358 -0
  50. fastuav/models/performance/mission/mission_builder.py +247 -0
  51. fastuav/models/performance/mission/mission_definition/__init__.py +0 -0
  52. fastuav/models/performance/mission/mission_definition/resources/__init__.py +0 -0
  53. fastuav/models/performance/mission/mission_definition/resources/mission_schema.json +267 -0
  54. fastuav/models/performance/mission/mission_definition/schema.py +104 -0
  55. fastuav/models/performance/mission/phase_builder.py +413 -0
  56. fastuav/models/performance/mission/route_builder.py +234 -0
  57. fastuav/models/performance/range_and_endurance.py +163 -0
  58. fastuav/models/propulsion/__init__.py +0 -0
  59. fastuav/models/propulsion/energy/__init__.py +0 -0
  60. fastuav/models/propulsion/energy/battery/__init__.py +0 -0
  61. fastuav/models/propulsion/energy/battery/battery.py +39 -0
  62. fastuav/models/propulsion/energy/battery/catalogue.py +275 -0
  63. fastuav/models/propulsion/energy/battery/constraints.py +219 -0
  64. fastuav/models/propulsion/energy/battery/definition_parameters.py +267 -0
  65. fastuav/models/propulsion/energy/battery/estimation_models.py +355 -0
  66. fastuav/models/propulsion/energy/battery/performance_analysis.py +75 -0
  67. fastuav/models/propulsion/esc/__init__.py +0 -0
  68. fastuav/models/propulsion/esc/catalogue.py +138 -0
  69. fastuav/models/propulsion/esc/constraints.py +157 -0
  70. fastuav/models/propulsion/esc/definition_parameters.py +161 -0
  71. fastuav/models/propulsion/esc/esc.py +33 -0
  72. fastuav/models/propulsion/esc/estimation_models.py +48 -0
  73. fastuav/models/propulsion/esc/performance_analysis.py +61 -0
  74. fastuav/models/propulsion/gearbox/__init__.py +0 -0
  75. fastuav/models/propulsion/gearbox/gearbox.py +60 -0
  76. fastuav/models/propulsion/motor/__init__.py +0 -0
  77. fastuav/models/propulsion/motor/catalogue.py +176 -0
  78. fastuav/models/propulsion/motor/constraints.py +158 -0
  79. fastuav/models/propulsion/motor/definition_parameters.py +132 -0
  80. fastuav/models/propulsion/motor/estimation_models.py +304 -0
  81. fastuav/models/propulsion/motor/motor.py +35 -0
  82. fastuav/models/propulsion/motor/performance_analysis.py +379 -0
  83. fastuav/models/propulsion/propeller/__init__.py +0 -0
  84. fastuav/models/propulsion/propeller/aerodynamics/__init__.py +0 -0
  85. fastuav/models/propulsion/propeller/aerodynamics/surrogate_models.py +264 -0
  86. fastuav/models/propulsion/propeller/catalogue.py +239 -0
  87. fastuav/models/propulsion/propeller/constraints.py +127 -0
  88. fastuav/models/propulsion/propeller/definition_parameters.py +213 -0
  89. fastuav/models/propulsion/propeller/estimation_models.py +157 -0
  90. fastuav/models/propulsion/propeller/performance_analysis.py +215 -0
  91. fastuav/models/propulsion/propeller/propeller.py +37 -0
  92. fastuav/models/propulsion/propulsion.py +92 -0
  93. fastuav/models/propulsion/propulsion_fixedwing.py +19 -0
  94. fastuav/models/propulsion/propulsion_hybrid.py +19 -0
  95. fastuav/models/propulsion/propulsion_multirotor.py +19 -0
  96. fastuav/models/scenarios/__init__.py +0 -0
  97. fastuav/models/scenarios/scenarios_fixedwing.py +47 -0
  98. fastuav/models/scenarios/scenarios_hybrid.py +62 -0
  99. fastuav/models/scenarios/scenarios_multirotor.py +33 -0
  100. fastuav/models/scenarios/thrust/__init__.py +0 -0
  101. fastuav/models/scenarios/thrust/climb.py +164 -0
  102. fastuav/models/scenarios/thrust/cruise.py +163 -0
  103. fastuav/models/scenarios/thrust/flight_models.py +107 -0
  104. fastuav/models/scenarios/thrust/hover.py +58 -0
  105. fastuav/models/scenarios/thrust/takeoff.py +109 -0
  106. fastuav/models/scenarios/wing_loading/__init__.py +0 -0
  107. fastuav/models/scenarios/wing_loading/wing_loading.py +208 -0
  108. fastuav/models/stability/__init__.py +0 -0
  109. fastuav/models/stability/stability_fixedwing.py +33 -0
  110. fastuav/models/stability/stability_hybrid.py +33 -0
  111. fastuav/models/stability/static_longitudinal/__init__.py +0 -0
  112. fastuav/models/stability/static_longitudinal/center_of_gravity/__init__.py +0 -0
  113. fastuav/models/stability/static_longitudinal/center_of_gravity/cog.py +132 -0
  114. fastuav/models/stability/static_longitudinal/center_of_gravity/components/__init__.py +0 -0
  115. fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_airframe.py +232 -0
  116. fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_load.py +134 -0
  117. fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_propulsion.py +155 -0
  118. fastuav/models/stability/static_longitudinal/neutral_point.py +45 -0
  119. fastuav/models/stability/static_longitudinal/static_margin.py +95 -0
  120. fastuav/models/structures/__init__.py +0 -0
  121. fastuav/models/structures/fuselage.py +44 -0
  122. fastuav/models/structures/structures_fixedwing.py +33 -0
  123. fastuav/models/structures/structures_hybrid.py +35 -0
  124. fastuav/models/structures/structures_multirotor.py +102 -0
  125. fastuav/models/structures/tails.py +58 -0
  126. fastuav/models/structures/wing/__init__.py +0 -0
  127. fastuav/models/structures/wing/constraints.py +100 -0
  128. fastuav/models/structures/wing/estimation_models.py +310 -0
  129. fastuav/models/structures/wing/structural_analysis.py +115 -0
  130. fastuav/models/structures/wing/wing.py +70 -0
  131. fastuav/models/variable_descriptions.txt +816 -0
  132. fastuav/models/wires/__init__.py +0 -0
  133. fastuav/models/wires/wires.py +202 -0
  134. fastuav/models/wires/wires_fixedwing.py +19 -0
  135. fastuav/models/wires/wires_hybrid.py +19 -0
  136. fastuav/models/wires/wires_multirotor.py +19 -0
  137. fastuav/notebooks/0_Tutorial.ipynb +2601 -0
  138. fastuav/notebooks/1_Multirotor_Design.ipynb +2557 -0
  139. fastuav/notebooks/1b_Mission_performance.ipynb +2271 -0
  140. fastuav/notebooks/1c_Multirotor_Design_Catalogues.ipynb +3853 -0
  141. fastuav/notebooks/2_FixedWing_Design.ipynb +2345 -0
  142. fastuav/notebooks/3_HybridVTOL_Design.ipynb +2337 -0
  143. fastuav/notebooks/4_Uncertainty_analysis.ipynb +822 -0
  144. fastuav/notebooks/5_Design_of_experiments_Tutorial.ipynb +400 -0
  145. fastuav/notebooks/README.md +14 -0
  146. fastuav/notebooks/__init__.py +0 -0
  147. fastuav/notebooks/data/__init__.py +12 -0
  148. fastuav/notebooks/data/configurations/__init__.py +12 -0
  149. fastuav/notebooks/data/configurations/doe_optimization_problem.yaml +189 -0
  150. fastuav/notebooks/data/configurations/doe_simple_model.yaml +17 -0
  151. fastuav/notebooks/data/configurations/doe_sobol_analysis.yaml +61 -0
  152. fastuav/notebooks/data/configurations/fixedwing_mdo.yaml +224 -0
  153. fastuav/notebooks/data/configurations/fixedwing_model.yaml +39 -0
  154. fastuav/notebooks/data/configurations/hybrid_mdo.yaml +321 -0
  155. fastuav/notebooks/data/configurations/hybrid_model.yaml +38 -0
  156. fastuav/notebooks/data/configurations/multirotor_mda.yaml +48 -0
  157. fastuav/notebooks/data/configurations/multirotor_mda_cots.yaml +61 -0
  158. fastuav/notebooks/data/configurations/multirotor_mdo.yaml +190 -0
  159. fastuav/notebooks/data/configurations/multirotor_mdo_cots.yaml +208 -0
  160. fastuav/notebooks/data/configurations/multirotor_model.yaml +33 -0
  161. fastuav/notebooks/data/configurations/multirotor_model_cots.yaml +36 -0
  162. fastuav/notebooks/data/configurations/multirotor_performance.yaml +11 -0
  163. fastuav/notebooks/data/missions/__init__.py +12 -0
  164. fastuav/notebooks/data/missions/missions_fixedwing.yaml +22 -0
  165. fastuav/notebooks/data/missions/missions_hybrid.yaml +24 -0
  166. fastuav/notebooks/data/missions/missions_multirotor.yaml +28 -0
  167. fastuav/notebooks/data/missions/missions_multirotor_doe.yaml +27 -0
  168. fastuav/notebooks/data/missions/missions_multirotor_off_design.yaml +41 -0
  169. fastuav/notebooks/data/source_files/__init__.py +12 -0
  170. fastuav/notebooks/data/source_files/problem_inputs_DJI_M600.xml +442 -0
  171. fastuav/notebooks/data/source_files/problem_inputs_FW.xml +501 -0
  172. fastuav/notebooks/data/source_files/problem_inputs_doe.xml +126 -0
  173. fastuav/notebooks/data/source_files/problem_inputs_doe_optim.xml +442 -0
  174. fastuav/notebooks/data/source_files/problem_inputs_hybrid.xml +857 -0
  175. fastuav/notebooks/data/source_files/problem_outputs_DJI_M600_mdo.xml +715 -0
  176. fastuav/notebooks/data/source_files/problem_outputs_discrete_DJI_M600_mdo.xml +716 -0
  177. fastuav/notebooks/img/uncertainty.gif +0 -0
  178. fastuav/notebooks/workdir/sensitivity_analysis/doe_Morris.csv +25 -0
  179. fastuav/notebooks/workdir/sensitivity_analysis/doe_Sobol.csv +769 -0
  180. fastuav/notebooks/workdir/sensitivity_analysis/doe_Sobol_2.csv +769 -0
  181. fastuav/notebooks/workdir/sensitivity_analysis/doe_fullfactorial.csv +101 -0
  182. fastuav/notebooks/workdir/sensitivity_analysis/problem_morris.txt +1 -0
  183. fastuav/notebooks/workdir/sensitivity_analysis/problem_sobol.txt +1 -0
  184. fastuav/notebooks/workdir/sensitivity_analysis/x_morris.txt +1 -0
  185. fastuav/notebooks/workdir/sensitivity_analysis/y_morris.txt +1 -0
  186. fastuav/notebooks/workdir/sensitivity_analysis/y_sobol.txt +1 -0
  187. fastuav/utils/__init__.py +0 -0
  188. fastuav/utils/catalogues/__init__.py +0 -0
  189. fastuav/utils/catalogues/estimators.py +353 -0
  190. fastuav/utils/configurations_versatility.py +89 -0
  191. fastuav/utils/drivers/__init__.py +0 -0
  192. fastuav/utils/drivers/cmaes_driver.py +792 -0
  193. fastuav/utils/drivers/cmaes_driver_legacy.py +490 -0
  194. fastuav/utils/drivers/salib_doe_driver.py +213 -0
  195. fastuav/utils/postprocessing/__init__.py +0 -0
  196. fastuav/utils/postprocessing/analysis_and_plots.py +1035 -0
  197. fastuav/utils/postprocessing/old/__init__.py +0 -0
  198. fastuav/utils/postprocessing/old/monte_carlo.py +530 -0
  199. fastuav/utils/postprocessing/old/morris_0.py +297 -0
  200. fastuav/utils/postprocessing/old/morris_1.py +468 -0
  201. fastuav/utils/postprocessing/old/sobol_0.py +423 -0
  202. fastuav/utils/postprocessing/old/sobol_1.py +735 -0
  203. fastuav/utils/postprocessing/sensitivity_analysis/__init__.py +0 -0
  204. fastuav/utils/postprocessing/sensitivity_analysis/distribution_plot.py +113 -0
  205. fastuav/utils/postprocessing/sensitivity_analysis/doe_convergence_plot.py +301 -0
  206. fastuav/utils/postprocessing/sensitivity_analysis/morris_plot.py +133 -0
  207. fastuav/utils/postprocessing/sensitivity_analysis/sensitivity_analysis.py +1323 -0
  208. fastuav/utils/postprocessing/sensitivity_analysis/sobol_plot.py +38 -0
  209. fastuav/utils/uncertainty.py +240 -0
  210. fastuav-0.2.0b0.dist-info/METADATA +174 -0
  211. fastuav-0.2.0b0.dist-info/RECORD +213 -0
  212. fastuav-0.2.0b0.dist-info/WHEEL +4 -0
  213. fastuav-0.2.0b0.dist-info/entry_points.txt +3 -0
fastuav/__init__.py ADDED
File without changes
File without changes
@@ -0,0 +1,189 @@
1
+ title: Multirotor Drone MDO
2
+
3
+ # List of folder paths where user added custom registered OpenMDAO components
4
+ module_folders:
5
+
6
+ # Input and output files
7
+ input_file: ../../workdir/problem_inputs.xml
8
+ output_file: ../../workdir/problem_outputs.xml
9
+
10
+ # Definition of problem driver assuming the OpenMDAO convention import openmdao.api as om
11
+ driver: om.ScipyOptimizeDriver(tol=1e-6, optimizer='SLSQP', maxiter=30)
12
+
13
+ # Definition of OpenMDAO model
14
+ model:
15
+ scenarios:
16
+ id: fastuav.scenarios.multirotor
17
+ propulsion:
18
+ id: fastuav.propulsion.multirotor
19
+ gearbox: False
20
+ geometry:
21
+ id: fastuav.geometry.multirotor
22
+ structures:
23
+ id: fastuav.structures.multirotor
24
+ wires:
25
+ id: fastuav.propulsion.wires.multirotor
26
+ mtow:
27
+ id: fastuav.mtow.multirotor
28
+ performance:
29
+ endurance:
30
+ id: fastuav.performance.endurance.multirotor
31
+ missions:
32
+ id: fastuav.performance.mission
33
+ file_path: ../missions/missions_multirotor.yaml
34
+
35
+
36
+ # This section is needed only if optimization process is run
37
+ optimization:
38
+
39
+ design_variables:
40
+
41
+ ## GLOBAL ##
42
+ - name: optimization:variables:weight:mtow:k # over estimation coefficient on the load mass
43
+ upper: 40.0
44
+ lower: 1.0
45
+
46
+ ## PROPULSION ##
47
+ - name: optimization:variables:propulsion:multirotor:propeller:ND:k # slow down propeller coef : k_ND: ND / NDmax
48
+ lower: 0.01
49
+ upper: 1.0
50
+
51
+ - name: optimization:variables:propulsion:multirotor:propeller:beta # pitch/diameter ratio of the propeller
52
+ lower: 0.3
53
+ upper: 0.6
54
+
55
+ - name: optimization:variables:propulsion:multirotor:propeller:advance_ratio:climb # climbing advance ratio
56
+ lower: 0.01
57
+ upper: 0.5
58
+
59
+ - name: optimization:variables:propulsion:multirotor:propeller:advance_ratio:cruise # cruise advance ratio
60
+ lower: 0.01
61
+ upper: 2.0
62
+
63
+ - name: optimization:variables:propulsion:multirotor:motor:torque:k # over estimation coefficient on the motor torque
64
+ lower: 1.0
65
+ upper: 20.0
66
+
67
+ - name: optimization:variables:propulsion:multirotor:motor:speed:k # over estimation coefficient on the motor speed
68
+ lower: 0.1
69
+ upper: 10.0
70
+
71
+ - name: optimization:variables:propulsion:multirotor:battery:energy:k # over estimation coefficient on the battery energy
72
+ lower: 0.1
73
+ upper: 20.0
74
+
75
+ - name: optimization:variables:propulsion:multirotor:battery:voltage:k # over estimation coefficient on the battery voltage
76
+ lower: 1.0
77
+ upper: 10.0
78
+
79
+ - name: optimization:variables:propulsion:multirotor:esc:power:k # over estimation coefficient on the ESC power
80
+ lower: 1.0
81
+ upper: 15.0
82
+
83
+ - name: optimization:variables:propulsion:multirotor:esc:voltage:k # over estimation coefficient on the ESC voltage
84
+ lower: 1.0
85
+ upper: 15.0
86
+
87
+ # - name: data:propulsion:multirotor:gearbox:N_red # gearbox reduction ratio (if 'gearbox' option is true)
88
+ # lower: 1.0
89
+ # upper: 20.0
90
+
91
+ ## STRUCTURE ##
92
+ - name: optimization:variables:structures:arms:diameter:k # aspect ratio D_out/D_in for the arms
93
+ lower: 0.05
94
+ upper: 0.99
95
+
96
+
97
+ constraints:
98
+
99
+ ## GLOBAL ##
100
+ - name: optimization:constraints:weight:mtow:consistency # Mass consistency
101
+ lower: 0.0
102
+
103
+ #- name: optimization:constraints:weight:mtow:requirement # MTOW requirement
104
+ # lower: 0.0
105
+
106
+ ## PROPULSION ##
107
+ - name: optimization:constraints:propulsion:multirotor:propeller:airspeed:climb # climb speed requirement
108
+ lower: 0.0
109
+ upper: 0.01
110
+
111
+ - name: optimization:constraints:propulsion:multirotor:propeller:airspeed:cruise # cruise speed requirement
112
+ lower: 0.0
113
+ upper: 0.01
114
+
115
+ - name: optimization:constraints:propulsion:multirotor:propeller:rpm:climb # propeller rpm in climb
116
+ lower: 0.0
117
+
118
+ - name: optimization:constraints:propulsion:multirotor:propeller:rpm:cruise # propeller rpm in cruise
119
+ lower: 0.0
120
+
121
+ - name: optimization:constraints:propulsion:multirotor:motor:torque:climb # motor torque in climb
122
+ lower: 0.0
123
+
124
+ - name: optimization:constraints:propulsion:multirotor:motor:torque:hover # motor torque in hover
125
+ lower: 0.0
126
+
127
+ - name: optimization:constraints:propulsion:multirotor:motor:torque:cruise # motor torque in cruise
128
+ lower: 0.0
129
+
130
+ #- name: optimization:constraints:propulsion:multirotor:motor:speed:constant:min # min bound for Kv w.r.t. Tmax (to match commercially available components)
131
+ # lower: 0.0
132
+
133
+ #- name: optimization:constraints:propulsion:multirotor:motor:speed:constant:max # max bound for Kv w.r.t. Tmax (to match commercially available components)
134
+ # lower: 0.0
135
+
136
+ - name: optimization:constraints:propulsion:multirotor:battery:power:takeoff # battery power at takeoff
137
+ lower: 0.0
138
+
139
+ - name: optimization:constraints:propulsion:multirotor:battery:power:climb # battery power in climb
140
+ lower: 0.0
141
+
142
+ - name: optimization:constraints:propulsion:multirotor:battery:power:cruise # battery power in cruise
143
+ lower: 0.0
144
+
145
+ - name: optimization:constraints:propulsion:multirotor:battery:voltage:climb # battery voltage in climb
146
+ lower: 0.0
147
+
148
+ - name: optimization:constraints:propulsion:multirotor:battery:voltage:cruise # battery voltage in cruise
149
+ lower: 0.0
150
+
151
+ #- name: optimization:constraints:propulsion:multirotor:battery:voltage:min # min bound for voltage w.r.t. power (to match commercially available components)
152
+ # lower: 0.0
153
+
154
+ #- name: optimization:constraints:propulsion:multirotor:battery:voltage:max # max bound for voltage w.r.t. power (to match commercially available components)
155
+ # lower: 0.0
156
+
157
+ - name: optimization:constraints:propulsion:multirotor:esc:power:climb # ESC power in climb
158
+ lower: 0.0
159
+
160
+ - name: optimization:constraints:propulsion:multirotor:esc:power:cruise # ESC power in cruise
161
+ lower: 0.0
162
+
163
+ - name: optimization:constraints:propulsion:multirotor:esc:voltage:min # min bound for voltage w.r.t. power (to match commercially available components)
164
+ lower: 0.0
165
+
166
+ - name: optimization:constraints:propulsion:multirotor:esc:voltage:max # max bound for voltage w.r.t. power (to match commercially available components)
167
+ lower: 0.0
168
+
169
+ ## MISSION ##
170
+ - name: optimization:constraints:mission:sizing:energy:multirotor # energy requirement to fulfill mission (e.g. for mass minimization objective)
171
+ lower: 0.0
172
+
173
+ objective:
174
+ # MASS MINIMIZATION
175
+ - name: data:weight:mtow
176
+ scaler: 1e-1
177
+
178
+ # ENERGY MINIMIZATION
179
+ #- name: mission:sizing:energy
180
+ # scaler: 1e-3
181
+
182
+ # MAX. RANGE MAXIMIZATION
183
+ #- name: data:performance:endurance:cruise
184
+ # scaler: -1e-3
185
+
186
+ # HOVER AUTONOMY MAXIMIZATION
187
+ #- name: data:performance:endurance:hover:max
188
+ # scaler: -1e-1
189
+
@@ -0,0 +1,17 @@
1
+ title: Multirotor Drone MDO with LCA
2
+
3
+ # List of folder paths where user added custom registered OpenMDAO components
4
+ module_folders:
5
+
6
+ # Input and output files
7
+ input_file: ../../workdir/problem_inputs.xml
8
+ output_file: ../../workdir/problem_outputs.xml
9
+
10
+ # Definition of OpenMDAO model
11
+ model:
12
+ missions:
13
+ id: fastuav.performance.mission
14
+ file_path: ../missions/missions_multirotor_doe.yaml # path to the mission definition file
15
+
16
+
17
+
@@ -0,0 +1,61 @@
1
+ title: Multirotor Drone MDA # only consistency constraints are solved. No design optimization.
2
+
3
+ # List of folder paths where user added custom registered OpenMDAO components
4
+ module_folders:
5
+
6
+ # Input and output files
7
+ input_file: ../../workdir/problem_inputs.xml
8
+ output_file: ../../workdir/problem_outputs.xml
9
+
10
+ # Definition of problem driver assuming the OpenMDAO convention import openmdao.api as om
11
+ driver: om.ScipyOptimizeDriver(tol=1e-3, optimizer='SLSQP')
12
+
13
+ # Definition of OpenMDAO model
14
+ model:
15
+ scenarios:
16
+ id: fastuav.scenarios.multirotor
17
+ propulsion:
18
+ id: fastuav.propulsion.multirotor
19
+ gearbox: False
20
+ geometry:
21
+ id: fastuav.geometry.multirotor
22
+ structures:
23
+ id: fastuav.structures.multirotor
24
+ wires:
25
+ id: fastuav.propulsion.wires.multirotor
26
+ mtow:
27
+ id: fastuav.mtow.multirotor
28
+ performance:
29
+ endurance:
30
+ id: fastuav.performance.endurance.multirotor
31
+ missions:
32
+ id: fastuav.performance.mission
33
+ file_path: ../missions/missions_multirotor.yaml
34
+
35
+ optimization:
36
+ design_variables:
37
+ - name: optimization:variables:weight:mtow:k # over estimation coefficient on the mass (to solve the mass consistency constraint)
38
+ upper: 40.0
39
+ lower: 1.0
40
+
41
+ constraints:
42
+ - name: optimization:constraints:weight:mtow:consistency # consistency constraint on the drone mass
43
+ lower: 0.0
44
+
45
+
46
+ objective:
47
+ # MASS MINIMIZATION
48
+ - name: data:weight:mtow
49
+ scaler: 1e-1
50
+
51
+ # ENERGY MINIMIZATION
52
+ #- name: mission:sizing:energy
53
+ # scaler: 1e-3
54
+
55
+ # MAX. RANGE MAXIMIZATION
56
+ #- name: data:performance:range:cruise
57
+ # scaler: -1e-3
58
+
59
+ # HOVER AUTONOMY MAXIMIZATION
60
+ #- name: data:performance:endurance:hover:max
61
+ # scaler: -1e-1
@@ -0,0 +1,224 @@
1
+ title: Fixed-Wing Drone MDO
2
+
3
+ # List of folder paths where user added custom registered OpenMDAO components
4
+ module_folders:
5
+
6
+ # Input and output files
7
+ input_file: ../../workdir/problem_inputs.xml
8
+ output_file: ../../workdir/problem_outputs.xml
9
+
10
+ # Definition of problem driver assuming the OpenMDAO convention import openmdao.api as om
11
+ driver: om.ScipyOptimizeDriver(tol=1e-9, optimizer='SLSQP')
12
+
13
+ # Definition of OpenMDAO model
14
+ model:
15
+ # Converge the discipline coupling at every evaluation so the design point is self-consistent
16
+ # and the (analytic) total derivatives are exact for the optimizer.
17
+ nonlinear_solver: om.NonlinearBlockGS(maxiter=200, atol=1.0e-9, rtol=1.0e-9, iprint=0)
18
+ linear_solver: om.DirectSolver()
19
+ scenarios:
20
+ id: fastuav.scenarios.fixedwing
21
+ propulsion:
22
+ id: fastuav.propulsion.fixedwing
23
+ gearbox: False
24
+ geometry:
25
+ id: fastuav.geometry.fixedwing
26
+ structures:
27
+ id: fastuav.structures.fixedwing
28
+ spar_model: "I_beam" # "I_beam" or "pipe"
29
+ aerodynamics:
30
+ id: fastuav.aerodynamics.fixedwing
31
+ wires:
32
+ id: fastuav.propulsion.wires.fixedwing
33
+ mtow:
34
+ id: fastuav.mtow.fixedwing
35
+ stability:
36
+ id: fastuav.stability.fixedwing
37
+ performance:
38
+ cruise_range:
39
+ id: fastuav.performance.endurance.fixedwing
40
+ missions:
41
+ id: fastuav.performance.mission
42
+ file_path: ../missions/missions_fixedwing.yaml
43
+
44
+
45
+ # This section is needed only if optimization process is run
46
+ optimization:
47
+
48
+ design_variables:
49
+
50
+ ## GLOBAL ##
51
+ - name: optimization:variables:weight:mtow:k # over estimation coefficient on the load mass
52
+ lower: 1.0
53
+ upper: 40.0
54
+
55
+ - name: optimization:variables:geometry:wing:loading:k # under estimation coefficient on the wing loading
56
+ lower: 0.1
57
+ upper: 1.0
58
+
59
+ ## PROPULSION ##
60
+ - name: optimization:variables:propulsion:fixedwing:propeller:ND:k # slow down propeller coef : k_ND: ND / NDmax
61
+ lower: 0.01
62
+ upper: 1.0
63
+
64
+ - name: optimization:variables:propulsion:fixedwing:propeller:beta # pitch/diameter ratio of the propeller
65
+ lower: 0.48
66
+ upper: 1.0
67
+
68
+ - name: optimization:variables:propulsion:fixedwing:propeller:advance_ratio:climb # climbing advance ratio
69
+ lower: 0.01
70
+ upper: 1.2
71
+
72
+ - name: optimization:variables:propulsion:fixedwing:propeller:advance_ratio:cruise # cruise advance ratio
73
+ lower: 0.01
74
+ upper: 1.2
75
+
76
+ - name: optimization:variables:propulsion:fixedwing:motor:torque:k # over estimation coefficient on the motor torque
77
+ lower: 1.0
78
+ upper: 20.0
79
+
80
+ - name: optimization:variables:propulsion:fixedwing:motor:speed:k # over estimation coefficient on the motor speed
81
+ lower: 0.1
82
+ upper: 10.0
83
+
84
+ - name: optimization:variables:propulsion:fixedwing:battery:energy:k # over estimation coefficient on the battery energy
85
+ lower: 0.1
86
+ upper: 20.0
87
+
88
+ - name: optimization:variables:propulsion:fixedwing:battery:voltage:k # over estimation coefficient on the battery voltage
89
+ lower: 1.0
90
+ upper: 10.0
91
+
92
+ - name: optimization:variables:propulsion:fixedwing:esc:power:k # over estimation coefficient on the ESC power
93
+ lower: 1.0
94
+ upper: 15.0
95
+
96
+ - name: optimization:variables:propulsion:fixedwing:esc:voltage:k # over estimation coefficient on the ESC voltage
97
+ lower: 1.0
98
+ upper: 15.0
99
+
100
+ ## GEOMETRY ##
101
+ - name: optimization:variables:geometry:wing:AR
102
+ lower: 8.0
103
+ upper: 20.0
104
+
105
+ - name: optimization:variables:geometry:wing:lambda
106
+ lower: 0.1
107
+ upper: 1.0
108
+
109
+ - name: optimization:variables:geometry:wing:MAC:LE:x:k # under estimation coefficient on wing's MAC leading edge location
110
+ lower: 0.01
111
+ upper: 1.0
112
+
113
+ - name: optimization:variables:geometry:tail:horizontal:AR
114
+ lower: 3.0
115
+ upper: 6.0
116
+
117
+ - name: optimization:variables:geometry:tail:vertical:AR
118
+ lower: 0.9
119
+ upper: 4.0
120
+
121
+ - name: optimization:variables:geometry:tail:horizontal:arm:k # under estimation coefficient on tail moment arm
122
+ lower: 0.01
123
+ upper: 1.0
124
+
125
+ ## STRUCTURES ##
126
+ - name: optimization:variables:structures:wing:spar:depth:k # optimization:variables:structures:wing:spar:diameter:k
127
+ lower: 0.01
128
+ upper: 0.99
129
+
130
+ ## AERODYNAMICS ##
131
+ - name: optimization:variables:aerodynamics:CD0:guess
132
+ lower: 0.01
133
+ upper: 1.0
134
+
135
+ constraints:
136
+
137
+ ## GLOBAL ##
138
+ - name: optimization:constraints:weight:mtow:consistency # Mass consistency
139
+ lower: 0.0
140
+
141
+ - name: optimization:constraints:weight:mtow:requirement # MTOW requirement
142
+ lower: 0.0
143
+
144
+ ## PROPULSION ##
145
+ - name: optimization:constraints:propulsion:fixedwing:propeller:airspeed:climb # climb speed requirement
146
+ lower: 0.0
147
+ upper: 0.01
148
+
149
+ - name: optimization:constraints:propulsion:fixedwing:propeller:airspeed:cruise # cruise speed requirement
150
+ lower: 0.0
151
+ upper: 0.01
152
+
153
+ - name: optimization:constraints:propulsion:fixedwing:propeller:rpm:climb # propeller rpm in climb
154
+ lower: 0.0
155
+
156
+ - name: optimization:constraints:propulsion:fixedwing:propeller:rpm:cruise # propeller rpm in cruise
157
+ lower: 0.0
158
+
159
+ - name: optimization:constraints:propulsion:fixedwing:motor:torque:climb # motor torque in climb
160
+ lower: 0.0
161
+
162
+ - name: optimization:constraints:propulsion:fixedwing:motor:torque:cruise # motor torque in cruise
163
+ lower: 0.0
164
+
165
+ - name: optimization:constraints:propulsion:fixedwing:battery:power:takeoff # battery power at takeoff
166
+ lower: 0.0
167
+
168
+ - name: optimization:constraints:propulsion:fixedwing:battery:power:climb # battery power in climb
169
+ lower: 0.0
170
+
171
+ - name: optimization:constraints:propulsion:fixedwing:battery:power:cruise # battery power in cruise
172
+ lower: 0.0
173
+
174
+ - name: optimization:constraints:propulsion:fixedwing:battery:voltage:climb # battery voltage in climb
175
+ lower: 0.0
176
+
177
+ - name: optimization:constraints:propulsion:fixedwing:battery:voltage:cruise # battery voltage in cruise
178
+ lower: 0.0
179
+
180
+ - name: optimization:constraints:propulsion:fixedwing:esc:power:climb # ESC power in climb
181
+ lower: 0.0
182
+
183
+ - name: optimization:constraints:propulsion:fixedwing:esc:power:cruise # ESC power in cruise
184
+ lower: 0.0
185
+
186
+ - name: optimization:constraints:propulsion:fixedwing:esc:voltage:min # min bound for voltage w.r.t. power (to match commercially available components)
187
+ lower: 0.0
188
+
189
+ - name: optimization:constraints:propulsion:fixedwing:esc:voltage:max # max bound for voltage w.r.t. power (to match commercially available components)
190
+ lower: 0.0
191
+
192
+ ## GEOMETRY ##
193
+ - name: optimization:constraints:geometry:fuselage:volume # fuselage volume requirement
194
+ lower: 0.0
195
+
196
+ ## STRUCTURES ##
197
+ - name: optimization:constraints:structures:wing:spar:depth # data:structures:wing:spar:diameter
198
+ lower: 0.0
199
+
200
+ ## AERODYNAMICS ##
201
+ - name: optimization:constraints:aerodynamics:CD0:consistency # Drag consistency
202
+ lower: 0.0
203
+ upper: 0.01
204
+
205
+ ## STABILITY ##
206
+ - name: optimization:constraints:stability:static_margin:min # static margin constraint (min value)
207
+ lower: 0.0
208
+
209
+ #- name: optimization:constraints:stability:static_margin:max # static margin constraint (max value)
210
+ # lower: 0.0
211
+
212
+ ## MISSION ##
213
+ #- name: optimization:constraints:mission:sizing:energy:fixedwing # energy requirement to fulfill mission (e.g. for mass minimization objective)
214
+ # lower: 0.0
215
+
216
+
217
+ objective:
218
+ # MASS MINIMIZATION
219
+ #- name: data:weight:mtow
220
+ # scaler: 1e-1
221
+
222
+ # ENDURANCE MAXIMIZATION
223
+ - name: data:performance:endurance:cruise
224
+ scaler: -1e-3 # the use of a scaler is highly recommended due to numerical precision affecting the final convergence.
@@ -0,0 +1,39 @@
1
+ title: Fixed-Wing Drone MDO
2
+
3
+ # List of folder paths where user added custom registered OpenMDAO components
4
+ module_folders:
5
+
6
+ # Input and output files
7
+ input_file: ../../workdir/problem_inputs.xml
8
+ output_file: ../../workdir/problem_outputs.xml
9
+
10
+ # Definition of problem driver assuming the OpenMDAO convention import openmdao.api as om
11
+ driver: om.ScipyOptimizeDriver(tol=1e-9, optimizer='SLSQP')
12
+
13
+ # Definition of OpenMDAO model
14
+ model:
15
+ scenarios:
16
+ id: fastuav.scenarios.fixedwing
17
+ propulsion:
18
+ id: fastuav.propulsion.fixedwing
19
+ gearbox: False
20
+ geometry:
21
+ id: fastuav.geometry.fixedwing
22
+ structures:
23
+ id: fastuav.structures.fixedwing
24
+ spar_model: "I_beam" # "I_beam" or "pipe"
25
+ aerodynamics:
26
+ id: fastuav.aerodynamics.fixedwing
27
+ wires:
28
+ id: fastuav.propulsion.wires.fixedwing
29
+ mtow:
30
+ id: fastuav.mtow.fixedwing
31
+ stability:
32
+ id: fastuav.stability.fixedwing
33
+ performance:
34
+ cruise_range:
35
+ id: fastuav.performance.endurance.fixedwing
36
+ missions:
37
+ id: fastuav.performance.mission
38
+ file_path: ../missions/missions_fixedwing.yaml
39
+