Spinning Disk Pendulum Swinging on Top of a Rotating Table

Initializing live version
Download to Desktop

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram Player or other Wolfram Language products.

This Demonstration shows a pendulum with a small spinning rigid cylindrical bob in which the pendulum rod (assumed to have negligible mass) swings from a frame fixed on top of a rotating table. The system has three degrees of freedom: the pendulum swing angle , the spin angle of the pendulum bob, and the rotation angle of the large table.


The angular momentum of the bob with reference to a fixed point in space and the bob's absolute rate of angular momentum change are calculated and displayed in vector form.

The instantaneous values of the system's kinetic and potential energy (red and blue bars, respectively) are shown graphically. Other options are available to help study further details of this system.

The program was constructed by finding the Lagrangian, deriving the three nonlinear equations of motion and solving them numerically.

The principal moments of inertia are used for the bob. The fixed point in space that was used to calculate is the point where the pendulum rod is attached to the frame.


Contributed by: Nasser M. Abbasi (July 2011)
Open content licensed under CC BY-NC-SA



The kinetic energy of the system is given by

and the potential energy by , where is the moment of inertia of the large table, is its mass, and is its radius. , , and are the moments of inertia of the bob around its principal axis; due to symmetry, and , where is the radius of the bob, is the height of the bob cylinder, and is its mass. Using the parallel axis theorem, the moment of inertia tensor for the bob is found relative to the point where the pendulum rod is attached to the frame. The angular momentum vector is found relative to this point and not relative to the center of mass of the bob.

The absolute rate of change of the angular momentum vector is found using , where is the rate of change of relative to the fixed point described above. All the terms above are vectors and the product is the vector cross product. You can see these vectors and their components visually displayed by selecting a display option from the popup menu. A special case occurs when the bob is spinning around one of its principal axes. In this case you will see that the and vectors are always parallel.

The following is a description of the items on the top half of the left panel of the controls: is the length of the pendulum rod, is the density of the material of the bob cylinder, is the density of the material of the large table cylinder, is the radius of the bob cylinder, is the radius of the large table cylinder, is the height of the bob cylinder, and is the height of the large table cylinder.

The panel below that contains the initial conditions for the three rotation angles , , and . The units for the angles are in degrees with the range 0–360°. The units for the angular velocities are in hz in the range of to . For convenience, small buttons are placed next to the sliders to set the initial condition to its minimum or maximum value.

The slider labeled "step size" can be used to adjust the animation rate. The smaller the step size, the more accurate the simulation will be, but the longer and slower it will run.

The popup menu labeled "display" lets you select which vectors to view while the simulation is running. You can select the angular momentum or the rate of the angular momentum of the bob. Or select to view the angular velocity vector of the center of gravity of the bob, which is given by .

A number of test cases is available to try. When you select one of these, the control variables are automatically set to preset values. Then you can click the run button to see the selected test case using those values. When running a specific case, you will not be able adjust any of the controls other than changing to a different case. Selecting the special test case 0 releases that, allowing you to adjust other control variables.

If you click the "info" checkbox on the right side of the display, the following information is displayed when running: the moment of inertia tensor , the angular momentum vector , the rate of change of the angular momentum vector , and the current values of the three angles , , and and their angular velocities. The current value of the system kinetic energy (K.E.) and potential energy (P.E.) are given in kilojoules (KJ).

The current time in seconds is shown at the lower side of the left part of the display. A "zoom" slider can be used to zoom into the display while it is running. This provides limited zooming capability. You can use the built-in Mathematica support for zoom and panning by clicking the display then using the Ctrl key. See Mathematica documentation for more information. If you decide to use the built-in zooming instead of the "zoom" slider, you should pause the simulation first to obtain better control of the zooming action, then you can resume the simulation.

The "trace" checkbox on the right side lets you trace the trajectory of the center of mass of the bob as it moves in 3D inertial space. You can adjust the length of the trace trajectory using the "length" slider below the "trace" checkbox and the thickness of the trace line using the "thickness" slider. The trace can be cleared at anytime by clicking the "trace" checkbox again.

When the rate of the angular momentum of the bob is not zero, there must exist a torque to account for this, which is given by . The torque is not displayed in this version of the Demonstration. It is generated by support reaction from the ground.


[1] D. T. Greenwood, Principles of Dynamics, Upper Saddle River, NJ: Prentice Hall, 1965, Chapter 8.

[2] R. P. Feynman, R. B. Leighton, and M. L. Sands, The Feynman Lectures on Physics, Reading, MA: Addison–Wesley, 1963, pp. 20–1 to 20–8.

Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.