Spherical
Spherical joint (3 constraints and no potential states, or 3 degrees-of-freedom and 3 states)
Library
Modelica/Mechanics/MultiBody/Joints
Description
Joint with 3 constraints that define that the origin offrame_a and the origin of frame_b coincide. By default this jointdefines only the 3 constraints without any potential states.If parameter enforceStates is set to truein the "Advanced" menu, three states are introduced.Depending on parameter useQuaternions these are eitherquaternions and the relative angular velocity or 3 anglesand the angle derivatives. In the latter case the orientationof frame_b is computed by rotating frame_a along the axes definedin parameter vector "sequence_angleStates" (default = {1,2,3}, i.e.,the Cardan angle sequence) around the angles used as states.For example, the default is to rotate the x-axis of frame_aaround angles[1], the new y-axis around angles[2] and the new z-axisaround angles[3], arriving at frame_b. If angles are usedas states there is the slight disadvantage thata singular configuration is present leading to a division by zero.
If this joint is used in a chain structure, a Modelica translatorhas to select orientation coordinates of a body as states, if thedefault setting is used. It is usually better to use relative coordinatesin the spherical joint as states, and therefore in this situationparameter enforceStates might be set to true.
If this joint is used in a loop structure, the defaultsetting results in a cut-joint thatbreaks the loop in independent kinematic pieces, hold togetherby the constraints of this joint. As a result, a Modelica translatorwill first try to select 3 generalized coordinates in the joints ofthe remaining parts of the loop and their first derivative as statesand if this is not possible, e.g., because there are only sphericaljoints in the loop, will select coordinates from a body of the loopas states.
In the following figure the animation of a sphericaljoint is shown. The light blue coordinate system isframe_a and the dark blue coordinate system isframe_b of the joint.(here: angles_start = {45, 45, 45}o).
Parameters
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_animation | animation | = true, if animation shall be enabled (show sphere) | Scalar | true |
mo_R_rel_start | R_rel_start | Orientation object from frame_a to frame_b at initial time | FromModelica('Modelica.Mechanics.MultiBody.Frames.Orientation') | |
mo_Q_start | Q_start | Quaternion orientation object from frame_a to frame_b at initial time | Vector of size 4 | |
mo_phi_start | phi_start | Potential angle states at initial time | Vector of size 3 | |
mo_sphereDiameter | sphereDiameter | Diameter of sphere representing the spherical joint | Scalar | |
mo_sphereColor | sphereColor | Color of sphere representing the spherical joint | Vector of size 3 | |
mo_specularCoefficient | specularCoefficient | Reflection of ambient light (= 0: light is completely absorbed) | Scalar | |
mo_Q | Q | Q | Structure | |
mo_Q/fixed | fixed | Cell of vectors of size 4 | true | |
mo_Q/start | start | Cell of vectors of size 4 | ||
mo_phi | phi | phi | Structure | |
mo_phi/fixed | fixed | Cell of vectors of size 3 | true | |
mo_phi/start | start | Cell of vectors of size 3 | ||
mo_w_rel | w_rel | w_rel | Structure | |
mo_w_rel/fixed | fixed | Cell of vectors of size 3 | true | |
mo_w_rel/start | start | Cell of vectors of size 3 |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_angles_fixed | angles_fixed | = true, if angles_start are used as initial values, else as guess values | Scalar | true |
mo_angles_start | angles_start | Initial values of angles to rotate frame_a around 'sequence_start' axes into frame_b | Vector of size 3 | |
mo_sequence_start | sequence_start | Sequence of rotations to rotate frame_a into frame_b at initial time | Vector of size 3 | |
mo_w_rel_a_fixed | w_rel_a_fixed | = true, if w_rel_a_start are used as initial values, else as guess values | Scalar | true |
mo_w_rel_a_start | w_rel_a_start | Initial values of angular velocity of frame_b with respect to frame_a, resolved in frame_a | Vector of size 3 | |
mo_z_rel_a_fixed | z_rel_a_fixed | = true, if z_rel_a_start are used as initial values, else as guess values | Scalar | true |
mo_z_rel_a_start | z_rel_a_start | Initial values of angular acceleration z_rel_a = der(w_rel_a) | Vector of size 3 |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo_enforceStates | enforceStates | = true, if relative variables of spherical joint shall be used as states (StateSelect.always) | Scalar | true |
mo_useQuaternions | useQuaternions | = true, if quaternions shall be used as states otherwise use 3 angles as states (provided enforceStates=true) | Scalar | true |
mo_sequence_angleStates | sequence_angleStates | Sequence of rotations to rotate frame_a into frame_b around the 3 angles used as states | Vector of size 3 |
Name | Label | Description | Data Type | Valid Values |
---|---|---|---|---|
mo__nmodifiers | Number of Modifiers | Specifies the number of modifiers | Number | |
mo__modifiers | Modifiers | Add new modifier | Structure | |
mo__modifiers/varname | Variable name | Cell of strings | 'phi_d' | |
mo__modifiers/attribute | Attribute | Cell of strings | 'start' | |
mo__modifiers/value | Value |
Ports
Name | Type | Description | IO Type | Number |
---|---|---|---|---|
frame_a | implicit | Coordinate system a fixed to the component with one cut-force and cut-torque | input | 1 |
frame_b | implicit | Coordinate system b fixed to the component with one cut-force and cut-torque | output | 1 |