From 68372a1d6a71f434bb5e4ff386c5b5c51aa9b5db Mon Sep 17 00:00:00 2001 From: timeeapacala <“t.pacala@tu-berlin.de”> Date: Tue, 3 Dec 2024 14:59:00 +0100 Subject: [PATCH 1/3] mtom correction --- .../src/tube_and_wing/standard/basic/methodbasic.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py index a1535363..612d4305 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py @@ -175,10 +175,11 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi ).print("Design mass takeoff") # Maximum takeoff mass - maximum_takeoff_mass = copy.copy(design_mass) + maximum_takeoff_mass = copy.copy(design_mass_takeoff) maximum_takeoff_mass.path_to_element = "./analysis/masses_cg_inertia/maximum_takeoff_mass" maximum_takeoff_mass.cg_mac = ( - design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 + design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 + maximum_takeoff_mass.print("Maximum Takeoff Mass") # Maximum payload + fuel up to MTOW mtow_max_payload_mass = calculate_mtow_max_payload( -- GitLab From 7fec298037bb8fe732eaae685d03aac17ed310ac Mon Sep 17 00:00:00 2001 From: timeeapacala <“t.pacala@tu-berlin.de”> Date: Thu, 5 Dec 2024 15:50:27 +0100 Subject: [PATCH 2/3] nothing new --- .../src/tube_and_wing/standard/basic/methodbasic.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py index a1535363..43d4a7cc 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py @@ -175,10 +175,11 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi ).print("Design mass takeoff") # Maximum takeoff mass - maximum_takeoff_mass = copy.copy(design_mass) + maximum_takeoff_mass = copy.copy(design_mass_takeoff) maximum_takeoff_mass.path_to_element = "./analysis/masses_cg_inertia/maximum_takeoff_mass" maximum_takeoff_mass.cg_mac = ( - design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 + design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 + maximum_takeoff_mass.print("Maximum takeoff mass") # Maximum payload + fuel up to MTOW mtow_max_payload_mass = calculate_mtow_max_payload( -- GitLab From 3e2f4e57f15d7cc99683ee84f0524c6d6c1635c9 Mon Sep 17 00:00:00 2001 From: timeeapacala <“t.pacala@tu-berlin.de”> Date: Wed, 11 Dec 2024 11:19:25 +0100 Subject: [PATCH 3/3] - added headers - modified the fuel calculation by overshooting: the output is still the fuel calculated by mission, even though not all fuel was added in the tanks due to the capacity limitation - check the report for the different mass descriptions (added more information). The difference between the mission masses and the takeoff masses is the fuel for the taxi at the origin. - the design mass and the design fuel mass written in the acxml correspond to the design_mass_takeoff and design_fuel_mass_takeoff. The design mass is the same as MTOM. --- weight_and_balance_analysis/main.py | 26 +++++- .../src/datapostprocessing.py | 20 +++++ .../src/datapreprocessing.py | 20 +++++ .../src/readlayertext.py | 20 +++++ .../standard/basic/acommodationIO.py | 20 +++++ .../standard/basic/componentMassIO.py | 20 +++++ .../standard/basic/massPropertiesIO.py | 20 +++++ .../standard/basic/methodbasic.py | 83 +++++++++++++------ .../standard/basic/propulsionIO.py | 20 +++++ .../tube_and_wing/standard/basic/tankIO.py | 20 +++++ .../standard/basic/transportTaskIO.py | 20 +++++ .../standard/general/methodhtmlreport.py | 37 +++++++-- .../standard/general/methodplot.py | 24 +++++- .../standard/general/methodtexoutput.py | 20 +++++ .../standard/general/methodxmlexport.py | 20 +++++ .../standard/test_basic/test_IO.py | 20 +++++ .../standard/test_basic/test_methodbasic.py | 20 +++++ .../standard/usermethoddatapreparation.py | 22 ++++- 18 files changed, 412 insertions(+), 40 deletions(-) diff --git a/weight_and_balance_analysis/main.py b/weight_and_balance_analysis/main.py index 6e0a4dad..824beb35 100644 --- a/weight_and_balance_analysis/main.py +++ b/weight_and_balance_analysis/main.py @@ -1,4 +1,24 @@ -"""Calculation module main file.""" +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + + # Import standard modules. import sys import logging @@ -13,9 +33,9 @@ from src.datapostprocessing import data_postprocessing def main(): - """Execute the main program for cost estimation. + """Execute the main program for weight and balance analysis. - This function serves as the main entry point for performing the cost estimation. + This function serves as the main entry point for performing the weight and balance analysis. It goes through the following key steps: (1) Preprocessing - Acquire necessary data and paths: Call the 'data_preprocessing' function from 'datapreprocessing.py' to set up data and routing information. diff --git a/weight_and_balance_analysis/src/datapostprocessing.py b/weight_and_balance_analysis/src/datapostprocessing.py index 9767ca87..4f838785 100644 --- a/weight_and_balance_analysis/src/datapostprocessing.py +++ b/weight_and_balance_analysis/src/datapostprocessing.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing functions for data postprocessing.""" # Import standard modules. diff --git a/weight_and_balance_analysis/src/datapreprocessing.py b/weight_and_balance_analysis/src/datapreprocessing.py index 87234f31..d001a0d6 100644 --- a/weight_and_balance_analysis/src/datapreprocessing.py +++ b/weight_and_balance_analysis/src/datapreprocessing.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing functions for data preprocessing.""" # Import standard modules. import importlib diff --git a/weight_and_balance_analysis/src/readlayertext.py b/weight_and_balance_analysis/src/readlayertext.py index 22b307c2..64f43ddc 100644 --- a/weight_and_balance_analysis/src/readlayertext.py +++ b/weight_and_balance_analysis/src/readlayertext.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """File providing functions to read layer text from aircraft XML file.""" # Import standard libraries. import sys diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py index 2b3bcb3d..ee85c520 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/acommodationIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Acommodation IO""" import pandas as pd diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py index 2dfc4473..b0c24713 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/componentMassIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """ComponentMass IO""" import pandas as pd diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py index d703e179..f0b878b0 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/massPropertiesIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """ MassProperties IO """ diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py index 9f77567e..c992f193 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/methodbasic.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing calculation functions provided by the user.""" # Import own modules. @@ -128,12 +148,6 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi operating_mass_empty = calculate_operating_mass_empty( main_components_mass_properties, inertia_method, x_leading_edge_mac, mac).print("Operating mass empty") - # Maximum fuel mass + maximum fuel mass per tank - maximum_fuel_mass, maximum_fuel_mass_per_tank, ferry_range_mass = calculate_maximum_fuel_mass( - tanks, operating_mass_empty, x_leading_edge_mac, mac, maximum_takeoff_mass, runtime_output) - maximum_fuel_mass.print("Maximum fuel mass") - ferry_range_mass.print("Ferry range mass") - # Maximum PL mass maximum_payload_mass = calculate_maximum_payload_mass( dict_ac_exchange["maximum_structural_payload_mass"], @@ -146,12 +160,15 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi # Design fuel mass design_fuel_mass_takeoff, design_fuel_mass_midflight, design_fuel_mass_minimum_landing, \ - design_fuel_mass_takeoff_per_tank, consumed_fuel, design_fuel_mass, design_fuel_mass_per_tank = \ + design_fuel_mass_takeoff_per_tank, consumed_fuel, mission_fuel_mass, _ = \ calculate_design_fuel_mass( mission_information, maximum_takeoff_mass, operating_mass_empty, design_payload_mass, tanks, routing_dict, dict_ac_exchange) - design_fuel_mass.path_to_element = "./analysis/masses_cg_inertia/design_fuel_mass" - design_fuel_mass.print("Design fuel mass") + mission_fuel_mass.path_to_element = "./analysis/masses_cg_inertia/mission_fuel_mass" + mission_fuel_mass.print("Mission fuel mass") + + design_fuel_mass_takeoff.path_to_element = "./analysis/masses_cg_inertia/design_fuel_mass" + design_fuel_mass_takeoff.print("Design fuel mass (at takeoff)") # Maximum zero fuel mass maximum_zero_fuel_mass = calculate_maximum_zero_fuel_mass( @@ -162,17 +179,17 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi # Design mass design_mass = calculate_design_mass( [operating_mass_empty, design_payload_mass, - design_fuel_mass], inertia_method - ).print("Design mass") - design_mass.path_to_element = "./analysis/masses_cg_inertia/design_mass" - design_mass.cg_mac = ( - design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 + mission_fuel_mass], inertia_method + ).print("Design mass (mission)") # Design mass takeoff design_mass_takeoff = calculate_design_mass( [operating_mass_empty, design_payload_mass, design_fuel_mass_takeoff], inertia_method ).print("Design mass takeoff") + design_mass_takeoff.path_to_element = "./analysis/masses_cg_inertia/design_mass" + design_mass_takeoff.cg_mac = ( + design_mass.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 # Maximum takeoff mass maximum_takeoff_mass = copy.copy(design_mass_takeoff) @@ -181,6 +198,12 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi design_mass_takeoff.center_of_gravity['x'] - x_leading_edge_mac) / mac * 100 maximum_takeoff_mass.print("Maximum Takeoff Mass") + # Maximum fuel mass + maximum fuel mass per tank + maximum_fuel_mass, maximum_fuel_mass_per_tank, ferry_range_mass = calculate_maximum_fuel_mass( + tanks, operating_mass_empty, x_leading_edge_mac, mac, maximum_takeoff_mass, runtime_output) + maximum_fuel_mass.print("Maximum fuel mass") + ferry_range_mass.print("Ferry range mass") + # Maximum payload + fuel up to MTOW mtow_max_payload_mass = calculate_mtow_max_payload( operating_mass_empty, maximum_payload_mass, main_components_mass_properties["wing"], @@ -402,8 +425,8 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi corresponding_mass_most_aft_CG = total_mass_cargo_back_front[corresponding_index] else: corresponding_index = cg_positions_over_mac_defueling.index( - most_fwd_CG_over_mac) - corresponding_mass_most_fwd_CG = total_mass_defueling[corresponding_index] + most_aft_CG_over_mac) + corresponding_mass_most_aft_CG = total_mass_defueling[corresponding_index] runtime_output.print( f"Corresponding mass most aft CG is of {corresponding_mass_most_aft_CG:.2f} kg.") @@ -474,10 +497,12 @@ def method_basic(paths_and_names, routing_dict, dict_ac_exchange, dict_mod_confi "mtow_with_max_payload": mtow_max_payload_mass, "mtow_with_max_fuel": mtow_max_fuel_mass, "design_mass": design_mass, + "design_mass_takeoff": design_mass_takeoff, "design_payload_mass": design_payload_mass, "design_mass_midflight": design_mass_midflight, - "design_fuel_mass": design_fuel_mass, - "design_fuel_mass_takeoff": design_fuel_mass_takeoff, + "mission_fuel_mass": mission_fuel_mass, + "design_fuel_mass": design_fuel_mass_takeoff, + "design_fuel_takeoff": design_fuel_mass_takeoff, "design_fuel_mass_midflight": design_fuel_mass_midflight, "design_fuel_mass_minimum_landing": design_fuel_mass_minimum_landing, "group_masses": group_masses, @@ -1411,12 +1436,12 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No cruise_fuel = mission_information["trip_fuel_mass"] - \ mission_information["takeoff_fuel_mass"] - \ mission_information["landing_fuel_mass"] - design_fuel_mass = mission_information["mission_fuel_mass"] - design_fuel_mass_at_takeoff = mission_information["mission_fuel_mass"] - \ + design_fuel_mass_ini = mission_information["mission_fuel_mass"] + design_fuel_mass_at_takeoff_ini = mission_information["mission_fuel_mass"] - \ mission_information["taxi_out_fuel_mass"] - design_fuel_mass_midflight = design_fuel_mass_at_takeoff - \ + design_fuel_mass_midflight_ini = design_fuel_mass_at_takeoff_ini - \ mission_information["takeoff_fuel_mass"] - cruise_fuel / 2 - design_fuel_mass_landing_minimum = mission_information["mission_fuel_mass"] - \ + design_fuel_mass_landing_minimum_ini = mission_information["mission_fuel_mass"] - \ mission_information["trip_fuel_mass"] - \ mission_information["taxi_out_fuel_mass"] consumed_fuel_during_flight = mission_information["trip_fuel_mass"] @@ -1425,13 +1450,17 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No # the refueling order is already saved in the sorted tanks # = (preparation for the calculation of the refueling-cg-shift) design_fuel_mass, design_fuel_mass_per_tank = calculate_fuel_mass_properties( - tanks, design_fuel_mass, routing_dict, dict_ac_exchange) + tanks, design_fuel_mass_ini, routing_dict, dict_ac_exchange) + design_fuel_mass.mass = design_fuel_mass_ini design_fuel_mass_takeoff, design_fuel_mass_takeoff_per_tank = calculate_fuel_mass_properties( - tanks, design_fuel_mass_at_takeoff, routing_dict, dict_ac_exchange) + tanks, design_fuel_mass_at_takeoff_ini, routing_dict, dict_ac_exchange) + design_fuel_mass_takeoff.mass = design_fuel_mass_at_takeoff_ini design_fuel_mass_midflight, _ = calculate_fuel_mass_properties( - tanks, design_fuel_mass_midflight, routing_dict, dict_ac_exchange) + tanks, design_fuel_mass_midflight_ini, routing_dict, dict_ac_exchange) + design_fuel_mass_midflight.mass = design_fuel_mass_midflight_ini design_fuel_mass_landing_minimum, _ = calculate_fuel_mass_properties( - tanks, design_fuel_mass_landing_minimum, routing_dict, dict_ac_exchange) + tanks, design_fuel_mass_landing_minimum_ini, routing_dict, dict_ac_exchange) + design_fuel_mass_landing_minimum.mass = design_fuel_mass_landing_minimum_ini else: contingency_fuel_factor = 0.05 alternate_fuel_factor = 0.1 @@ -1454,7 +1483,7 @@ def calculate_design_fuel_mass(mission_information=None, maximum_takeoff_mass=No tanks, design_fuel_mass_midflight, routing_dict, dict_ac_exchange) design_fuel_mass_landing_minimum, _ = calculate_fuel_mass_properties( tanks, design_fuel_mass_landing_minimum, routing_dict, dict_ac_exchange) - design_fuel_mass = design_fuel_mass_at_takeoff + design_fuel_mass = design_fuel_mass_takeoff design_fuel_mass_per_tank = design_fuel_mass_takeoff_per_tank return (design_fuel_mass_takeoff, design_fuel_mass_midflight, design_fuel_mass_landing_minimum, diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py index 10605f4d..af2ed424 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/propulsionIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """PylonIO """ diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py index 6e99afca..6f421847 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/tankIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Tank IO """ from .massPropertiesIO import MassPropertiesIO diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py index e740580c..4b549579 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/basic/transportTaskIO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Transport task IO""" diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py index 0db98037..a6765a90 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodhtmlreport.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing report functionalities for current calculation method.""" from yattag import Doc from bs4 import BeautifulSoup @@ -34,6 +54,8 @@ def method_html_report(paths_and_names, routing_dict, data_dict, method_specific data_dict["operating_mass_empty"].mass), ("Maximum Takeoff Mass", "MTOM", data_dict["maximum_takeoff_mass"].mass), + ("Maximum Landing Mass", "MLM", + data_dict["maximum_landing_mass"].mass), ("Maximum Zero Fuel Mass", "MZFM", data_dict["maximum_zero_fuel_mass"].mass), ("Maximum Payload Mass", "-", data_dict["maximum_payload_mass"].mass), @@ -44,14 +66,15 @@ def method_html_report(paths_and_names, routing_dict, data_dict, method_specific ] aircraft_design_masses = [ - ("Maximum Takeoff Mass", "MTOM", - data_dict["maximum_takeoff_mass"].mass), - ("Maximum Landing Mass", "MLM", - data_dict["maximum_landing_mass"].mass), + ("Design Mass (Mission)", "-", + data_dict["design_mass"].mass), + ("Design Mass (Takeoff)", "-", + data_dict["design_mass_takeoff"].mass), ("Design Payload Mass", "-", data_dict["design_payload_mass"].mass), - ("Design Fuel Mass", "-", data_dict["design_fuel_mass"].mass), - ("Design Fuel Mass Takeoff", "-", - data_dict["design_fuel_mass_takeoff"].mass), + ("Design Fuel Mass (Mission)", "-", + data_dict["mission_fuel_mass"].mass), + ("Design Fuel Mass (Takeoff)", "-", + data_dict["design_fuel_takeoff"].mass), ("Design Fuel Mass Midflight", "-", data_dict["design_fuel_mass_midflight"].mass), ("Design Fuel Mass Minimum Landing", "-", diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py index 9247c045..6616338c 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodplot.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing plotting functionalities for current calculation method.""" # Import standard libraries. import os @@ -180,8 +200,8 @@ def method_plot(paths_and_names, routing_dict, data_dict, method_specific_output plt.plot(data_dict["ferry_range_mass"].cg_mac, data_dict["ferry_range_mass"].mass, 'o') - plt.plot(data_dict["design_mass"].cg_mac, - data_dict["design_mass"].mass, 's') + plt.plot(data_dict["design_mass_takeoff"].cg_mac, + data_dict["design_mass_takeoff"].mass, 's') # Define legend labels and colors legend_labels2 = ['OEM', 'MZFM (max Payload)', 'max Payload + Fuel', 'max Fuel + Payload', 'max Fuel', diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py index 87a9aa04..a1646acb 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodtexoutput.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing report functionalities for current calculation method.""" diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py index c618c2ef..43b00c54 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/general/methodxmlexport.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing export functionalities for current calculation method.""" # Import standard libraries. import xml.etree.ElementTree as ET diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py index 58c676b0..847a8377 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_IO.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + import pytest import xml.etree.ElementTree as ET diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py index 5db7e91a..6053d2f3 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/test_basic/test_methodbasic.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + import pytest from basic.methodbasic import calculate_center_of_gravity, calculate_geometric_distance_by_axis, calculate_inertia_by_components diff --git a/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py b/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py index 61e300cf..bd444494 100644 --- a/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py +++ b/weight_and_balance_analysis/src/tube_and_wing/standard/usermethoddatapreparation.py @@ -1,3 +1,23 @@ +# UNICADO - UNIversity Conceptual Aircraft Design and Optimization +# +# Copyright (C) 2024 UNICADO consortium +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +# Description: +# This file is part of UNICADO. + """Module providing functions for the preparation of user data.""" @@ -149,7 +169,7 @@ def user_method_data_output_preparation(data_dict): key_output_dict.update( data_dict["most_afterward_mass"].user_method_data_generation()) key_output_dict.update( - data_dict["design_mass"].user_method_data_generation()) + data_dict["design_mass_takeoff"].user_method_data_generation()) key_output_dict.update( data_dict["design_fuel_mass"].user_method_data_generation()) -- GitLab