MultiBondLib.Mechanics3DwithImpulses.Joints.CutJoints

Information


This subpackage contains so called cut joints. These are elements, that close kinematic loops.

Package Content

NameDescription
MultiBondLib.Mechanics3DwithImpulses.Joints.CutJoints.PlanarRevolute PlanarRevolute  


MultiBondLib.Mechanics3DwithImpulses.Joints.CutJoints.PlanarRevolute MultiBondLib.Mechanics3DwithImpulses.Joints.CutJoints.PlanarRevolute

MultiBondLib.Mechanics3DwithImpulses.Joints.CutJoints.PlanarRevolute

Information


This special model of a revolute joint is designed to cut planar loops.

If a planar loop is cut by a standard revolute joint a singular system of equations results.

General parameter

The rotation axis of the revolute joint can be defined by the parameter n. n can be of arbitrary length, but it must not be zero.

The parameter phi_offset defines an offset value for the revolute angle phi.

The parameter animation toggles the visualization of the element.

Visualization

This element is visualized by cylinder along the rotation axis. The settings for length, diameter and color can be specified by the animation parameters.

Parameters

TypeNameDefaultDescription
Booleananimationtrueanimate revolute as cylinder
Positionn[3]{0,0,1}direction of revolute axis [m]
Animation
if animation = true
DistancecylinderLengthworld3D.defaultJointLength Length of cylinder representing the joint axis [m]
DistancecylinderDiameterworld3D.defaultJointWidth Diameter of cylinder representing the joint axis [m]
ColorcylinderColor[3]world3D.defaultJointColor Color of cylinder representing the joint axis

Modelica definition

model PlanarRevolute 
extends Mechanics3D.Joints.CutJoints.PlanarRevolute(
        redeclare Interfaces.IFrame_a frame_a,
        redeclare Interfaces.IFrame_b frame_b);
  
protected 
  Real weakener;
  Real RT[3,3];
  
equation 
  when frame_a.contact then
    RT = transpose(frame_a.P.R);
  end when;
  
  frame_a.Vm = frame_b.Vm + weakener*RT*eN;
  frame_a.F*RT*eN = 0;
  frame_a.T = eN*0;
  frame_a.F + frame_b.F = zeros(3);
  frame_a.T + frame_b.T = zeros(3);
  
end PlanarRevolute;

HTML-documentation generated by Dymola Thu Aug 31 09:48:04 2006.