Pre-requisites: ANSYS Fluent, ANSYS Structural, ANSYS ACP, Assembly FEA, CFD
Performing structural analysis on the wing is necessary to evaluate structural performance of the carbon fiber airfoil skins, carbon fiber tube spars, and aluminum ribs. To most accurately carry out this analysis, the pressure distribution evaluated in CFD needs to be imported into an FEA study, and the composite parts modeled.
This workflow was developed using LEAP Australia’s tutorial for a composite wing analysis. Areas marked with a “*” can be referred to this video for further clarification.
https://www.youtube.com/watch?v=7q6ZED14Cas&t=655sPart 1: Preparation
Begin with a fully mated assembly of the wing. Critical items to include are the carbon fiber airfoil shell, aluminum ribs, and carbon fiber spar. For symmetrical assemblies, only half needs to be modeled.
Include a model of the CFD front wing with its origin mated to the assembly origin (or if the CFD model is part of a larger assembly, mate it in the same place). This is solely a reference part and should be hidden or suppressed when the assembly is exported to ANSYS. Build the rest of the assembly based off that. This way, the locations of the part and pressure maps for both the FEA and CFD studies will be in the same place, and no manual transform is required.
Our demo front wing includes the following:
Carbon fiber airfoil shell (2 ply 3k 2x2 twill weave wet layup)
Aluminum endcaps
Carbon fiber spar (pulled layup data from random website, but assumed weaker properties of a wet layup)
Export the entire assembly as a .STEP file (important!). Import the step file into a Spaceclaim geometry tab. Suppress the imported geometry for physics*.
Part 2: Airfoils and Spars (Composite parts in ACP)
Spaceclaim Modeling
Copy and paste just the outer surface of the airfoils to create a surface*. By default, the .STEP file for this demo already split the airfoil into an upper and lower surface. If not, create a plane to then split the surface.
Next, create the spars. Like the airfoils, we are creating a surface, however, instead of copying the outer surface, we will be taking a midsurface of the ribs and spars*.
Make sure to select “Use Range” and have the correct thicknesses.
Use the pull command to extend the rib to the airfoil surface and the spar, making sure there are not gaps left between the parts*.
Pull the rib to close the gaps between the airfoil and spar surface!
Suppress the midsurface of the ribs since they are not a composite part. The only active parts should be the surfaces of the composite parts- in our case, the airfoils and spars.
Meshing
Upon opening the mesher, set the geometry body properties for each of the composite bodies. The two properties that must be filled out are the thickness and material. The thickness does not matter, and the material should be set to whatever will be used in the actual part. The material we use for composite parts is Epoxy Carbon Woven (230 GPa) Wet
.
Next, set the general mesh settings (see picture to right). Once that is complete, each body needs 1) Face meshing w/ mapped mesh task*, and 2) Face sizing (see below note).
Face sizing is required when there is more than one body. For whatever reason the mesher throws a hissy fit without it.
Generate the mesh. The final result should look like this:
Composite Modeling (ACP-Pre)
The LEAP Australia video linked at the top of this document does a good job walking through the ACP setup. It is recommended to view that before attempting this.
Material Data
First, create the fabric using the materials imported from Engineering Data. This demo uses Epoxy Carbon Woven (230 GPa) Wet
for both the airfoil and the spar (the spar uses prepreg, however, as a conservative analysis we assume the weaker wet lay fabrication methodology).
For each different type of layup, create a different stackup.
The spar stackup depends on the product. Make sure to check the data sheet! |
---|
Layup sequence determines the order in which the plies are laid. For example, a top-down sequence for the spar stackup means that ply 1 (the fabric at a 45 degree angle) will be the first ply laid down; ply 10 will be the last ply laid. The direction in which this sequence goes is determined with an OSS later on.
Element Sets
In order to identify the different bodies in ACP, create a new element set for every body. Use box select to add/remove mesh elements until only the desired body is selected. This will allow ACP to differentiate between the different parts.
Rosettes
For the airfoils, create a minimum of two rosettes on the upper and lower surface*. For the spars, create a minimum of two rosettes on opposing sides. We will check this once we generate the plies and add or remove rosettes as necessary.
The x direction (1 Direction) denotes the zero direction of the weave; the y direction (2 Direction) denotes the transverse direction. Make sure these are consistent across a singular body. The z axis should always be pointing inwards or outwards.
Label your rosettes! You’ll have to pick the rosettes for each body later on, so make it easier on yourself.
Oriented Selection Sets
Oriented Selection Sets (OSS) are where you assign an element set (body) to a rosette, as well as setting a “origin”. For each body, create an OSS with the associated element set and rosette. The orientation point is ideally a flatish surface, and the direction dictates which way the plies will be laid on top of each other (basically: male or female mold).
Modeling Groups
Modeling groups are where we create the actual layup. Create a modeling group and ply for each body. Select “show fiber directions” to verify the layup is correctly oriented. If it is not, it could look like the image below, where the highlighted area is not following the weave direction:
To remedy this, create another rosette precisely at the line of elements where the misorientation is occurring, and update the associated OSS to include it.
Do the same for all the airfoils and spars. This is what it should look like at the end:
Congratulations! You’ve finished modeling the composite parts of our wing assembly! Remember to save your project.
To connect this model to an FEA study, simply link the Setup
tab of the ACP module to the Model
tab of a Static Structural module and select transfer shell data
.
Part 3: Ribs
The ribs part is very easy relative to the clusterfuck that was the composites setup. To start, create a Mechanical Model module. Link the geometry from the ACP module to the Mechanical Model module to share the spaceclaim geometry, then delete the link so we can edit the geometry without affecting the ACP geometry file. You may also simply have an .sdoc file.
Add the material data to the engineering data tab. For our example, we will be using Aluminum 7075-T6. In the properties, add “Isotropic Elasticity” under “Linear Elastic” material properties and fill in the associated Young’s Modulus and Poisson’s Ratio.
When the material is selected, open the spaceclaim file. Double check that the edge of the ribs have been extended to close the gap between the airfoils and the spars, then hide and suppress everything except for the rib midsurfaces and open the mesher.
In the mesher, assign each body the aluminum material. The following general mesh settings are recommended:
Element Size: 2mm (or your own discretion)
Capture Curvature: On, default settings
Capture Proximity: On, default settings
Once the meshing is complete, close out of the mesher and link the model tab to the Static Structural module in the same way we linked the composites module.
Part 4: CFD
The only thing needed in CFD are the named selections of the airfoil surfaces, aptly named in this demo “element 1” and “element 2”. This allows us to link the surface pressure map of these two groups to our FEA study. Otherwise, perform the CFD as usual. It could be an isolated simulation for the front wing, or include the entire car.
To connect Fluent to Structural, simply drag the Solutions tab in the Fluent module to the Setup tab in the Structural module. Your project schematic should now look like this:
Part 5: Finally some FEA
We’re finally ready to open up ANSYS Structural! Before we do that though, make sure that each of the component systems have a green check mark. If not, refresh and then update them to send the latest data to ANSYS Structural. Then open up the Setup tab under the Structural module.
We first have to create connections between the rib, airfoil, and spar*. Use manual contact regions with the following settings:
Contact: Contact edge of the rib
Target: Surface of either airfoil or spar
Type: Bonded
Formulation: MPC
Pinball Region: Half the thickness of the rib
Every contact region needs a new contact. The final contact setup should look like this:
Not sure why the contact name still says “No Selection to No Selection”. I literally have the selections, it’s just not displaying it. Haven’t found anyone else online with this issue.
Make sure you select both the upper and lower halves of the rib and airfoil edge/surface!
Check that the contacts are valid by running the Contact Tool report. Be aware of any warnings or errors that show in the messages dialogue box.
This message appears frequently: All contact results of contacts with MPC formulation are zero since constraint equations are used to bond the mesh together. Review results of the parts underlying the contact surfaces for more information.
No solution has been found for this yet.
Fixture the part by adding fixed supports on the bolt holes where the wing connects to the inboard endplate. If the outboard endplate is also supported by a cable, we can add supports there as well. Depending on which half of the wing is simulated in CFD, this may vary, but the pressure field is affected by the presence of a nosecone or chassis, so it’s important to fixture the correct side.
Click on Static Structural, insert, and then “System Coupling Region” (see image below). This allows us to define the faces on which we will transfer the surface pressure maps. A System Coupling Region will need to be creating for every airfoil surface.
To import the surface pressure, click on “Imported Load” under Static Structural in the project tree. Change the Interpolation Type to “CFD Results Interpolator”.
Then right click “Imported Load” and insert a pressure. Under “Geometry”, select the upper and lower halves of the first airfoil. Under “CFD Surface”, select the named selection of the first airfoil- “element1” in our case. Do this for the other airfoils as well.
Preview the imported pressure maps before doing running the simulation. Pressure distributions like the one below are clearly wrong. They can be checked by performing a surface pressure gradient graphic in Fluent.
The most common reason for this is that the pressure mapping is not in the same spot as the actual part. This can be checked by changing the Interpolation Type from “CFD Results Interpolator” to “Mechanical-Based Mapping”, and turning ON Display Source Points. Zoom out a decent amount and begin moving around the camera until you see the display source points.
Somehow the display source points like to hide, and you have to manipulate the view and zoom until it decides to show itself.
This discrepancy is caused by the assembly CAD and the CFD CAD being in different positions relative to the part/assembly origin. Use a transform on the bodies to put it into the correct place. Putting the wing assembly and the CFD model into one assembly, each mated relative to the assembly origin as they are in their own respective parts/assemblies, and then measuring from point to point can make this easier.
Once the pressure is imported, run the simulation. ACP Post has been moved to the composites results in ANSYS Structural as of 2024.
Viola!