From APMonitor Documentation

Apps: PendulumMotion


The pendulum weight is located on the end of a massless cord suspended from a pivot, without friction. When given an initial push, it swings back and forth at a constant amplitude. Real pendulums are subject to friction and air drag, so the amplitude of the swing declines.

The following models are mathematically equivalent but are of different index order. The most natural form is an index-3 differential and algebraic (DAE) equation form, posed in terms of absolute position. The index is the number of times the equations must be differentiated to achieve an ordinary differential equation (ODE) form.

Index-0 DAE (ODE) Model

Index-1 DAE Model

Index-2 DAE Model

Index-3 DAE Model


The mass and length of a pendulum can be determined by tracking the horizontal position of the pendulum (x). The following is a MATLAB script (pendulum.m) that runs the Index-3 DAE through a series of simulations. As additional data is collected, the model predictions are adjusted to match the observed measurements. The starting values for mass are 1 kg and a length of 1 meter.

The technique for aligning measured and model values is termed Moving Horizon Estimation. This is a technique for parameter estimation with differential and algebraic equation models. In this case there is no steady state data available. The mass and length can be determined by observing the time series of horizontal positions.

! APMonitor Modeling Language

! Pendulum - Index 3 DAE
Model pend3
    m = 1
    g = 9.81
    s = 1
  End Parameters

    x = 0
    y = -s
    v = 1
    w = 0
    lam = m*(1+s*g)/2*s^2
  End Variables

    x^2 + y^2 = s^2
    $x = v
    $y = w
    m*$v = -2*x*lam
    m*$w = -m*g - 2*y*lam
  End Equations
End Model
Retrieved from
Page last modified on December 27, 2011, at 02:35 PM