The purpose of this project is to learn techniques of solving linear systems and create an object-oriented matrix structural analysis program within Microsoft Excel using VBA and to gain a better understanding of how commercial analysis software works. Excel was chosen as the platform for this project because many structural engineers use it in practice.
The program currently solves truss structures using the direct stiffness method.
Input:
Output:
Drawing:
The ultimate goal is to create a simple structural analysis engine that uses the direct stiffness method to solve plane and space trusses and frames, that can be extended through proper use of object-oriented concepts.
- Matrix and vector classes (Dense and Sparse)
- Simultaneous equation algorithms (Gaussian Elimination and Cholesky Decomposition)
- Element classes for defining member stiffness matrices
- Structural material library (AASHTO and ASTM)
- Rolled structural shape library (AISC shapes)
- Global stiffness matrix assembly algorithm
- Structural system input
- Analysis output
The VBA editor is notorious for being out of date with its features and not user friendly for larger scale projects with many modules and class modules. The Rubberduck VBA Add-In is recommended to aid in module organization and is required to run the units tests in this project.
- Newton Excel Bach - Great reference for structural engineering spreadsheets.
- Rubberduck VBA Blog - The Rubberduck VBA blog has some great entries regarding object-oriented design using VBA.
- Matrix Structural Analysis, 2nd Edition [McGuire, Gallagher, and Ziemian] - Textbook available through the MASTAN2 website as a free PDF download.
- MASTAN2 - Free structural analysis program written in MATLAB that is based on the analysis as presented in the Matrix Structural Analysis, 2nd Edition text.
- Finite Element Procedures, 2nd Edition [Bathe] - Textbook on the finite element method that has details for the implementation of global stiffness matrix assembly. Available as a free PDF download.