Fundamentals of Engineering Structural Dynamics with Python

Fundamentals of Engineering Structural Dynamics with Python

Leverage fundamental structural dynamics to build your own flexible numerical solutions in Python.

⏰ 7 h 14 min | 35 lessons
Published: July 2020, (updated 2 years ago)
After completing this course...
You’ll learn what separates a static analysis from a dynamic analysis and the key role of inertia.
You’ll learn how to model the influence of harmonic loading and how to characterise the transient and steady-state responses.
You’ll learn how to model dynamic behaviour using spring-mass-damper models and how to simulate free vibration behaviour.
You’ll learn how to use Python to implement the Piecewise Exact Method to model any form of general dynamic loading.

This course has two simple objectives:

  • To help you build a solid understanding of the core concepts in structural dynamics.
  • To equip you with some practical tools you can deploy to analyse real world dynamic structural behaviour.

Structural dynamics is a topic that often intimidates students and practising engineers. This can be a big problem because not having a good grounding in dynamics, means you can’t confidently simulate, understand and ultimately design for dynamic behaviour. From bridges, to skyscrapers, as engineers, we need to be confident modelling the impact of dynamic loads on our structures. If you’ve tended to shy away from dynamics or found it confusing and intimidating, this course is for you.

We’ll make use of Python throughout the course, but more so towards the second half. This is a hands on, learn by doing course – so there are no dry Python-only lectures, if you’re not familiar with Python – no problem, you’re going to learn what you need as we go…the same way most people learn to programme! This isn’t a ‘Learn Python’ course but you will learn the Python you need, along the way.

Course Breakdown

Section 1 – Statics versus Dynamics

In section one, we’ll get your coding environment set up. We’ll be using Jupyter Notebooks. These are a hugely popular development environment used throughout science and engineering. This will allow us to get up and running with Python quickly.

After some initial housekeeping we’ll start to discuss the idea of statics versus dynamics and just what makes for a dynamic problem. This will lead us into a brief discussion of inertia. After completing this section you’ll know what differentiates a dynamic problem from a static one and when a dynamic analysis is called for.

Section 2 – Free Vibration of Single Degree of Freedom Systems

In this section we’re going to lay a lot of the groundwork and tackle much of the core theory in structural dynamics. We start by exploring lumped mass analysis and introduce the spring mass damper model. You can think of the spring mass damper model as a fundamental tool used to simulate dynamic behaviour.

We’ll spend the rest of this section examining the characteristics of the spring mass damper model and it’s free vibration behaviour. We’ll cover core concepts along the way such as natural frequency, damping regimes and the logarithmic decrement. We’ll finish out the section with some numerical worked examples and take our first dive into using Jupyter Notebooks.

Section 3 – Harmonic Excitation

This section it about understanding what happens when we introduce an external dynamic force to the system. In particular we’re going to focus on harmonic excitation. We’ll discuss why harmonic excitation is such a key phenomenon to understand and its broader relevance in dynamic analysis.

We’ll develop our understanding of transient and steady-state behaviour. We’ll then go on to characterise the steady-state behaviour and introduce the ideas of dynamic magnification factor and resonance. We’ll finish out this section with a pretty in-depth worked example that will demonstrate exactly how to practically implement everything you’ve learned in the course so far. Again, we’ll be doing this using Jupyter notebooks so you’ll get more exposure to implementing what you’ve learned in Python.

Section 4 – General Dynamic Loading

At this point we’re going to really focus in on giving you some tools to actually perform practical real-world dynamic analyses. We’ll start of by motivating our study of general dynamic loading with a brief case study discussion of human-induced vibration on the Clifton Suspension Bridge in Bristol. This case study highlights the need to have a more versatile dynamic analysis technique in your toolbox

That technique is the Piecewise Exact numerical solution method. This is a hugely versatile numerical solution technique that will equip you with the ability to go beyond harmonic excitation and simulate the influence of any time varying force. We’ll develop the concept, then implement an algorithm in a Jupyter Notebook. The power and versatility of studying structural dynamics in a coding environment will be very apparent in this section. We’ll conclude this section by exploring some of the practical considerations when implementing this and any numerical solution technique.

Who this course is for

  • Undergraduate engineering students who want to get up to speed with structural dynamics
  • Students who’ve studied structural dynamics but got lost along the way
  • Working engineers who are a little rustier than they’d like to admit on dynamics
  • Engineers and students who want to see how they can leverage Python in their work
  • Engineers and students who want a practical technique to analyse realistic dynamic loads

The codes developed in this course are for educational purposes only and are not tested or certified for use beyond the educational scope of this course. Always employ your own engineering judgement first and foremost, regardless of what the computer says!

Section 2
Free Vibration of Single-Degree-of-Freedom Systems
7. Section 2 overview
8. Lumped mass analysis
9. The spring-mass-damper model
10. The equation of motion
11. Undamped free vibration
12. Natural frequency
13. Damped free vibration
14. Critically-damped and over-damped systems
15. Under-damped systems
16. Damped natural frequency
17. Logarithmic decrement
18. Worked Example #1 📂
19. Worked Example #2 📂
Section 3
Harmonic Excitation
20. Section 3 overview
21. Harmonic forcing
22. Solving the equation of motion
23. Characterising the steady-state response
24. Dynamic magnification factor and resonance 📂
25. Worked Example #3 - Part A 📂
26. Worked Example #3 - Part B
27. Worked Example #3 - Part C
Section 4
General Dynamic Excitation
28. Section 4 overview
29. General dynamic loading and feedback
11:48 (Preview)
30. The Piecewise-Exact Method - concept
31. The Piecewise-Exact Method - development 📂
32. Implementing the Piecewise-Exact Method 📂
33. Force segmentation 📂
34. Time discretisation 📂
35. Course wrap up
Completion certificate
Completion certificate
  • Download your personalised Certificate of Completion once you’ve finished all course lectures.

  • Applying for jobs? Use your Certificate of Completion to show prospective employers what you’ve been doing to improve your capabilities.

  • Independently completing an online course is an achievement. Let people know about it by posting your Certificate of Completion on your Linkedin profile or workplace CPD portfolio.

Ready to get started?
Love the course so far, well thought through and explained. Thoroughly recommended this to anyone considering this course!
Iain Crawford
Dr Seán Carroll
BEng (Hons), MSc, PhD, CEng MIEI, FHEA
Hi, I’m Seán, the founder of (formerly I hope you found this tutorial helpful. After spending 10 years as a university lecturer in structural engineering, I started this site to help more people understand engineering and get as much enjoyment from studying it as I do. Feel free to get in touch or follow me on any of the social accounts.

Do you have some knowledge or expertise you'd like to share with the EngineeringSkills community?
Check out our guest writer programme - we pay for every article we publish.
You Might Also be Interested In...
Multi-Degree of Freedom Dynamics, Modal Analysis and Seismic Response Simulation in Python
Multi-Degree of Freedom Dynamics, Modal Analysis and Seismic Response Simulation in Python
Build the knowledge and tools to decode the dynamic response of real-world structures to real-world loads.

The Structural Dynamics Course Bundle

Unlock the world of structural dynamics and bring it to life with Python.

  • Fundamentals of Engineering Structural Dynamics with Python
  • Multi-Degree of Freedom Dynamics, Modal Analysis and Seismic Response Simulation in Python

Frequently asked questions