Layup Analysis Tool

Version 3.0.2 (709 KB) by fsgeek
Strength analysis and layup optimisation of unidirectional fibre-reinforced composites.
174 Downloads
Updated 23 Feb 2024
Preamble
There are already several decent tools for the analysis of composite layups available on the MATLAB File Exchange, so why add another?
Layup Analysis Tool is a comprehensive package which offers ABD matrix output, stress calculation, failure assessment and layup design optimisation within a convenient and simple-to-use file submission:
  • Definition of n-ply layups with user-defined fibre orientations
  • Support for user-defined orthotropic elastic material properties (per ply)
  • Support for variable thickness plies
  • Support for n evenly-distributed section points (per ply)
  • Computation of the A, B and D matrices, and their inverse
  • Computation of the equivalent extensional and bending moduli (symmetric layups)
  • Stress and strain calculation in X-Y and ply coordinates, based on applied forces and moments
  • Pretty MATLAB figures of through-thickness stresses and strains
  • Inclusion of thermal and hydroscopic loads
  • User-defined output locations: Face (top, middle, bottom), envelope or section point list
  • Evaluation of stress and strain-based static failure criteria (Maximum Stress, Tsai-Hill, Tsai-Wu, Azzi-Tsai-Hill and Maximum Strain)
  • Evaluation of stress-based damage initiation criteria based (Hashin's Theory and LaRC05)
  • Stacking sequence optimiser: Find the stacking sequence which minimises a user-selected criterion based on an objective function (maximum or mean). The optimiser algorithm takes advantage of the Parallel Computing Toolbox
With all of the above functionality in one place, I hope this submission adds value to the current offering!
Summary
[varargout] = abd.main(varargin) analyses a user-defined composite layup.
To get started with a calculation, simply run the helper function:
user_definitions
The methodology used by Layup Analysis Tool follows classical lamination theory (CLT) and assumes that the laminate obeys the Kirchhoff Hypothesis:
  1. Transverse shear is negligible (plane stress in each ply)
  2. Displacements u and v (in the plane of the lamina) are assumed to be linear functions of the thickness coordinate z (no warping)
Files
Input file containing all of the required user definitions (run this script to perform the layup analysis):
user_definitions.m % <-- Configure and run this script!
Main analysis function (user is not required to run this function):
+abd/main.m
Validation cases to show that Layup Analysis Tool produces reliable output:
validation/validate_abaqus.m
validation/validate_joyce.m
Abaqus input file for validate_abaqus_uniaxial.m:
validation/validate_abaqus_uniaxial.inp
Internal functions for calculation (user should only run these functions for debugging purposes):
+abd/internal_<fun>.m
Documentation
For detailed instructions on the required inputs for Layup Analysis Tool, please consult the help text located inside abd.main:
help abd.main
Support
For questions, comments or suggestions, please contact the author: help.qft@gmail.com.
Acknowledgements
Theory reference
  • H. N. R. Wagner, Python code (GitHub link)
  • Y. Jack Weitsman et al., Coefficient of hydroscopic expansion (ScienceDirect link)
  • Abbott Aerospace Canada Ltf, Definition of laminate plate element behaviour (link)
Resources
  • Interactive composite laminate calculator (link)
  • Finding stiffness matrices A, B and D (eFunda link)

Cite As

fsgeek (2024). Layup Analysis Tool (https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.2), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2023a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
3.0.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.2

3.0.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.1

3.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v3.0.0

2.7.3

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.3

2.7.2

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.2

2.7.1

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.1

2.7.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.7.0

2.6.7.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.7

2.6.6.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.6

2.6.5.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.5

2.6.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.4

2.6.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.3

2.6.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.2

2.6.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.1

2.6.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.6.0

2.5.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.2

2.5.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.1
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.1

2.5.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.5.0

2.4.5.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.5

2.4.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.4

2.4.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.3

2.4.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.2

2.4.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.1
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.1

2.4.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.4.0

2.3.4.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.4

2.3.3.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.3

2.3.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.2

2.3.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.1

2.3.0.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.0
See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.3.0

2.2.1.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.2.1

2.2.0

See release notes for this release on GitHub: https://github.com/fsgeek91/Layup-Analysis-Tool/releases/tag/v2.2.0

2.1.11

- The tool now includes output for failure measure components and stacking sequence optimisation
- Updated documentation

2.1.10

- Changed smoothing type to 'LOESS' for OUTPUT_FIGURE = 'SMOOTH'

2.1.9

- Minor update

2.1.8

- Added option to smooth MATLAB figure output at the ply boundaries

2.1.7

- Minor update

2.1.6

- Updated description

2.1.5

- Updated description

2.1.4

- Fixed an edge case which caused weirdness when the layup contained one section point
- Fixed a couple of crashes due to unassigned output
- Results output is now written to its own "output" folder by default

2.1.3

- Updated description

2.1.2

- Fixed a bug where output was sometimes missing at some plies when OUTPUT_PLY = 'MIDDLE'

2.1.1

- Pinpoint fix

2.1.0

- Fixed bug where stress/strain figures were not correctly aligned to ply boundaries
- Fixed bug where PARFOR was not included in optimiser code
- Improved optimiser output
- Updated description

2.0.2

- Updated description

2.0.1

- Updated description

2.0.0

- Added support for user-defined number of section points per ply (evenly distributes over the layup)
- Added stacking sequence optimiser tool which calculates the best layup stacking sequence based on the material data and load matrix
- Bug fixes

1.1.13

- Minor update

1.1.12

- Minor update

1.1.11

- Improved formatting of ABD matrix output

1.1.10

- Fixed a bug where certain layup definitions would incorrectly produce zero-valued elements in the ABD matrix

1.1.9

- Minor update

1.1.8

- Minor update

1.1.7

- Minor update

1.1.6

- Fixed a bug where the analysis would crash if OUTPUT_STRENGTH = true and there was no load
- Minor enhancements to output formatting

1.1.5

- Updated description
- Updated documentation

1.1.4

- Improved handling of stacking symmetry

1.1.3

- Minor update

1.1.2

- Minor update

1.1.1

- Minor improvement to failure measure output

1.1.0

- Fixed a bug where the program would crash when MATLAB figures are requested

1.0.7

- Minor update

1.0.6

- Minor update

1.0.5

- Updated documentation

1.0.4

- Updated description

1.0.3

- Small update

1.0.2

- Updated description

1.0.1

- Updated description

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.