Classical laminate theory: how to calculate the ABD matrix
A step-by-step ABD derivation with a fully worked [0/90]s carbon/epoxy example — stiffness matrices, ply stresses and first-ply failure, computed and hand-checked.
From plies to a plate
Classical laminate theory stacks anisotropic plies into a single plate stiffness. Each ply contributes its transformed stiffness Q̄(θ) weighted by position: the A matrix (membrane) integrates Q̄ through the thickness, D (bending) weights it by z², and B (coupling) by z.
The B matrix is the interesting one: it couples stretching to bending. A laminate with B ≠ 0 curls when you pull it and stretches when you bend it — usually unwanted, which is why practical layups are symmetric about the midplane, forcing B = 0 identically.
How the ABD matrix is actually computed
Step 1 — reduced stiffness. Each ply starts in its own material axes. From E₁, E₂, ν₁₂ and G₁₂ you build the reduced stiffness matrix Q, using the minor Poisson ratio ν₂₁ = ν₁₂·E₂/E₁ and the denominator Δ = 1 − ν₁₂ν₂₁: Q₁₁ = E₁/Δ, Q₂₂ = E₂/Δ, Q₁₂ = ν₁₂E₂/Δ, and Q₆₆ = G₁₂. For T300/5208 this gives Q₁₁ = 181.8, Q₂₂ = 10.35, Q₁₂ = 2.90 and Q₆₆ = 7.17 GPa.
Step 2 — rotate. A ply at angle θ is rotated into the laminate axes with the transformation Q̄(θ) = T⁻¹ Q T⁻ᵀ. This is where the off-axis coupling terms Q̄₁₆ and Q̄₂₆ appear; they vanish for 0° and 90° plies and peak near ±45°.
Step 3 — integrate through the thickness. Measure z from the midplane, so ply k spans z_(k−1) to z_k. Then A = Σ Q̄ₖ(z_k − z_(k−1)), B = ½ Σ Q̄ₖ(z_k² − z_(k−1)²), and D = ⅓ Σ Q̄ₖ(z_k³ − z_(k−1)³). The three different powers of z are the whole story: A does not care where a ply sits, B is linear in position, and D rewards distance from the midplane by z³.
Step 4 — solve. Assemble the 6×6 system {N, M}ᵀ = [[A, B], [B, D]] {ε⁰, κ}ᵀ and invert it for the midplane strains ε⁰ and curvatures κ.
Step 5 — go back down to the plies. The strain at any height is ε(z) = ε⁰ + zκ. Multiply by that ply's Q̄ for stress in laminate axes, then rotate back into material axes to get σ₁, σ₂ and τ₁₂.
Step 6 — apply a failure criterion to each ply in its own axes. That final rotation matters: a criterion compares stress against strengths measured along and across the fibres, so it is only meaningful in material axes.
A worked example: [0/90]s carbon/epoxy
Take four plies of T300/5208 (E₁ = 181 GPa, E₂ = 10.3 GPa, ν₁₂ = 0.28, G₁₂ = 7.17 GPa), each 0.125 mm thick, stacked [0/90]s — total thickness 0.5 mm. Pull it with Nx = 100 N/mm, which is an average stress of 200 MPa. Every number below comes from the same reference-tested engine behind the laminate calculator.
The stiffness matrices come out as A₁₁ = A₂₂ = 48 039 N/mm, A₁₂ = 1 448 N/mm, A₆₆ = 3 585 N/mm; B = 0 exactly; and D₁₁ = 1 671, D₂₂ = 331, D₁₂ = 30.2, D₆₆ = 74.7 N·mm. As engineering constants that is Ex = Ey = 96.0 GPa, Gxy = 7.17 GPa, νxy = 0.030.
Ply by ply, the 0° plies carry σ₁ = 378.6 MPa along the fibres with only 5.4 MPa across them, while the 90° plies see σ₁ = −5.4 MPa and σ₂ = 21.4 MPa. You can check the load balance by hand: (378.6 + 21.4) × 0.25 mm ÷ 0.5 mm = 200 MPa, exactly the applied average.
The strength ratios are 3.41 for the 0° plies and 1.87 for the 90° plies, so first-ply failure arrives at R = 1.87 in a 90° ply — an 87% margin on this load.
What the numbers are telling you
A₁₁ equals A₂₂, but D₁₁ is five times D₂₂. In-plane, the laminate is square-symmetric — equal numbers of 0° and 90° plies, and A does not care where they sit. In bending it is wildly directional, because D weights each ply by z³ and the stiff 0° plies happen to sit on the outside. Move them inboard and the plate gets dramatically floppier in x without changing its in-plane stiffness at all. This is why stacking sequence matters for bending and not for stretching.
Ex = 96 GPa, barely half of E₁ = 181 GPa. Half the fibres are pointing the wrong way for this load. That is the price of biaxial capability, and it is the number that surprises people coming from isotropic metals.
The laminate fails first in a 90° ply, in transverse tension at 21.4 MPa against a Yt of just 40 MPa — while the 0° fibres are loafing at a quarter of their 1 500 MPa capacity. Failure is matrix-dominated. Fibres are not the weak link; the resin between them is. That is the single most useful intuition in composite design, and it is why first-ply failure is conservative: those transverse cracks appear, the load redistributes, and the laminate keeps carrying.
Common mistakes
Forgetting that ν₂₁ ≠ ν₁₂. The minor Poisson ratio is ν₁₂E₂/E₁, which for carbon/epoxy is about 0.016 — nearly twenty times smaller. Using 0.28 in both places corrupts every Q term.
Measuring z from the bottom face instead of the midplane. Do that and B is non-zero for a laminate that is genuinely symmetric, and the whole solve is wrong.
Checking failure in laminate axes. Strengths are directional properties of the ply; comparing an x-direction stress against Xt is meaningless unless that ply happens to be at 0°.
Assuming symmetric means balanced. Symmetric (B = 0) kills stretch–bend coupling; balanced (equal +θ and −θ plies) kills the shear–extension coupling in A₁₆ and A₂₆. A layup can be one without the other.
Quasi-isotropic layups
Stacking equal fractions of 0°, ±45°, and 90° plies (e.g. [0/±45/90]s) makes the in-plane stiffness direction-independent — the laminate satisfies G = E/2(1+ν) like an isotropic metal, while its strength remains strongly directional. This is the workhorse layup when load directions are uncertain.
First-ply failure
With midplane strains solved from the loads, each ply's stresses rotate back into its material axes and feed a failure criterion. Max stress checks each mode independently and tells you which mode governs; Tsai–Wu blends all stress components into one quadratic interaction, capturing the biaxial strengthening and weakening the separate checks miss.
The strength ratio R reported by the calculator is the multiplier on the entire load state that brings the critical ply to failure: R = 1.8 means 80% margin. First-ply failure is conservative for laminates that tolerate matrix cracking — transverse cracks in 90° plies typically appear long before fibers break — so ultimate strength predictions need progressive-failure analysis, planned for a later milestone.