Entry
Physics: Dynamics: 3D: Simulation: How to write a simple rigid body simulation: Mass:Discrete:Point?
Feb 2nd, 2006 12:30
Knud van Eeden,
----------------------------------------------------------------------
--- Knud van Eeden --- 01 February 2021 - 00:00 am -------------------
Physics: Dynamics: 3D: Simulation: How to write a simple rigid body
simulation: Mass:Discrete:Point?
===
Steps: Overview:
1. -Split the movement in
1. Translation
2. Rotation
as these movements can be handled completely independent of each
other.
2. You start with the simplest system
1. -Start with point masses
1. -Start with 1 mass
2. -Then 2 masses
3. -Then 3 masses
4. -Then N masses
5. -Then connect these point masses on wireframe joints, so
similating the simplest human body
1. -First use a stiff body, where the parts can not move
2. -Then a body where the parts (e.g. the arms) can move
while rotating
2. -Then use continuous masses
1. -Use rigid body segments
2. -Finally use the human body
(which is here just 'more of the same')
---
1. -Translation
1. -Calculate the center of mass
1. -Calculate the displacement in the x-direction
1. -Use sum x-forces equals mass times x-acceleration
1. -Solve this differential equation for x
..
x = sum( x-forces )
---------------
mass
1. -That gives the x-distance moved
2. Calculate the displacement in the y-direction
1. -Use sum y-forces equals mass times y-acceleration
1. -Solve this differential equation for y
..
y = sum( y-forces )
---------------
mass
1. -That gives the y-distance moved
3. Calculate the displacement in the z-direction
1. -Use sum z-forces equals mass times z-acceleration
1. -Solve this differential equation for z
..
z = sum( z-forces )
---------------
mass
1. -That gives the z-distance moved
2. -Rotation
1. -Given
1. -Given time
1. -Time begin
2. -Time end
3. -Time total steps
2. -Given angles
1. -Given initial angle in the x-direction
2. -Given initial angle in the y-direction
3. -Given initial angle in the z-direction
3. -Given angular velocities
1. -Given initial angular velocity in x-direction
2. -Given initial angular velocity in y-direction
3. -Given initial angular velocity in z-direction
4. -Given masses
1. -Given values of masses
2. -Given position of masses
1. massposition in x-direction
2. massposition in y-direction
3. massposition in z-direction
5. -Given forces
1. -Force value
1. -Force value in x-direction
2. -Force value in y-direction
3. -Force value in z-direction
2. -Force position
1. -Force position in x-direction
2. -Force position in y-direction
3. -Force position in z-direction
2. -Process
1. Repeat the following steps for the first to last time interval
1. -Calculate center of gravity
2. -Calculate inertia
1. -Moment of inertia
1. -Moment of inertia in x-direction
2. -Moment of inertia in y-direction
3. -Moment of inertia in z-direction
2. -Product of inertia
1. -Product of inertia in x-direction
2. -Product of inertia in y-direction
3. -Product of inertia in z-direction
3. -Calculate the 3 eigenvalues
4. -Calculate the 3 eigenvectors
5. -Calculate the 3 orthogonal principal axes
6. -Put the principal axes origin in the center of mass
3. Calculate the 3 Euler rotational equations
1. -Calculate the sum of the torques
1. -Use the given initial forces
1. -Use the given initial force values
2. -Use the given initial force positions
2. -Use the 3 given initial angular velocities
3. -Use the 3 given initial angles
4. -Solve the 3 differential equations
.. . .
1. Ixx . x + (Izz - Iyy) . x . y = sum(torques x)
.. . .
2. Iyy . y + (Ixx - Izz) . x . z = sum(torques y)
.. . .
3. Izz . z + (Iyy - Ixx) . x . y = sum(torques z)
1. -Output the angle rotated around principal
axis 1
2. -Output the angle rotated around principal
axis 2
3. -Output the angle rotated around principal
axis 3
5. -Translate this to new 3D positions of the body
1. -Use a rotation around 3 axes
1. -Use a rotation around the x-axis
1 -Input the angle rotated around principal
axis 1
2. -Use a rotation around the y-axis
1 -Input the angle rotated around principal
axis 2
3. -Use a rotation around the z-axis
1 -Input the angle rotated around principal
axis 3
3. -Output
1. -Show this 3D positions of the body
1. -Show this on a 2D screen
1. -Project 3D to 2D
===
Internet: see also:
---
Physics: Dynamics: 3D: Link: Overview: Can you give an overview of
links?
http://www.faqts.com/knowledge_base/view.phtml/aid/39259/fid/1857
----------------------------------------------------------------------