Quadcopter Kinematics and System Dynamics

Introduction

At first glance, the mathematics and physics needed to model a quad-rotor can be quite discouraging especially if you have never taken a Linear Algebra or Calculus class. I’ll admit, modelling a quad-rotor is by no means an easy undertaking but it is doable and very satisfying once you successfully derive all the equations. In this blog post I will do my best to boil down the key concepts so that they are more palatable. However it is assumed that you have some knowledge of differential equations.

Motivation

When Dealing with a complex dynamic system it is often necessary to simulate the system before physically building it. Doing so will help you better understand how your system behaves under various conditions.

For you to simulate a dynamic system you first need to formulate a model that encapsulates information about all the forces that interact with the system and how they interact with the system. To formulate the model it is very important to go back to first-principles and work your way upwards.

Let’s get into it

Forces in action

The characteristic curves presented in figure-1 show that the relationship between thrust (F) and rotor speed( ω) is approximately quadratic. In figure-1,  drag-momentum and thrust are shown to be directly proportional to the square of angular velocity. The constants of proportionality eqn (20) and eqn (21) can be derived experimentally, these two quantities  vary  depending on the motor & propeller combination.

rotor physics

figure 1

Inertial-and-body-fixed-frame-of-quadrotor.png
figure 2 (Illustrated By : Peter Hubinský)

In the illustration shown above, we can clearly see that the torque generated by motors 1,2,3 and 4 results in the generation of thrust. The thrust generated by the quad-rotor’s motors is parallel but opposite in direction to the quad-rotor’s weight. The interaction of these forces is captured in equation-1 as shown below.

eqn (5).png
equation-1

In figure-1 the relationship between rotor-speed and thrust is shown to be approximately quadratic.  Equation-2 captures the empirically deduced relationship between these two quantities.

As previously stated, the constant of proportionality  eqn (20) can be derived experimentally. The details of the experimental setup needed to derive this quantity will be outlined in a later blog-post.

eqn (6)
equation-2

Substituting equation-2 into equation-1 yields equation-3 as shown below

eqn (7)
 equation -3

When the system is in a state of mechanical-equilibrium i.e hovering at a fixed altitude above the ground , each motor produces thrust that is equivalent to 1/4 of the quad-rotor’s total weight. This is mathematically expressed in equation-4.

eqn (2)

 

                                                                                                                                                                                                   equation-4

Given equations 5 and 6, it is now undeniably clear that the quad-rotor will never take-off if the total thrust produced is less than or equal to the quad-rotor’s total weight.

note: The negative sign on the right hand side is used to show that the weight of the quad-rotor is a vector that acts in the opposite direction to the force applied by the motors’ thrust.

eqn (3)

                                                                                                                                                                                                equation-5

The culmination of all the derivations performed is a simplistic equation that offers a glimpse into the way that thrust and weight interact in the context of a quad-rotor.

eqn (1).png

                                                                                                                                                                                                  equation-6

In the next post, feedback control will be discussed in a 2 dimensional context but in later posts this will be extended to 3 dimensions.  I chose to do it this way because I want to break everything down as much as possible for all my readers who want to get down to the nitty-gritty details of quad-rotor control and dynamics.

 

Previous Posts in this series

https://saucy-code.com/2019/05/15/the-engineering-method/

https://saucy-code.com/2019/05/15/autonomous-quad-copter-project-announcement/

The Engineering Method

As a young engineer who aspires to one day lead a team of Engineers my goal is to imbue all the traits and habits of a world class Engineer. Having said that, you will notice that most of my projects on this platform will have a strong emphasis on methodology and in some cases I may even publish a white paper as an extension to my writings here on this blog

The Engineering method in my opinion is a beautifully thought-out way to get from idea to product and get it right 100 % of the time.  Often times, there are scenarios where people will try to cut corners during the development of a new product. In most cases, this problem is a consequence of  unrealistic targets set by management.  However,  If the events of recent times have  taught us anything about product development,  it’s that you lose more by racing a product to market.  When I say this, I speak of  Boeing’s malfunctioning Auto-Pilot and Samsung’s disastrous foldable phone  as well as their exploding batteries in 2016.

In my honest opinion I do not think this is a matter of incompetence because both companies are world class companies that have made huge strides in their respective fields. I personally blame it on complacency and unrealistic targets set by management.  If management  had enforced a standard methodology and stuck to it, these two companies would be in a more favorable situation than they are right now.

The Engineering Method in Context


Capture
     Figure 1

The Engineering Method can be broken down into 6 main phases or stages as shown above in Figure-1. Each phase is only as effective as the execution of its preceding phase  so great care must be taken especially when transitioning from one phase to the next.

Using the Engineering Method as a reference I will attempt to formulate a methodology and workflow by breaking down my Autonomous Drone project into smaller tasks.

The Problem

I want to design a Quad-copter that can navigate indoor spaces as well as outdoor spaces in order to get from point A to Point B. The Quad-copter must be able to  avoid obstacles and recover relatively quickly  when disturbances are introduced.  I have formulated a very quick workflow to help me break down the tasks at hand into multiple smaller tasks.

Tailored Workflow  For Autonomous Drone Project

 

Capture.PNG

The end result is  a highly efficient and logical workflow that anyone can replicate. This will allow me to  better estimate the effort and time needed to complete the project.

The next couple of posts will act as the prelude to stage 4, in them I will breakdown the kinematics and system dynamics of quad-rotors into a more palatable format. Now would be the best point in the series to go and brush up on your linear algebra. In Phase-4 I will also attempt to model and simulate the quad-rotor. Presently I am sold on the idea of using Matlab to do this but I may try to also find some open source tools to help me achieve this. Or I may do both, we’ll have to wait and see.

In phase-5 I will choose my target hardware based on the system design done in phase-4. Without a doubt, the best language to use for the implementation of the quad-rotor’s control system is C and possibly C++ as well. This is due to the fact that C and C++ are synonymous with real time performance. At the end of phase-5  I will attempt to design and manufacture a PCB that others can purchase or use as a reference design to help them get started with quad-rotor development.

Lastly in stage 6 I will perform some Factory Acceptance tests (FAT). In a real engineering setting, this is the last line of defense that engineers use to ensure the product is suitable for release.

Autonomous Quad-copter Project Announcement

My first major project on this blog is going to be a very challenging one because I will attempt to design and build an autonomous quad-copter from start to finish. My approach is going to take a slightly different route than most DIY bloggers who have documented their DIY Quadcopter builds.

What makes my project unique is the fact that my approach is going to strictly follow ” The Engineering Method” and I will heavily rely on first principles during the design stage so many of my posts will contain a high level of math and physics. 

For those of you who are not familiar with the Engineering Method I will follow up this post with a post on The Engineering Method very soon. I don’t think attempting to explain this  workflow in a few sentences will do much justice to it because there is so much to talk about.

As this blog matures, my hope is to follow up every new post with a related post within 48 hours at the very latest. The follow up content will be provided as a url located at the foot of the page.

To help you stay updated I will also post links to my new posts on the Facebook, Instagram, LinkedIn, Reddit and Twitter pages for this blog. Moreover, I will also upload videos as an extension to the blog posts so keep your eyes peeled for that as well.

If you have any queries or are confused about anything please don’t hesitate to let me know via the comment section. I will always endeavor to respond to all your feedback, comments, suggestions or inquiries.  I also welcome those of you that may be interested in collaborating with me on my projects as this platform matures.

Here is the promised article on “The Engineering Method”, this post also serves as the prelude to my series  “Designing an autonomous Quad-copter “. https://saucy-code.com/2019/05/15/the-engineering-method/