Inverted pendulum : model without friction

Introduction

This post presents the model of an inverted pendulum. This device is composed of an activated trolley and a pendulum which has its center of mass above its pivot point.

InvertedPendulum

In this post, we will assume the following hypotheses:


  • m_1 is the mass of the trolley.

  • m_2 is the mass of the pendulum.

  • I_1 is the moment of inertia of the trolley.

  • I_2 is the moment of inertia of the pendulum.

  • L is the distance between the pivot and the center of mass of the pendulum.

  • \Theta is the angle of inclination of the pendulum.

  • x_1 and y_1 are the coordinates of the center of mass C_1 of the trolley .

  • \Theta_1 is the orientations of the trolley.

  • x_2 and y_2 are the coordinates of the center of mass C_2 of the pendulum.

  • \Theta_2 is the orientations of the pendulum.

The following notation will be used in this article to avoid too complex equations for the derivatives:

 \frac{d\Theta}{dt} = \dot{\Theta}

And for the second derivative:

 \frac{d^2\Theta}{dt^2} = \ddot{\Theta}

Constraints

As the trolley and the pendulum are linked by a pivot, the following equations can be written. This equations expresses the coordinate and orientation of each body of our system. For the trolley (body 1):

\begin{array}{r c l} x_1 &=& x_1 \\ y_1 &=& 0 \\ \Theta_1 &=& 0 \\\end{array}

For the pendulum (body 2):

\begin{array}{r c l} x_2 &=& x_1 - L.sin(\Theta)\\ y_2 &=& y_1 + L.cos(\Theta) &=& L.cos(\Theta)\\ \Theta_2 &=& \Theta\end{array}

Let’s define the vector \vec{q}, the position of our system :

 \vec{q}=\begin{pmatrix} x_1 \\ \Theta_2 \end{pmatrix}

Let’s define the constraints on position:

 \phi = \begin{pmatrix} y_1 \\ \Theta_1 \\ x_2 \\ y_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ x_1 - L.sin(\Theta) \\ L.cos(\Theta) \end{pmatrix}

Let’s calculate the constraints on velocity:

 \dot{\phi} = \begin{pmatrix} \dot{y_1} \\ \dot{\Theta_1} \\ \dot{x_2} \\ \dot{y_2} \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\  \dot{x_1} - L.\dot{\Theta_2}.cos(\Theta_2)  \\ -L.\dot{\Theta_2}.sin(\Theta_2) \end{pmatrix}

Let’s calculate the constraints on acceleration:

 \ddot{\phi} = \begin{pmatrix} \dot{y_1} \\ \ddot{\Theta_1} \\ \ddot{x_2} \\ \ddot{y_2} \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\  \ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) + L.\dot{\Theta_2}^2.sin(\Theta_2) \\ -L.\ddot{\Theta_2}.sin(\Theta_2) - L.\dot{\Theta_2}^2.cos(\Theta_2) \end{pmatrix}

Dynamics

The fundamental principle of dynamics can be apply to our system. For the trolley (body 1):

\begin{array}{r c l} m_1.{a_1}^x = m_1.\ddot{x_1}&=& \| \vec{F_t} \| + \lambda_1 \\ m_1.{a_1}^y = m_1.\ddot{y_1}&=& 0 + \lambda_2 \\ I_1.\ddot{\Theta_1} &=& 0 + \lambda_3 \\\end{array}

For the pendulum (body 2):

\begin{array}{r c l} m_2.{a_2}^x = m_2.\ddot{x_2} &=& 0 + \lambda_4 \\  m_2.{a_2}^y = m_2.\ddot{y_2} &=& \| \vec{F_g} \| + \lambda_5 = -g.m_2 + \lambda_5\\ I_2.\ddot{\Theta_2} &=& 0 + \lambda_6 \\\end{array}

Where \lambda_1, \lambda_2,\lambda_3,\lambda_4,\lambda_5 and \lambda_6 are the Lagrange’s coefficients. These coefficients represent the interaction between bodies. In the present system, this is the interaction between the pendulum and the trolley.

Interactions

We will now solve the system in order to eliminate the interactions between bodies (\lambda_i). It is proven that:

 M.\ddot{q} = F - \frac{d\phi}{dq}^\top .\Lambda

