I am working on modeling the vibrations of a quad rotor. The arms that support the rotors are fixed to a center plate; that is, it is pretty much a cantilever beam with an end load. Since this is the case, $m_{eq} = m_{arm} + \frac{m_{motor}}{3}$ and $k_{eq} = \frac{3EI}{\ell^3}$ where $E$ is Young's modulus and $I$ is the moment of inertia of the beam, $I = \frac{bh^3}{12}$. The motors are 880 rpm/Kv and the mass of the whole system is denoted $m_t$. \begin{align} m_{eq}\ddot{x}_1 + k_{eq}x_1 + c\dot{x}_1 &= F_1(t)\\ m_{eq}\ddot{x}_2 + k_{eq}x_2 + c\dot{x}_2 &= F_2(t)\\ m_{eq}\ddot{x}_3 + k_{eq}x_3 + c\dot{x}_3 &= F_3(t)\\ m_{eq}\ddot{x}_4 + k_{eq}x_4 + c\dot{x}_4 &= F_4(t) \end{align} The equations above are the equations of motion for the four arms and rotors. My intention is to determine a damping constant that will dissipate the most of the damping so a video can be taking without the jell-o affect.

  1. What would be the EOM for the entire system? $$ m_t\ddot{x}_5 = \mbox{???} $$
  2. Is it possible to determine a theoretical forcing function for the given motor?
  3. How would I go about determining the damping constants? Would they be the same for each arm?

If you need a visual aid, it looks similar to this:

enter image description here


I am viewing the arms as cantilever beams and $z$ is being used as the displacement of the body connected to the arms.

\begin{align} m_{eq}\ddot{y}_1 &= k_{eq}(z - y_1) + c(\dot{z} - \dot{y}_1) - m_{eq}y_1 + F_1(t)\\ m_{eq}\ddot{y}_2 &= k_{eq}(z - y_2) + c(\dot{z} - \dot{y}_2) - m_{eq}y_2 + F_2(t)\\ m_{eq}\ddot{y}_3 &= k_{eq}(z - y_3) + c(\dot{z} - \dot{y}_3) - m_{eq}y_3 + F_3(t)\\ m_{eq}\ddot{y}_4 &= k_{eq}(z - y_4) + c(\dot{z} - \dot{y}_4) - m_{eq}y_4 + F_4(t)\\ m_b\ddot{z} &= \sum_i\bigl[F_i(t) + k_{eq}(y_i - z) + c(\dot{y}_i - \dot{z})\bigr] - m_bz\\ m_t\ddot{y}_5 &= \sum_iF_i(t)\tag{quadrotor displacement}\\ COM &= \frac{m_bz + \sum_im_{eq}y_i}{m_t}\tag{constraint equation} \end{align}

  • $\begingroup$ @Qmechanic this isn't a homework question and if possible, Lagrangian mechanics will be used to solve it so the tag classical fits. $\endgroup$
    – dustin
    Nov 19, 2014 at 15:33
  • $\begingroup$ Hi dustin. If you haven't already done so, please take a minute to read the definition of when to use the homework-and-exercises tag, and the Phys.SE policy for homework-like problems. $\endgroup$
    – Qmechanic
    Nov 19, 2014 at 15:41
  • $\begingroup$ You basically want to capture the dynamics of each of the four arms. For this you can measure the frequency response function/transfer function between input, $F_i(t)$, and output $x_i(t)$. This method also allows you to fit the masses and stiffness of each arm instead of relying on theoretically calculated values. $\endgroup$
    – fibonatic
    Dec 7, 2014 at 4:14
  • $\begingroup$ @fibonatic can you post an answer with a longer explanation? Also, can you speak to my equations? Do they look correct (the edited ones)? $\endgroup$
    – dustin
    Dec 7, 2014 at 4:57
  • $\begingroup$ @dustin I am not really an expert in this field, I personally have only worked with single input, single output, so I would not be able to give a complete answer. You might get a better answer at robotics.stackexchange.com. Also I am not certain if trying to compensate for the dynamics of the arms will remove the jell-o affect, since for instance you will also experience turbulent airflow. I think it might be better to add stabilization between the camera and the frame. $\endgroup$
    – fibonatic
    Dec 7, 2014 at 14:23

2 Answers 2


1) Assuming your coordinates are the motions of the ends of the arms, the equations as you've written them don't allow for any center of mass motion, or at any rate any COM acceleration. Let the center-of-mass coordinates of the arm be located a fraction $a$ of the arm length $l$ from the pivot point. For each arm you have:

$$m_\mathrm{arm}(a\ddot{x}_1 + (1-a)\ddot{x}_5) + \frac{I_{arm1}}{l^2}(\ddot{x}_1 - \ddot{x}_5)+ k_{eq}(x_1-x_5)+c(\dot{x}_1-\dot{x}_5)=F_1(t)$$

where $x_5$ is the coordinates of the body. Good old Newtonian summation relates $x_5$ to net force on the joints:

$$m_\mathrm{center} \ddot{x}_5=-\sum_i k_{eq}(x_i-x_5)+c(\dot{x}_i-\dot{x}_5)$$

2) Outside my area of expertise, someone else will have to answer it. I imagine that the relevant part for you would take the form of a noise, but I can't tell you more.

