WHAT CONSTITUTES AN AGILE ORGANIZATION? ? DESCRIPTIVE RESULTS OF AN EMPIRICAL...
Final Design Report
1. Analysis of a
NACA 2412 Wing
for a Low-speed
Utility Aircraft
Final Design Report
Kassandra Rick, Jason Ro, Yifang Zhu
6-9-2015
2. i
Contents
1. List of Figures and Tables......................................................................................................... ii
2. Executive Summary .................................................................................................................iv
3. GANTT Chart .............................................................................................................................v
4. Introduction ............................................................................................................................. 1
5. Airfoil shape............................................................................................................................. 2
6. Spar Placement.........................................................................Error! Bookmark not defined.
7. Centroid ................................................................................................................................... 3
8. Area Moments of Inertia ......................................................................................................... 8
9. Aerodynamic Coefficients...................................................................................................... 10
10. Aerodynamic Structural Loads........................................................................................... 12
11. Velocity-Load Factor Diagram............................................................................................ 19
12. Bending Stress.................................................................................................................... 23
13. Shear Flow.............................................................................Error! Bookmark not defined.
14. Torsion ..................................................................................Error! Bookmark not defined.
18. Buckling Analysis................................................................................................................ 29
19. Fracture.............................................................................................................................. 33
20. Fatigue................................................................................................................................ 34
21. Failure criterion.................................................................................................................. 35
22. Divergence ......................................................................................................................... 36
23. Aileron Reversal ................................................................................................................. 38
24. Optimization....................................................................................................................... 44
25. Final Model ........................................................................................................................ 45
26. Finite Element Analysis...................................................................................................... 47
27. Conclusion.......................................................................................................................... 52
28. Appendix ............................................................................................................................ 53
Symbols ..................................................................................................................................... 53
XFLR5 Data ................................................................................................................................ 54
29. References.......................................................................................................................... 59
30. MATLAB code
3. ii
1. List of Figures and Tables
Figure 1: NACA 2412 profile ......................................................................................................... 2
Figure 2: Center of pressure as a function of angle of attack ......................................................... 3
Figure 3: Moment coefficient as a function of angle of attack ....................................................... 4
Figure 4: Spar placement in NACA2412 airfoil ............................................................................. 5
Figure 5: Updated spar and stringer placement .............................................................................. 5
Figure 6: Final wing profile ............................................................................................................ 6
Figure 7: Centroid with two spars................................................................................................... 7
Figure 8: 2-D lift coefficient at sea level as a function of angle of attack .................................... 10
Figure 9: 2-D lift coefficient at 8000ft as a function of angle of attack ....................................... 11
Figure 10: Lift Distributions ......................................................................................................... 12
Figure 11: Coefficient of lift and drag distribution along span (at 8000ft, alpha=0).................... 13
Figure 12: Approximated Force Distribution ............................................................................... 14
Figure 13: Shear Forces along Wing Span, Sx and Sy ................................................................. 16
Figure 14: Moments along Wing Span, Mx and My .................................................................... 16
Figure 15: Deflections along Wing Span, wy and wx .................................................................. 18
Figure 16: V-N Diagram at (a) Sea Level and (b) Cruising Altitude @ 8000 ft. ......................... 21
Figure 17: Limited Flight Envelope at (a) Sea Level and (b) Cruising Altitude @8000 ft. ......... 22
Figure 18: Bending Stress at Root Chord ..................................................................................... 23
Figure 19: Buckling Coefficient for Simply Supported Plates ..................................................... 30
Figure 20: Shear Buckling Coefficient ......................................................................................... 30
Figure 21: Von Mises Stress Plot.................................................................................................. 35
Figure 22: 2D Wing Divergence................................................................................................... 36
Figure 23: Flutter of a Wing Section ............................................................................................ 42
Figure 24: Wing in COMSOL ...................................................................................................... 46
Figure 25: COMSOL Displacements............................................................................................ 47
Figure 26: COMSOL Max Normal Stress .................................................................................... 48
Figure 27: COMSOL Max Torsional Moment ............................................................................. 49
Figure 28: COMSOL Vertical Shear ............................................................................................ 50
Figure 29: COMSOL Stringer Stress............................................................................................ 51
Table 1: Lancair Legacy Specifications............................................................................................ 1
Table 2: Area Moment of Inertias................................................................................................... 9
Table 3: Velocities encountered during flight............................................................................... 20
Table 4: Gust Loads at Sea Level and Cruise ............................................................................... 21
Table 5: Shear Flow in the Airfoil Section ................................................................................... 26
Table 6: Skin Plate Critical Buckling Stress vs. Max Stress found in Skin.................................. 31
Table 7: Critical Column Buckling Stress vs. Max Bending Stress ............................................. 32
Table 8: Fracture Analysis Values and Results ............................................................................ 33
Table 9: R relations........................................................................................................................ 39
4. iii
Table 10: Wing Dimensions for One Wing.................................................................................... 45
5. iv
2. Executive Summary
This report summarizes the work done in designing a wing for a low-speed utility aircraft.
The analysis was done based on a Lancair Legacy RG-550 approximated as a straight wing. Spars,
stringers, and ribs were placed within the wing; the last 25% of the airfoil was considered to be
control surfaces. The centroid and the area moments of inertia were calculated from the cross
section of the wing. From the FAR and Legacy specifications, maneuvering and gust loads were
determined and combined to graph the limited flight envelope for two flight conditions: at sea level
and cruising altitude.
Xflr5 simulations were used to determine the lift-curve slope, lift distribution, and drag
profile of the airfoil for both flight conditions. The lift distribution along the semi-span of the wing
was the result of averaging an elliptical distribution and a constant load. The drag profile was
assumed to be constant along the wing until a 20% increase at 80% chord. After orienting the axes
into a normal and tangential frame of reference, shear forces, moments and deflections were
calculated, which were used to determine the bending and shear stresses in the wing.
Several modes of failure were analyzed: buckling, fracture, and fatigue. Additionally, the
stresses were compared to the Von Mises criterion to ensure structural integrity. Furthermore, these
results were compared to the finite element analysis results obtained in COMSOL. A simplified
analysis regarding wing divergence, aileron reversal, and flutter were discussed.
All components of the wing were optimized using the Monte Carlo method to reduce the
weight of the wing while surviving all failure analyses. The goal was to create the lightest wing
that could handle the loads and stresses experienced at all ranges of flight. The final results are
tabulated at the end of this report. Sample calculations, shown in the appendix, were carried out
by hand or Excel and compared with MATLAB outputs to ensure accurate results.
7. 1
4. Introduction
The wings on an aircraft endure many stresses while in flight. Regardless of the aircraft’s
purpose, the wings must maintain structural integrity for the aircraft to complete its mission and
keep its crew and payload safe. This wing design analysis began with choosing an aircraft. The
Lancair Legacy RG-550 is a single engine, small aircraft with a maximum crew of two people.
This aircraft design was chosen because its specifications and dimensions were similar to previous
analyses done on wing structures yet provided enough variance for different results. In order to
simplify the analysis, the wing was approximated to be a straight wing. The Legacy specifications
are shown in Table 1.
Table 1: Lancair Legacy Specifications
Max Aircraft Weight 997.903 kg
Standard Empty Weight 680.388 kg
Cruise Velocity @ 8000 ft. 123.383 m/s
Wing Span 7.7724 m
Chord Length 0.98611 m
Wing Area 7.6644 m2
The results that are displayed or discussed in each section are the numbers obtained after
optimization unless stated otherwise. All validation and tests done by either comparing
calculations against another program or using simpler geometries can be seen in the appendix
located at the end of the report.
8. 2
5. Airfoil shape
The NACA 2412 profile was used as the airfoil shape of the wing. Based off the
specification listed in Table 1, the airfoil has a chord length of 0.986 meters. A data file obtained
online was used in MATLAB to scale and graph out its shape which is shown in Figure 1.
Figure 1: NACA 2412 profile
The coordinate system in Figure 1 and the rest of the report has the x-axis directed along
the chord from leading edge to trailing edge as positive, y-axis directed vertically with upward as
positive, and the z-axis directed along the span from root to tip. The last 25% of the wing was
reserved for control surfaces such as flaps and ailerons, thus would not contribute to aerodynamic
loading.
9. 3
6. Cross-Section Geometry
Lift and drag act on all parts of a wing in a pressure field. The center of pressure is where
the sum of this field is concentrated. This is where the main spar of the wing should be located;
however, the center of pressure shifts as lift and drag vary and at differing angles of attack. The
center of pressure may be determined from Eq. 1.
𝑥 𝑐𝑝 = −
𝑀𝐿𝐸
𝐿
= −
𝑐 𝑚,𝑙𝑒 𝑐
𝐶𝐿
(1)
The data used to find the center of pressure for this report was given by XFLR5, rather
than by hand. Figure 2 shows this data as a function of angle of attack.
-1
0
1
2
3
4
5
-5 0 5 10 15 20
CenterofPressure[%ofchord]
Angle of Attack [°]
Center of Pressure
Center of Pressure
Figure 2: Center of pressure as a function of angle of attack
10. 4
The center of pressure remains between 20% and 40% of the chord length for reasonable
angles of attack. Since this is a wide margin the spar was placed at the angle of attack that produced
the greatest moment coefficient. The moment coefficient data is shown in Figure 3.
The largest moment coefficient was located at 1° angle of attack. Therefore, the center of
pressure at this angle of attack was originally selected for the placement of the main spar. This
location was at 39.43% of the chord, or 0.3888m behind the leading edge. It was determined later
that the front of the wing was unsupported. Consequently, the main spar was moved closer to the
front, at 0.3m behind the leading edge. This was still in the 20%-40% of the chord range that the
center or pressure data indicated as ideal. Stringers were also added in along the airfoil; inititally
by inspection but revised after completing the wing analysis.
Another spar was placed at 75% of the chord, or .740m behind the leading edge. This is
where the control surfaces begin. Placing a spar here makes sense because it will not interfere with
the control surfaces, and it provides extra stability to account for additional lift produced when
-0.07
-0.06
-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
-5 0 5 10 15 20
MomentCoefficient
Angle of Attack [°]
Moment Coefficient
Figure 3: Moment coefficient as a function of angle of attack
11. 5
controls are active. When controls are active, the effective angle of attack increases, changing the
center of pressure. Having a second spar minimizes the consequence of this change through a
redundancy of structural stability.
The original placement of these spars is shown in Figure 4.
The new placement from CDR, along with stringers, is shown in Figure 5.
Figure 5: Updated spar and stringer placement
Through optimization, stringer placement was further changed, and more were added. The
number of stringers increased from 12 to 14, and were placed closer to the front of the airfoil.
Figure 6 shows the new placement of the stringers with the spars (and spar caps) as designed in
SolidWorks. The optimization process is described in detail further in the report.
Figure 4: Spar placement in NACA2412 airfoil
12. 6
Figure 6: Final wing profile
Final stringer locations are 0.01, 0.1, 0.25, 0.34, 0.37, 0.56, and 0.67 meter from the
leading edge on the upper skin, and 0.02, 0.11, 0.23, 0.32, 0.43, 0.54, and 0.65 meter on the
lower skin. The spars are located at 0.3 and 0.74 m from the leading edge.
13. 7
7. Centroid
The centroid of the structure was calculated by dividing the wing into small components and
taking the weighted sum of their cross-sections. Eq. 2 and Eq. 3 were the mathematical expressions
used for this calculation.
𝑋 𝑐 =
∑ 𝑥 𝑖 𝐴𝑖
𝑇𝑜𝑡𝑎𝑙 𝐴𝑟𝑒𝑎
(2)
𝑌𝑐 =
∑ 𝑦𝑖 𝐴𝑖
𝑇𝑜𝑡𝑎𝑙 𝐴𝑟𝑒𝑎
(3)
where 𝑥 𝑖 and 𝑦𝑖 are the position of the centroid of each component and 𝐴𝑖 is the area of the cross
section. Figure 7 shows the location of the centroid for the wing analyzed. The centroid for this
structure was located at (0.3678, 0.0147).
Figure 7: Centroid with two spars
14. 8
8. Area Moments of Inertia
The skin of the airfoil was assumed to be made of small rectangular elements with a length
defined by the distance between two data points and a height equal to the skin thickness. The
distance formula shown in Eq. 4 was used to measure the length of each element.
𝑙𝑒𝑛𝑔𝑡ℎ = √(𝑥2 − 𝑥1)2 + (𝑦2 − 𝑦1)2 (4)
The area moment of inertia for each rectangular element is calculated using the Eq. 5-7
𝐼𝑥𝑥𝑏 =
𝑙𝑒𝑛𝑔𝑡ℎ ∗ 𝑡ℎ𝑖𝑐𝑘𝑛𝑒𝑠𝑠3
12
(5)
𝐼 𝑦𝑦𝑏 =
𝑡ℎ𝑖𝑐𝑘𝑛𝑒𝑠𝑠 ∗ 𝑙𝑒𝑛𝑔𝑡ℎ3
12
(6)
𝐼𝑥𝑦𝑏 = 0 (7)
where thickness refers to the skin thickness of the airfoil. The area moment of inertia must be
calculated with respect to the centroid of the wing. Thus the results must be converted from the
body frame of reference to the rotated frame of reference. This was done using the Eq. 8-11.
𝐼𝑥𝑥,𝑟 = 𝐼𝑥𝑥𝑏 𝑐𝑜𝑠2
𝜃 + 𝐼 𝑦𝑦𝑏 𝑠𝑖𝑛2
𝜃 (8)
𝐼 𝑦𝑦,𝑟 = 𝐼𝑥𝑥𝑏 𝑠𝑖𝑛2
𝜃 + 𝐼 𝑦𝑦𝑏 𝑐𝑜𝑠2
𝜃 (9)
𝐼𝑥𝑦,𝑟 = 𝐼𝑥𝑥𝑏 𝑠𝑖𝑛𝜃𝑐𝑜𝑠𝜃 + 𝐼 𝑦𝑦𝑏 𝑠𝑖𝑛𝜃𝑐𝑜𝑠𝜃 (10)
15. 9
where
𝜃 = arctan(
𝑦2 − 𝑦1
𝑥2 − 𝑥1
) (11)
In order to account for the distance between the each element and the centroid, the parallel axis
theorem was applied to each element. The parallel axis theorem is shown in Eq. 12-14.
𝐼𝑥𝑥𝑐 = 𝐼𝑥𝑥𝑟 + 𝐴𝑖 𝑦2
(12)
𝐼 𝑦𝑦𝑐 = 𝐼 𝑦𝑦𝑟 + 𝐴𝑖 𝑥2
(13)
𝐼𝑥𝑦𝑐 = 𝐼𝑥𝑦𝑟 + 𝐴𝑖 𝑥𝑦 (14)
For the spars and stringers, the same principle was applied. After all the calculations, the
total area moment of inertia was calculated by summing up the individual area moment of inertias
using Eq. 15-17. Table 2 shows the results of these calculations.
𝐼𝑥𝑥 = ∑ 𝐼𝑥𝑥𝑐 (15)
𝐼 𝑦𝑦 = ∑ 𝐼 𝑦𝑦𝑐 (16)
𝐼𝑥𝑦 = ∑ 𝐼𝑥𝑦𝑐 (17)
Table 2: Area Moment of Inertias
𝐼𝑥𝑥 (𝑚4
) 𝐼 𝑦𝑦 (𝑚4
) 𝐼𝑥𝑦 (𝑚4
)
1.526 * 10−5
4.9139 * 10−4
1.0077 * 10−5
16. 10
9. Aerodynamic Coefficients
The 2-D lift coefficient was determined using xflr5, a CFD software based on xfoil that
can compute aerodynamic forces and moments acting on an airfoil. The NACA 2412 was analyzed
at sea level and at the cruising altitude of 8000 ft (2438m). Calculations were based off the aircraft
specifications. Variation in density and viscosity at different altitudes was also considered in the
input of the CFD simulation.
The 2-D lift coefficient Cl is a function of angle of attack. The lift curve varies slightly
with altitude due to variation of aerodynamic conditions, however the difference is very small. The
lift curve is linear within a regime before approaching stall, thus the lift curve slope can be
calculated using linear regression. The maximum and minimum value of Cl values were
determined from Figure 8 after applying a greater range of angle of attacks.
Figure 8: 2-D lift coefficient at sea level as a function of angle of attack
-0.5
0
0.5
1
1.5
2
-5 0 5 10 15 20
Cl
Angle of Attack (degree)
17. 11
Figure 9: 2-D lift coefficient at 8000ft as a function of angle of attack
The same simulation and analysis was done at cruising altitude shown in Figure 9. The lift
curve slopes at sea level and 8000 ft. are 6.58 and 6.87 respectively. Additionally, the maximum
Cl at each altitude is about 1.74 and 1.62 respectively. Unfortunately, the CFD results failed to
converge at this Reynolds number to determine a minimum Cl value. In order to work around this
obstacle, wind tunnel data for this airfoil was used. The minimum Cl is approximately -0.95 at a
lower Reynolds number. [5]
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
-4 -2 0 2 4 6 8 10 12 14
Cl
Angle of attack (degree)
18. 12
10. Aerodynamic Structural Loads
In order to be realistic, lift was approximated to be an average between an idealized
elliptical and constant distribution along the wing. Eq. 18 show the equation used to calculate the
former.
L′ 𝑒𝑙𝑙𝑖𝑝𝑡𝑖𝑐𝑎𝑙 = 0.327631 ∗
𝑊
2
(1 − (
2𝑧
𝑏
)
2
)1/2 (18)
where W is the aircraft weight, b is the wing span, and z is the position along the span measured
from the root chord. Eq. 18 takes into account that the analysis is meant for a single wing, hence
the weight and span are divided by two. The constant in the front is a correction factor to ensure
that the total force calculated from the elliptical distribution is equal to one half of the total
aircraft weight. Figure 10 displays the averaged lift distribution compared to the others.
Figure 10: Lift Distributions
These values were calculated with a load factor of one during cruise conditions. As a sanity
check, the wings were assumed to carry the entire weight of the plane; thus one wing must support
19. 13
half of the aircraft weight. By integrating the average distribution, the total lift equals 4889.72 N,
which is equal to half the maximum aircraft weight.
Figure 11 depicts lift and drag along the wing that was obtained from the CFD calculations.
The lift distribution is almost elliptical as discussed above; however the induced drag is relatively
stable until it reaches the wing tip.
Figure11: Coefficient of lift and drag distribution along span (at 8000ft, alpha=0)
The drag distribution is not very smooth thus not easy to process in later calculation. For
simplification, the drag was assumed to be constant until 80% span where it would increase by
20%. Since the Legacy is a relatively small airplane travelling at low speeds, the wing is assumed
to be in complete laminar flow. The parasite drag coefficient is then calculated using Eq. 19
C 𝑝 = 1.328 × (𝑅)−1/2
(19)
where R is the Reynolds number.
C 𝑝 = 1.328 × (6860335)−1/2
≅ 0.0005
0
0.0005
0.001
0.0015
0.002
0.0025
0.003
0.0035
0.004
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
0 1 2 3 4 5
Cd
Cl
Span (m)
Cl vs span
Cdi vs span
20. 14
The actual drag is calculated using Eq. 20
D =
1
2
𝜌𝑆𝑉2
(𝐶 𝑝 +
𝐶 𝐿
2
𝜋𝐴𝑒
) (20)
where ρ is air density, S is the wing area, V is the aircraft velocity, 𝐶 𝑝 is the parasite drag, 𝐶𝑙 is the
coefficient of lift, A is the aspect ratio, e is the Oswald efficiency which was assumed to be 0.79.
Figure 12 shows the resulting force distribution along the span of the wing at the max load factor
of 5.84.
Figure 12: Approximated Force Distribution
At different angle of attacks, the force distributions can be resolved into components that
are tangent or normal to the free stream velocity. The tangential and normal force distributions can
be found using Eq. 21 and Eq. 22
F 𝑁 = L(y)cosα + D(y)sinα
(21)
21. 15
𝐹𝑇 = −L(y)sinα + D(y)cosα (22)
For the sake of simplicity, this report will refer to the normal and tangential axes as the ‘y’
and ‘x’ axes respectively. The resulting components after applying Eq. 21 and Eq. 22 can be
utilized to determine the shear force and the moments along the normal and tangential axes. Eq.
23 and Eq. 24 shows the relationship between these concepts
−𝐹𝑦 =
𝑑𝑆 𝑦
𝑑𝑧
=
𝑑2
𝑀 𝑥
𝑑𝑧2
(23)
−𝐹𝑥 =
𝑑𝑆 𝑥
𝑑𝑧
=
𝑑2
𝑀 𝑦
𝑑𝑧2
(24)
where F represents the distributions, S represents the shear forces, and M represents the moments.
Thus, to find the shear and moments, the distributions must be numerically integrated along the
wing span. The wing was treated as a clamped-free beam, thus imposing that at the root chord,
there is no deflection or rotation. Figure 13 and Figure 14 shows the results which were produced
in MATLAB.
22. 16
Figure 13: Shear Forces along Wing Span, Sx and Sy
Figure 14: Moments along Wing Span, Mx and My
As expected, the maximum shear and moment are located at the root chord of the wing and
eventually trails off to zero at the wing tip. Additionally, the shear force is greatest along the y –
23. 17
axis with its maximum equal to about half the aircraft weight, and the greatest moment is generated
about the x-axis. This suggests that the greatest risk for structural failure will occur at the root
chord of the wing.
When the wing is subject to bending loads, its shape is distorted. In order to check whether
this alteration is not extreme, a deflection analysis was done along the x and y axes. The wing
deflections due to bending moments was calculated using Eq. 25 and Eq. 26
𝑤 𝑦
′′
=
−𝑀 𝑦 𝐼𝑥𝑥 + 𝑀 𝑥 𝐼𝑥𝑦
𝐸(𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
)
(25)
𝑤 𝑥
′′
=
−𝑀 𝑥 𝐼 𝑦𝑦 + 𝑀 𝑦 𝐼𝑥𝑦
𝐸(𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
)
(26)
where w represent the deflections, M are the moments, I are the area moment of inertias, and E is
the modulus of elasticity which is 73.1 GPa for aluminum 2024-T4. These equations were
numerically integrated twice to find the deflections in the wing. For details regarding these
equations, refer to T.C. Sun’s Mechanics of Aircraft Structures [4]. Figure 15 shows the resulting
deflections under cruise conditions.
24. 18
Figure 15: Deflections along Wing Span, wy and wx
As expected, the wing deflects significantly more in the y-direction as opposed to the x-
direction because lift significantly exceeds drag. The deflection in the y-direction peaks at 0.17 cm
while the deflection in the x-direction is almost negligible.
25. 19
11. Velocity-Load Factor Diagram
The V-N diagram illustrates the loading conditions a wing endures when maneuvering and
confronted with wind gusts. These load factors are exclusive to the specifications of an aircraft
and what altitudes the aircraft flies at. Two V-N diagrams were made for each flight condition: sea
level and cruise. Many parameters used in the analysis, such as the gust velocities, are detailed in
the FAR 23 document [1].
The flight envelope was determined by obtaining different velocities encountered during
flight. The cruise velocity was provided in the Legacy specifications. The dive velocity and stall
speeds were calculated using the Eq. 27-29.
𝑉𝑑𝑖𝑣𝑒 = 𝑉𝑐𝑟𝑢𝑖𝑠𝑒 ∗ 1.5 (27)
𝑉𝑝𝑜𝑠,𝑠𝑡𝑎𝑙𝑙 = √
2𝑊
𝜌𝑆𝐶𝑙 𝑚𝑎𝑥
(28)
𝑉𝑛𝑒𝑔,𝑠𝑡𝑎𝑙𝑙 = √
2𝑊
𝜌𝑆𝐶𝑙 𝑚𝑖𝑛
(29)
These equations were applied separately at different flight conditions. W is the weight of
the aircraft, ρ is the density and S is the wing area. The coefficients of lift were obtained through
xfoil simulations. It is worth noting that the absolute value of 𝐶𝑙 𝑚𝑖𝑛 was used. These values are
listed in the Table 3 for both sea level and cruising altitude.
26. 20
Table 3: Velocities encountered during flight
Altitude Cruise Dive Positive Stall Negative Stall
Sea Level 123.38 m/s 185.07 m/s 34.61 m/s 42.57 m/s
8000 ft. 123.38 m/s 185.07 m/s 34.99 m/s 42.96 m/s
The load factor in relation to the aircraft velocity is shown in Eq. 30 and Eq. 31. For utility
aircrafts, the max load limit is 4.4 and minimum is -1.76.
𝑛 𝑝𝑜𝑠 =
𝜌𝑉2
𝑆𝐶𝑙 𝑚𝑎𝑥
2𝑊
(30)
𝑛 𝑛𝑒𝑔 =
𝜌𝑉2
𝑆𝐶𝑙 𝑚𝑖𝑛
2𝑊
(31)
These equations are again, applied separately at different flight conditions. The load curves
are graphed until they reach the limit specified in the FAR. Once all data points were collected,
the flight envelope was graphed which are displayed in Figures 16, outlined in blue. The acronyms
PHAA and PLAA refer to positive high and positive low angle of attack. Similarly, NHAA and
NLAA are the negative high and negative low angle of attack.
The gust envelope was developed using the Eq. 32-34 that were provided in the FAR.
𝑛 𝑔𝑢𝑠𝑡 = 1 +
𝐾𝑔 𝑈 𝑑𝑒 𝑉
𝑑𝐶𝑙
𝑑𝛼
498
𝑊
𝑆
(32)
where 𝐾𝑔 =
0.88𝜇
5.3 + 𝜇
(33)
where 𝜇 =
2 ∗
𝑊
𝑆
𝜌𝑐𝑔
𝑑𝐶𝑙
𝑑𝛼
(34)
27. 21
Many of these values are not in SI units. V is the velocity (cruise or dive) in knots, 𝑈 𝑑𝑒 is
the gust velocity ft/s, W is the aircraft weight in lbs, S is the wing area in ft^2, ρ is the density in
slugs/ft^3, g is the acceleration due to gravity in ft/s^2, and c is the chord length in ft. Our findings
are shown in Figure 16 and Table 4.
(a) (b)
Table 4: Gust Loads at Sea Level and Cruise
Speed condition Gust Load at Sea Level Gust Load at 8000 ft.
Cruise velocity 5.69 5.84
Dive Velocity 3.69 3.84
By observing the maximums and minimums from the V-N Diagrams, a limited combined
flight envelope was graphed out that encompasses the extreme cases from both the maneuvering
and gust loads. The stall velocities and dive velocity was used as the minimum and maximum
limits respectively while the gust loads represented the limits for the load factor. Any gust loads
present before the PHAA and NHAA were ignored. This procedure was done for both sea level
Figure 16: V-N Diagram at (a) Sea Level and (b) Cruising Altitude @ 8000 ft.
28. 22
and cruising altitude. Figure 17 displays the limited flight envelope traced out in green on the V-
N Diagram.
(a) (b)
Figure 17: Limited Flight Envelope at (a) Sea Level and (b) Cruising Altitude @8000
ft.
This wing will experience very high load factors. Since failure will occur at the extreme load cases,
this report will be using calculations using the highest loading condition to ensure the wing is
structurally stable for all conditions.
29. 23
12. Bending Stress
The normal stress for an asymmetric wing can be calculated using the bending moments
and area moment of inertia using Eq. 35
𝜎𝑧𝑧 =
𝑀 𝑦 𝐼𝑥𝑥 − 𝑀 𝑥 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
𝑥 +
𝑀 𝑥 𝐼 𝑦𝑦 − 𝑀 𝑦 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
𝑦 (35)
where Mx and My are the moments, Ixx, Iyy, Ixy are the area moment of inertia, and x and y are
the coordinate positions with respect to the centroid. Since the moments were greatest at the root
chord, the bending stress should be at its maximum there as well. Figure 18 shows the
distribution of stress along the cross-section of the wing at the root chord at the highest load
factor during cruise. The graph was re-oriented so that compressive stress is positive and tensile
stress is negative for visual aesthetic. The maximum stress is 216 MPa and is located at the top
of the wing, close to the location of the first spar.
Figure 18: Bending Stress at Root Chord
30. 24
13. Shear flow
Shear stress is an important factor in structural design because it indicates whether or not
the skin is going to fail. In order to calculate shear stress, shear flow in a two cell structure is
simulated using MATLAB. Two assumptions were made for this calculation: the stringers were
idealized as booms, which are modified stringers that takes into account of axial stress on the skin;
additionally, the boom area was used in order to assume that the stringers carry only axial loads
and the skin carry only shear loads.
There are 14 stringers and 4 spar caps. The indexing starts at upper cap of the rear spar,
and continues counter clockwise along the skin, ending at the lower cap of the rear spar. The upper
and lower cap of the first stringer are index 6 and 13 respectively. The coordinate system is oriented
so that the origin is located at the leading edge, the x-axis runs along the chord, and the y-axis runs
vertically in the upward direction.
The external forces were assumed to be placed at the aerodynamic center (in the x-
direction), and center of gravity (in the y-direction). The axial stress in each stringer was
determined using Eq. 35 from the previous section. The equivalent boom area was subsequently
calculated using Eq. 36
𝐵𝑖 = 𝐴𝑖 + 𝑡 𝐷
𝑙 𝑖−1,𝑖
6
(2 +
𝜎𝑖−1
𝜎𝑖
) + 𝑡 𝐷
𝑙 𝑖+1,𝑖
6
(2 +
𝜎𝑖+1
𝜎𝑖
) (36)
where 𝐴𝑖 is the area of stringer i, and σ is the stress, 𝑡 𝐷 is the skin thickness, and l is the length of
skin.
31. 25
Shear flow is the sum of two components: open-section shear flow (qb), and closed-section
shear flow (qo). For open-cell shear flow, cuts were made between the spars (1 to 17 and 6 to 13)
and. Eq. 37-39 were used to determine the shear flow between each stringer.
𝑞 𝑏 = 𝑘1 ∑ 𝐵𝑖 𝑥 𝑖
𝑛
𝑖=1
+ 𝑘2 ∑ 𝐵𝑖 𝑦𝑖
𝑛
𝑖=1
(37)
𝑘1 = −
𝑆 𝑥 𝐼𝑥𝑥 − 𝑆 𝑦 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2 (38)
𝑘2 = −
𝑆 𝑦 𝐼 𝑦𝑦 − 𝑆 𝑥 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2 (39)
where xi and yi are distance between stringer location to location of the forces.
The closed section shear flow was calculated by solving this set of equations. At an
arbitrary point, the internal moment due to shear is equal to the moment due to external forces as
shown in Eq. 40. By setting this point at the location of the applied force, the left hand side of the
equation is conveniently set to zero.
(40)
The angle of twist from both cells should be the same by geometric compatibility, determined by
using Eq. 41. From Eq. 40 and Eq. 41, the closed-section shear flow can be solved.
dθ
dz
( 𝑖) =
1
2𝐴𝑖 𝐺
∮(𝑞 𝑏 + 𝑞 𝑠,𝑜)𝑑𝑠 (41)
Since the stress is known to be greatest near the root and the shear stress on the skin is the
greatest between two ribs, the shear flow calculation was only performed between the root and the
last rib to get the maximum shear in skin. In order to check the accountability of the program, the
32. 26
code is used on a simplified 2 cell shear flow problem, Example 5.9 from Sun’s textbook. The
results are identical answers in the textbook. The validation results are presented in the appendix.
Shear flow in the airfoil calculated from the MATLAB program is tabulated in Table 5
Table 5:Shear Flow in the Airfoil Section
Location q_b q
1=2 6745 -9369
2=3 23732 7618
3=4 49696 33582
4=5 84114 67999
5=6 113371 97257
6=7 132514 30644
6=13 (1st spar) 0 85756
7=8 165758 63888
8=9 177093 75223
9=10 181876 80006
10=11 170422 68551
11=12 140619 38749
12=13 110750 8879
13=14 93730 77616
14=15 71801 55687
15=16 39795 23681
16=17 12339 -3775
17=18 -2351 -18465
1=18 (2nd spar) 0 16114
q_01 -20545
q_02 -152967
33. 27
The shear stress in the skin can then be calculated using Eq. 42
τ =
𝑞
𝑡
(42)
Apply equation 42 to every skin segment it can be found that the highest shear stress occurs
between stringer 9 and 10 with a value of 41.5 MPa. This value is very close to the shear strength
of the material (208MPa) with a safety factor of around 5. As a result, the wing design will not
likely to suffer from failure due to shear stress.
The shear center, also called the elastic axis is the axis which maintains a twist angle of
zero. The closed-section shear flow of both cells was found by equating Eq. 41 to zero. That result
was plugged in the closed-cell shear flow into Eq. 40. As a result, the shear center is calculated to
be at 0.5325m from the leading edge. It’s behind the aerodynamic center and the centroid. But it’s
shown in the aeroelasticity section that the divergence speed of the wing is still within a safe
margin.
34. 28
14. Torsion
As shown in previous section, that the angle of twist was obtained by using Eq. 41.
Plugging in the shear flow value from Table 5 to calculate twist angle in the first and second
cell. The angle of twist of two cells are equal and the maximum angle at the root has a value of
0.0083 rad/m, which is 0.476 degree/m. Since the wing is only less than four meters long in half
span, the maximum twist at the tip is only approximately 2 degrees. The small value shows that
the wing is very resistant to twist.
The neutral axis is the line in the plane that does not experience any compression or
tension. It can be found by equating the stress σ from Eq. 35 to zero, as seen in Eq. 43
𝑦 𝑁𝐴
𝑥 𝑁𝐴
=
𝑀 𝑦 𝐼𝑥𝑥 − 𝑀 𝑥 𝐼𝑥𝑦
𝑀 𝑥 𝐼𝑥𝑥 − 𝑀 𝑦 𝐼𝑥𝑦
(43)
This value calculated is 0.0111. This means the neutral axis is essentially the x-axis. It
makes sense because the Mx is much greater than My due to the difference between lift and drag.
Thus, the x-axis should stay relatively unmoved in bending.
35. 29
15. Buckling Analysis
Buckling is a structural instability that leads to a failure under compressive or shear loading.
This is characterized by either a flat plate or column that fails at stresses that are less than the
material yield stress. In general, buckling is mostly dependent on the geometry of the structure;
shortening the length of the structure along the loading axis effectively increases its resistance to
this instability. Therefore, an aircraft wing incorporates ribs and stringers that are strategically
spaced in order minimize the risk of buckling in the spars and skin. The stringers themselves are
also prone to buckling. The subsequent sections detail the buckling analysis done on each of these
components except for the ribs.
For this analysis, the stringers and ribs were separated by however much seemed necessary.
A range of placements were specified for both components, which defined the dimensions of each
plate of skin. For simplification, each of these skin plates were idealized as simply supported flat
plates. Additionally, each plate was assumed to carry compressive and shear stresses. The critical
buckling stresses were calculated using the Eq. 44
𝜎𝑐𝑟 =
𝑘𝜋2
𝐸
12(1− 𝑣2)
(
𝑡
𝑏
)2 (44)
where t is the thickness of the skin, b is the length of the side under compression, v is the Poisson
ratio, and k is the buckling coefficient which is dependent on the dimensions of the plate, shown
in Eq. 45
𝑘 = (
𝑚𝑏
𝑎
+
𝑎
𝑚𝑏
)2 (45)
Figure 19 and Figure 20 shows k graphically as a function of the ratio 𝑎
𝑏⁄ which is taken
from the Megson [3]. The k value changes depending on normal or shear buckling analysis. The
results of this analysis is shown in Table 6.
37. 31
Table 6: Skin Plate Critical Buckling Stress vs. Max Stress found in Skin
Skin Plate Number Skin Critical Buckling Stress (MPa) Max Stress found in Skin (MPa)
1 232.25 133.35
2 310.90 177.60
3 362.87 199.57
4 363.95 216.28
5 232.67 171.47
6 310.19 40.35
7 700.89 -40.62
8 319.89 -162.83
9 178.07 -178.57
10 400.37 -183.25
11 236.83 -177.70
12 220.64 -172.61
13 232.06 -143.25
These numbers are taken from the maximum loading case from the V-N diagram. The maximum
stress was found on the top of the wing above the spar which aligns with skin plate 4. At this plate,
the critical buckling stress exceeds the compressive stress by a factor of safety of 1.68. The other
plates also exceed the stress applied, thus none of the plates are in danger of buckling.
For this wing design, Z stringers were used and assumed to only carry bending stresses.
The length of each beam element was determined by the rib spacing, with each ended assumed to
be pinned. In other words, the stringers were assumed to be constrained in stretching but allowed
to rotate freely. The dimensions of these stringers were chosen arbitrarily for this initial analysis.
The area moment of inertia and cross-sectional area for each stringer was calculated based on these
dimensions and applied to Eq. 46
𝜎𝑐𝑟 =
𝜋2
𝐸𝐼𝑥𝑥
𝐾𝐴𝐿2
(46)
where E is the Young’s modulus, L is the rib spacing, and K is effective length factor which for
pinned-pinned beams is assumed to be equal to one.
38. 32
The critical buckling load for spars were determined using the same methodology. Table
7 summarizes the results of column buckling. The values shown are the maximum cases.
Table 7: Critical Column Buckling Stress vs. Max Bending Stress
Critical Column Buckling Stress (MPa) Maximum Bending Stress (MPa)
Stringer 354.822 215.06
Spar 500.630 216.21
The max normal stress was calculated using Eq. 35. The critical buckling stress greatly
exceeds the maximum stress endured by the wing structure. Thus by these numbers the wing will
not buckle. However, there are some inconsistencies with the MATLAB code used when compared
to simple hand calculations. The code will need to be corrected.
The plates that make up the stringers are also prone to buckling. By applying the same
methodology as the skin plates, all individual plates on the Z stringer evaluated using Eq. 44 with
different buckling coefficients. Then, a weighted average was taken using Eq. 47
𝜎𝑐𝑟 =
∑ 𝜎𝑐𝑟,𝑖 𝑤𝑖𝑑𝑡ℎ𝑖
𝑤𝑖𝑑𝑡ℎ𝑖
(47)
where 𝜎𝑐𝑟,𝑖 equals the critical buckling stress of each plate.
39. 33
16. Fracture
Material fracture refers to the cracks that form when a structure is under an applied stress.
Cracks weaken the structural integrity of a material. Under stress, cracks can propagate eventually
leading to fracture or failure of a wing. Thus, this type of failure can occur below the yield stress
of a material if large enough cracks are present. In this analysis, the stress intensity factor K is
calculated given an initial crack size and stress applied using Eq. 48 and compared to the fracture
toughness ‘KIC’ of a material.
𝐾 = 𝜎∞√ 𝜋𝑎 (48)
where 𝜎∞ represents the stress applied on the crack and a is the length of the initial crack. If the
stress intensity factor exceeds the fracture toughness, the crack would grow until the structure fails.
In the wing, fracture is most likely to occur at the root of the wing where the greatest stress is
applied. The initial crack size was assumed to be 2.5 mm. Table 8 summarizes the values used
and the results.
Table 8: Fracture Analysis Values and Results
Initial Crack Length 0.001 m
Tensile Yield Stress 324 MPa
Fracture Toughness 29 MPa*𝑚
1
2
Stress Intensity Factor 12.1 MPa*𝑚
1
2
Based on these numbers, the stress intensity factor does not exceed the fracture toughness,
thus the structure will not fracture in these conditions.
40. 34
17. Fatigue
Fatigue refers to weakening strength of a material that undergoes repeated loadings. The
amount of cycles to failure was determined using Paris’s Law which is shown in Eq. 49
𝑁 =
𝑎𝑓
(1− 𝑚
2⁄ )
− 𝑎𝑖
(1− 𝑚
2⁄ )
(1 − 𝑚
2⁄ )𝐶(𝜎 𝑚𝑎𝑥 √ 𝜋) 𝑚
(49)
where 𝑎𝑓 is the final crack length, 𝑎𝑖 is the initial crack length, σ is the ultimate yield stress, C
and m are material properties. The final crack length was found using Eq. 50
𝑎𝑓 =
1
𝜋
(
𝐾𝐼𝐶
𝜎 𝑚𝑎𝑥
)2
(50)
where 𝐾𝐼𝐶 is the fracture toughness and 𝜎 𝑚𝑎𝑥 yield stress. The final crack length was found to be
4.6 mm. Applying this value along with those in the previous section to Eq. 49, the total number
of cycles to failure was found to be approximately 8.369*108
cycles. This was a vast
improvement from the critical design report because the Aluminum 6061-T3 was switched out to
2024-T4.
41. 35
18. Failure criterion
The failure analysis is performed using the von Mises method. The von Mises yield
criterion takes the axial stress and shear stress and computes an equivalent axial stress with Eq.
51
𝜎𝑒 =
1
√2
[( 𝜎11 − 𝜎22)2
+ ( 𝜎22 − 𝜎33 )2
+ ( 𝜎33 − 𝜎11 )2
+ 6( 𝜎12
2
+ 𝜎23
2
+ 𝜎13
2 )2]1/2
(51)
In the equation, 𝜎11 𝜎22 𝜎33 represents axial stress in x, y, z directions respectively, and
only 𝜎33 has a non-zero value and is calculated in the bending section. Among the shear stresses
on the skin 𝜎12 𝜎23 𝜎13 , only 𝜎23 has a non-zero value calculated in the shear flow stress.
The highest equivalent yield strength is calculated to be 196 MPa, which has a safety
factor of 1.6 compared to the yield strength of the material at 324 MPa.
Figure 21: Von Mises Stress Plot
42. 36
19. Divergence
Torsional divergence is a static aero-elastic effect when the angle of twist of a wing
approaches infinity resulting in structural failure. The phenomena is the result of the inertial,
elastic, and aerodynamic forces that occur when the center of twist is located aft of the
aerodynamic center. Larger loads generate greater pitch-up moments about this point, leading to
an increased twist angle and by extension, a larger angle of attack. Consequently this positive
feedback-loop of increased angle of attack to greater loads to greater twist ultimately ends with the
wing shredding off the aircraft. This analysis applied a simplified model of a 2D case shown in
Figure 22 and Eq. 52
Figure 22: 2D Wing Divergence
𝑀0 + 𝐿𝑒𝑐 = 𝐾𝜃 (52)
where K is the torsional stiffness, θ is the twist angle, M is the pitching moment, L is the lift, and
ec is the elastic center. The torsional stiffness resists the moment generated by the lift vector on
43. 37
the aerodynamic center and the pitching moment of the wing. The values in Eq. 52 can be modified
to be in terms of aircraft velocity. The velocity which leads to an infinite twist is known as the
divergence velocity which is shown in Eq. 53. The derivation of this equation can be view in the
Megson textbook [3].
𝑉𝑑 = √
2𝐾
𝜌𝑆𝑒𝑐(
𝜕𝐶𝑙
𝜕𝛼⁄ )
(53)
where S is the wing area, and
𝜕𝐶𝑙
𝜕𝛼⁄ is the lift-curve slope. According to the FAR, the divergence
velocity may not be below 1.2 times the dive velocity. For this plane, the divergence velocity may
not be below 222.084 m/s. Eq. 52 was applied to both sea level and cruise conditions, equaling
260.03 m/s and 284.83 m/s respectively, therefore the wing should not diverge in any part of its
flight.
44. 38
20. Aileron Reversal
The speed at which aileron reversal occurs is given by Eq. 54 [6].
𝑣𝑟 = 𝑣 𝑑√
𝑅1 ∗ 𝜀
𝑅2
(54)
Where 𝑣 𝑑 is the divergence speed,
𝑅1
𝑅2
is a function of the aileron chord divided by the wing chord,
and ε is the distance between the elastic axis (shear center) and quarter chord, as a fraction of the
wing chord. For this wing geometry, the aileron was specifically chosen to be a quarter of the wing
chord, so
𝑐 𝑎
𝑐 𝑤
= .25 by definition. Table 9 shows the tabulated relation between this and
𝑅1
𝑅2
. The
shear center, as recorded in the shear flow section, is .5325, so ε = .2825, and 𝑣𝑟 = 1.17𝑣 𝑑, where
𝑣 𝑑 is the divergence speed as detailed in the previous section. Therefore the speed that will trigger
aileron reversal is 259.83 m/s. This is well above any velocity the plane can reach, thus aileron
reversal is not a problem.
46. 40
21. Natural Frequency
To calculate the natural frequency, the wing is approximated as a cantilever beam with the
root fixed.
Rayleigh’s energy method states that the maximum strain energy (Eq. 55) equals to
maximum kinetic energy (Eq. 56)
𝑈 𝑚𝑎𝑥 =
𝐸𝐼
2
∫ (
𝑑2
𝑦
𝑑𝑥2
)
2
𝑑𝑥
𝑙
0
(55)
𝑇 𝑚𝑎𝑥 =
𝛾
2
∫ [ 𝜔 𝑛 𝑦(𝑥, 𝑡) 𝑚𝑎𝑥]2
𝑑𝑥
𝑙
0
(56)
where E is the young’s modulus, I is area moment of inertia, γ is the mass per length, and ω is the
natural frequency. Rearranging the two equations, the natural frequency can be calculate by using
Eq. 57.
𝜔 𝑛
2
=
𝐸𝐼
𝛾
∫ (
𝑑2
𝑦
𝑑𝑥2)
2
𝑑𝑥
𝑙
0
∫ [ 𝑦(𝑥, 𝑡) 𝑚𝑎𝑥]2 𝑑𝑥
𝑙
0
(57)
By approximating the wing as a cantilever beam with the root end fixed, the deflection y
along span x can be assumed to be:
𝑦 = 𝐴 (1 − 𝑐𝑜𝑠 (𝜋
𝑥
2𝑙
)) (58)
thus 𝑑𝑦
𝑑𝑥
= 𝐴 (
𝜋
2𝑙
) 𝑠𝑖𝑛
𝜋𝑥
2𝐿
(59)
and 𝑑2
𝑦
𝑑𝑥2
= 𝐴 (
𝜋
2𝐿
)
2
𝑐𝑜𝑠
𝜋𝑥
2𝐿
(60)
47. 41
The boundary condition is checked by substituting x = 0 (the root). Additionally, y and
𝑑𝑦
𝑑𝑥⁄ are both equal to zero whereas
𝑑2
𝑦
𝑑𝑥2⁄ is not. At x = L (the tip), y is equal to the maximum
deflection. Thus, the boundary condition is satisfied.
Substituting in the appropriate variables, the natural frequency was calculated to be 31.16
rad/s or 4.96 Hz. The first bending mode of the aircraft has a natural frequency of 4.96Hz.
48. 42
22. Flutter
A detailed flutter analysis is beyond the scope of this course. Therefore, this section will
briefly discuss the effect of flutter and the methods used for flutter analysis.
Flutter is defined as the dynamic instability of an elastic body in an airstream. Flutter occurs
at a critical speed 𝑉𝑓𝑙𝑢𝑡𝑡𝑒𝑟 which, in turn is defined as the lowest airspeed at which a given structure
will oscillate with sustained simple harmonic motion. At speeds above the flutter speed represents
the condition of unstable structural oscillation [3]. For systems with two or more degrees of
freedom, the forces associated with each individual degree of freedom can interact and cause
divergent oscillation. This type of flutter that involves two distinctly different types oscillating
motion resulting in a divergent motion is called classical flutter. Other types of flutter, non-
classical flutter, include stalling flutter and aileron buzz and will not be discussed in this section.
In the case of a wing, flutter is usually the coupling of flexural and torsional modes.
Figure 23 illustrates an example of flutter for a wing section. There is a coupled motion
between the angle α and vertical displacement y.
Figure 23: Flutter of a Wing Section
49. 43
The equation of this coupled system is set up as a simple harmonic motion.
𝑦 = 𝑦0 𝑒 𝑖𝜔𝑡
(61)
𝛼 = 𝛼0 𝑒 𝑖𝜔𝑡
(62)
The root of the determinant in Eq. 63 should take the form δ + iω, where δ represents the
exponential growth rate and ω gives the frequency of the oscillating system. At low speed the
oscillation decays and δ is negative. At high speed, δ is positive and it diverges. The critical flutter
[
−𝜔2
(𝑚 − 𝐿 𝑦̈ ) − 𝑖𝜔𝐿 𝑦̇ + 𝑘 − 𝐿 𝑦 𝜔2( 𝑚𝑔𝑐 + 𝐿 𝛼̈ ) − 𝑖𝜔𝐿 𝛼̇ − 𝐿 𝛼
𝜔2
(𝑚𝑔𝑐 + 𝑀 𝑦̇) − 𝑖𝜔𝑀 𝑦̇ − 𝑀 𝑦 −𝜔2( 𝐼 𝑂 − 𝑀 𝛼̈ ) − 𝑖𝜔𝑀 𝛼̇ + 𝑘 𝜃 − 𝑀 𝛼
] {
𝑦0
𝛼0
} = 0 (63)
speed Vf corresponds to the zero growth rate. Flutter speed can be obtained by calculating δ for a
range os speeds and find the value of Vf for δ = 0.
50. 44
23. Optimization
The final step in completing this design was to optimize its cross-sectional geometry.
Its purpose is to create the lightest wing structure that can survive all loading conditions
specified in the V-N diagram. This is accomplished by running a Monte Carlo iteration scheme
compiling all analyses discussed prior to this section. All components were taken into account:
stringer placement, stringer dimensions, spar dimensions, rib spacing, rib thickness, and skin
thickness. A set of ranges was set for each of these parameters, chosen based off the dimensions
of similar aircrafts such as the Cessna 140 and the optimization code was run for 20,000
iterations. The final design did not differ much from the original. The spars did not shift much
and the number of stringers increase from 12 to 14. The skin thickness was increased to ensure
the skin would not buckle in compression while the spar thickness as well as stringer dimensions
and thickness were reduced. The number of ribs did not change. The entire code is located at the
end of the report.
51. 45
24. Final Model
The final dimensions of the wing are tabulated in Table 10. The wing as designed in
COMSOL is shown in Figure 24.
Table 10: Wing Dimensions for One Wing
Element Size (m)
Wing Chord .9861
Wing Span 7.7724
Airfoil NACA 2412
Skin Thickness .0032
Spar Thickness .0033
Spar Cap Thickness .0033
Spar Cap Width (top) .0151
Spar Cap Width (bottom) .0199
Stringer Thickness .0031
Stringer Width (top) .0077
Stringer Width (bottom) .0086
Stringer Length .0098
Rib Spacing .1441
Rib Thickness .0125
Wing Weight 1701.7 N
Number of Stringers 14
Number of Spars 2
Number of Ribs 26
53. 47
25. Finite Element Analysis
The finite element analysis was done in COMSOL. The wing was created as an exact
replica of the SolidWorks wing, with the stringers represented as beams on the surface of the wing.
The wing was then loaded with lift, drag, gravity, moment, and shear forces to model its behavior
in flight in cruise conditions. The root of the wing was held fixed.
The displacement results from the loading are shown in Figure 25.
Figure 25: COMSOL Displacements
This figure, displayed in units of meters, shows that the overall displacement is as one
might expect, with the majority of displacement at the wing tip. The maximum displacement was
54. 48
4.75*10-4 meters, or about half of a millimeter. This number, while being somewhat close to the
displacement generated by MATLAB (shown in Figure 14), is still much smaller than MATLAB’s
average vertical deflection of 7 cm, and very small in general.
The other graphs given from the finite element analysis match well with the numbers
generated with MATLAB.
The normal stresses are shown in Figure 26.
Figure 26: COMSOL Max Normal Stress
The maximum stress in this graph is 1.59*108 N/m2, or 159 MPa. This compares very
favorably with the max bending stress from MATLAB, which had a max of 154.38 MPa; the
55. 49
percent difference is 2.9%. In addition, like the MATLAB generated stress, the stress is
concentrated near the root of the wing.
The finite element analysis was also able to produce graphs for the shear and torsional
moment. While torsion was not computed on a moment basis in MATLAB, the COMSOL graph
(Figure 27) is worth noting, as it shows the locations that the torsion is applied.
Figure 27: COMSOL Max Torsional Moment
56. 50
As shown, the torsion is at a maximum near the root of the airfoil. Between the root and the
first rib, torsion only really occurs around the spars, but this evens out as one traverses further
down the span of the wing.
The shear in the vertical direction is shown in Figure 28.
Figure 28: COMSOL Vertical Shear
Like in the MATLAB code, the maximum shear is negative and appears at the root of the
wing. The COMSOL graphs, however, also show the effect of the ribs on the shear force. While
57. 51
the skin is subjected to a negative shear, the ribs compensate with a positive shear all the way
down the wing. These balancing forces are why the wing is able to resist vertical deflection well.
Also interesting to note is the stress as viewed from the plane of the airfoil. This is shown
in Figure 29.
Figure 29: COMSOL Stringer Stress
The stress is concentrated in the stringers and the main spar. This is exactly what is
expected, and it justifies the assumption that stringers carry only axial loads and skin carries only
shear loads.
58. 52
26. Conclusion
The goal of this project was to design the lightest wing structure for all the loading
conditions for the Lancair RG-550. A straight wing with a NACA2412 airfoil profile with
stringers, spars and ribs was analyzed. After determining the geometric properties of the wing and
the aerodynamic loads it would experience, the V-N diagrams and limited flight envelope were
graphed. From there the shear forces, moments, and deflections in the wing were calculated. From
this information, structural failure was determined to occur at the root chord. Additionally this
analysis examined several important structure characteristics, namely the bending stress, shear
stress, angle of twist, buckling and fatigue.
The shear stress was calculated by first calculating shear flow in the skin plates in between
the stringers. The maximum shear stress was found to be 41 MPa. The shear center is located at
0.5362 m. It is behind the first spar and close to the centroid, so it is at a desired place. The
maximum angle of twist is calculated to be 0.0083 rad/m, indicating that there will not be a lot of
twist.
The maximum stresses were determined for the skin, spars and stringers and compared to
the critical buckling stresses for each. The critical buckling stresses far exceeded these max
stresses, thus the wing should not buckle. Fracture analysis was done on the wing assuming an
initial crack size and was determined that the crack will not propagate. Additionally, a fatigue
analysis was performed, determining that the wing will not fail until 8.369*108
cycles.
The failure criterion is examined by using the von Mises yield criterion, which takes the axial
and shear stress to calculate an equivalent axial stress. The maximum equivalent stress is found to
be 196MPa. It’s still under the yield strength of the material and has a safety factor of 1.6.
59. 53
27. Appendix
Symbols
MLE Moment about the leading edge
xcp Location of center of pressure
cm,le Coefficient of moment about the leading edge
CL Lift coefficient
C Chord length
L Lift
𝑋 𝑐 Centroid x-position
𝑌𝑐 Centroid y-position
𝑥 𝑖 Component x-position
𝑦𝑖 Component y-position
𝐴𝑖 Component area
𝐼𝑥𝑥𝑏 Body xx area moment of inertia
𝐼 𝑦𝑦𝑏 Body yy area moment of inertia
𝐼𝑥𝑦𝑏 Body xy area moment of inertia
𝐼𝑥𝑥,𝑟 Rotated xx area moment of inertia
𝐼 𝑦𝑦,𝑟 Rotated yy area moment of inertia
𝐼𝑥𝑦,𝑟 Rotated xy area moment of inertia
𝐼𝑥𝑥𝑐 Component xx area moment of inertia
𝐼 𝑦𝑦𝑐 Component yy area moment of inertia
𝐼𝑥𝑦𝑐 Component xy area moment of inertia
𝐼𝑥𝑥 xx area moment of inertia
𝐼 𝑦𝑦 yy area moment of inertia
𝐼𝑥𝑦 xy area moment of inertia
C𝑓 Parasite drag
61. 55
Validation
Geometric Properties of the Airfoil
For the centroid and moment of inertia calculations, the MATLAB code was compared to
values outputted by Excel. Initially the airfoil was assumed to only have spars with no stringers
seen below The methodology for calculating these values are described in the centroid and area
moment of inertias section. Calculations began with the spars set as I-beams with arbitrarily set
dimensions and fixed locations on the airfoil. Then the airfoil skin properties was calculated
separately, then the moment of inertias were added together for the total area moment of inertia.
Below are the comparisons between Excel and MATLAB outputs.
Table
The slight difference in values can be attributed to different significant figures when running
through the calculation.
Structure Loading
To check the structure loading code, the wing was analyzed at a load factor of 1 while at
cruise. Under these conditions, the lift of the wing must equal the aircraft weight. Assuming the
wings are the sole contributor to lift with the tail’s lift only meant for stability, one wing should
62. 56
carry half the weight. Using the methodology described in the report, the total lift was calculated
from the lift distribution and was found to equal half the aircraft weight. The same methodology
was used for shears to moments and also deflections.
Bending Stress
Bending stress code was validated by comparing hand calculations with the MATLAB
code. A sample calculation is shown below, but multiple points were tested and verified.
𝜎𝑧𝑧 =
𝑀 𝑦 𝐼𝑥𝑥 − 𝑀 𝑥 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
𝑥 +
𝑀 𝑥 𝐼 𝑦𝑦 − 𝑀 𝑦 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 − 𝐼𝑥𝑦
2
𝑦
𝐼𝑥𝑥 = 2.04 ∗ 10−5
𝐼 𝑦𝑦 = 6.02 ∗ 10−5
𝐼𝑥𝑦 = 9.23 ∗ 10−4
𝜎𝑧𝑧 =
(−401 .56 𝑁𝑚) 𝐼𝑥𝑥−(−51517𝑁𝑚) 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 −𝐼𝑥𝑦
2 (0.3599𝑚) +
(−51517𝑁𝑚) 𝐼 𝑦𝑦 −(−401.56𝑁𝑚) 𝐼𝑥𝑦
𝐼𝑥𝑥 𝐼 𝑦𝑦 −𝐼𝑥𝑦
2 (0.0309𝑚) = -
154 MPa
MATLAB = 156 MPa
The difference can be attributed to significant figures.
Shear Flow
Shear flow code is validated by using it to calculate example question 5.9 from the Sun’s
textbook.
63. 57
In this example question, a force of magnitude 4800N is applied at node one and the
geometry of the structure is shown above. The result in shown in the book and calculated from
the matlab code is tabulated below:
Textbookanswer Matlab answer
q_b q q_b q
6=1 (cut) 0 -36.47 6=1 -100 -36.47
1=2 -20 -56.47 1=2 -120 -56.47
2=3 0 -36.47 2=3 -100 -36.47
3=4 0 -43.53 3=4 -60 -43.53
4=5 60 16.47 4=5 (cut) 0 16.47
5=6 (cut) 0 -43.53 5=6 -60 -43.53
6=3 -40 -47.06 6=3 (cut) 0 -47.06
q1 -36.47 63.53
q2 -43.53 16.47
The answer from the textbook and the matlab code are identical, so it can be concluded
that the code is valid.
Buckling
The buckling equations were done in excel similarly to the centroid and area moment of
inertias. The comparison is shown below
critical buckling
(MPa) Excel MATLAB
stringer 354.5 354.8217
skin,compressive 301.479 303.479
skin,shear 112.631 111.9543
spar 1 10200 10238
spar 2 10200 10200
Fracture/Fatigue
64. 58
Fracture and Fatigue codes were compared with hand calculations. The sample
calculation is shown below showing the process with the answers from the CDR when another
aluminum was being used.
Aluminum2023-T3
a = 0.0025
m = 3.59
C = 1.6e-11
KIC= 34
𝐾𝐼 = 𝜎∞√ 𝜋𝑎 = 160 ∗ √𝜋 ∗ 0.0025
𝑎𝑓 =
1
𝜋
(
𝐾𝐼𝐶
𝜎 𝑚𝑎𝑥
)2
=
1
𝜋
(
34
160
)2
= 0.01437 𝑚
1 −
𝑚
2
= 1 −
3.59
2
= −0.795
𝑁 =
𝑎𝑓
(1− 𝑚
2⁄ )
− 𝑎𝑖
(1− 𝑚
2⁄ )
(1 − 𝑚
2⁄ )𝐶(𝜎 𝑚𝑎𝑥√ 𝜋) 𝑚
=
0.01437(−0.795 )
− 0.0025(−0.795)
(−0.795)(1.6 ∗ 10−11 )(160√ 𝜋)3.59
= 10829.8 𝑐𝑦𝑐𝑙𝑒𝑠
Wing Divergence
Wing divergence was also validated through basic hand calculations. A sample
calculation is shown below.
K = 1.9947e5
S = 7.7764 𝑚2
Ρ = 1.225
𝑘𝑔
𝑚3
ec = 0.0965 m
𝜕𝐶𝑙
𝜕𝛼
= 6.87
𝑉𝑑 = √
2𝐾
𝜌𝑆𝑒𝑐
𝜕𝐶𝑙
𝜕𝛼
= √
2∗1.9948∗105
1.225∗7.7764∗0.1265∗6.87
= 264.34214
65. 59
28. References
[1] Regulations, Federal Aviation. "Part 23 - Airworthiness Standards: Normal." Utility,
Acrobatic and Commuter Category Airplanes (1996).
[2] Lancair. Docs: Legacy. [http://www.lancair.com/support/docs-legacy/]
[3] Megson, Thomas Henry Gordon. Aircraft structures for engineering students. Elsevier,
2012.
[4] Sun, C.T. Mechanics of Aircraft Structures. John Wiley & Sons, Inc.
[5] Abbott, I.H., von Doenhoff, A.E. Theory of Wing Sections, Dover, 1959
[6] Lombard, Albert E. An Investigation of the Conditions for the Occurrence of Flutter in
Aircraft and the Development of Criteria for the Prediction and Elimination of such Flutter
(Doctoral dissertation), 1939.
66. 60
29. MATLAB Code
Optimization
%%%% READ ME:
%%%% When the code completes, a data file will be saved containing all the
%%%% variables used during the optimization. I'll make a list of the
%%%% important ones below
%%%% NOTE: ALL COMPRESSIVE STRESSES ARE NEGATIVE, MUST RE-ORIENT THEM TO BE
%%%% POSITIVE FOR FINAL REPORT AND FIGURES
% weight = weight of the wing
% t_sk = skin thickness
%
% t_st = stringer thickness
% L1_st = length of stringer top
% L2_st = length of stringer mid
% L3_st = length of stringer base
%
% t_sp = spar thickness
% L4_sp1 = length of spar top
% L5_sp1 = length of spar mid
% L6_sp1 = length of spar base
%
% n_r = number of ribs in one wing
% R = rib spacing
%
% sigma_skU & sigma_skL = skin critical buckling stress (compression) upper &
lower surface
% sigma_sp1 & sigma_sp2 = spar critical buckling stress
% sigma_st = stringer critical buckling stress
% sigmae = von mises stress
%
% max_bending_stress = maximum compressive stress skin
% max_stress_str = maximum compressive stress stringer
% max_spar# = maximum compressive stress spar
%
% a = initial crack size
% af = final crack size
% KI = stress intensity factor
% N = cycles till fatigue
close all
clear all
clc
rng('shuffle')
bool = 0;
count = 0;
iter = 1000;
W_min = 2500; %N
rho_sea = 1.225; %kg/m^3
rho_cruise = 0.9652; %kg/m^3
vc = 123.383; %cruise velocity m/s
vd = 185.07; %dive velocity m/s
67. 61
h = waitbar(0, 'Processing...',
'CreateCancelBtn','setappdata(gcbf,''canceling'',1)');
setappdata(h,'canceling', 0)
n = [-3.69 -2.5186 4.5186 5.6915 -3.8377 -2.6283 4.6283 5.8377]; % loading
conditions from VN Diagram
V = [vc vd vd vc vc vd vd vc]; % velocities from VN Diagram [m/s]
rho_air = [rho_sea*ones(1,4) rho_cruise*ones(1,4)]; % air density [kg/m^3]
while count < iter
if getappdata(h,'canceling')
break
end
%% constants
% W_min = 453.592; %N
% rho_sea = 1.225; %kg/m^3
% rho_cruise = 0.9652; %kg/m^3
% vc = 123.383; %cruise velocity m/s
% vd = 185.07; %dive velocity m/s
% Cl_a_sea = 6.58;
% Cl_a_cruise = 6.87;
% n = [-3.69 -2.5186 4.5186 5.6915 -3.8377 -2.6283 4.6283 5.8377];
% V = [vc vd vd vc vc vd vd vc];
% rho_air = [rho_sea*ones(1,4) rho_cruise*ones(1,4)];
NACA = csvread('NACA2412.dat');
b = 7.7724; % span m
c = 0.986116; % chord m
NACA = NACA*c; % airfoil profile
g = 9.8;
Cl_a_sea = 6.58;
Cl_a_cruise = 6.87;
%% Material Properties Aluminum 2024-T4
% Aluminum 6061-T6 original, Tensile yield too low
% E = 73.1e9; %Pa
% G = 26.91e9;
% v = 0.33;
% rho = 2700;
% sigma_yield = 276; % [MPa]
E = 73.1e9; % Young's Modulus
G = 28e9; % Shear Modulus [Pa]
v = 0.33; % Poisson ratio
rho = 2780; % density [kg/m^3]
sigma_yield = 324; % Tensile yield strength [MPa]
FOS = 1.5; % factor of safety
%% Component Dimensions
t_sk_max = 0.003;
t_sk_min = 0.002;
t_sp_max = 0.005;
69. 63
% Centroid, Moment of Inertia
[xbar,ybar,x,y,Ixx,Iyy,Ixy,A_st,A_sp1,A_sp1_cp,A_sp2,A_sp2_cp,A_rib,stringX,s
tringY,n_st,sp_cpX,sp_cpY] = find_prop(NACA,t_sk,t_st,L1_st,L2_st,L3_st,t_sp,
L4_sp1,L5_sp1,L6_sp1,L4_sp2,L5_sp2,L6_sp2);
% Wing Weight
[weight,w_skin,w_sp1,w_sp2,w_st,w_rib] =
find_wing_weight(NACA,A_st,A_sp1,A_sp2,A_rib,t_rib,t_sk,b,rho,n_r,n_st);
for ii = 1: length(n)
% find shear forces, moments, max stress
[My,Mx,Sy,Sx,wy,wx,defly,deflx,max_bending_stress,lift,stress] =
find_shear_moments(x,y,n(ii),b,V(ii),rho_air(ii),Ixx,Iyy,Ixy);
% buckling
[sigma_pl, sigma_cr,
sigma_sp1,sigma_sp2,sigma_st,sigma_skU,sigma_skSU,sigma_skU_array] =
find_buckling(E,v,R,stringX,stringY,t_sk,t_st,L1_st,L2_st,L3_st,Ixx,A_st,A_sp
1_cp,A_sp2_cp);
% shear stresses
[q_o1, q_o2, max_shear_stress, torque, twist_angle, x_sc, sigmae] =
find_shear(c,G,Ixx,Iyy,Ixy,Sx,Sy,Mx,My,xbar,ybar,A_st,t_sk,stringX,stringY,sp
_cpX,sp_cpY);
% max stresses
[max_stress_str, stringer_stress_array] =
find_max_stress('stringer',Ixx,Iyy,Ixy,My(1),Mx(1),stringX,stringY,sp_cpX,sp_
cpY);
[max_stress_sp1] =
find_max_stress('spar1',Ixx,Iyy,Ixy,My(1),Mx(1),stringX,stringY,sp_cpX,sp_cpY
);
[max_stress_sp2] = find_max_stress('spar2',Ixx,Iyy,Ixy,My(1),Mx(1),
stringX,stringY,sp_cpX,sp_cpY);
% fracture/fatigue
KIC = 26; % MPA*m^0.5
a = 0.001;
KI = -max_bending_stress*sqrt(a*pi);
if KI > KIC
bool_crack = 0;
else
bool_crack = 1;
end
af = (1/pi)*(KIC/-max_bending_stress)^2;
C = 3.7086e-12; m = 4.1908; const = 1-m/2;
N = (af^const - a^const)/(const * C * (-max_bending_stress * pi)^2);
% wing divergence
[v_diverge] = find_divergence(rho_air(ii),b,x_sc,twist_angle,torque,
lift,Cl_a_sea);
70. 64
if 1.2*V(2) > v_diverge
bool_divergence = 0;
else
bool_divergence = 1;
end
% check failure
bool_skin = sigma_skU/FOS > abs(max_bending_stress);
bool_skin_shear = sigma_skSU/FOS > abs(max_shear_stress);
bool_spar1 = sigma_sp1/FOS > abs(max_stress_sp1);
bool_spar2 = sigma_sp2/FOS > abs(max_stress_sp2);
bool_st = sigma_st/FOS > abs(max_stress_str);
bool_von_mises = min(sigma_yield/FOS > sigmae);
if mean(bool_skin) == 1 && mean(bool_skin_shear) == 1 &&
mean(bool_spar1) == 1 && ...
mean(bool_spar2) == 1 && mean(bool_st) == 1 && bool_crack ==
1 && bool_divergence == 1 && bool_von_mises == 1
bool_cases(ii) = 1;
else
bool_cases(ii) = 0;
end
end
if weight < W_min && mean(bool_cases) == 1
W_min = weight;
save optimized_data_2
end
%save optimized_data_2
count = count + 1;
clearvars -except bool count iter W_min h n V rho_air
waitbar(count/iter);
end
delete(h)
71. 65
Centroid, Moment of Inertia
function [centx, centy, x, y, Ixx, Iyy, Ixy,
A_st,A_sp1,A_sp1_cp,A_sp2,A_sp2_cp,A_rib,stringX,stringY,n_st,sp_cpX,sp_cpY]
= find_prop(M,t_sk,t_st,L1_st,L2_st,L3_st,t_sp,
L4_sp1,L5_sp1,L6_sp1,L4_sp2,L5_sp2,L6_sp2)
x = [];
y = [];
for ii = 1:162
y(ii) = M(ii,2)*0.986116;
x(ii) = M(ii,1)*0.986116;
if x(ii) > 0.74
x(ii) = 0; y(ii) = 0;
end
end
x(x==0)=[];
y(y==0)=[];
%add spar at 30% chord====at x = 0.3
xx = [];
yy = [];
for ii = 1:length(x)
a = y(ii);
b = x(ii);
if b < 0.3
xx(ii) = 0.3;
yy(ii) = a;
end
end
xx(xx==0)=[];
yy(yy==0)=[];
%add spar at 75% of chord===at x = 0.7396
yyy = y(1):-0.002:y(length(y))-0.001;
xxx = ones(length(yyy),1)' * 0.7396;
%centroid calculation
Ax = [];
Ay = [];
A = [];
for ii = 1:length(x)-1
b = sqrt((x(ii+1) - x(ii))^2+(y(ii+1)-y(ii))^2);
A(ii) = t_sk*b;
Ax(ii) = A(ii) * x(ii);
Ay(ii) = A(ii) * y(ii);
end
% Z stringers
%---L1---|
% |L2
% |
% |---L3---
% stringer placement
% ranges
72. 66
q1 = 5; q2 = 9; % index separation
q3 = 8; q4 = 12; % separate index separation to avoid stringer cluster at LE
d_st1 = 2; d_st3 = 4; % inital index
n_st1 = 12; n_st3 = 15; % number of stringers
% set parameters
st = floor(d_st1 + (d_st3-d_st1)*rand);
n_st = floor(n_st1 + (n_st3-n_st1)*rand);
stringX = []; stringY = [];
stringX(1) = x(st); stringY(1) = y(st);
count = 0;
while count < n_st
q = floor(q1 + (q2-q1)*rand);
qo = floor(q3 + (q4-q3)*rand);
%q = 8; qo = 14;
if st+q < length(x) && x(st+q) > 0.23
stringX(count+2) = x(st+q); stringY(count+2) = y(st+q);
st = st + q;
if st+q == 23 || st+q == 24 || st+q == 25
stringX(count+2) = x(22); stringY(count+2) = y(22); st = 22;
elseif st+q == 82 || st+q == 83 || st+q == 84
stringX(count+2) = x(81); stringY(count+2) = y(81); st = 81;
end
elseif st+q < length(x) && x(st+q) < 0.23
stringX(count+2) = x(st+qo); stringY(count+2) = y(st+qo);
st = st + qo;
if st+qo == 23 || st+qo == 24 || st+qo == 25
stringX(count+2) = x(26); stringY(count+2) = y(26); st = 26;
elseif st+qo == 82 || st+qo == 83 || st+qo == 84
stringX(count+2) = x(81); stringY(count+2) = y(81); st = 81;
end
else
break
end
count = count + 1;
end
n_st = length(stringX);
%t_st = 0.005; %stringer thickness [m]
%L1_st = 0.01; L2_st = 0.02-2*t_st; L3_st = 0.01; %dimensions [m]
str = [L1_st L2_st L3_st]; %format the function takes
[A_st, Ixx_st, Iyy_st, Ixy_st] =
find_moment_inertia('stringer',str,t_st);%cross section area
A_st_total = A_st * length(stringX);
Ax_st = A_st*stringX;
Ay_st = A_st*stringY;
Ax_st = sum(Ax_st); Ay_st = sum(Ay_st);
80. 74
sigma_m = ((k_m*E*pi^2)/(12*(1-v^2)))*(t_st/b2)^2;
%%% Weighted Average
sigma_pl = ((t_st*sigma_m + L1_st*sigma_t +
L3_st*sigma_b)/(t_st+L3_st+L1_st))*1e-6;
% Stringer column buckling
sigma_cr = ((pi*pi*E*Ixx)/(K*R*R*A_st))*1e-6; %[MPA]
sigma_st = (min(sigma_pl,min(sigma_cr))); %[MPA]
% Skin Plate Buckling
k = 4.1; %a/b ~ 1
sigma_skU = zeros(1,length(d_U));
%sigma_skL = zeros(1,length(d_L));
for ii = 1:length(d_U)
sigma_skU(ii) = ((k*E*pi^2)/(12*(1-v^2)))*(t_sk/d_U(ii))^2;
end
% for ii = 1:length(d_L)
% sigma_skL(ii) = ((k*E*pi^2)/(12*(1-v^2)))*(t_sk/d_L(ii))^2;
% end
sigma_skU_array = sigma_skU*1e-6;
sigma_skU = max(sigma_skU)*1e-6;
%sigma_skL = min(sigma_skL)*1e-6;
% Skin Plate Shear Buckling
k1 = 10; %a/b ~ 5
sigma_skSU = zeros(1,length(d_U));
%sigma_skSL = zeros(1,length(d_L));
for ii = 1:length(d_U)
sigma_skSU(ii) = ((k1*E*pi^2)/(12*(1-v^2)))*(t_sk/d_U(ii))^2;
end
% for ii = 1:length(d_L)
% sigma_skSL(ii) = ((k1*E*pi^2)/(12*(1-v^2)))*(t_sk/d_L(ii))^2;
% end
sigma_skSU = min(sigma_skSU)*1e-6;
%sigma_skSL = min(sigma_skSL)*1e-6;
end
81. 75
Shear Stresses
function [q_o1, q_o2,max_shear_stress, Torque, twist_angle, x_sc,
sigmae,i_sp1u,i_sp1l,i_sp2u,i_sp2l,x_boom,y_boom] =
find_shear(c,G,Ixx,Iyy,Ixy,Sx,Sy,Mx,My,x_cent,y_cent,A_st,t_skin,stringX,stri
ngY,sp_cpx,sp_cpy)
%airfoil shape
NACA_number = '2412';
Mi = str2double(NACA_number(1));
Pi = str2double(NACA_number(2));
Ti = str2double(NACA_number(3:4));
gridPts = 500;
M = Mi/100*c;
P = Pi/10*c;
T = Ti/100*c;
stringX = stringX + x_cent;
stringY = stringY + y_cent;
sp_cpx = sp_cpx + x_cent;
sp_cpy = sp_cpy + y_cent;
xc = linspace(0,c,gridPts)';
yc = ones(gridPts,1);
dyc_dx = ones(gridPts,1);
theta = ones(gridPts,1);
for i=1:1:gridPts;
if (xc(i) >= 0 && xc(i) < P)
yc(i) = (M/P^2)*((2*P*xc(i))-xc(i)^2);
dyc_dx(i) = ((2*M)/(P^2))*(P-xc(i));
elseif (xc(i) >= P && xc(i) <= c)
yc(i) = (M/(1-P)^2)*(1-(2*P)+(2*P*xc(i))-(xc(i)^2));
dyc_dx(i) = ((2*M)/((1-P)^2))*(P-xc(i));
end
theta(i) = atan(dyc_dx(i));
end
%thickness
yt = ones(gridPts,1);
for i = 1:1:gridPts
yt(i) = 5*T*(0.2969*sqrt(xc(i)/c)-0.1260*(xc(i)/c)-
0.3516*(xc(i)/c)^2+0.2843*(xc(i)/c)^3-0.1015*(xc(i)/c)^4);
end
%upper
xu = ones(gridPts,1);
yu = ones(gridPts,1);
for i = 1:1:gridPts
xu(i) = xc(i) - yt(i)*sin(theta(i));
yu(i) = yc(i) + yt(i)*cos(theta(i));
end
%lower
xl = ones(gridPts,1);
yl = ones(gridPts,1);
82. 76
for i = 1:1:gridPts
xl(i) = xc(i) + yt(i)*sin(theta(i));
yl(i) = yc(i) - yt(i)*cos(theta(i));
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%spar and stringer location
%stringers varying in position
%x_sp = [0.3; 0.74];
x_ac = 0.25;
%creating array with stringer and spar cap coordinates
x_boom = zeros(length(stringX)+4,1);
y_boom = zeros(length(stringY)+4,1);
num_boom = length(x_boom);
x_boom(1) = sp_cpx(1); x_boom(num_boom) = sp_cpx(4);
y_boom(1) = sp_cpy(1); y_boom(num_boom) = sp_cpy(4);
count = 1;
n = 1;
while count < length(stringX)
x_boom(count+n) = stringX(count);
y_boom(count+n) = stringY(count);
if stringX(count) > sp_cpx(2) && stringX(count+1) < sp_cpx(2) && count <
num_boom/2
x_boom(count+n) = stringX(count);
y_boom(count+n) = stringY(count);
n = n+1;
x_boom(count+n) = sp_cpx(2);
y_boom(count+n) = sp_cpy(2);
elseif stringX(count) < sp_cpx(3) && stringX(count+1) > sp_cpx(3)
x_boom(count+n) = stringX(count);
y_boom(count+n) = stringY(count);
n = n+1;
x_boom(count+n) = sp_cpx(3);
y_boom(count+n) = sp_cpy(3);
elseif count == length(stringX) - 1
x_boom(count+n+1) = stringX(count +1);
end
count = count +1;
end
i_sp2u = 1; i_sp2l = num_boom;
i_sp1u = 0; i_sp1l = 0;
%x_spar_cap = 0.3;
count = 1;
for ii = 1:num_boom
if x_boom(ii) == sp_cpx(2) && count < num_boom/2
i_sp1u = count;
elseif x_boom(ii) == sp_cpx(3) && count > num_boom/2
i_sp1l = count;
end
83. 77
count = count +1;
end
x_boom = x_boom'; y_boom = y_boom';
%v is the x-location of stringer nearest to leading edge
[g v] = find(x_boom == min(x_boom));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%% no idea what's going on here
index =zeros (num_boom, 1);
% gridPts = 500; xu = ones(gridPts,1);
% for ii = 1:num_boom
% k = find(abs(xu-x_boom(ii))<0.001);
% index(ii) = k;
% end
for ii=1:1:min(v)
[u, k] = min(abs(xu-x_boom(ii)));
index(ii) = k;
end
for ii = min(v)+1:1:num_boom
[u, k] = min(abs(xl-x_boom(ii)));
index(ii) = k;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%structure idealization
%length between booms
l = zeros(num_boom,num_boom);
for ii = 1:1:num_boom
jj = ii+1;
if ii == 1
l(ii,jj) = sqrt((xu(index(jj))-xu(index(ii)))^2+(yu(index(jj))-
yu(index(ii)))^2);
l(jj,ii) = l(ii,jj);
elseif ii <= min(v) && ii > 1
l(ii,jj) = sqrt((xu(index(jj))-xu(index(ii)))^2+(yu(index(jj))-
yu(index(ii)))^2);
l(jj,ii) = l(ii,jj);
%upper half
elseif ii == min(v)
l(ii,jj) = sqrt((xl(ii)-xl(1))^2+(yl(index(ii))-
yl(1))^2)+sqrt((xu(index(ii))-xu(1))^2+(yu(index(ii))-yu(1))^2);
l(jj,ii) = l(ii,jj);
elseif ii > min(v) && ii < num_boom
l(ii,jj) = sqrt((xl(index(jj))-xl(index(ii)))^2+(yl(index(jj))-
yl(index(ii)))^2);
l(jj,ii) = l(ii,jj);
%lower half
end
84. 78
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% How I calculate skin and spar length
% % length between each stringer including spar caps
% % starts from top right corner and goes counter-clockwise
% d_S = zeros(1, length(x_boom)-1);
% for ii = 1:length(x_boom)-1
% d_S(ii) = sqrt((x_boom(ii+1) - x_boom(ii))^2 + ...
% (y_boom(ii+1) - y_boom(ii))^2);
% end
%
% % spar1 is the spar closest to leading edge
% % Spar2 is the spar at the trailing edge
% spar1_length = abs(sp_cpx(1)) + abs(sp_cpx(2));
% spar2_length = abs(sp_cpx(2)) + abs(sp_cpx(3));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%spar length, need to be changed if the spar location/index is moved
l(i_sp1u,i_sp1l) = y_boom(i_sp1u) - y_boom(i_sp1l);
l(i_sp2u,i_sp2l) = y_boom(i_sp2u) - y_boom(i_sp2l);
l(i_sp1l,i_sp1u) = l(i_sp1u,i_sp1l);
l(i_sp2l,i_sp2u) = l(i_sp2u,i_sp2l);
div = Ixx*Iyy-Ixy^2;
%length(z)-1 corresponds to the middle between the root and the first rib
%max moment at the root and maximum shear right between ribs, so this is
%the critical value
%%%%%%%%%%%%% ?????????????????????????????????
sigmazz = zeros(num_boom,1); %bending loads at booms
for ii =1:1:num_boom
sigmazz(ii) = (My(2)*Ixx-Mx(2)*Ixy)/div*(x_boom(ii)-
x_cent)+(Mx(2)*Iyy-My(2)*Ixy)/div*(y_boom(ii)-y_cent);
end
%area of stringer and spars, dummy value for now
A_boom = zeros(num_boom, 1);
A_boom(:,1) = A_st; %stringer area
t_sk = zeros(num_boom, 1);
t_sk(:,1) = t_skin; %skin thickness
t_sp = [0.005, 0.005];
B = zeros(num_boom, num_boom);
for ii = 1:1:num_boom-1
jj = ii+1;
if ii == 1 || ii == min(v)+1;
85. 79
B(ii,jj) =
A_boom(ii)+t_sk(ii).*l(ii,jj)/6*(2+sigmazz(ii+1)./sigmazz(ii));
elseif 1<ii<min(v) && min(v)+1<ii< num_boom
B(ii,jj) = A_boom(ii)+t_sk(ii).*l(ii-1,jj-1)/6*(2+sigmazz(ii-
1)./sigmazz(ii))+t_sk(ii).*l(ii,jj)/6*(2+sigmazz(ii+1)./sigmazz(ii));
else
B(ii,jj) = A_boom(ii)+t_sk(ii).*l(ii-1,jj-1)/6*(2+sigmazz(ii-
1)./sigmazz(ii));
end
end
%%
%cut on the spars
%open cell shear
%ccw
q_b= zeros(num_boom,num_boom);
k1 = -(Sx(2)*Ixx-Sy(2)*Ixy)/div;
k2 = -(Sy(2)*Iyy-Sx(2)*Ixy)/div;
for ii = 1:1:num_boom-1
jj = ii+1;
if ii == 1
q_b(ii,jj) = k1*B(ii,jj).*(x_boom(ii)-x_ac)+k2*B(ii,jj).*(y_boom(ii)-
y_cent);
else
q_b(ii,jj) = k1*B(ii,jj).*(x_boom(ii)-x_ac)+k2*B(ii,jj).*(y_boom(ii)-
y_cent)+q_b(ii-1,jj-1);
end
end
%%
% pure torsion shear
% 1 - between sp1 and sp2
% 2 - between LE and sp1
%ccw
A1=0;
A2=0;
for ii = 1:1:index(i_sp1u)
A2 = A2+abs(yu(ii)*(xc(ii+1)-xc(ii)));
end
for ii = index(i_sp1l):1:num_boom
A2 = A2+(yl(ii)*(xc(ii+1)-xc(ii)));
end
for ii = index(i_sp1u):1:index(i_sp2u)
A1 = A1+abs(yu(ii)*(xc(ii+1)-xc(ii)));
end
for ii = index(i_sp1l):1:index(i_sp2l)
A1 = A1+abs(yl(ii)*(xc(ii+1)-xc(ii)));
end
86. 80
c1 = zeros(num_boom,1);
c2 = zeros(num_boom,1);
c3 = zeros(num_boom,1);
c4 = zeros(num_boom,1);
for ii = 1:1:i_sp1u-1
c1(ii) = (q_b(ii, ii+1))*l(ii,ii+1)/t_sk(ii);
c2(ii) = 0;
c3(ii) = l(ii,ii+1)/t_sk(ii);
end
for ii = i_sp1l:1:num_boom-1
c1(ii) = (q_b(ii, ii+1))*l(ii,ii+1)/t_sk(ii);
c2(ii) = 0;
c3(ii) = l(ii,ii+1)/t_sk(ii);
end
for ii = i_sp1u:1:i_sp1l-1
c2(ii) = (q_b(ii, ii+1))*l(ii,ii+1)/t_sk(ii);
c1(ii) = 0;
c4(ii) = l(ii,ii+1)/t_sk(ii);
end
const_1 = sum(c2)/A2-sum(c1)/A1;
const_3 = sum(c3)/A1;
const_4 = sum(c4)/A2;
% internal moment = external moment
% moment of Lift taken at center of pressure
int_mom = [];
beta = [];
f = [];
for ii = 1:1:(num_boom-1)
jj = ii+1;
dy = y_boom(jj)-y_boom(ii);
if 1<=ii<0.5*num_boom
dx = abs(x_boom(jj)-x_boom(ii));
else
dx = x_boom(jj)-x_boom(ii);
end
beta(ii) = atan(dy/dx);
int_mom(ii) = q_b(ii,jj)*l(ii,jj)*cos(beta(ii))*abs(y_boom(ii)-
y_cent)+q_b(ii,jj)*l(ii,jj)*sin(beta(ii))*abs(x_boom(ii)-x_ac);
end
% int_mom = int_mom + 2*A1*q_o1 + 2*A2*q_o2;
const_2 = sum(int_mom);
A = [(l(i_sp1u, i_sp1l)/(A2*t_sp(1))+l(i_sp1u, i_sp1l)/(A1*t_sp(1))+l(i_sp2u,
i_sp2l)/(A1*t_sp(2))+const_3) -(2*l(i_sp1u, i_sp1l)/(A2*t_sp(1))+const_4);-
2*A1 -2*A2];
qo = [];
qo = inv(A)*[const_1; const_2];
q_o1 = qo(1);
q_o2 = qo(2);
87. 81
Torque = 2*A1*q_o1+2*A2*q_o2;
%torsion
twist_angle = 0;
for ii = i_sp1u:1:i_sp1l-1
twist_angle = twist_angle + (q_b(ii, ii+1)+q_o2)*l(ii,ii+1)/t_sk(ii);
end
twist_angle = twist_angle+(q_b(i_sp1l, i_sp1u)+(q_o2-q_o1))*l(i_sp1u,
i_sp1l)/t_sp(1);
twist_angle = twist_angle/(2*A2*G); % dtheta/dz [rad/m]
NA = -(Mx(2)*Iyy - My(2)*Ixy)/(My(2)*Ixx - Mx(2)*Ixy); % neutral axis,
yNA/xNA or tan(alpha)
%total shear
q = zeros(num_boom, num_boom);
for ii = 1:1:i_sp1u
q(ii, ii+1) = q_b(ii, ii+1)+q_o1;
end
for ii = i_sp1l:1:num_boom-1
q(ii, ii+1) = q_b(ii, ii+1)+q_o1;
end
for ii = i_sp1u:1:i_sp1l-1
q(ii, ii+1) = q_b(ii, ii+1)+q_o2;
end
q(i_sp1u, i_sp1l) = q_b(i_sp1u, i_sp1l) + q_o1-q_o2;
q(i_sp1l, i_sp1u) = -q(i_sp1u, i_sp1l);
q(i_sp2l, i_sp2u) = q_o1;
%shear stress
tau = zeros(num_boom, num_boom);
for ii = 1:1:num_boom-1
tau(ii, ii+1) = q(ii, ii+1)./t_sk(ii);
end
tau(i_sp1u, i_sp1l) = q(i_sp1u, i_sp1l)/t_sp(1);
tau(i_sp1l, i_sp1u) = -tau(i_sp1u, i_sp1l);
tau(i_sp2l, i_sp2u) = q(i_sp2l, i_sp2u)/t_sp(2);
max_shear_stress = max(max(tau))*1e-6;
%%
%shear center
% internal moment = external moment
% moment of Lift taken at center of pressure
csc_1 = sum(int_mom)-Sy(2)*x_ac;
csc_2 = sum(c1)/A1;
csc_3 = sum(c2)/A2;
A = [(l(i_sp2u,i_sp2l)/t_sp(2)+l(i_sp1u, i_sp1l)/(A1*t_sp(1)))+const_3 -
l(i_sp1u, i_sp1l)/(A2*t_sp(1)) 0; -l(i_sp1u, i_sp1l)/(A1*t_sp(1)) l(i_sp1u,
i_sp1l)/(A2*t_sp(1))+const_4 0; -2*A1 -2*A2 Sy(2)];
sol = [];
sol = inv(A)*[-csc_2; -csc_3; csc_1];
q01 = sol(1); q02 = sol(2); x_sc = sol(3);
%von mises
88. 82
index_2 = [];
% mid point between stringers
for i = 1:1:num_boom-1
if i < 0.5*num_boom || 0.5*num_boom<i<=num_boom-1
index_2(i) = round((index(i)+index(i+1))/2);
else
index_2(i) = 0;
end
end
sigma33 = zeros(num_boom-1,1);
for ii =1:1:num_boom-1
if i < 0.5*num_boom
sigma33(ii) = (My(2)*Ixx-Mx(2)*Ixy)/div*(xu(index_2(ii))-
x_cent)+(Mx(2)*Iyy-My(2)*Ixy)/div*(yu(index_2(ii))-y_cent);
elseif i > 0.5*num_boom
sigma33(ii) = (My(2)*Ixx-Mx(2)*Ixy)/div*(xl(index_2(ii))-
x_cent)+(Mx(2)*Iyy-My(2)*Ixy)/div*(yl(index_2(ii))-y_cent);
else
sigma33(ii) = 0;
end
end
sigmae = [];
for ii = 1:1:num_boom-1
sigmae(ii) = 1/sqrt(2)*sqrt(2*sigma33(ii)^2+6*(tau(ii, ii+1))^2);
end
sigmae = sigmae*1e-6;
end
89. 83
Max Stresses
function [max_stress,stress_str] = find_max_stress(q,Ixx,Iyy,Ixy,My,Mx,
stringX, stringY, sparX, sparY)
switch q
case 'stringer'
stress_str = zeros(length(stringX),1);
for i = 1:length(stringX)
stress_str(i) = (((((My*Ixx)-(Mx*Ixy))*stringX(i)) +...
(((Mx*Iyy)-(My*Ixy))*stringY(i)))*1e-6)/(Ixx*Iyy -
Ixy*Ixy);
end
max_stress = min(stress_str); %[MPA]
case 'spar1'
stress = ((((My*Ixx)-(Mx*Ixy))*sparX(2)) +...
(((Mx*Iyy)-(My*Ixy))*sparY(2)))/(Ixx*Iyy - Ixy*Ixy);
max_stress = stress*10^-6;
case 'spar2'
stress = ((((My*Ixx)-(Mx*Ixy))*sparX(1)) +...
(((Mx*Iyy)-(My*Ixy))*sparY(1)))/(Ixx*Iyy - Ixy*Ixy);
max_stress = stress*10^-6;
otherwise
disp('invalid')
end
end
90. 84
Divergence
function [Vd] = find_divergence(rho,b,x_sc,twist_angle,torque, lift, Cl_a)
ac = 0.25*0.986116; %aerodynamic center
ec = x_sc - ac;
S = 7.7764; %m^2
max_twist = twist_angle*(b/2); %rad/m
K = (torque + lift*ec)/max_twist;
Vd = sqrt((2*K)/(rho*S*ec*Cl_a));
end
91. 85
Plots
function
make_plots(x,y,b,stringX,stringY,sp_cpX,sp_cpY,wx,wy,Sx,Sy,Mx,My,deflx,defly,
sigma_yield,FOS,sigmae)
%spar 0.3 m from LE
spar1y = sp_cpY(2):-0.001:sp_cpY(3);
spar1x = ones(length(spar1y),1)' * sp_cpX(2);
% spar at end
spar2y = sp_cpY(1):-0.001:sp_cpY(4);
spar2x = ones(length(spar2y),1)' * sp_cpX(1);
z = 0:0.01:b/2;
% airfoil cross_section
figure
plot(x,y,'b'); hold on;
plot(stringX, stringY, 'or')
plot(spar1x,spar1y, '.b')
plot(spar2x,spar2y, '.b')
legend('wing model', 'stringers')
axis([-0.5 0.5 -0.25 0.25]);
xlabel('length(m)'); ylabel('length(m)');
set(gca,'fontsize', 15)
grid on
saveas(gca,'Wing Cross-section','jpg');
% Force Distribution
figure
subplot(2,1,1)
plot(z,wy,'b')
ylabel('Normal Force Distribution [N/m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
grid on
set(gca,'fontsize', 15)
subplot(2,1,2)
plot(z,wx,'r')
ylabel('Tangential Force Distribution [N/m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
saveas(gca,'Force Distribution','jpg');
% Shear Distribution
figure
subplot(2,1,1)
plot(z,Sy,'b')
ylabel('Shear, Sy [N]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
%set(gca,'fontsize', 15)
grid on
subplot(2,1,2)
plot(z,Sx,'r')
92. 86
ylabel('Shear, Sx [N]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
saveas(gca,'Shear','jpg');
% Moment Distribution
figure
subplot(2,1,1)
plot(z,My,'b')
ylabel('Moment, My [N*m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
subplot(2,1,2)
plot(z,Mx,'r')
ylabel('Moment, Mx [N*m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
saveas(gca,'Moments','jpg');
%Deflections
figure
subplot(2,1,1)
plot(z,defly,'b')
ylabel('Deflection, wy [m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
subplot(2,1,2)
plot(z,deflx,'r')
ylabel('Deflection, wx [m]', 'fontname','times new roman')
xlabel('Spanwise Location, z [m]', 'fontname','times new roman')
set(gca,'fontsize', 15)
grid on
saveas(gca,'Deflections','jpg');
% Stresses
figure
cs = 15;
scatter(x,y,cs,stress(1,:),'filled'); hold on;
jj = colorbar;
ylabel(jj,'Max Stresses [MPa]');
axis([-0.5 0.5 -0.25 0.25]);
xlabel('length(m)'); ylabel('length(m)');
set(gca,'fontsize', 15)
grid on
saveas(gca,'Bending Stress','jpg');
%Von Mises Plot
yield = sigma_yield/FOS; %yield strength with safety factor
alpha = -pi/4; %rotation angle
93. 87
a = sqrt(2)*yield; % semi-major axis in x'y' coordinate frame
b = 1.15*yield*sin(alpha); % semi-minor axis
%plot ellipse
x = linspace(-a,a);
yu = b*sqrt(1-x.^2/a^2);
yl = -b*sqrt(1-x.^2/a^2);
%changes coordinate system to xy
xcu = x*cos(alpha)+yu*sin(alpha);
ycu = yu*cos(alpha)-x*sin(alpha);
xcl = x*cos(alpha)+yl*sin(alpha);
ycl = yl*cos(alpha)-x*sin(alpha);
%plots ellipse in xy coordinate frame for von Mises
figure('units', 'normalized','outerposition',[0 0 1 1])
%subplot(2,1,1)
hold on
plot(xcu,ycu,'b')
plot(xcl,ycl,'b')
% %vertical lines
% line([yield yield],[0 yield]);
% line([-yield -yield],[0 -yield]);
% %horizaontal lines
% line([0 yield],[yield yield]);
% line([0 -yield],[-yield -yield]);
%diagonal lines
% line([0 -yield],[yield 0]);
% line([0 yield],[-yield 0]);
% plot ([0,0],[yield,-yield],'-');
% %y axis
% plot([0 0], [yield,-yield]);
% %x asix
% plot([-yield,yield], [0,0]);
%Sigma Effective
%plot(0,sigmae,'xr','Color',[0.6 0 0]);
plot(sigmae,0,'xr','Color',[0.6 0 0],'markersize',15);
grid on
xlabel('Princle Stress sigma_2 [MPa]')
ylabel('Princle Stress sigma_1 [MPa]')
set(gca,'fontsize', 15)
grid on
saveas(gca,'Von Mises','jpg');
end