Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Systems of second order ODE's

  1. May 24, 2005 #1
    Hello. First post here.

    I'm trying to write a program (from scratch) to simulate a double inverted pendulum (a cart with 2 pendulums one on top of the other). The system is modelled with a system of 3 second order ODE's, which I need to solve numerically using Runge Kutta. I know how to solve a system of first order ODE's numerically but not a system of second order ODE's. The equations are shown in this paper (there's no point in me re-writing them here):

    http://www.tf.uni-kiel.de/etech/ART/paper/2001/ieee_cca_isic_zhong.pdf [Broken]
    (equations 4 to 6)

    So can anyone tell me how to go about solving this initial value problem numerically? I have looked in many books but can only find examples of systems of first order equations and single second order equations.


    Peter Bone
    Last edited by a moderator: May 2, 2017
  2. jcsd
  3. May 24, 2005 #2


    User Avatar
    Science Advisor

    Each second order differential equation is equivalent to two first order equations so you could write this system as six first order equations.
  4. May 24, 2005 #3
    Thanks, but I don't know how to go about reducing the order of coupled differential equations because the 3 unkown variables x, theta1 and theta2 all appear in the same equations.
  5. May 24, 2005 #4


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member
    Dearly Missed

    Suppose you've got a second order diff.eq system:
    [tex]\frac{d^{2}\vec{Y}}{dt^{2}}=\vec{F}(y_{1},..y_{n},\dot{y}_{1},....,\dot{y}_{n},t), \vec{Y}(t)=(y_{1}(t),....,y_{n}(t)),\dot{y}_{m}\equiv\frac{dy_{m}}{dt},1\leq{m}\leq{n}; m,n\in\mathbb{N}[/tex]

    Now, define:
    [tex]x_{i}=y_{i}, x_{n+i}=\frac{dy_{i}}{dt}=\frac{dx_{i}}{dt}, 1\leq{i}\leq{n}[/tex]
    Thus, we may form the 1-order differential system of 2n equations:
    [tex]G_{i}(\vec{X},t)=x_{n+i}, 1\leq{i}\leq{n}[/tex]
    [tex]G_{i}(\vec{X},t)=F_{i-n}(\vec{X},t), n<i\leq{2n}[/tex]
    Last edited: May 24, 2005
  6. May 25, 2005 #5
    Thankyou, that was helpful.
    I also found this site which explains the whole process of simulating a single inverted pendulum and includes the reduction stage.
    http://drewk.net/projects/ipendulum/ipendulum.html [Broken]
    I should be able to use the same method for the double inverted pendulum.
    Last edited by a moderator: May 2, 2017
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook