Wing Design

Onshape Wing Generator

In keeping with our commitment to make airplane design resources more accessible for everyone, we designed our wing from a series of variables so it may function as a sort of wing generator for a variety of homebuilt airplanes. The Design Team put a lot of work into making sure each variable has a large enough domain to create the desired output for a wide range of different wings, but it is by no means a perfect solution. Every aircraft’s mission will require different wing specifications which may or may not be included in our wing generator. While we are always open to suggestions to improve the adaptability of our design, we recommend that others use it for reference or a rough starting point rather than a finished product. One thing we’ve learned is that designing an aircraft isn’t a linear process but rather a continuous loop of revisions where there is always room for improvement. We have compiled a list of all variables with a short explanation of each one in hopes it may shed some light on our design intent, so anyone interested may easily repurpose our design for their airplane’s mission or pick it up from where we left off to continue the endless cycle of refinement. If you still have any unanswered questions after reading this article, please refer to our wing design blog posts where we discuss our design process and decisions in detail. If you still haven’t found an answer to your question, please contact us at flightclubaerospace.com and we’ll do our best to help you out in any way possible.

Important Notes

  • The photos throughout this article are accurate as of October 2020 when we finalized the first version of the wing. We will keep this post updated with our latest design revisions and will link old posts in the changelog below. The photos are of the wing part studio and do not necessarily represent the final structure of the wing assembly. 
  • The # in front of each variable name is just Onshape variable syntax and can be ignored. 
  • Different variable combinations may affect the domain of any particular variable. 
  • When testing the domain, we only test to +- 50% of the default value (rounding when necessary). The actual domain is likely greater than the tested domain when tested domain values fall between this range. 
  • Each variable domain was tested with all other variables at the default value.
  • For the calculations of dependent variables, please see our public Onshape document.
  • For more information regarding our calculations, please see our calculations spreadsheet.
  • In order to keep our wing design accessible and easy to remix, it is done in a part studio rather than in feature script. Unfortunately, this also puts some limitations on the parametric design capabilities and there are still several known issues which are listed in the “known issues” section below.
  •  
  • To view or edit any of these variables and actually use the wing calculator, you must first make a copy of our public Onshape document.

Change Log

3/28/20 – Wing variables spreadsheet first created

10/1/20 – Wing variables spreadsheet updated and transferred to a blog post for greater detail

Technical Specifications

These independent variables are used to define the shape and structure of the wing. There’s a lot of other important variables to consider when designing a wing and a lot of thought and refinement has led to these specific independent variables as they best represent our design intent. Make sure to read through our wing design process blog posts for more information on how we selected these specific variables.

#Wingspan

Default value: 32

Unit: feet

Tested domain: [16, 48]

Description & Notes: The wingspan is measured from the innermost face of the root rib to the outermost face of the tip rib. The wingspan does not include the Hoerner wingtip. The default wingspan was determined in conjunction with the chord using the lift coefficient equation.

#Chord

Default value: 6

Unit: feet

Tested domain: [5, 6]

Description & Notes: The chord of the wing. The enormous bearing stress on spar attachment holes requires that each spar be placed as close to the horizontal center of the rib as possible. This maximizes the diameter of the support washers and their adhesion to the sides of the rib. To reduce interference with other variables and to simplify the design, both spars are also horizontal to each other. Together, these two requirements severely limit the plug-and-play domain of the chord variable. If other inputs are desired, the designer must edit the rib sketch and make some bearing stress compromises.

#RootRibMultiplier

Default value: 3

Unit: unitless

Tested domain: [2, 5]

Description & Notes: The number of “root ribs” within the “root zone” of the wing. Our testing suggests each root rib is capable of supporting at least 250lbf of upwards force before permanently deforming or breaking. By dividing up the spanwise lift distribution (determined through the Schrenk Approximation), into a series of zones (with the area above each rib representing one zone), the number of root ribs can be determined. Since the Schrenk Approximation assumes a relatively uniform lift distribution at the root of the wing, the spacing between all root ribs is equal. Our full method of calculating the number of ribs is outside the scope of this article but more information can be found in our calculations spreadsheet and in our physics blog posts.

#HalfRibMultiplier

Default value: 0

Unit: unitless

Tested domain: [0, 2]

Description & Notes: The number of “half ribs” within the “tip zone” of the wing. The default configuration doesn’t include any half ribs because there is less lift towards the tip of the wing and therefore fewer ribs are required. Similar to the number of root ribs, the number of half ribs is based on the spanwise lift distribution which is beyond the scope of this blog post. Please see our calculations spreadsheet and in our physics blog posts for more info. Since we opted not to use feature script, the variabilization of the half ribs is a little wonky so make sure to read the “known issues” section below for additional instructions

#StrutMultiplier

Default value: 3

Unit: unitless

Tested domain: [2, 5]

Description & Notes: Defines the number of drag and compression strut pairs are within each half of the wing. The number of drag and compression struts will vary based on your aircraft mission and the drag forces on your wing. The drag and compression struts will intersect various ribs and support blocks which can be mitigated by drilling holes for them to pass through. It’s important to check that no compression struts directly overlap any ribs, however.

#AileronLengthCoefficient

Default value: 0.4

Unit: unitless

Tested domain: [0.2, 0.6]

Description & Notes: The length of the aileron as a coefficient of half the wingspan. In other words, Aileron length = #Wingspan/2*#AileronLengthCoefficient. Note that the aileron length is defined as the distance between the two opposing faces of the outermost aileron ribs. More information on aileron sizing can be found here.

#AileronWidthCoefficient

Default value: 0.25

Unit: unitless

Tested domain: [0.125, 0.25]

 

Description & Notes: The width of the aileron as a coefficient of the chord. In other words, Aileron width = #Chord*#AileronWidthCoefficient. Aileron width is measured from the tip of the trailing edge to the center of the torque tube (gray), NOT the aileron leading edge (green). Since the aileron torque tube hole must be tangent to the upper and lower curves of the airfoil, the aileron width is highly dependent on the thickness and camber of the airfoil (the default being the Clark Y) as well as #chord. More information on aileron sizing can be found here

#AileronRibMultiplier

Default value: 0.25

Unit: unitless

Tested domain: [0.125, 0.25]

 

Description & Notes: The width of the aileron as a coefficient of the chord. In other words, Aileron width = #Chord*#AileronWidthCoefficient. Aileron width is measured from the tip of the trailing edge to the center of the torque tube (gray), NOT the aileron leading edge (green). Since the aileron torque tube hole must be tangent to the upper and lower curves of the airfoil, the aileron width is highly dependent on the thickness and camber of the airfoil (the default being the Clark Y) as well as #chord. More information on aileron sizing can be found here

#AileronSlideDist

Default value: 0.125

Unit: inches

Tested domain: [0.0625, 0.1875]

Description & Notes: The distance between the aileron assembly can slide back and forth along the span of the wing. This is necessary to prevent the aileron from seizing at high wing loadings where the spar may bend upwards or downwards therefore compressing or extending the aileron.

#AileronSideSpacing

Default value: 0.5

Unit: inches

Tested domain: [0.25, 0.75]

Description & Notes: The distance between an aileron rib and its adjacent support rib. Thrust washer thickness = #AileronSideSpacing – #AileronSlideSpacing.

#Hoerner Angle

Default value: 25

Unit: degrees

Tested domain: [12.5, 37.5]

Description & Notes: Hoerner wingtips typically have an upsweep of 20-30 degrees. For other Hoerner design considerations, see our wing design blog posts.

#MaxFabricSuspension

Default value: 13

Unit: inches

Tested domain: [7.5, 20.5]

