# 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.

- 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.

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.

### 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.

### 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!*

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.

## 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