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?