Description & Notes: The maximum length of unsuspended fabric along the front of the wing. In other words, the longest permissible spacing between the centers of any two ribs. Part of the fabric installation process involves shrinking it with a calibrated clothes iron. If the fabric isn’t properly supported, it will start to cave in and won’t match the desired airfoil profile. Since the “false ribs” are nonstructural and serve only to support the fabric, they are automatically distributed along the span of the wing to ensure the fabric is always properly supported regardless of how many root and half ribs there are.  Since the rear section of the airfoil is more or less straight, the false ribs are only needed along the front.

Material Specifications

These independent variables refer to different material thicknesses, diameters, etc. Since the input domains for these variables are largely dependent on the technical specification variables, we haven’t provided tested domains.

#FoamThickness

Default value: 1

Unit: inches

 

Description & Notes: The thickness of all XPS (eXtrudedPolyStyrene)  foam parts on the wing. XPS foam typically comes in 1 and 2 inch thick sheets. Both DOW and Foamular brands work well. 

#SupportWasherThickness

Default value: 0.016

Unit: inches

Description & Notes: Support washers reinforce the attachment point between the spars and the ribs. The thickness of the support washer depends on the bearing yield strength of washer material and the maximum force that will be applied to any individual rib.  The ID and OD of the support washer are automatically calculated based on your airfoil profile and spar diameter.

#LeadingSparDiameter

Default value: 2

Unit: inches

Description & Notes: Outer diameter of the leading (front) spar. It’s important to note that circular aluminum tubing less than 2” in diameter is usually manufactured in 12’ lengths and may limit the wingspan to 20’ or less (contact your local steel supplier to confirm). The leading spar diameter and thickness were calculated based on the chordwise as well as spanwise lift distributions. The forces on each spar actually aren’t equal but since 0.065” is the thinnest walled tubing you can get for a 20’ long beam and it exceeds the strength requirement of the heavier loaded spar, it’s a sufficient (albeit heavy) solution for both spars.

#LeadingSparThickness

Default value: 0.065

Unit: inches

Description & Notes: Wall thickness of the leading spar. Thicknesses less than 0.065” are usually manufactured in 12’ lengths and may limit the wingspan to 20’ or less (contact your local steel supplier to confirm).

#AftSparDiameter

Default value: 2

Unit: inches

Description & Notes: Outer diameter of the aft (rear) spar. It’s important to note that circular tubing less than 2” in diameter is usually manufactured in 12’ lengths and may limit the wingspan to 20’ or less (contact your local steel supplier to confirm).

#AftSparThickness

Default value: 0.065

Unit: inches

Description & Notes: Wall thickness of the aft spar. Thicknesses less than 0.065” are usually manufactured in 12’ lengths and may limit the wingspan to 20’ or less (contact your local steel supplier to confirm).

#StrutDiameter

Default value: 9/16

Unit: inches

Description & Notes: Diameter of the compression and drag struts. Since the compression and drag struts connect to the spars at the same U bracket, they must be the same diameter. Since beams are always strongest in tension, the compressive forces on the compression strut due to drag will dictate the diameter of both compression and drag struts. Check out Jeff Hanson’s online statics course and Euler’s column buckling equation for more info.

#StrutThickness

Default value: 0.035

Unit: inches

Description & Notes: Calculated in conjunction with the #StrutDiameter based on drag forces. Generally speaking, it’s more weight-efficient to increase the diameter of the strut before increasing its thickness (see Euler’s column buckling equation).

#UBracketRivetDiameter

Default value: 0.188

Unit: inches

Description & Notes: Diameter of the rivets used to fasten the drag and compression struts to their respective U brackets and to fasten the U brackets to the spars. The rivet must have a rated shear and tensile strength greater than that of the calculated tension or compression in the struts. The rivet must also be large enough diameter so the attachment point between the U bracket and struts isn’t at risk for tear-out. The default value represents the necessary hole size for CherryMax CR3213-6-2 rivets. Typically rivets are only supposed to be loaded in shear but the CheeryMax rivets also come with a rated tensile strength. THE U BRACKET ATTACHMENT RIVETS MUST HAVE A RATED TENSILE STRENGTH GREATER THAN THE TENSION IN THE DRAG STRUTS!

