summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--creator.py17
-rw-r--r--evaluator.py8
-rw-r--r--main.py48
3 files changed, 40 insertions, 33 deletions
diff --git a/creator.py b/creator.py
index 138fffb..c7bbf03 100644
--- a/creator.py
+++ b/creator.py
@@ -69,10 +69,6 @@ class Coordinates:
def __str__(self):
return type(self).__name__
- def add_area(self, area):
- self.area = area
- return None
-
def print_info(self, round):
"""
Print all the component's coordinates to the terminal.
@@ -301,6 +297,7 @@ class Stringer(Coordinates):
def __init__(self):
super().__init__(parent.chord, parent.semi_span)
+ self.area = float()
def add_coord(self, airfoil_coord, spar_coord,
stringer_u_1, stringer_u_2, stringer_l_1, stringer_l_2):
@@ -333,6 +330,7 @@ class Stringer(Coordinates):
spar_z_l = spar_coord[3]
except:
print('Unable to initialize stringers. Were spars created?')
+
# Find distance between leading edge and first upper stringer
interval = spar_x_u[0] / (stringer_u_1 + 1)
# initialise first self.stringer_x_u at first interval
@@ -370,12 +368,21 @@ class Stringer(Coordinates):
self.x_l.append(airfoil_x_l[index])
self.z_l.append(airfoil_z_l[index])
x += interval
-
super().pack_info()
return None
+ def add_area(self, area):
+ self.area = area
+ return None
+
def add_mass(self, mass):
self.mass = len(self.x_u) * mass + len(self.x_l) * mass
+ return None
+
+ def print_info(self, round):
+ super().print_info(round)
+ print('Stringer Area:\n', np.around(self.area, round))
+ return None
def plot(airfoil, spar, stringer):
diff --git a/evaluator.py b/evaluator.py
index f3a05f4..4a65a4e 100644
--- a/evaluator.py
+++ b/evaluator.py
@@ -20,6 +20,8 @@ def get_centroid(airfoil):
pass
-def get_mass(*component):
- for _ in len(component):
- mass += component.mass
+def get_total_mass(self, *component):
+ total_mass = float()
+ for _ in component:
+ total_mass += _.mass
+ return total_mass
diff --git a/main.py b/main.py
index 1e591fd..be49d2f 100644
--- a/main.py
+++ b/main.py
@@ -24,18 +24,25 @@ start_time = time.time()
CHORD_LENGTH = 100
SEMI_SPAN = 200
-# mass
+# m=Mass
AIRFOIL_MASS = 100 # lbs
SPAR_MASS = 10 # lbs
STRINGER_MASS = 5 # lbs
+# Area
+STRINGER_AREA = 0.1 # sqin
+
# population information
POP_SIZE = 1
SAVE_PATH = 'C:/Users/blend/github/UCLA_MAE_154B/save'
-def create():
- '''Create an airfoil.'''
+def main():
+ '''
+ Create an airfoil;
+ Evaluate an airfoil;
+ Generate a population of airfoils & optimize.
+ '''
# Create coordinate system specific to our airfoil dimensions.
# TODO: imperial + metric unit setting
@@ -49,7 +56,7 @@ def create():
# Define NACA airfoil coordinates and mass
af.add_naca(2412)
af.add_mass(AIRFOIL_MASS)
- af.print_info(2)
+ # af.print_info(2)
# Create spar instance
af.spar = creator.Spar()
@@ -57,41 +64,32 @@ def create():
af.spar.add_coord(af.coord, 0.15)
af.spar.add_coord(af.coord, 0.55)
af.spar.add_mass(SPAR_MASS)
- af.spar.print_info(2)
+ # af.spar.print_info(2)
# Create stringer instance
af.stringer = creator.Stringer()
# Compute the stringer coordinates from their quantity in each zone
af.stringer.add_coord(af.coord, af.spar.coord, 4, 7, 5, 6)
+ af.stringer.add_area(STRINGER_AREA)
af.stringer.add_mass(STRINGER_MASS)
af.stringer.print_info(2)
# Plot components with matplotlib
- creator.plot(af, af.spar, af.stringer)
+ # creator.plot(af, af.spar, af.stringer)
# Save component info
- af.save_info(SAVE_PATH, _)
- af.spar.save_info(SAVE_PATH, _)
- af.stringer.save_info(SAVE_PATH, _)
-
- # Print final execution time
- print("--- %s seconds ---" % (time.time() - start_time))
-
+ # af.save_info(SAVE_PATH, _)
+ # af.spar.save_info(SAVE_PATH, _)
+ # af.stringer.save_info(SAVE_PATH, _)
-def evaluate():
- '''Evaluate previously created airfoil(s).'''
- pass
+ # Evaluate previously created airfoil(s).
+ total_mass = evaluator.get_total_mass(af, af.spar, af.stringer)
+ # Iteratively evaluate airfoils by defining genetic generations.
+ # pass
-def generate():
- '''Iteratively evaluate airfoils by defining genetic generations.'''
- pass
-
-
-def main():
- create()
- evaluate()
- generate()
+ # Print final execution time
+ print("--- %s seconds ---" % (time.time() - start_time))
if __name__ == '__main__':
Copyright 2019--2024 Marius PETER