1

I am writing a physics engine to map the rotary and translatory movements of a uniformly dense solid cylinder within 3d space. If a vectored thrust is applied to one end of the cylinder at an arbitrary angle (say 30 degrees off center), I understand this will cause both a rotation and translation of the body. ROTATION....... Torque= radius*force*sin(angle) . moment of inertia(of a uniform cylinder) = 1/12*mass*(3*radius^2+height^2). Angular acceleration= torque/moment of inertia. TRANSLATION...... linear acceleration= force/mass.

IF my thrust angle is 0 then sin0=0 so my torque=0. But my linear acceleration(in-line with thrust vector) is the same. Surely if some of the thrust is producing a rotation then I should have a lower translatory acceleration? I reason this as it takes energy to both rotate and translate, therefore I seem so be getting more energy with vectored thrust then when operating with a thrust angle of 0(through the cog). Maybe my intuition is wrong here.... thanks

1 Answers1

1

Intuition is usually wrong in 3D dynamics. Here are the basics.

You start from a local to global 3x3 rotation matrix $R(t)$ and the body centered 3x3 fixed inertia matrix $I_{body}$. Then the 3x3 inertia matrix in world coordinates is $I(t) = R(t) I_{body} R(t)^\top$.

If the linear acceleration vector of the center of mass is $\vec{a}_{cg}(t)$ and the angular velocity and acceleration of the body $\vec{\omega}(t)$ and $\dot{\vec{\omega}}(t)$ then the equations you need to solve are

$$ \begin{aligned} \sum \vec{F}(t) & = m \, \vec{a}_{cg}(t) \\ \sum \vec{M}_{cg}(t) & = I(t) \dot{\vec{\omega}}(t) + \vec{\omega}(t) \times I(t) \vec{\omega}(t) \end{aligned} $$

where $\sum \vec{F}(t)$ are the sum of all forces acting on the body and $\sum \vec{M}_{cg}(t)$ the moment of all the forces taken about the center of gravity plus the sum of all moments acting on the body.

As I commented above read An Introduction to Physically Based Modeling first.

John Alexiou
  • 38,341
  • Thankyou. Sorry about my lack of technical knowledge (I'm nearly fourteen) but I have trouble deciphering your notation. I'm a programmer primarily and looking to use 'normal' equations(pre-calculus) to map this system using x,y,z positions and a heading measured against an arbitrary axis. – Dion Jones Aug 18 '13 at 02:00
  • @DionJones keep it up. You are in the right track. Start with 2D which is easier, and keep reading references/papers until something clicks and you understand a bit more. Then next time a bit more and so on. In between, keep programming to see the results. – John Alexiou Aug 18 '13 at 15:33
  • @DionJones the translation parts are easy. The rotations are rather complex. Read this article, and more importantly look at the videos included – John Alexiou Aug 18 '13 at 15:37