modelBodyCylinder
Rigid body with cylinder shape. Mass and animation properties are computed from cylinder data and density (12 potential states)
Information
Rigid body with cylinder shape. The mass properties of the body (mass, center of mass, inertia tensor) are computed from the cylinder data. Optionally, the cylinder may be hollow. The cylinder shape is by default used 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 BodyCylinder 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 cylinder 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 cylinder origin, resolved in frame_a |
| Modelica.Mechanics.MultiBody.Types.Axis | lengthDirection | to_unit1(r - r_shape) | Vector in length direction of cylinder, resolved in frame_a |
| SI.Length | length | Modelica.Math.Vectors.length(r - r_shape) | Length of cylinder |
| SI.Distance | diameter | length/world.defaultWidthFraction | Diameter of cylinder |
| SI.Distance | innerDiameter | 0 | Inner diameter of cylinder (0 <= innerDiameter <= Diameter) |
| SI.Density | density | 7700 | Density of cylinder (e.g., steel: 7700 .. 7900, wood : 400 .. 800) |
| SI.Distance | radius | diameter/2 | Radius of cylinder |
| SI.Distance | innerRadius | innerDiameter/2 | Inner-Radius of cylinder |
| SI.Mass | mo | density*pi*length*radius*radius | Mass of cylinder without hole |
| SI.Mass | mi | density*pi*length*innerRadius*innerRadius | Mass of hole of cylinder |
| SI.Inertia | I22 | (mo*(length*length + 3*radius*radius) - mi*(length*length + 3*innerRadius*innerRadius))/12 | Inertia with respect to axis through center of mass, perpendicular to cylinder axis |
| SI.Mass | m | mo - mi | Mass of cylinder |
| Frames.Orientation | R | Frames.from_nxy(r, {0, 1, 0}) | Orientation object from frame_a to frame spanned by cylinder axis and axis perpendicular to cylinder axis |
| SI.Position[3] | r_CM | r_shape + normalizeWithAssert(lengthDirection)*length/2 | Position vector from frame_a to center of mass, resolved in frame_a |
| SI.Inertia[3,3] | I | Frames.resolveDyade1(R, diagonal({(mo*radius*radius - mi*innerRadius*innerRadius)/2, I22, I22})) | Inertia tensor of cylinder with respect to center of mass, resolved in frame 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 cylinder |
| 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 |