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.
- fastuav/__init__.py +0 -0
- fastuav/configurations/__init__.py +0 -0
- fastuav/configurations/doe_optimization_problem.yaml +189 -0
- fastuav/configurations/doe_simple_model.yaml +17 -0
- fastuav/configurations/doe_sobol_analysis.yaml +61 -0
- fastuav/configurations/fixedwing_mdo.yaml +224 -0
- fastuav/configurations/fixedwing_model.yaml +39 -0
- fastuav/configurations/hybrid_mdo.yaml +321 -0
- fastuav/configurations/hybrid_model.yaml +38 -0
- fastuav/configurations/multirotor_mda.yaml +48 -0
- fastuav/configurations/multirotor_mda_cots.yaml +61 -0
- fastuav/configurations/multirotor_mdo.yaml +193 -0
- fastuav/configurations/multirotor_mdo_cots.yaml +208 -0
- fastuav/configurations/multirotor_model.yaml +33 -0
- fastuav/configurations/multirotor_model_cots.yaml +36 -0
- fastuav/configurations/multirotor_performance.yaml +11 -0
- fastuav/constants.py +33 -0
- fastuav/data/__init__.py +12 -0
- fastuav/data/catalogues/Batteries/Non-Dominated-Augmented-Batteries.csv +498 -0
- fastuav/data/catalogues/ESC/ESC_data.csv +75 -0
- fastuav/data/catalogues/ESC/Non-Dominated-ESC.csv +27 -0
- fastuav/data/catalogues/Motors/Motors_Data.csv +205 -0
- fastuav/data/catalogues/Motors/Non-Dominated-Motors.csv +48 -0
- fastuav/data/catalogues/Propeller/APC_propellers.csv +2039 -0
- fastuav/data/catalogues/Propeller/APC_propellers_MR.csv +53 -0
- fastuav/data/catalogues/Propeller/performances/Non-Dominated-Propeller.csv +406 -0
- fastuav/data/catalogues/Propeller/performances/Propeller_Data.csv +2821 -0
- fastuav/missions/missions_fixedwing.yaml +22 -0
- fastuav/missions/missions_hybrid.yaml +24 -0
- fastuav/missions/missions_multirotor.yaml +28 -0
- fastuav/models/__init__.py +0 -0
- fastuav/models/add_ons/__init__.py +0 -0
- fastuav/models/add_ons/sample_discipline.py +35 -0
- fastuav/models/aerodynamics/__init__.py +0 -0
- fastuav/models/aerodynamics/aerodynamics_fixedwing.py +387 -0
- fastuav/models/aerodynamics/aerodynamics_hybrid.py +144 -0
- fastuav/models/aerodynamics/aerodynamics_multirotor.py +6 -0
- fastuav/models/geometry/__init__.py +0 -0
- fastuav/models/geometry/geometry_fixedwing.py +534 -0
- fastuav/models/geometry/geometry_hybrid.py +207 -0
- fastuav/models/geometry/geometry_multirotor.py +139 -0
- fastuav/models/mtow/__init__.py +0 -0
- fastuav/models/mtow/mtow.py +266 -0
- fastuav/models/mtow/mtow_fixedwing.py +19 -0
- fastuav/models/mtow/mtow_hybrid.py +19 -0
- fastuav/models/mtow/mtow_multirotor.py +19 -0
- fastuav/models/performance/__init__.py +0 -0
- fastuav/models/performance/mission/__init__.py +0 -0
- fastuav/models/performance/mission/flight_performance.py +358 -0
- fastuav/models/performance/mission/mission_builder.py +247 -0
- fastuav/models/performance/mission/mission_definition/__init__.py +0 -0
- fastuav/models/performance/mission/mission_definition/resources/__init__.py +0 -0
- fastuav/models/performance/mission/mission_definition/resources/mission_schema.json +267 -0
- fastuav/models/performance/mission/mission_definition/schema.py +104 -0
- fastuav/models/performance/mission/phase_builder.py +413 -0
- fastuav/models/performance/mission/route_builder.py +234 -0
- fastuav/models/performance/range_and_endurance.py +163 -0
- fastuav/models/propulsion/__init__.py +0 -0
- fastuav/models/propulsion/energy/__init__.py +0 -0
- fastuav/models/propulsion/energy/battery/__init__.py +0 -0
- fastuav/models/propulsion/energy/battery/battery.py +39 -0
- fastuav/models/propulsion/energy/battery/catalogue.py +275 -0
- fastuav/models/propulsion/energy/battery/constraints.py +219 -0
- fastuav/models/propulsion/energy/battery/definition_parameters.py +267 -0
- fastuav/models/propulsion/energy/battery/estimation_models.py +355 -0
- fastuav/models/propulsion/energy/battery/performance_analysis.py +75 -0
- fastuav/models/propulsion/esc/__init__.py +0 -0
- fastuav/models/propulsion/esc/catalogue.py +138 -0
- fastuav/models/propulsion/esc/constraints.py +157 -0
- fastuav/models/propulsion/esc/definition_parameters.py +161 -0
- fastuav/models/propulsion/esc/esc.py +33 -0
- fastuav/models/propulsion/esc/estimation_models.py +48 -0
- fastuav/models/propulsion/esc/performance_analysis.py +61 -0
- fastuav/models/propulsion/gearbox/__init__.py +0 -0
- fastuav/models/propulsion/gearbox/gearbox.py +60 -0
- fastuav/models/propulsion/motor/__init__.py +0 -0
- fastuav/models/propulsion/motor/catalogue.py +176 -0
- fastuav/models/propulsion/motor/constraints.py +158 -0
- fastuav/models/propulsion/motor/definition_parameters.py +132 -0
- fastuav/models/propulsion/motor/estimation_models.py +304 -0
- fastuav/models/propulsion/motor/motor.py +35 -0
- fastuav/models/propulsion/motor/performance_analysis.py +379 -0
- fastuav/models/propulsion/propeller/__init__.py +0 -0
- fastuav/models/propulsion/propeller/aerodynamics/__init__.py +0 -0
- fastuav/models/propulsion/propeller/aerodynamics/surrogate_models.py +264 -0
- fastuav/models/propulsion/propeller/catalogue.py +239 -0
- fastuav/models/propulsion/propeller/constraints.py +127 -0
- fastuav/models/propulsion/propeller/definition_parameters.py +213 -0
- fastuav/models/propulsion/propeller/estimation_models.py +157 -0
- fastuav/models/propulsion/propeller/performance_analysis.py +215 -0
- fastuav/models/propulsion/propeller/propeller.py +37 -0
- fastuav/models/propulsion/propulsion.py +92 -0
- fastuav/models/propulsion/propulsion_fixedwing.py +19 -0
- fastuav/models/propulsion/propulsion_hybrid.py +19 -0
- fastuav/models/propulsion/propulsion_multirotor.py +19 -0
- fastuav/models/scenarios/__init__.py +0 -0
- fastuav/models/scenarios/scenarios_fixedwing.py +47 -0
- fastuav/models/scenarios/scenarios_hybrid.py +62 -0
- fastuav/models/scenarios/scenarios_multirotor.py +33 -0
- fastuav/models/scenarios/thrust/__init__.py +0 -0
- fastuav/models/scenarios/thrust/climb.py +164 -0
- fastuav/models/scenarios/thrust/cruise.py +163 -0
- fastuav/models/scenarios/thrust/flight_models.py +107 -0
- fastuav/models/scenarios/thrust/hover.py +58 -0
- fastuav/models/scenarios/thrust/takeoff.py +109 -0
- fastuav/models/scenarios/wing_loading/__init__.py +0 -0
- fastuav/models/scenarios/wing_loading/wing_loading.py +208 -0
- fastuav/models/stability/__init__.py +0 -0
- fastuav/models/stability/stability_fixedwing.py +33 -0
- fastuav/models/stability/stability_hybrid.py +33 -0
- fastuav/models/stability/static_longitudinal/__init__.py +0 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/__init__.py +0 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/cog.py +132 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/components/__init__.py +0 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_airframe.py +232 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_load.py +134 -0
- fastuav/models/stability/static_longitudinal/center_of_gravity/components/cog_propulsion.py +155 -0
- fastuav/models/stability/static_longitudinal/neutral_point.py +45 -0
- fastuav/models/stability/static_longitudinal/static_margin.py +95 -0
- fastuav/models/structures/__init__.py +0 -0
- fastuav/models/structures/fuselage.py +44 -0
- fastuav/models/structures/structures_fixedwing.py +33 -0
- fastuav/models/structures/structures_hybrid.py +35 -0
- fastuav/models/structures/structures_multirotor.py +102 -0
- fastuav/models/structures/tails.py +58 -0
- fastuav/models/structures/wing/__init__.py +0 -0
- fastuav/models/structures/wing/constraints.py +100 -0
- fastuav/models/structures/wing/estimation_models.py +310 -0
- fastuav/models/structures/wing/structural_analysis.py +115 -0
- fastuav/models/structures/wing/wing.py +70 -0
- fastuav/models/variable_descriptions.txt +816 -0
- fastuav/models/wires/__init__.py +0 -0
- fastuav/models/wires/wires.py +202 -0
- fastuav/models/wires/wires_fixedwing.py +19 -0
- fastuav/models/wires/wires_hybrid.py +19 -0
- fastuav/models/wires/wires_multirotor.py +19 -0
- fastuav/notebooks/0_Tutorial.ipynb +2601 -0
- fastuav/notebooks/1_Multirotor_Design.ipynb +2557 -0
- fastuav/notebooks/1b_Mission_performance.ipynb +2271 -0
- fastuav/notebooks/1c_Multirotor_Design_Catalogues.ipynb +3853 -0
- fastuav/notebooks/2_FixedWing_Design.ipynb +2345 -0
- fastuav/notebooks/3_HybridVTOL_Design.ipynb +2337 -0
- fastuav/notebooks/4_Uncertainty_analysis.ipynb +822 -0
- fastuav/notebooks/5_Design_of_experiments_Tutorial.ipynb +400 -0
- fastuav/notebooks/README.md +14 -0
- fastuav/notebooks/__init__.py +0 -0
- fastuav/notebooks/data/__init__.py +12 -0
- fastuav/notebooks/data/configurations/__init__.py +12 -0
- fastuav/notebooks/data/configurations/doe_optimization_problem.yaml +189 -0
- fastuav/notebooks/data/configurations/doe_simple_model.yaml +17 -0
- fastuav/notebooks/data/configurations/doe_sobol_analysis.yaml +61 -0
- fastuav/notebooks/data/configurations/fixedwing_mdo.yaml +224 -0
- fastuav/notebooks/data/configurations/fixedwing_model.yaml +39 -0
- fastuav/notebooks/data/configurations/hybrid_mdo.yaml +321 -0
- fastuav/notebooks/data/configurations/hybrid_model.yaml +38 -0
- fastuav/notebooks/data/configurations/multirotor_mda.yaml +48 -0
- fastuav/notebooks/data/configurations/multirotor_mda_cots.yaml +61 -0
- fastuav/notebooks/data/configurations/multirotor_mdo.yaml +190 -0
- fastuav/notebooks/data/configurations/multirotor_mdo_cots.yaml +208 -0
- fastuav/notebooks/data/configurations/multirotor_model.yaml +33 -0
- fastuav/notebooks/data/configurations/multirotor_model_cots.yaml +36 -0
- fastuav/notebooks/data/configurations/multirotor_performance.yaml +11 -0
- fastuav/notebooks/data/missions/__init__.py +12 -0
- fastuav/notebooks/data/missions/missions_fixedwing.yaml +22 -0
- fastuav/notebooks/data/missions/missions_hybrid.yaml +24 -0
- fastuav/notebooks/data/missions/missions_multirotor.yaml +28 -0
- fastuav/notebooks/data/missions/missions_multirotor_doe.yaml +27 -0
- fastuav/notebooks/data/missions/missions_multirotor_off_design.yaml +41 -0
- fastuav/notebooks/data/source_files/__init__.py +12 -0
- fastuav/notebooks/data/source_files/problem_inputs_DJI_M600.xml +442 -0
- fastuav/notebooks/data/source_files/problem_inputs_FW.xml +501 -0
- fastuav/notebooks/data/source_files/problem_inputs_doe.xml +126 -0
- fastuav/notebooks/data/source_files/problem_inputs_doe_optim.xml +442 -0
- fastuav/notebooks/data/source_files/problem_inputs_hybrid.xml +857 -0
- fastuav/notebooks/data/source_files/problem_outputs_DJI_M600_mdo.xml +715 -0
- fastuav/notebooks/data/source_files/problem_outputs_discrete_DJI_M600_mdo.xml +716 -0
- fastuav/notebooks/img/uncertainty.gif +0 -0
- fastuav/notebooks/workdir/sensitivity_analysis/doe_Morris.csv +25 -0
- fastuav/notebooks/workdir/sensitivity_analysis/doe_Sobol.csv +769 -0
- fastuav/notebooks/workdir/sensitivity_analysis/doe_Sobol_2.csv +769 -0
- fastuav/notebooks/workdir/sensitivity_analysis/doe_fullfactorial.csv +101 -0
- fastuav/notebooks/workdir/sensitivity_analysis/problem_morris.txt +1 -0
- fastuav/notebooks/workdir/sensitivity_analysis/problem_sobol.txt +1 -0
- fastuav/notebooks/workdir/sensitivity_analysis/x_morris.txt +1 -0
- fastuav/notebooks/workdir/sensitivity_analysis/y_morris.txt +1 -0
- fastuav/notebooks/workdir/sensitivity_analysis/y_sobol.txt +1 -0
- fastuav/utils/__init__.py +0 -0
- fastuav/utils/catalogues/__init__.py +0 -0
- fastuav/utils/catalogues/estimators.py +353 -0
- fastuav/utils/configurations_versatility.py +89 -0
- fastuav/utils/drivers/__init__.py +0 -0
- fastuav/utils/drivers/cmaes_driver.py +792 -0
- fastuav/utils/drivers/cmaes_driver_legacy.py +490 -0
- fastuav/utils/drivers/salib_doe_driver.py +213 -0
- fastuav/utils/postprocessing/__init__.py +0 -0
- fastuav/utils/postprocessing/analysis_and_plots.py +1035 -0
- fastuav/utils/postprocessing/old/__init__.py +0 -0
- fastuav/utils/postprocessing/old/monte_carlo.py +530 -0
- fastuav/utils/postprocessing/old/morris_0.py +297 -0
- fastuav/utils/postprocessing/old/morris_1.py +468 -0
- fastuav/utils/postprocessing/old/sobol_0.py +423 -0
- fastuav/utils/postprocessing/old/sobol_1.py +735 -0
- fastuav/utils/postprocessing/sensitivity_analysis/__init__.py +0 -0
- fastuav/utils/postprocessing/sensitivity_analysis/distribution_plot.py +113 -0
- fastuav/utils/postprocessing/sensitivity_analysis/doe_convergence_plot.py +301 -0
- fastuav/utils/postprocessing/sensitivity_analysis/morris_plot.py +133 -0
- fastuav/utils/postprocessing/sensitivity_analysis/sensitivity_analysis.py +1323 -0
- fastuav/utils/postprocessing/sensitivity_analysis/sobol_plot.py +38 -0
- fastuav/utils/uncertainty.py +240 -0
- fastuav-0.2.0b0.dist-info/METADATA +174 -0
- fastuav-0.2.0b0.dist-info/RECORD +213 -0
- fastuav-0.2.0b0.dist-info/WHEEL +4 -0
- 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
|
+
|