SUAVE Taper

8 views
Skip to first unread message

Yiren Aaron Shen

unread,
Jul 26, 2024, 2:46:44 AM (yesterday) Jul 26
to SUAVE FORUM
Hello Folks,

I wonder for the SUAVE wing component. Is is possible to define a wing segment that has consistent thickness throughout the span despite width taper? It seems that the width and thickness taper is coupled. There is no way of adding a segmented wing that for example at taper ratio of 0.5 from root to tip for chord, but with consistent thickness? I tried to double the thickness_to_chord ratio for the tip section than that of the root but there is still thickness taper applied. 

Thank you!
Yiren

Yiren Aaron Shen

unread,
Jul 26, 2024, 2:13:50 PM (18 hours ago) Jul 26
to SUAVE FORUM
I am appending my script for wing platform definition here. The issue is that it seems that the wing components does not take in the secondary airfoil profile 'nasa-tm4645-tip.dat' and used the root airfoil profile throughout the span. I checked the debugger and I am sure that the airfoil data is loaded correctly. For some reason, the secondary airfoil segment definition did not take in this segment dat file. 


# ------------------------------------------------------------------
# Main Wing
# ------------------------------------------------------------------
wing = SUAVE.Components.Wings.Main_Wing()
wing.tag = 'main_wing'

LE_SWEEP = 65.0

wing.aspect_ratio = 1.8648018648
wing.sweeps.leading_edge = 65.0 * Units.deg #openvsp output65.0
wing.thickness_to_chord = 0.0170008 * 2 # semi-thickness * 2
wing.taper = 0.0
wing.spans.projected = 24.0 * Units.inches
wing.chords.root = 25.734 * Units.inches
wing.total_length = 25.734 * Units.inches
wing.chords.tip = 0.0 * Units.inches
wing.chords.mean_aerodynamic = 17.156 * Units.inches
wing.areas.reference = 0.19927702 * Units['meters**2'] # 2.145 ft2
wing.areas.wetted = 2 * 0.19927702 * Units['meters**2'] # 2.145 ft2
wing.origin = [[0.0, 0.0, 0.0]]
wing.aerodynamic_center = [0.4357624, 0.0, 0.0]
wing.vertical = False
wing.symmetric = True
wing.high_lift = False
wing.vortex_lift = True
wing.high_mach = True
wing.dynamic_pressure_ratio = 1.0

# convert LE Sweep to quarter chord sweep
wing.sweeps.quarter_chord = convert_sweep(wing, old_ref_chord_fraction=0.0, new_ref_chord_fraction=0.25)


# Wing Segments
## segment 1
root_airfoil = SUAVE.Components.Airfoils.Airfoil()
root_airfoil.coordinate_file = './nasa-tm4645-root.dat'

segment = SUAVE.Components.Wings.Segment()
segment.tag = 'Root'
segment.percent_span_location = 0.0
segment.twist = 0.0 * Units.deg
segment.root_chord_percent = 1.0
segment.dihedral_outboard = 0.0 * Units.deg
segment.sweeps.quarter_chord = wing.sweeps.quarter_chord
segment.thickness_to_chord = 0.0170008 * 2
segment.append_airfoil(root_airfoil)
wing.append_segment(segment)


## second
airfoil = SUAVE.Components.Airfoils.Airfoil()
airfoil.coordinate_file = './nasa-tm4645-tip.dat'
segment = SUAVE.Components.Wings.Segment()
segment.tag = 'second'
segment.percent_span_location = 0.75
segment.twist = 0.0 * Units.deg
segment.root_chord_percent = 0.25
segment.thickness_to_chord = 0.0170008 * 2
segment.dihedral_outboard = 0.0 * Units.degrees
segment.sweeps.quarter_chord = wing.sweeps.quarter_chord
segment.append_airfoil(airfoil)
wing.append_segment(segment)

## tip

airfoil = SUAVE.Components.Airfoils.Airfoil()
airfoil.coordinate_file = './nasa-tm4645-tip.dat'
segment = SUAVE.Components.Wings.Segment()
segment.tag = 'tip'
segment.percent_span_location = 1.0
segment.twist = 0.0 * Units.deg
segment.root_chord_percent = 0.0
segment.thickness_to_chord = 0.0170008 * 2
segment.dihedral_outboard = 0.0 * Units.degrees
segment.sweeps.quarter_chord = 0.0 * Units.degrees
segment.append_airfoil(airfoil)
wing.append_segment(segment)


# add to vehicle
wing = wing_segmented_planform(wing)

vehicle.append_component(wing)


Thank you!

Best,
Yiren
Reply all
Reply to author
Forward
0 new messages