Bodies

by Roberto Lot

> restart: libname := libname, "C:/libs/MBSymba.mla": with(MBSymba_r6):

In MBSymba, a rigid body is defined with the command

> Describe(make_BODY);

# Create a BODY rigidly attached to the <[frame]> having center of mass

# origin(<frame>) and mass <m>, with optional parameters are principal inertia

# moments <Ix,Iy,Iz> and composite inertia moments <Cyz,Cxz,Cxy>. The first

# argument <T> may be optionally a <POINT> that should be the body CoM.

make_BODY( T::{POINT, frame}, m::scalar, Ix::scalar := 0, Iy::scalar := 0,

Iz::scalar := 0, Cyz::scalar := 0, Cxz::scalar := 0,

Cxy::scalar := 0, \$ )

Hence, to create a rigid body you should follow the steps below:

1 - Define the body reference frame, having origin in the body center of mass

> TG := translate(x(t),0,z(t)) * rotate('Y',mu(t)) * rotate('Z',psi(t));

Maple display variables in a more compact form if you use the following declaration:

> PDEtools[declare](x(t),z(t),mu(t),psi(t),prime=t,quiet);

> TG;

Define the rigid body as follows

> body := make_BODY (TG , m , Ix,Iy,Iz, Cyz,Cxz,Cxy): show(body);

for coinciseness, you may assign a shor name to the body frame

> set_frame_name(TG,'TG'): show(body);

There is a short form for simmetric bodies

> simmetric_body := make_BODY (TG,m , Ix,Iy,Iz): show(simmetric_body);

and even shorter for mass point

> mass_point := make_BODY (TG,m): show(mass_point);

Alternatively, you may define first the body center of mass

> G2 := make_POINT(TG,xg,yg,zg): show(G2);

and then the inertia

body2 := make_BODY (G2 , m , Ix,Iy,Iz, Cyz,Cxz,Cxy): show(body2);

Once again, you may assign a short name to the body frame

> set_frame_name(body2[frame],'TG2'): show(body2);