Cylinder rolling in a groove on a spring-mounted cart
A circular cylinder of mass $m$ and radius $r$ rolls without slipping inside a circular groove of radius $R$ cut into a cart of mass $M$. The cart is attached to fixed walls by two springs of equal stiffness $k$. Derive the equations of motion with Lagrange's equations.
Explanation of Method
Use two generalized coordinates, the cart position and the angle of the cylinder in the groove. Write the kinetic and potential energy, apply both Lagrange equations, and compare the nonlinear model with its linearization in the simulator.
A system with two degrees of freedom: a cart on two springs and a cylinder rolling without slipping inside a circular groove on the cart. The coupled nonlinear equations of motion come from Lagrange's equations, then from a Simulink model, and both can be run below.
Problem statement
Derive the equations of motion of the system shown in the figure. A circular cylinder of mass \(m\) and radius \(r\) rolls without slipping inside a circular groove of radius \(R\) cut into a cart of mass \(M\). The cart is attached to fixed walls by two springs of equal stiffness \(k\). Use Lagrange's equations.
Generalized coordinates and kinematics
The system has two degrees of freedom: the cart can move horizontally, and the cylinder can move along the groove. The paper chooses:
- \(x\) – displacement of the cart from the equilibrium position (both springs undeformed); this is also the spring elongation,
- \(\Theta\) – angle between the vertical through the groove centre \(O'\) and the line \(O'C\) to the cylinder centre. With the sign convention used in the paper's velocity equations, positive \(\Theta\) moves the cylinder toward negative \(x\).
The cylinder centre always lies on a circle of radius \(R-r\) around \(O'\). Its position is
Rolling without slipping
Rolling without slipping means that the arc travelled on the groove equals the arc travelled on the cylinder's circumference (\(\overset{\frown}{CB} = \overset{\frown}{CA}\) in the paper). If \(\rho\) is the spin angle of the cylinder measured from the vertical:
Because the cart only translates (it does not rotate), this angular velocity relative to the cart is also the absolute angular velocity of the cylinder – exactly what the kinetic energy needs.
Velocity of the cylinder centre
The absolute velocity of the centre \(C\) is the vector sum of the cart velocity \(\dot x\) and the velocity of \(C\) relative to the cart, which has magnitude \((R-r)\dot\Theta\) and is tangent to the circle:
The term \(-2\dot x\dot\Theta(R-r)\cos\Theta\) is the coupling between the cart and the cylinder: it is what makes the two motions influence each other.
Energies of the system
3.1 Attractive (potential) energy
The two springs have the same stiffness and elongations \(+x\) and \(-x\); after squaring they store the same energy. The gravitational part depends on how high the cylinder centre rises above its lowest position:
3.2 Repulsive (kinetic) coenergy
The cart translates with \(\dot x\); the cylinder translates with \(v_C\) and spins with \(\omega\). The moment of inertia of a solid cylinder about its centroidal axis is \(I_C = \tfrac12 m r^2\):
3.3 Lagrangian
Lagrange equations
There is no dissipation and no external input, so the right-hand side of both Lagrange equations is zero:
4.1 Equation for \(\Theta\)
The terms \(\pm m(R-r)\dot x\dot\Theta\sin\Theta\) cancel. Dividing by \(m(R-r)\):
4.2 Equation for \(x\)
These are two coupled nonlinear second-order differential equations. Each one contains the highest derivative of the other coordinate (\(\ddot x\) appears in Eq. 1, \(\ddot\Theta\) in Eq. 2).
4.3 Form used for Simulink (as in the paper)
Simulink implementation
Each equation feeds a chain of two integrators (\(\ddot\Theta\to\dot\Theta\to\Theta\) and \(\ddot x\to\dot x\to x\)). In the paper's form, the block computing \(\ddot\Theta\) needs \(\ddot x\), and the block computing \(\ddot x\) needs \(\ddot\Theta\). This creates an algebraic loop (a signal path with no integrator in it), shown dashed below.
Explicit form (no algebraic loop)
A cleaner approach is to treat Eq. 1 and Eq. 2 as a linear system in the unknowns \(\ddot x\) and \(\ddot\Theta\) and solve it once:
The denominator \(\tfrac32(M+m) - m\cos^2\Theta \ge \tfrac32 M + \tfrac12 m > 0\) never vanishes, so the explicit form is always well defined. This is the form the simulator below uses.
Simulation results from the paper
The paper shows four simulations, each with the cylinder angle (in rad) and the cart displacement \(x\) plotted together. The initial conditions are not stated in the paper. Matching the plots numerically shows that they were \(x(0)=0.2\) m (first case) or \(0.3\) m (others), with \(\Theta(0)=0\) and both velocities zero. The buttons load each case into the simulator.
| Case | M | m | r | R | k | x(0) | What the paper observes | |
|---|---|---|---|---|---|---|---|---|
| A | 2 | 1 | 0.05 | 1 | 100 | 0.2 | Cart oscillates almost sinusoidally (±0.2 m); Θ stays within ±0.29 rad with irregular-looking peaks. | |
| B | 2 | 1 | 0.05 | 1 | 20 | 0.3 | Softer springs: lower frequency, stronger exchange of energy between cart and cylinder (Θ up to 0.5 rad). | |
| C | 2 | 1 | 0.05 | 0.5 | 100 | 0.3 | Smaller groove: the cylinder swings much more (Θ up to ≈0.85 rad). | |
| D | 6 | 3 | 0.1 | 1.5 | 800 | 1 * | Θ drifts to tens of radians (the cylinder "goes around"); the cart keeps oscillating. |
* Case D is described in the paper as "large initial conditions (> 1 m)". This motion is chaotic, so the exact curve depends strongly on the initial condition and the solver. The simulator reproduces the behaviour qualitatively, not point for point.
Paper's conclusions
- The system oscillates without damping, which is correct because there are no dissipative forces or external inputs.
- For smaller \(k\) the oscillation frequency is lower, and the cart's motion depends more on the cylinder. For large \(k\) the cart oscillates almost as a pure sinusoid. For small \(k\) a periodically repeating change of amplitude appears (beats).
- For large masses, large initial conditions and very large \(k\), the cylinder angle grows without bound while the cart keeps oscillating. The paper interprets this as the cylinder jumping out of the groove (see section 7).
Review and extensions
7.1 Why the curves look irregular: two normal modes
Linearizing for small \(\Theta\) (\(\sin\Theta\approx\Theta\), \(\cos\Theta\approx1\), \(\dot\Theta^2\approx0\)) gives a linear 2-DOF system:
The natural frequencies follow from \(\det(\mathbf{K}-\omega^2\mathbf{M})=0\). The response is a sum of two harmonics with different frequencies. When they are close, the amplitude rises and falls periodically (beats); this is the "periodically repeating change of amplitude" noted in the paper. For case B (\(k=20\)) the frequencies are 0.39 Hz and 0.71 Hz; for case A (\(k=100\)) they are 0.41 Hz and 1.49 Hz. The cart then follows mainly the fast spring mode, which is why it looks almost sinusoidal for large \(k\).
7.2 "The cylinder jumps out of the groove" – what the model really says
In the model the groove is a complete circle of radius \(R\), and the cylinder is assumed to stay in contact with it at all times. A \(\Theta\) that grows without bound therefore means that the cylinder runs around the whole circle (one revolution = \(2\pi\) rad), not that it jumps out. The model cannot describe leaving the groove at all. Physically, two things limit validity:
- the groove on a real cart is only a short arc, so the cylinder leaves it as soon as \(|\Theta|\) exceeds the arc's half-angle;
- contact is maintained only while the normal force is positive. From the radial equation of motion of the cylinder:
When \(N\) becomes negative, the cylinder separates from the groove and the equations of motion are no longer valid. The simulator computes \(N(t)\) and reports when contact is lost. For case D this happens after only ≈0.13 s. Even in case C, \(N\) briefly drops below zero (to about −9 N) when the cart decelerates hard while the cylinder is high in the groove. Cases A and B stay in contact the whole time (in case A, \(N \ge 4.7\) N).
7.3 Energy check
Without friction, \(\mathcal{R}^*+\mathcal{A}\) must stay constant. This is a simple and powerful way to test both the model and the numerical solver. The ragged \(\Theta\) curve in the paper's case D may come from a coarse solver step or the iterative solution of the algebraic loop. The explicit form with a fine step conserves energy accurately.
Interactive simulator
The equations are solved numerically in explicit form (4th-order Runge–Kutta, 1 ms step). Angle inputs also accept expressions such as pi/6. An optional viscous friction coefficient \(b\) on the cart adds a term \(-b\dot x\) to Eq. 2, so you can see how damping changes the response.
Cases from the paper
System parameters
Initial conditions
Results table (every 0.1 s)
Review questions
Why is the cylinder's angular velocity \(\frac{R-r}{r}\dot\Theta\) and not \(\frac{R}{r}\dot\Theta\)?
The arc on the groove (\(R\Theta\)) equals the arc on the cylinder, \(r(\rho+\Theta)\). Part of the turning (\(\Theta\)) comes from the cylinder's centre going around \(O'\), so the spin is \(\rho = \frac{R-r}{r}\Theta\). Check: if \(r\to R\) the cylinder fills the groove and cannot spin.
Why can the spin \(\omega\) be used directly in the kinetic energy, even though the cart moves?
The cart only translates. A translating frame does not rotate, so angular velocities relative to the cart are equal to absolute angular velocities.
What is the physical meaning of the term \(-m\dot x\dot\Theta(R-r)\cos\Theta\) in \(\mathcal{R}^*\)?
It is the dynamic coupling: the cylinder's absolute velocity depends on both the cart's velocity and its own motion in the groove. Without it, the equations would separate into an independent spring–mass system and an independent "pendulum".
What happens if the cart is held fixed (\(x\equiv 0\))?
Eq. 1 becomes \(\frac32(R-r)\ddot\Theta + g\sin\Theta = 0\): a pendulum with small-oscillation frequency \(\omega=\sqrt{\frac{2g}{3(R-r)}}\). The factor \(\frac32\) comes from the cylinder's rotational inertia.
Why do the oscillations never decay, and how would you add damping?
There is no dissipation, so energy is conserved. Viscous friction on the cart adds a generalized force \(Q_x=-b\dot x\) to the right-hand side of the \(x\) equation (Rayleigh dissipation function \(\tfrac12 b\dot x^2\)). Try the "Damped" preset.
Does \(\Theta\to\infty\) in case D mean the cylinder flies out of the groove?
Not in the model: it means the cylinder goes all the way around a full circular groove. In reality the model stops being valid earlier, when the normal force \(N\) becomes negative or when the cylinder reaches the edge of the groove.