#UBracketThickness

Default value: 0.035

Unit: inches

Description & Notes: The U brackets are hand bent out of a rectangular piece of sheet metal whose thickness is represented by this variable. The U brackets must be sufficiently strong to support the bearing stress of rivets which attach the drag and compression struts. U bracket length, height, rivet placement, and position are automatically calculated.

#AileronTorqueTubeDiameter

Default value: 1.5

Unit: inches

Description & Notes: Outer diameter of the aileron torque tube. The aileron torque tube diameter can be calculated from the maximum aileron load force. A larger diameter torque tube is also more rigid which is important in preventing in-flight aileron seizing (very scary).

#AileronTorqueTubeThickness

Default value: 0.035

Unit: inches

Description & Notes: Wall thickness of the aileron torque tube.

#SupportStrutRivetDiameter

Note: Old photo. Fuselage is now designed in Solidworks

Default value: 0.188

Unit: inches

Description & Notes: Diameter of the rivets used to attach the (streamlined) wing support struts. Calculated based on the spanwise lift distribution which determines how much of the lift will be distributed to the root wing attachment and how much will be carried by the struts.

#LeadingEdgeThickness

Default value: 0.020

Unit: inches

Description & Notes: Thickness of the leading edge. We suggest not going above 0.020” because it will get increasingly harder to bend and will add unnecessary weight.

#TrailingEdgeThickness

Default value: 0.020

Unit: inches

Description & Notes: Thickness of the trailing edge. We suggest not going above 0.020” because it will get increasingly harder to bend and will add unnecessary weight. Since the trailing edge comes to a sharp(ish) point, you also risk breaking the aluminum with such a small bend radius if the sheet metal is too thick.

#AileronLeadingEdgeThickness

Default value: 0.020

Unit: inches

Description & Notes: Thickness of the aileron leading edge.

Usage Notes

Duplicate Parts

It’s a good design practice to only include unique parts in any one part studio and then duplicate and arrange them as necessary in an assembly to make the final product. This greatly simplifies the design which ends up being helpful in a multitude of ways. With that said, we realize that not everyone has Onshape experience and spending hours putting together a complex assembly is really boring for anyone.  Under the “enable duplicate parts” dropdown, you can choose to generate a complete wing or just the unique parts of it to assemble elsewhere.

Center of Mass and Weight Calculator

 

  1. Configure your wing

  2. Click and drag to create a selection box around the entire wing

  3. In the bottom right-hand corner of the screen, click “mass properties”

  4. Onshape will now tell you the estimated weight of the wing as well as its center of mass as distances from the point (0,0,0). The weight estimate doesn’t include fiberglass, adhesives, fabric, fabric sealant, etc. It’s only a rough approximation.

Center of mass origin point (0,0,0)

Known Issues

Half Rib Deletes

 

Due to some limitations in Onshape’s pattern and mirror features, we were unable to fully automate the placement of the half ribs. Hence, the user must manually edit the “Half Rib Delete” feature to remove the half ribs which overlap the aileron support rib and tip rib. 

Missing Components

At the moment, the “include duplicate parts option” doesn’t create duplicates of:

 

  • All support washers

  • All rivets

  • Delrin aileron support washers

 

These missing parts constitute a very small portion of the total weight and shouldn’t significantly affect the center of mass or weight data.

Help Support Flight Club Aerospace

 

If you found this article or any of our other work useful, please consider donating to support the longevity of our team and community. To the aviation community and those who have already donated, THANK YOU FOR YOUR SUPPORT!!

*Editors note: the thought processes and design choices presented in this article don’t necessarily represent those implemented into the final design and are subject to change. Flight Club Aerospace is a group of amateur students with no formal education in any field of engineering. We present this information for educational purposes only, with the understanding that it is not to be re-created without adequate professional oversight and mentorship. For our latest designs and updates, please see our most recent blog posts.

Similar Posts