1 votos

Aplicar la velocidad angular a una matriz de rotación

Tengo una pregunta muy sencilla. En nuestro proyecto almacenamos la orientación de un objeto como una matriz de 3x3 que contiene la base ortonormal del espacio local de ese objeto. Por ejemplo, si el objeto está alineado con el eje del mundo, entonces su matriz de orientación es :

1 0 0
0 1 0
0 0 1

Ahora almacenamos la velocidad angular como un vector que contiene valores en rad/s alrededor de cada uno de los ejes del mundo. Por ejemplo, si el objeto debe girar alrededor del eje Y del mundo a 20 rad/s, entonces la velocidad angular es

0 20 0

Mi pregunta es entonces, digamos que queremos aplicar esta velocidad durante 1 segundo a la matriz de orientación, ¿cómo lo haríamos?

3voto

Dan Herbert Puntos 38336

La tasa de cambio de la matriz de rotación $\boldsymbol R$ es

$$ \dot{\boldsymbol{R}} = \vec{\omega} \times \boldsymbol{R} $$

donde $\vec\omega\times = \begin{pmatrix} 0 & -\omega_z & \omega_y \\ \omega_z & 0 & -\omega_x \\ -\omega_y & \omega_x & 0 \end{pmatrix}$ es el operador del producto cruzado en forma 3x3.

Así, si la posición de un punto A girando en un marco viene dado por $\vec{r}_A = \vec{r} + \boldsymbol{R} \,\vec{p} $ donde $\vec{p}$ es la posición en coordenadas locales y $\vec{r}$ la ubicación del marco, la cinemática es

$$ \dot{\vec{r}}_A = \dot{\vec{r}} + \dot{\boldsymbol R}\,\vec{p} \\ \vec{v}_A = \vec{v} + \vec{\omega} \times (\boldsymbol{R}\,\vec{p}) $$

$$ \dot{\vec{v}}_A = \dot{\vec{v}} +\dot{\vec{\omega}} \times (\boldsymbol{R}\,\vec{p}) + \vec \omega \times (\dot{\boldsymbol{R}}\,\vec{p}) \\ \vec{a}_A = \vec{a} + \vec{\alpha}\times(\boldsymbol{R}\,\vec{p}) + \vec\omega\times\vec\omega\times(\boldsymbol{R}\,\vec{p}) $$

1voto

Alexey Lebedev Puntos 4778

De Goldstein, capítulo 4 eqn 4-92', para una rotación finita el cambio $\boldsymbol{\Delta r}$ causada por la rotación de un vector $\boldsymbol{r}$ a través de un ángulo $\Phi$ en torno a una dirección definida por un vector unitario $\boldsymbol{n}$ ( $\Phi$ positivo para una rotación en sentido contrario a las agujas del reloj), hasta una posición final $\boldsymbol{r'}$ está dada por:

$$ \boldsymbol{\Delta r} = \boldsymbol{r'-r} = [\boldsymbol{n} (\boldsymbol{n \cdot r} ) - \boldsymbol{r} ] [ 1 - \cos \Phi ] + (\boldsymbol{n \times r}) \sin \Phi $$

Relacionando esta ecuación con su situación, con un vector de momento angular $\boldsymbol{\omega}$ solicitó un tiempo $t$ :

$$ \boldsymbol{n} = \frac{\boldsymbol{\omega}}{|\boldsymbol{\omega}|} , \Phi = |\boldsymbol{\omega}| \, t $$

Como su vector de velocidad angular $\boldsymbol{\omega}$ se da con respecto al sistema de coordenadas mundial fijo $\boldsymbol{x_1, x_2, x_3}$ es sencillo calcular los componentes en esa base:

$$ \Delta r'_i = \left[ n_i \sum_{j=1}^3\left(n_j r_j \right) - r_i \right][1-\cos \Phi] + \sum_{j,k=1}^3 \left( \epsilon_{ijk} n_j r_k \right) \sin \Phi $$

En particular, estas fórmulas se aplican a los vectores base del espacio local de tu objeto, por lo que puedes utilizarlas para hacer evolucionar tu matriz de almacenamiento.

Para el ejemplo concreto que mencionas, $\boldsymbol{n = x_2}$ y $\Phi =20$ rad/s $* 1 $ s $ = 20 $ rad. Introduciendo los 3 vectores base del objeto $\boldsymbol{x'_1, x'_2, x'_3}$ (que en este caso son simplemente iguales a los vectores base del mundo $\boldsymbol{x_1, x_2, x_3}$ respectivamente) para $\boldsymbol{r}$ puedes ver eso:

  • El $\boldsymbol{x'_2}$ el eje del cuerpo no cambia (como es de esperar para un vector paralelo a la velocidad angular)
  • $\boldsymbol{x'_1}$ y $\boldsymbol{x'_3}$ giran alrededor de un círculo unitario (de nuevo, como se esperaba).

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