From 9de36e07e529e76e19ec4a4a3869ee96b563b9c6 Mon Sep 17 00:00:00 2001 From: William Johnstone Date: Thu, 24 Oct 2024 17:29:03 +0100 Subject: [PATCH] Update with new raymer's calcs --- Raymers Code/raymers.py | 47 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/Raymers Code/raymers.py b/Raymers Code/raymers.py index 65fdfa4..7586892 100644 --- a/Raymers Code/raymers.py +++ b/Raymers Code/raymers.py @@ -1,4 +1,5 @@ import matplotlib.pyplot as plt +import math def raymers_iterate(current_max_weight, payload_weight, fuel_weight, a_constant, c_constant, variable_sweep_constant): empty_max_weight_ratio = (a_constant * current_max_weight**c_constant * variable_sweep_constant) @@ -28,12 +29,52 @@ for imperial_estimate in imperial_estimates: plt.plot(metric_estimates, linestyle='--', marker='o') +# This section has been commented out because jordan (senft) does not believe the customer wants to see the numbers # Add labels to each point -for index, weight in enumerate(metric_estimates): - plt.text(index, weight + 5, f'{index}: {weight:.2f}', fontsize=9, ha='right') +#for index, weight in enumerate(metric_estimates): +# plt.text(index, weight + 5, f'{index}: {weight:.2f}', fontsize=9, ha='right') plt.title("Aircraft Raymer's Method Weight Estimation") plt.xlabel("Iteration Number") plt.ylabel("Weight Estimation (g)") plt.grid(True) -plt.show() \ No newline at end of file +#plt.show() + +print("Raymer's Aircraft Calculations (IMPERIAL UNITS)\n") +print("Weight Estimation: %0.4f lbs" % imperial_estimates[-1]) + +# Wing loading +typical_weight_area_ratio = 6 # Historical sailplane ratio +print("Typical Weight Area Ratio: %0.4f lbs/ft^2" % typical_weight_area_ratio) + +# To find area of the wings we must work backwards (ratio = weight/area) +# Area of wings +wing_area = imperial_estimates[-1] / typical_weight_area_ratio +print("Main Wing Area: %0.4f ft^2" % wing_area) + +# L/D Ratio +ld_ratio = 7.5 / 1.5 +print("Lift to Drag Ratio: %0.4f" % ld_ratio) + +# Aspect Ratio (Wing span) - Need L/D +aspect_ratio = 4.464 * (ld_ratio**0.69) +print("Aspect Ratio: %0.4f" % aspect_ratio) + +# Wing span +wing_span = math.sqrt(aspect_ratio*wing_area) +print("Main Wing Span %0.4f ft" % wing_span) + +# Chord Length +chord_length = wing_area / wing_span +print("Main Wing Chord Length %0.4f ft" % chord_length) + +# Fuselage Length +fuselage_length = 0.86 * imperial_estimates[-1]**0.48 +print("Fuselage Length %0.4f ft" % fuselage_length) + +# Tail Positioning (Moment arm) +tail_poisitioning = fuselage_length * 0.65 +print("Tail Positioning (Moment arm location) %0.4f ft" % tail_poisitioning) + +# Tail Dimensions +