1 votos

Ecuación de movimientos para péndulo simple en coordenadas cartesianas en lugar de coordenadas generalizadas

Estoy intentando escribir la ecuación de movimientos para un péndulo simple pero en lugar de escribirlas en coordenadas generalizadas ( $\theta$ ), quiero escribirlas en coordenadas cartesianas (x, y), ya que las necesitaré más adelante para investigaciones posteriores.

Estoy escribiendo esta matriz en python y está manejando un simulador openGL, así es como lo estoy probando.

Creo que mis ecuaciones de restricción están mal. Esta es la definición del problema que tengo:

Tengo un péndulo simple, articulado en (0,0), con un brazo de longitud L sin masa, y en el otro extremo en la posición (x,y) hay una masa m. Las dos fuerzas aplicadas sobre m son g (apuntando hacia abajo) (0, -g) y $F_{pend}$ (apuntando a 0,0) ( $F_{pend}^x, F_{pend}^y$ )

Las 4 incógnitas son $\ddot x, \ddot y, F_{pend}^x, F_{pend}^y$ .

La Ley de Newton nos da las dos primeras ecuaciones:

$m \ddot x - F_{\text{pend}}^x = 0$

$m \ddot y - F_{\text{pend}}^y = -mg$

La restricción sobre la longitud del brazo nos da la tercera ecuación, después de tomar la segunda derivada:

$x^2 + y^2 - l^2 = 0$

$2 x \dot x + 2 y \dot y = 0$

$2 \dot x^2 + 2 x \ddot x + 2 \dot y^2 + 2 y \ddot y = 0$

$x \ddot x + y \ddot y = - \dot x^2 - \dot y^2$

En este punto necesito la 4ª ecuación, que no tengo ni idea de cuál puede ser. Actualmente creo que es:

$F_{pend} · \langle-y, x\rangle = 0$

$F_{pend}^x (- y) + F_{pend}^y (x) = 0$

Esto hace que la matriz Ax=b para que podamos ejecutarlo para calcular x:

$A = \begin{bmatrix} m & 0 & -1 & 0\\ 0 & m & 0 & -1\\ x & y & 0 & 0\\ 0 & 0 & -y & x \end{bmatrix}$

$ x^T = \begin{bmatrix} \ddot x & \ddot y & F_{pend}^x & F_{pend}^y \end{bmatrix}$

$ b^T = \begin{bmatrix} 0 & -mg & - \dot x^2 - \dot y^2 & 0 \end{bmatrix}$

La forma en que ejecuto el simulador es la siguiente:

Inicializar: $(x, y) = (-L, 0)$ , $(\dot x, \dot y) = (0, 0)$ , $dt = 0.001$

Bucle para siempre:

  • Matriz de ejecución para calcular $(\ddot x, \ddot y)$
  • Actualizar posición $(x, y) = (x, y) + (\dot x, \dot y) * dt$
  • Velocidad de actualización $(\dot x, \dot y) = (\dot x, \dot y) + (\ddot x, \ddot y) * dt$

Sé que esto está mal porque cuando ejecuto esto en el simulador obtengo un movimiento muy extraño que no se parece en nada a un péndulo y la masa cae para siempre.

¿Podría alguien ayudarme a encontrar la 4ª ecuación, o incluso decirme si hay errores en mi razonamiento?

1voto

meshsol Puntos 16

Si el objetivo es obtener las ecuaciones de movimiento en coordenadas cartesianas un buen procedimiento es utilizar la formulación lagrarangiana. Así, llamando $p=(x,y)$ tenemos

$$ L = \frac 12 m \dot p\cdot\dot p - m g (y-l_0)+\lambda(x^2+y^2-l_0^2) $$

Las ecuaciones de movimiento dan

$$ \cases{ m\ddot x - 2\lambda x = 0\\ m\ddot y -2\lambda y + m g = 0\\ x^2+y^2-l_0^2=0 } $$

derivando ahora la última ecuación dos veces con respecto a $t$ y resolviendo para $\ddot x,\ddot y,\lambda$ tenemos

$$ \left\{ \begin{array}{rcl} l_0^2x''(t) & = & x(t) \left(g y(t)-x'(t)^2-y'(t)^2\right) \\ l_0^2y''(t) & = & y(t) \left(x'(t)^2+y'(t)^2\right) - g x(t)^2\\ 2l_0^2\lambda & = & m \left(g y(t)-x'(t)^2-y'(t)^2\right) \\ \end{array} \right. $$

aquí $\lambda$ representa la tensión en la cuerda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X