BodyBox: Difference between revisions

From Mechanomy Composer Wiki
Jump to navigation Jump to search
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
A rigid body with uniform mass calculated by specified parameters.
A rigid body with uniform mass calculated by the given density and extent. [https://build.openmodelica.org/Documentation/Modelica.Mechanics.MultiBody.Parts.BodyBox.html]


===Modeling Approach===
===Modeling Approach===
The rigid body box has two frames, frame_a and frame_b located at, notionally, two ends.
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===
===Required Parameters===
Line 20: Line 22:
|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 of box
|length||SIunits.Length||length(r-r_shape)||Length of box
|-
|-
|width||SIunits.Distance|| ||Width of box
|lengthDirection||Modelica.Mechanics.MultiBody.Types.Axis||r-r_shape||Vector in length direction of box, resolved in frame_a
|-
|-
|height||SIunits.Distance||width||Height of box
|width||SIunits.Distance||length/defaultWidth||Width of box
|-
|-
|innerWidth||SIunits.Distance||0||Width of inner box surface (0 <= innerWidth <= width)
|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)
|innerHeight||SIunits.Distance||innerWidth||Height of inner box surface (0 <= innerHeight <= height)
|-
|-
|density||SIunits.Density||7700||Density of cylinder (e.g., steel: 7700 .. 7900, wood : 400 .. 800)
|density||SIunits.Density||7700||Density of matieral (e.g., steel: 7700 .. 7900, wood : 400 .. 800)
|-
|-
|lengthDirection||Modelica.Mechanics.MultiBody.Types.Axis||r-r_shape||Vector in length direction of box, resolved in frame_a
|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
|-
|-
|widthDirection||Modelica.Mechanics.MultiBody.Types.Axis||{0,1,0}||Vector in width direction of box, resolved in frame_a
|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_fixed||Boolean||false||if angles_start is used as initial values, else as guess values
|-
|-
|angles_start||SIunits.Angle|| ||Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b
|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
|sequence_start||Types.RotationSequence||{1,2,3}||Sequence of rotations to rotate frame_a into frame_b at initial time
Line 46: Line 56:
|w_0_start||SIunits.AngularVelocity||{0,0,0}||Initial or guess values of angular velocity of frame_a resolved in world frame
|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||false||Boolean||if z_0_start are used as initial values, else as guess values
|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)
|z_0_start||SIunits.AngularAcceleration||{0,0,0}||Initial values of angular acceleration z_0 = der(w_0)
Line 55: Line 65:
|-
|-
|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
|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
|-
|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
|-
|}
|}


Line 85: Line 85:
|I||SIunits.Inertia||Inertia tensor of body box with respect to center of mass, parallel to frame_a
|I||SIunits.Inertia||Inertia tensor of body box with respect to center of mass, parallel to frame_a
|}
|}
===Examples===

Latest revision as of 16:23, 3 January 2020

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]