[MBDyn-users] Example to Total Pin Joint

fumagalli at aero.polimi.it fumagalli at aero.polimi.it
Fri Mar 14 18:19:40 CET 2008


Hi Rudy,

I think that the problem is related to a bad-constraining of the system.

You have built up a pendulum that, by itself, has only one degree of
freedom. You are now trying to block the movement of the node along the y
axis (using the total pin). If it is, the system can't move because you
are removing another DoF. The error you get is related to a singularity in
the Jacobian matrix. This is due to the fact that, conceptually, you are
enforcing two equivalent constraints: the first is given by the revolute,
the second by the total pin. The revolute allows a movement in the x-y
diagonal only if you have a movement along z. So, if a movement is fixed
(and it is because you are blocking y using the total pin), the other is
fixed too by the revolute. But it is also fixed by the total pin... So you
have blocked the y movement 2 times and thus is the singularity of the
Jacobian matrix.

I hope my quite contorted explanation was clear to you...

Ciao,
Ale

>
> Dear MBDyn-Users,
>
> my problem with the total joint is the following: I would like to have a
> simple
> pendulum, were I can easily restrict the movement into a given direction.
> I thought this can be done with:
>
> set: integer nod1=1;                        # node
> set: integer bod1=1;                        # body
> set: integer jnt1=1;                        # joint
> set: integer jnt2=2;                        # joint
> set: integer ref1=1;                        # refsys
>
> begin: data;
>     integrator: multistep;                    # integrator type
> end: data;
>
> begin: multistep;
>     initial time: 0.0;
>     final time: 2.0;
>     time step: 1.e-3;
>     max iterations: 10;
>     tolerance: 1.e-6;
>     derivatives tolerance: 1.0;
>     derivatives coefficient: 1.0;
> end: multistep;
>
> reference:
>     ref1,                                # refsys label
>     reference, global, 1.0, 0.0, 0.0,            # location vector
>     reference, global, eye,                    # orientation matrix
>     reference, global, null,                    # translational velocity
> vector
>     reference, global, 0.,0.,0.;                # angular velocity vector
>
> begin: control data;
>     structural nodes: 1;                    # number of structural nodes
>     rigid bodies: 1;                        # number of rigid bodies
>     joints: 2;                            # number of joints
>     gravity;                                # use gravity
> end: control data;
>
> begin: nodes;
>
> structural:
>     nod1,                                # node label
>     dynamic,                                # type
>     reference, ref1, null,                    # position
>     reference, ref1, eye,                    # orientation matrix
>     reference, ref1, null,                    # initial translational
> velocities
>     reference, ref1, null;                    # initial rotational
> velocities
>
> end: nodes;
>
> begin: elements;
>
> body:
>     bod1,                                # body label
>     nod1,                                # binding node
>     1.0,                                    # mass
>     reference, ref1, null,                    # relative center of mass
>     null;                                # inertia matrix
>
> joint:
>     jnt1,                                # joint label
>     revolute pin,                            # joint type
>     nod1,                                # node 1
>     reference, global, null,                    # relative offset 1
>     hinge,                                 # local orientation 1
>         1, -0.707, 0.707, 0.,
>         3,  0.707, 0.707, 0.,
>     reference, global, null,                    # relative offset 2
>     hinge,                                 # local orientation 2
>         1, -0.707, 0.707, 0.,
>         3,  0.707, 0.707, 0.;
> joint:
>     jnt2,                                # joint label
>     total pin joint,                        # joint type
>     nod1,                                # node 1
>     position constraint,
>     inactive,active,inactive,
>     null;
>
> gravity:
>     0., 0., -1.,                            # direction
>     const,                                # type
>     9.81;                                # magnitude
>
> end: elements;
>
> This is a pendulum that moves alomg the diagonal of the xy-plane.
> I thought that by using the total pin joint I could make it move
> along the x-direction - with fixed y-positon. But this does not work:
>
> Y12Solver (y12factor): warning, possible bad conditioning of matrix
>
> What do I do or understand wrong?
>
> Cheers,
> Rudi
>
>
> ---------------------------------
> Be a better friend, newshound, and know-it-all with Yahoo! Mobile.  Try it
> now.
>
>
>
> _______________________________________________
> MBDyn-users mailing list
> MBDyn-users at mbdyn.org
> https://www.mbdyn.org/mailman/listinfo/mbdyn-users
>







More information about the Mbdyn-users mailing list