Carbon fiber drone arm

Is this carbon fiber arm strong enough for 120 N at the motor?

You ask

Is this carbon fiber arm strong enough for 120 N at the motor?

Wobbl runs

Terminal
$ wobbl simulate arm.py "Is this carbon fiber arm strong enough for 120 N at the motor?" \  --physics composite --layup "[0/±45/0]s" --ply t300-5208 \  --fix "box -1,-13,-13,25,13,13" \  --load "120 N +z at 400,0,0 @ x=max rigid" --no-open
The arm, 0/45/-45/0/0/-45/45/0 laminate, as the run left it at 120 N

Load 120 N

peak failure index

0.247

HOLDS

Worst ply index 0.193, deflection 3.79 mm

Open the full report

Checks, numbers and charts

HOLDSFirst ply failure at 5.17x the load, target 1.5. Ply 1 at 0 degrees goes first by Tsai-Wu at (37.5, -1.97e-04, 12) mm, and Hashin gives 8.88x by fiber compression. Confidence is medium.

First ply failure
5.17x load
Target
1.5
Governing ply
1 (0 deg)
Confidence
medium
  • warnmesh convergence
  • passforce balance
  • passhand calculation
  • infolayup
  • infosingularities
  • passunits and sanity
summary.txt
HOLDS. First ply failure at 5.17x the load, target 1.5. Ply 1 at 0 degrees goes first by Tsai-Wu at (37.5, -1.97e-04, 12) mm, and Hashin gives 8.88x by fiber compression. Confidence is medium. Confidence: medium. mesh convergence: load factor at first ply failure still moving: 4.7 -> 5.01 -> 5.17 x, last change 3.0% (stopped by level limit); expect about that much errorfirst ply failure: 5.17x loadtarget: 1.5governing ply: 1 (0 deg)max deflection: 3.79 mmlaminate: 8 plies, 1 mmEx (CLT): 103979 MPa Checks:  [warn] mesh convergence: load factor at first ply failure still moving: 4.7 -> 5.01 -> 5.17 x, last change 3.0% (stopped by level limit); expect about that much error  [pass] force balance: reactions balance the loads to 4.3e-09% (forces; shell supports also hold rotations, whose reaction moments are not compared)  [pass] hand calculation: beam theory with the laminate's CLT moduli, 103979 MPa stretching and 118322 MPa bending through a section 120 mm from the supports gives a peak axial strain of 750 microstrain; the shell model gives 751 (1x)  [info] layup: 0/45/-45/0/0/-45/45/0: under 10% of the plies at 90 degrees, so loads off the main axis fall on the matrix  [info] singularities: within 3.12 mm of the supports and rigid attachments the first ply reads 4.05x, set by how the model holds the laminate there; Wobbl reports the value away from them. A real clamp spreads the load over its length, so check the joint itself with a test or a detailed model  [pass] units and sanity: part 402 mm across, max deflection 3.79 mm (0.94% of size), peak ply strain 1282 microstrain: all plausible Assumptions:  - Laminate [0/±45/0]s, 8 plies of Carbon/epoxy T300/5208, 1 mm, plies listed from the inner face out, angles measured from the longest axis of the part.  - Carbon/epoxy T300/5208: E1 181000, E2 10300, G12 7170 MPa, nu12 0.28; Xt 1500, Xc 1500, Yt 40, Yc 246, S12 68 MPa; 0.125 mm plies (Tsai and Hahn (1980), Introduction to Composite Materials, as tabulated in Kaw, Mechanics of Composite Materials, 2nd ed.). nu23 0.49, the density and the 0.125 mm ply are typical carbon/epoxy values, not from the source.  - Plies are linear elastic up to first ply failure; Wobbl does not follow the damage past it, where the laminate often carries more load.  - Tsai-Wu uses the interaction term F12 = -sqrt(F11 F22)/2; Hashin's matrix compression takes the transverse shear strength equal to S12.  - Shell theory: in plane ply stresses only. Free edge, interlaminar and through thickness stresses, and delamination, are not modeled.  - The laminate sits on the midsurface of the CAD walls; the shell model holds 99% of the part's material in 1 wall faces.  - Points within 3.12 mm of supports and rigid attachments are left out of the answer.  - Loads are static. Fatigue, impact, moisture and temperature knockdowns are not applied. Images: failure: images/failure.png, plies: images/plies.png, deformed: images/deformed.pngReport: report.html

About this example

The arm of a heavy lift drone is a carbon tube 400 mm long and 25 mm across, laid up from eight plies of T300/5208 carbon epoxy as [0/±45/0]s, 1 mm in all. Its root is clamped 25 mm deep in the hub, and the motor mount at the far end pushes up with 120 N, three times the motor’s hover thrust, the kind of load a hard climb or a gust puts on it.

Result Value
First ply failure 5.17 times the load, by Tsai-Wu, against a target of 1.5, so it HOLDS
Where the outer 0 degree ply on top of the tube, just past the clamp, where it is squeezed along its fibers
Hashin 8.88 times the load, by fiber compression, at the same spot
Mesh convergence 4.70, 5.01 then 5.17 times over three midsurface meshes, the last step 3%
Hand calculation beam theory with the laminate’s own moduli from lamination theory (104 GPa stretching, 118 GPa bending) gives 750 microstrain at a section 120 mm from the clamp; the shell model gives 751
Force balance reactions match the load to 4e-9%
Deflection 3.79 mm at the motor
Mass 48 g

Wobbl puts the laminate on the midsurface of the tube’s walls, solves it with CalculiX composite shells, and reads the strain through the thickness at every point. Each ply’s stresses along and across its fibers come from that strain, and Tsai-Wu and Hashin turn them into the factor on the load at which the first ply cracks. Tsai-Wu goes first here because the ±45 plies make the 0 degree plies carry a little stress across their fibers, where the matrix is weak, on top of the squeeze along them. The clamp itself reads lower, 4.05 times, but that is how an ideal rigid clamp holds a laminate, so Wobbl reports the value away from it and says so.

The layup has no 90 degree plies, which Wobbl flags: loads off the arm’s axis, such as a crash, fall on the matrix. The run also writes output/playback.json, the laminate loading from nothing to first ply failure: the midsurface, the solved displacement, and for every ply its failure index at the applied load, which a viewer scales by the load factor. The study is linear, so that is exact up to first ply failure.

To try a different stack, change --layup, for example [0/±45/90]s, or --ply im7-8552. The same study runs through wobbl run arm.py --layup ... with the same loads and supports.

Run it yourself

Terminal
$ git clone https://github.com/sohan-bhat/wobbl$ cd wobbl/examples/carbon-arm && ./run.sh

The part, the script and every output are in examples/carbon-arm on GitHub.