3) The usual approach is to Fourier transform. However, since the forces are stochastic and you are really interested in $\langle x_5^2 \rangle$, this is more complicated than the normal "replace derivatives with $i\omega$" operation. This post may give you some useful leads. I doubt that you will find a value or set of values for $c$ that will minimize the response to a flat distribution for $F(\omega)$. If $\langle F(\omega) \rangle$ is peaked at a given value, you may be able to suppress oscillations at that value. For example, if you assume each force is just a simple oscillation at $\omega_{rotor}$ with a random phase offset, Fourier transformation and linear algebra will tell you what $c$ minimizes $x_5(\omega_{rotor})$.

  • $\begingroup$ With the first ODE, isn't that saying $x_5$ is the center of body not the center of mass? Then the last equation wont show COM that will move with respect to the center of body. $\endgroup$
    – dustin
    Dec 5, 2014 at 17:42
  • $\begingroup$ You're right, and I did not pay enough attention to the inertial terms. Does that look better? $\endgroup$
    – user27118
    Dec 6, 2014 at 23:59
  • $\begingroup$ I cam with a different set of equations. I will post it for you too see. $\endgroup$
    – dustin
    Dec 7, 2014 at 0:07
  • $\begingroup$ Also, I have added in a gravity term. $\endgroup$
    – dustin
    Dec 7, 2014 at 0:10

From user27118, I was able to grasp a better understanding of what needed to be done to set up the system of ODEs: \begin{alignat}{2} m_{eq}\ddot{y}_1 &= k_{eq}(z - y_1) + c(\dot{z} - \dot{y}_1) - m_{eq}gy_1 + F_1(t)\\ m_{eq}\ddot{y}_2 &= k_{eq}(z - y_2) + c(\dot{z} - \dot{y}_2) - m_{eq}gy_2 + F_2(t)\\ m_{eq}\ddot{y}_3 &= k_{eq}(z - y_3) + c(\dot{z} - \dot{y}_3) - m_{eq}gy_3 + F_3(t)\\ m_{eq}\ddot{y}_4 &= k_{eq}(z - y_4) + c(\dot{z} - \dot{y}_4) - m_{eq}gy_4 + F_4(t)\\ m_b\ddot{z} &= \sum_i\bigl[F_i(t) + k_{eq}(y_i - z) + c(\dot{y}_i - \dot{z})\bigr] - m_bgz &&{}= 0\\ y_5 &= \frac{m_bz + \sum_im_{eq}y_i}{m_t} &&{}= 0 \end{alignat} where I am using $z$ to denote the displacement of the body of the quad rotor. Using the last equations, we obtain: \begin{align} m_{eq}\sum_i\ddot{y}_i &= \frac{m_b + 4m_{eq}}{m_b}\Bigl[\sum_ic\dot{y}_i + k_{eq}y_i\Bigr] + gm_{eq}\sum_iy_i + \sum_iF_i(t)\\ m_{eq}\ddot{y}_i &= k_{eq}\Bigl[y_i + \frac{m_{eq}}{m_b}\sum_jy_j\Bigr] + c\Bigl[\dot{y}_i + \frac{m_{eq}}{m_b}\sum_j\dot{y}_j\Bigr] - m_{eq}gy_i + F_i(t) \end{align} which leads to \begin{align} m_{eq}\ddot{y}_1 &= k_{eq}\Bigl[y_1 + \frac{m_{eq}}{m_b}\sum_jy_j\Bigr] + c\Bigl[\dot{y}_1 + \frac{m_{eq}}{m_b}\sum_j\dot{y}_j\Bigr] - m_{eq}gy_1 + F_1(t)\\ m_{eq}\ddot{y}_2 &= k_{eq}\Bigl[y_2 + \frac{m_{eq}}{m_b}\sum_jy_j\Bigr] + c\Bigl[\dot{y}_2 + \frac{m_{eq}}{m_b}\sum_j\dot{y}_j\Bigr] - m_{eq}gy_2 + F_2(t)\\ m_{eq}\ddot{y}_3 &= k_{eq}\Bigl[y_3 + \frac{m_{eq}}{m_b}\sum_jy_j\Bigr] + c\Bigl[\dot{y}_3 + \frac{m_{eq}}{m_b}\sum_j\dot{y}_j\Bigr] - m_{eq}gy_3 + F_3(t)\\ m_{eq}\ddot{y}_4 &= k_{eq}\Bigl[y_4 + \frac{m_{eq}}{m_b}\sum_jy_j\Bigr] + c\Bigl[\dot{y}_4 + \frac{m_{eq}}{m_b}\sum_j\dot{y}_j\Bigr] - m_{eq}gy_4 + F_4(t) \end{align}

  • $\begingroup$ I don't think you can simply use $m_{eq}\ddot{y_i}$; the arm can both rotate and translate independently, so you will must have one inertial term that looks like $\ddot{y_i}$ and one that goes like $\ddot{y_i}-\ddot{z}$. If $z$ is the motion of the body, you also can't apply the rotor forces $F_i$ directly to it. It only experiences the forces supplied at the pivot points by the harmonic and damping terms. $\endgroup$
    – user27118
    Dec 17, 2014 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.