modelBodyBox
Rigid body with box shape. Mass and animation properties are computed from box data and density (12 potential states)
Information
Rigid body with box shape. The mass properties of the body (mass, center of mass, inertia tensor) are computed from the box data. Optionally, the box may be hollow. The (outer) box shape is by default used in the animation. The hollow part is not shown in the animation. The two connector frames frame_a and frame_b are always parallel to each other. Example of component animation (note, that the animation may be switched off via parameter animation = false):
A BodyBox component has potential states. For details of these states and of the "Advanced" menu parameters, see model MultiBody.Parts.Body.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | animation | true | = true, if animation shall be enabled (show box between frame_a and frame_b) |
| SI.Position[3] | r | Vector from frame_a to frame_b resolved in frame_a | |
| SI.Position[3] | r_shape | {0, 0, 0} | Vector from frame_a to box origin, resolved in frame_a |
| Modelica.Mechanics.MultiBody.Types.Axis | lengthDirection | to_unit1(r - r_shape) | Vector in length direction of box, resolved in frame_a |
| Modelica.Mechanics.MultiBody.Types.Axis | widthDirection | {0, 1, 0} | Vector in width direction of box, resolved in frame_a |
| SI.Length | length | Modelica.Math.Vectors.length(r - r_shape) | Length of box |
| SI.Distance | width | length/world.defaultWidthFraction | Width of box |
| SI.Distance | height | width | Height of box |
| SI.Distance | innerWidth | 0 | Width of inner box surface (0 <= innerWidth <= width) |
| SI.Distance | innerHeight | innerWidth | Height of inner box surface (0 <= innerHeight <= height) |
| SI.Density | density | 7700 | Density of cylinder (e.g., steel: 7700 .. 7900, wood : 400 .. 800) |
| SI.Mass | mo | density*length*width*height | Mass of box without hole |
| SI.Mass | mi | density*length*innerWidth*innerHeight | Mass of hole of box |
| SI.Mass | m | mo - mi | Mass of box |
| Frames.Orientation | R | Frames.from_nxy(r, widthDirection) | Orientation object from frame_a to coordinates system spanned by r and widthDirection |
| SI.Position[3] | r_CM | r_shape + normalizeWithAssert(lengthDirection)*length/2 | Position vector from origin of frame_a to center of mass, resolved in frame_a |
| SI.Inertia[3,3] | I | Frames.resolveDyade1(R, diagonal({mo*(width*width + height*height) - mi*(innerWidth*innerWidth + innerHeight*innerHeight), mo*(length*length + height*height) - mi*(length*length + innerHeight*innerHeight), mo*(length*length + width*width) - mi*(length*length + innerWidth*innerWidth)}/12)) | Inertia tensor of body box with respect to center of mass, parallel to frame_a |
| Initialization | |||
| Boolean | angles_fixed | false | = true, if angles_start are used as initial values, else as guess values |
| SI.Angle[3] | angles_start | {0, 0, 0} | Initial values of angles to rotate world frame around 'sequence_start' axes into frame_a |
| Types.RotationSequence | sequence_start | {1, 2, 3} | Sequence of rotations to rotate world frame into frame_a at initial time |
| Boolean | w_0_fixed | false | = true, if w_0_start are used as initial values, else as guess values |
| SI.AngularVelocity[3] | w_0_start | {0, 0, 0} | Initial or guess values of angular velocity of frame_a resolved in world frame |
| Boolean | z_0_fixed | false | = true, if z_0_start are used as initial values, else as guess values |
| SI.AngularAcceleration[3] | z_0_start | {0, 0, 0} | Initial values of angular acceleration z_0 = der(w_0) |
| Advanced | |||
| Boolean | enforceStates | false | = true, if absolute variables of body object shall be used as states (StateSelect.always) |
| Boolean | useQuaternions | true | = true, if quaternions shall be used as potential states otherwise use 3 angles as potential states |
| Types.RotationSequence | sequence_angleStates | {1, 2, 3} | Sequence of rotations to rotate world frame into frame_a around the 3 angles used as potential states |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Interfaces.Frame_a | frame_a | Coordinate system fixed to the component with one cut-force and cut-torque | |
| Interfaces.Frame_b | frame_b | Coordinate system fixed to the component with one cut-force and cut-torque |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Mechanics.MultiBody.Types.Color | color | Modelica.Mechanics.MultiBody.Types.Defaults.BodyColor | Color of box |
| Types.SpecularCoefficient | specularCoefficient | world.defaultSpecularCoefficient | Reflection of ambient light (= 0: light is completely absorbed) |
| SI.Position[3] | r_0 | Position vector from origin of world frame to origin of frame_a | |
| SI.Velocity[3] | v_0 | Absolute velocity of frame_a, resolved in world frame (= der(r_0)) | |
| SI.Acceleration[3] | a_0 | Absolute acceleration of frame_a resolved in world frame (= der(v_0)) | |
| Body | body | ||
| FixedTranslation | frameTranslation |