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.

⏰ 9 h 9 min | 40 lessons
Published: November 2021
After completing this course...
You will have a deep understanding of the solution strategies employed for linear and non-linear MDoF analysis.
You will be able to model the influence of earthquake-induced ground motion and other dynamic loads on multi-storey structures.
You will develop numerical tools to solve the coupled equations of motion.
You will understand the role of modal decomposition in uncoupling the equations of motion and identifying the underlying dynamic characteristics of MDoF systems.

This course is for anyone who wants to understand multi-degree of freedom (MDoF) structural dynamics. The course is built around the theme of seismic analysis and determining the response of structures to earthquake-induced ground motion. In reality, that’s just one form of excitation; when you complete the course you’ll be able to handle ground motion as well as any kind of directly applied dynamic loads such as wind loading or blast pressure waves for example.

By the time you complete this course, you’ll have a toolbox full of dynamic analysis tools and the knowledge and confidence to apply them to your own projects.

10 storey building
Seismic response of a 10 storey building

The course culminates in you developing a code for analysing the response of multi-story structures to realistic ground motion. The final code will be capable of handling anything from a 2 to 200 storey shear building. More important than the code itself, is the fact that you’ll understand how and why every line of it works – meaning you’ll have no problem adapting it and further developing or customising it for your own use beyond this course.

Course prerequisites

In this course I’m going to assume that you have a good understanding of single degree of freedom (SDoF) structural dynamics – it would be unusual to take a course on multi-degree of freedom dynamics unless you’re already familiar and comfortable with SDoF systems.

Ideally, you will have taken my course Fundamentals of Engineering Structural Dynamics with Python. If you have, this course continues on from that one and you’ll have covered everything you need. If you haven’t studied SDoF dynamics or it’s been a long time and you need a refresher, start there first. You can get a bundle discount at the bottom of the page 🙂

Next, is the question of Python...

You DO NOT need to be a Python programming guru to take this course.

If you’ve taken the Fundamentals course mentioned above, or even if you’re just familiar with basic programming ideas like functions, loops and variables that will be plenty to get you started. Programming should not be a barrier to taking this course! Actually, taking this course is a pretty good way to get comfortable with Python programming.

We’ll develop our Python code using the versatile Jupyter development environment (check out the preview video below on getting your coding environment set up). When you complete this course you’ll have a range of standalone code notebooks to deploy on your own projects. The code developed within each section of the course is also provided for download as a reference.

Course Breakdown

Section 1: Welcome and Preliminaries

In this short introduction section, I’ll set out a roadmap for the course and give you a sense of what to expect. This will give you a good idea of what we’re going to cover during this course. I’ll also briefly comment on assumed prerequisite knowledge – in other words, what you should have covered before taking this course, and also what you don’t necessarily need to know.

Section 2: Introduction to ground motion modelling

This section starts by covering some of the fundamental topics in the context of SDoF systems. We’ll look at developing analytical solutions to harmonic ground motion before expanding to numerical solutions for realistic ground motion. The first section is focused on covering a number of core topics and plugging some gaps in our understanding of SDoF dynamics before moving on to multi-degree of freedom systems in the next section.

Section 3: Modelling Multi-DoF Dynamic Systems

In section 3 we introduce the multi-degree of freedom (MDoF) system and the shear building dynamic model. We discuss the coupled nature of MDoF systems that makes them a challenge to model. We’ll explore numerical solutions strategies by building our own DIY central difference algorithm and then implementing some off-the-shelf solution toolboxes.

Schematic of a multi-degree-of-freedom-system

Section 4: Modal Analysis and Decoupling the Equations of Motion

In section 4 we cover the most important topic in the course – modal analysis. We’ll spend plenty of time here making sure you understand concepts like mode shapes, orthogonality and what it means to uncouple the equations of motion. You’ll see that modal superposition as a solution strategy offers us major advantages over the direct integration we discussed in the previous section. By the end of this section, you’ll have a deep understanding of modal analysis and be comfortable implementing it.

Three fundamental modes of vibration for a three degree of freedom system

Section 5: Damping Orthogonality

In section 5 we deal with damping. We’ll see that the same uncoupling of the equations of motion we discussed in the previous section cannot be directly applied to the damping matrix. In this section, we’ll explore how to derive a damping matrix that provides predictable levels of damping in each vibration mode. This section is important as it equips you with two complete and equivalent solution strategies; direct integration and modal superposition. We’ll finish out this section by demonstrating the equivalence of both.

Section 6: Bringing it all together: N-storey response to earthquake ground motion

In the final section, we’ll take everything you’ve learned up to this point and build out the final capstone analysis code. At this point you’ll understand the theory and how it can be mapped into code – now we can emphasise coding efficiency and build a solution script that easily scales to larger numbers of degrees of freedom with no extra effort on our part.

Who this course is for

  • Students and professional engineers who’ve studied single-degree of freedom structural dynamics and want to expand to multi-degree of freedom structural dynamics.
  • Students and professional engineers who want to better understand how more complex structures respond to dynamic loading.
  • Anyone who wants to leverage programming as a tool for structural analysis or within their day-to-day study or work.

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
Introduction to ground motion modelling
4. Section 2 overview
03:53 (Preview)
5. Overview of earthquake ground motion 📂
6. Capturing the influence of ground motion 📂
7. Motion transmissibility and isolation 📂
8. Simulating ground motion response 📂
9. Realistic ground motion response 📂
10. Integrating ground acceleration
11. Introduction to response spectra 📂
Section 3
Modelling Multi-DoF Dynamic Systems
12. Section 3 overview
02:00 (Preview)
13. Introduction to MDoF systems
14. MDoF Equations of Motion
15. Direct integration of the coupled EoM
16. Solving the coupled EoM by direct integration 📂
17. Using SciPy’s ODEINT solver
Section 4
Modal Analysis and Decoupling the Equations of Motion
18. Section 4 overview
03:06 (Preview)
19. What is modal analysis and how does it help us?
20. Finding natural frequencies and mode shapes 📂
21. Matrix representation and the eigenproblem 📂
22. Modal matrix and mass normalisation 📂
23. Orthogonality and Decoupling Equations of Motion
24. Modal superposition - forced vibration 📂
25. Comparing modal superposition with direct integration - forced response
26. Visualising the forced vibration response
27. Modal superposition - free vibration 📂
28. Compare modal superposition with direct integration - free vibration
Section 5
Damping Orthogonality
29. Section 5 overview
03:02 (Preview)
30. Rayleigh damping
31. General determination of the damping matrix
32. Calculating the damping matrix 📂
33. Direct integration versus modal superposition for a damped system 📂
Section 6
Bringin it all together: N-storey response to earthquake ground motion
34. Section 6 overview
03:01 (Preview)
35. Equations of motion N-storey shear building 📂
36. Automating modal analysis for NDoF
37. Ground motion response using modal superposition
38. Base shear and overturning moments
39. Visualising the structural response for NDoF
40. Course wrap up and completion certificate
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?
The course is structured very systematically. The course content is explained in an understandable way and for me, as someone who is not a native speaker, in a very understandable English. My knowledge of programming with Pyton has improved significantly.
Bernhard Michels
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...
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.

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