Added tail area calculations, some metric conversions, bending moments, and max stress calcs for balsa spars

This commit is contained in:
William Johnstone 2024-10-31 18:59:02 +00:00
parent 9de36e07e5
commit 632c6bc546

View file

@ -41,16 +41,16 @@ plt.grid(True)
#plt.show() #plt.show()
print("Raymer's Aircraft Calculations (IMPERIAL UNITS)\n") print("Raymer's Aircraft Calculations (IMPERIAL UNITS)\n")
print("Weight Estimation: %0.4f lbs" % imperial_estimates[-1]) print("Weight Estimation (mass): %0.4f lbs" % imperial_estimates[-1])
# Wing loading # Wing loading
typical_weight_area_ratio = 6 # Historical sailplane ratio typical_weight_area_ratio = 6 # Historical sailplane ratio
print("Typical Weight Area Ratio: %0.4f lbs/ft^2" % typical_weight_area_ratio) print("Typical Weight Area Ratio: %0.4f lbs/ft²" % typical_weight_area_ratio)
# To find area of the wings we must work backwards (ratio = weight/area) # To find area of the wings we must work backwards (ratio = weight/area)
# Area of wings # Area of wings
wing_area = imperial_estimates[-1] / typical_weight_area_ratio wing_area = imperial_estimates[-1] / typical_weight_area_ratio
print("Main Wing Area: %0.4f ft^2" % wing_area) print("Main Wing Area: %0.4f ft²" % wing_area)
# L/D Ratio # L/D Ratio
ld_ratio = 7.5 / 1.5 ld_ratio = 7.5 / 1.5
@ -73,8 +73,58 @@ fuselage_length = 0.86 * imperial_estimates[-1]**0.48
print("Fuselage Length %0.4f ft" % fuselage_length) print("Fuselage Length %0.4f ft" % fuselage_length)
# Tail Positioning (Moment arm) # Tail Positioning (Moment arm)
tail_poisitioning = fuselage_length * 0.65 tail_position = fuselage_length * 0.65
print("Tail Positioning (Moment arm location) %0.4f ft" % tail_poisitioning) print("Tail Positioning (Moment arm location) %0.4f ft" % tail_position)
# Tail Dimensions # Vertical Tail Area
C_VT = 0.02 # Assumed constant (sail plane, raymers)
vertical_tail_area = C_VT * ((wing_span * wing_area) / tail_position)
print("Vertical Tail Area: {:.4f} ft²".format(vertical_tail_area))
# Horizontal Tail Area
C_HT = 0.5 # Assumed constant (sail plane, raymers)
horizontal_tail_area = C_HT * ((chord_length * wing_area) / tail_position)
print("Horizontal Tail Area: {:.4f} ft²\n".format(horizontal_tail_area))
# Convert everything to metric
print("End of imperial numbers (THANK THE LORD!)\n")
print("Weight Estimation (mass): %0.4f kg" % (metric_estimates[-1]*(10**-3)))
# Total Lift Force
lift_force_total = (metric_estimates[-1]*(10**-3)) * 9.81
#lift_force_per_ft = lift_force_total / wing_span
#lift_force_per_wing_per_ft = lift_force_per_ft / 2
print("Total Lift Force: {:.4f} N\n".format(lift_force_total))
#print("Lift Force per unit length: {:.4f} lbf/ft".format(lift_force_per_ft))
#print("Lift Force per unit length (1 wing): {:.4f} lbf/ft".format(lift_force_per_wing_per_ft))
# Bending Moments
number_of_wings = 2
print("BENDING MOMENTS\n")
wing_span_metric = wing_span * 0.3048
print("Wing Span: {:.4f} m".format(wing_span_metric))
# Bending Moment at Wing Root
bending_moment_wing = (lift_force_total / number_of_wings) * (wing_span_metric / 4)
print(f"Bending Moment at of 1 Wing from root: {bending_moment_wing:.4f} Nm\n")
# Max Stress Calcs
# 4mm Spars
area_moment_inertia = ((0.004) * (0.004**3))/12
print(f"Second moment of inertia for 4mm: {area_moment_inertia} m^4")
max_stress = bending_moment_wing * ((2*(10**-3)) / area_moment_inertia)
print(f"Max Stress for 4mm spar: {max_stress:.4f} Pa or {max_stress/1000000:.4f} MPa")
# 6mm Spars
area_moment_inertia = ((0.006) * (0.006**3))/12
print(f"Second moment of inertia for 6mm: {area_moment_inertia} m^4")
max_stress = bending_moment_wing * ((3*(10**-3)) / area_moment_inertia)
print(f"Max Stress for 6mm spar: {max_stress:.4f} Pa or {max_stress/1000000:.4f} MPa")