I came across an amusing YouTube short video (https://www.youtube.com/shorts/Stu0-EiK2Zs) and thought: Let's try to describe this problem physically!
My main system is the pendulum with the weight. Here is $l_w$ the length of the pendulum, $R$ the radius of the pipe, $\theta$ the angle, $g$ the gravitational acceleration constant and $m_w$ the mass of the weight.
Pendulum:
Coordinates:
$$x = l_w \sin \theta - R \cos \theta, \hspace{20pt} y = l_w \cos \theta + R \sin\theta$$
Velocities:
$$\dot{x} = \dot{l_w} \sin \theta + l_w\dot{\theta}\cos\theta + R \dot{\theta}\sin \theta, \hspace{20pt} \dot{y} = \dot{l_w} \cos \theta - l_w\dot{\theta}\sin\theta + R\dot{\theta} \cos\theta$$
Kinetic Energy + Potential:
$$T = \frac{m_w}{2}(\dot{x}^2+\dot{y}^2) = \frac{m_w}{2}(\dot{l_w}^2 + l_w^2\dot{\theta}^2 + R^2\dot{\theta}^2 + 2R\dot{l_w}\dot{\theta})$$
$$V = m_wg(h-y) = m_wgh - m_wg (l_w \cos \theta + R \sin\theta)$$
Lagrange Function:
$$\mathcal{L} = T - V = \frac{m_w}{2}(\dot{l_w}^2 + l_w^2\dot{\theta}^2+ R^2\dot{\theta}^2 + 2R\dot{l_w}\dot{\theta}) - m_wgh + m_wg (l_w \cos \theta + R \sin\theta)$$
Equation formula:
$$\frac{d}{dt}\left(\frac{d\mathcal{L}}{d\dot{l_w}}\right) - \frac{d\mathcal{L}}{dl_w} = Q_{l_w}, \hspace{30pt} \frac{d}{dt}\left(\frac{d\mathcal{L}}{d\dot{\theta}}\right) - \frac{d\mathcal{L}}{d\theta} = Q_\theta$$
Differential equations:
$$\ddot{l_w} + R\ddot{\theta} - l_w \,\dot{\theta}^2 - g\cos\theta = \frac{Q_{l_w}}{m_w}$$
$$(R^2 + l_w^2) \ddot{\theta} + R\ddot{l_w} + 2\,l_w\dot{l_w} \dot{\theta} + l_wg\sin\theta - Rg\cos\theta = \frac{Q_\theta}{m_w}$$
Approximation: $R \ll l_w$
$$\ddot{l_w} - l_w \,\dot{\theta}^2 - g\cos\theta = \frac{Q_{l_w}}{m_w}$$
$$l_w^2 \ddot{\theta} + 2\,l_w\dot{l_w} \dot{\theta} + l_wg\sin\theta = \frac{Q_\theta}{m_w}$$
The problem are the generalized forces $Q_{l_w}$ and $Q_{\theta}$.
The length of the pendulum will decrease with time because of an acceleration through the falling human and because of the rope wrapping around the pipe. I therefore came up with the following relationship:
$$l_w(t) = L - \lambda(t) - l_h(t)$$
with total length $L$, length of human side $l_h$ and wrapped length $λ$ around the pipe with radius $R$.
The length $l_h$ changes by an acceleration $a(t)$, which results from the gravitational acceleration and the deceleration due to friction and the bending of the rope around the pipe. We use the Capstan equation for this.
Force by weight:
$$F_w = F_{w0} \cdot e^{μ \cdot \alpha}, \hspace{30pt} \alpha = \phi + θ(t)$$
with $θ(t)$ as the pendulum angle and $μ$ the friction constant. The angle $\phi$ is a constant angle that is used to correct the angle $\alpha$ to $\theta$. The angle $\alpha$ describes the wrapping of the rope on the pipe.
If the pendulum is deflected to $\theta(t=0) = \theta_0 \in (-\pi/2,0)$, the pendulum begins to move in the direction of $+\theta$ due to gravity. We assume here that the pendulum receives so much energy that no backward movement takes place. It holds $\dot{\theta} > 0$.
If the pendulum angle is zero (straight down in the direction of the gravitational force), the pendulum hangs down on one side of the axle, while the person hangs straight down on the other side. At $\theta = 0$, half of the pipe is covered with rope. It follows for $\phi = \pi$, and we get:
$$F_w = F_{w0} \cdot e^{μ \cdot (\pi + \theta)}$$
Force due to human:
$$F_h = m_h \cdot g$$
Resulting acceleration for human:
$$a(t) = \frac{F_h - F_w}{m_h} = \left(1 - \frac{F_{w0}}{m_hg}\right)g \, e^{\mu(\pi+\theta)}$$
$$F_{m0} = m_wg + m_w\dot{\theta}^2l_w$$
The length of the wrapped rope is calculated as follows
$$λ(t) = R \cdot (\pi + \theta(t))$$
The length of $l_h(t)$ is changing with the acceleration. We get:
$$\ddot{l_h} = a(t)$$
If we now caluclate the 2nd derivative of $l_w(t)$, we obtain:
$$\ddot{l}_w^\text{(external)} = -R\ddot{θ} - a(t)$$
I used this expression for the external force $F_{l_w} = m_w \ddot{l}_w^\text{(external)}$, acting against the direction of the rope. I got:
$$\mathbf{F} = F_{l_w} \cdot (-\sin\theta, -\cos\theta)$$
The generalized forces are given by the projections of the external force $\mathbf{F}$ onto the directions of the generalized coordinates $l_w$ and $\theta$.
For a generalized coordinate $q_i$, the generalized force $Q_i$ is given by:
$$Q_i = \mathbf{F} \cdot \frac{\partial \mathbf{r}}{\partial q_i}$$
where $\mathbf{r}$ is the position vector $(x, y)$.
The position vector is:
$$\mathbf{r} = (x, y) = (l \sin(\theta) - R \cos(\theta), l \cos(\theta) + R \sin(\theta))$$
For $l$:
$$\frac{\partial \mathbf{r}}{\partial l} = \left( \sin(\theta), \cos(\theta) \right)$$
Thus, the generalized force in the direction of $l$ is:
$$Q_l = \mathbf{F} \cdot \frac{\partial \mathbf{r}}{\partial l} = -F_{l_w}$$
For $\theta$:
$$\frac{\partial \mathbf{r}}{\partial \theta} = \left( l_w \cos\theta + R \sin\theta, -l_w \sin\theta + R \cos\theta \right)$$
Thus, the generalized force in the direction of $\theta$ is:
$$Q_\theta = \mathbf{F} \cdot \frac{\partial \mathbf{r}}{\partial \theta} = RF_{l_w}$$
This looks way too wrong... I'm not sure about that. With $R\ll l_w$ I could set $Q_{\theta} = 0$.
I tried to get a numerical analysis of the behaviour, but my code doesn't work right:
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
parameters
g = 9.81 # gravitational acceleration
r = 0.15 # radius of pipe
mu = 0.2 # friction
m1 = 20 # mass of weight
m2 = 70 # mass of human
Target value for theta
theta_target = (1/mu) * np.log(m2/m1) - np.pi
Define the system of ODEs
def system(t, y):
l_w, dl_w, theta, dtheta = y
d2theta = - (1/l_w) * (2 * dl_w * dtheta + g * np.sin(theta))
d2l_w = l_w * dtheta*2 - g (1 - np.cos(theta)) - r * (d2theta) + g * (m1/m2) * np.exp(mu * (np.pi + theta))
return [dl_w, d2l_w, dtheta, d2theta]
Initial conditions
l_w0 = 10
dl_w0 = -0.1
theta0 = -np.pi/3
dtheta0 = 0.1
y0 = [l_w0, dl_w0, theta0, dtheta0]
Event function to detect when theta reaches the target value
def event(t, y):
return y[2] - theta_target
event.terminal = True
event.direction = 0
Solve the system
t_start = 0
t_end = 20
sol = solve_ivp(system, [t_start, t_end], y0, events=event)
Extract the results
t = sol.t
l_w = sol.y[0]
theta = sol.y[2]
Plot (t, theta)
plt.figure()
plt.plot(t, theta, label='θ(t)')
plt.axhline(theta_target, color='r', linestyle='--', label='θ_target')
plt.xlabel('Time (t)')
plt.ylabel('θ (theta)')
plt.title('θ(t) vs Time')
plt.legend()
plt.grid()
plt.show()
Plot (t, l_w)
plt.figure()
plt.plot(t, l_w, label='l_w(t)')
plt.xlabel('Time (t)')
plt.ylabel('l_w (length of wire)')
plt.title('l_w(t) vs Time')
plt.legend()
plt.grid()
plt.show()
def acceleration(t,theta):
a = g - g * m1/m2 * np.exp(mu * (np.pi + theta))
return a
Plot (t, acceleration(t,theta))
plt.figure()
plt.plot(t, acceleration(t,theta), label='a(t)')
plt.xlabel('Time (t)')
plt.legend()
plt.grid()
plt.show()
Print t0 if the event was detected
if sol.t_events[0].size > 0:
t0 = sol.t_events[0][0]
print(f"t0 = {t0}")
else:
print("No event found where θ(t) reaches the target value.")
But ultimately I'm stuck right here. I don't know if I made a mistake when setting up the differential equation. I also don't have a good idea how to come up with a sensible approximation to determine how long the fall of the person lasts in order to ultimately determine how long the rope must be or how heavy the mass must be. I hope that I can arouse someone's interest in helping me with this summary.
