This project demonstrates a complete, Python-driven workflow for extracting and visualizing natural frequencies and mode shapes from an Abaqus Finite Element model. The primary application is for establishing a dynamic baseline of a structure for vibration-based Structural Health Monitoring (SHM).
The project also highlights a realistic debugging process required to overcome discrepancies between geometric assumptions and the actual FE mesh.
- Automated Data Extraction: A Python script using the Abaqus
odbAccessAPI to programmatically read modal analysis results. - Evidence-Based Node Selection: A robust data filtering method to extract mode shapes along a precise path on a complex mesh, correcting for discrepancies between geometric design and final mesh coordinates.
- Data Processing: Cleanly formats and saves raw data (frequencies, mode shapes) into machine-readable
.txtfiles. - Professional Visualization: A second Python script using
MatplotlibandNumpyto generate high-quality, publication-ready plots.
The workflow was applied to a 3D FE model of a simply supported steel beam. The first three primary bending modes were extracted and plotted.
The process consists of two main scripts:
extract_modal_data.py: This script is run using the Abaqus Python interpreter. It accesses the.odboutput file, extracts the natural frequencies and nodal displacements for each mode shape, and saves the data.plot_modes.py: This is a standard Python script that reads the.txtfiles generated by the first script. It usesMatplotlibto create and save the final plots.
The Finite Element model was created in Abaqus/CAE and is based on the experimental work of Tan et al. [https://www.sciencedirect.com/science/article/abs/pii/S1350630717300523].
- Structure: Simply Supported Steel I-Beam
- Dimensions: Length: 3m, Height: 150mm, Flange/Web Thickness: 7mm/5mm
- Material Properties (Isotropic Steel):
- Young's Modulus: 175 GPa
- Poisson's Ratio: 0.3
- Density: 7850 kg/m³
- Element Type: 8-node linear brick with reduced integration (C3D8R)
- Run the modal analysis in Abaqus/CAE to generate the
.odbfile. - Run the extraction script using the Abaqus execution environment:
abaqus python extract_modal_data.py. - Run the plotting script using a standard Python environment with
numpyandmatplotlibinstalled:python plot_modes.py.
This foundational workflow can be extended for advanced SHM research:
- Automated Damage Simulation: Parameterize the introduction of damage (e.g., local stiffness reduction) into the FE model and automatically re-run this workflow to build a comprehensive dataset of healthy vs. damaged states.
- Feature Engineering: Implement algorithms to calculate damage-sensitive features from the modal data, such as the Modal Assurance Criterion (MAC), Mode Shape Curvature (MSC), and Modal Flexibility.
- AI/ML Integration: Use the generated datasets to train machine learning models (e.g., ANNs, CNNs) for automated damage detection, localization, and quantification.



