BodyBox

From Mechanomy Composer Wiki
Jump to navigation Jump to search

A rigid body with uniform mass calculated by the given density and extent. [1]

Modeling Approach[edit]

The rigid body box has two frames, frame_a and frame_b located at, notionally, two ends. The shape is specified by length,width,and height, located at r_shape. Specify inner width and height to form a rectangular cylinder.

Required Parameters[edit]

name type description
r SIunits.Position vector from frame_a to frame_b such that {1, 0, 0} describes a 1<unit> long box with the length in the x direction.

Optional Parameters[edit]

name type default description
r_shape SIunits.Position {0,0,0} vector that locates the box's shape (length, width, height) in frame_a
r_shape SIunits.Position {0,0,0} vector that locates the box's shape (length, width, height) in frame_a
length SIunits.Length length(r-r_shape) Length of box
lengthDirection Modelica.Mechanics.MultiBody.Types.Axis r-r_shape Vector in length direction of box, resolved in frame_a
width SIunits.Distance length/defaultWidth Width of box
innerWidth SIunits.Distance 0 Width of inner box surface (0 <= innerWidth <= width)
widthDirection Modelica.Mechanics.MultiBody.Types.Axis {0,1,0} Vector in width direction of box, resolved in frame_a
height SIunits.Distance width Height of box
innerHeight SIunits.Distance innerWidth Height of inner box surface (0 <= innerHeight <= height)
density SIunits.Density 7700 Density of matieral (e.g., steel: 7700 .. 7900, wood : 400 .. 800)
mo SIunits.Mass min=0, =density*length*width*height Mass of box without hole
mi SIunits.Mass min=0, =density*length*innerWidth*innerHeight Mass of hole of box
m SIunits.Mass (min=0) =mo-mi Mass of box
r_CM SIunits.Position =r_shape+normalize(lengthDirection)*length/2 Position vector from origin of frame_a to center of mass, resolved in frame_a
angles_fixed Boolean false if angles_start is used as initial values, else as guess values
angles_start SIunits.Angle {0,0,0} Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
sequence_start Types.RotationSequence {1,2,3} Sequence of rotations to rotate frame_a into frame_b at initial time
w_0_fixed Boolean false if w_0_start are used as initial values, else as guess values
w_0_start SIunits.AngularVelocity {0,0,0} Initial or guess values of angular velocity of frame_a resolved in world frame
z_0_fixed Boolean false if z_0_start are used as initial values, else as guess values
z_0_start SIunits.AngularAcceleration {0,0,0} Initial values of angular acceleration z_0 = der(w_0)
enforceStates Boolean false if absolute variables of body object shall be used as states (StateSelect.always)
useQuaternions Boolean true if quaternions shall be used as potential states otherwise use 3 angles as potential states
sequence_angleStates Types.RotationSequence {1,2,3} Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states

Public Fields[edit]

name type description
frame_a Interfaces.Frame_a Coordinate system fixed to the component with one cut-force and cut-torque
frame_b Interfaces.Frame_b Coordinate system fixed to the component with one cut-force and cut-torque
r_0 SIunits.Position Position vector from origin of world frame to origin of frame_a
v_0 SIunits.Velocity Absolute velocity of frame_a, resolved in world frame (= der(r_0))
a_0 SIunits.Acceleration Absolute acceleration of frame_a resolved in world frame (= der(v_0))
R Frames.Orientation Orientation object from frame_a to coordinates system spanned by r and widthDirection
I SIunits.Inertia Inertia tensor of body box with respect to center of mass, parallel to frame_a

Examples[edit]