Where :

 M=\begin{pmatrix} m_1 & 0 \\ 0 & I_2 \end{pmatrix}
 \ddot{q}=\begin{pmatrix} \ddot{x_1} \\ \ddot{\Theta_2} \end{pmatrix}
 F=\begin{pmatrix} \| \vec{F_t} \|  \\ 0 \end{pmatrix}
 \frac{d\phi}{dq} = \begin{pmatrix} \frac{dy_1}{dx1} & \frac{dy_1}{d\Theta_2} \\\frac{d\Theta_1}{dx1} & \frac{d\Theta_1}{d\Theta_2} \\\frac{dx_2}{dx1} & \frac{dx_2}{d\Theta_2} \\\frac{dy_2}{dx1} & \frac{dy_2}{d\Theta_2} \end{pmatrix} =\begin{pmatrix}0 & 0 \\0 & 0 \\1 & -L.cos(\Theta_2) \\0 & -L.sin(\Theta_2)\end{pmatrix}
 \Lambda=\begin{pmatrix} \lambda2 \\ \lambda3 \\ \lambda4 \\ \lambda5 \end{pmatrix}

Applied to our system, this gives:

\begin{pmatrix} m_1 & 0 \\ 0 & I_2 \end{pmatrix} .\begin{pmatrix} \ddot{x_1} \\ \ddot{\Theta_2} \end{pmatrix} =\begin{pmatrix} \| \vec{F_t} \|  \\ 0 \end{pmatrix} -\begin{pmatrix} 0 & 0 & 1 & 0 \\ 0 & 0 & -L.cos(\Theta_2) & -L.sin(\Theta_2) \end{pmatrix} .\begin{pmatrix} \lambda2 \\ \lambda3 \\ \lambda4 \\ \lambda5 \end{pmatrix}

and:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -\lambda4 \\I_2.\ddot{\Theta_2} &=& \lambda4.L.cos(\Theta_2) + \lambda5.L.sin(\Theta_2)\end{array}

Solving the system

Based on the previous equations, we can formulate \lambda_4 and \lambda_5:

\begin{array}{r c l}\lambda_4 &=& m_2.\ddot{x_2} \\\lambda_5 &=& m_2.\ddot{y_2} + g.m_2 \\\end{array}

The previous equations become:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -m_2.\ddot{x_2} \\I_2.\ddot{\Theta_2} &=& m_2.\ddot{x_2}.L.cos(\Theta_2) + (m_2.\ddot{y_2} + g.m_2).L.sin(\Theta_2)\end{array}

Thanks to the previous constraints on acceleration:

\begin{array}{r c l}m_1.\ddot{x_1} &=& \| \vec{F_t} \| -m_2.(\ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) - L.\dot{\Theta_2}^2.sin(\Theta_2) ) \\I_2.\ddot{\Theta_2} &=& m_2.(\ddot{x_1} - L.\ddot{\Theta_2}.cos(\Theta_2) + L.\dot{\Theta_2}^2.sin(\Theta_2) ).L.cos(\Theta_2) + (m_2.(-L.\ddot{\Theta_2}.sin(\Theta_2) - L.\dot{\Theta_2}^2.cos(\Theta_2)) + g.m_2).L.sin(\Theta_2)\end{array}

Rewriting the previous equation gives us:

\begin{array}{r c l}(m_1+m_2).\ddot{x_1} &-& m_2.L.cos(\Theta_2).\ddot{\Theta_2} &=& \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\-m_2.L.cos(\Theta_2).\ddot{x_1} &+& (I_2+ m_2.L^2).\ddot{\Theta_2} &=& m_2.g.L.sin(\Theta_2)\end{array}

And:

\begin{pmatrix} m_1+m_2 & - m_2.L.cos(\Theta_2) \\-m_2.L.cos(\Theta_2) & (I_2+ m_2.L^2)\end{pmatrix} . \ddot{q} =\begin{pmatrix} \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\ m_2.g.L.sin(\Theta_2)\end{pmatrix}

The general equation of the system is:

\ddot{q}=A^{-1}.B

Where:

A=\begin{pmatrix} m_1+m_2 & - m_2.L.cos(\Theta_2) \\-m_2.L.cos(\Theta_2) & (I_2+ m_2.L^2)\end{pmatrix}
B= \begin{pmatrix} \| \vec{F_t} \| - m_2.L.\dot{\Theta_2}^2.sin(\Theta_2) \\ m_2.g.L.sin(\Theta_2)\end{pmatrix}

State space representation

Based on the previous result, it is now possible to write the state space model of the system. Let’s define X the state of the system:

X=\begin{pmatrix} x_1 \\ \Theta_2 \\ \dot{x_1} \\ \dot{\Theta_2} \end{pmatrix}

The state space representation is:

\dot{X}=\begin{pmatrix} \dot{x_1} \\ \dot{\Theta_2} \\ \left[A^{-1}.B\right] \end{pmatrix}

Acknowledgements

I want to thank Sébastien Lagrange from the University of Angers for his help and explanations.

Leave a Reply

Your email address will not be published. Required fields are marked *