Main Content

simscape.multibody.SphericalSpringDamper Class

Namespace: simscape.multibody
Superclasses: simscape.multibody.JointForceLaw

Construct spherical spring-damper force law

Since R2022a

Description

Use an object of the simscape.multibody.SphericalSpringDamper class to construct a spherical spring-damper force law. You can use the force law to apply a pure torque to a simscape.multibody.SphericalPrimitive object.

The spherical spring-damper force law is a vector force law. The deviation between the current and equilibrium position is expressed as

Rrel=Re1R,

where:

SymbolDescription
RrelRelative rotation, specified as a vector.
ReEquilibrium position of a spherical primitive, specified as a vector.
RCurrent position of the spherical primitive, specified as a vector that represents a 3-D rotation from the follower to the base frame of the primitive.

The relative rotation can be parameterized by a natural angle-axis pair. The angle, θ, is a scalar angle in the range of [0,180] degree, and the axis, u, is a unit vector along the axis. Therefore, the torque is expressed as

T=ksθukdω,

where:

SymbolDescription
TApplied torque, specified as a vector.
ksSpring stiffness
kdDamping coefficient
uNatural axis of the rotation, specified as a vector. For more information about the natural axis, see naturalAxis method.
θNatural angle of the rotation. For more information about the natural angle, see naturalAngle method.
ωSpherical primitive 3-D angular velocity, specified as a vector.

Class Attributes

Sealed
true
ConstructOnLoad
true
RestrictsSubclassing
true

For information on class attributes, see Class Attributes.

Creation

Description

ssd = simscape.multibody.SphericalSpringDamper constructs a spherical spring-damper force law with default values.

Properties

expand all

Equilibrium position of the spherical spring, specified as an object of a subclass of the simscape.multibody.Rotation class. The torque is zero when the primitive position is at the equilibrium position.

Example: simscape.multibody.AlignedAxesRotation(simscape.multibody.Axis.PosX, simscape.multibody.Axis.NegZ,simscape.multibody.Axis.NegY,simscape.multibody.Axis.PosY)

Attributes:

GetAccess
public
SetAccess
public
NonCopyable
true

Stiffness of the spherical spring, specified as a simscape.Value object that represents a scalar with a unit of torque/angle. The scalar is a measure of how hard the spring pushes the primitive position toward the equilibrium position and must be nonnegative.

Example: simscape.Value(5,"N*m/deg")

Attributes:

GetAccess
public
SetAccess
public
NonCopyable
true

Damping coefficient of the spherical damper, specified as a simscape.Value object that represents a scalar with a unit of torque/angular velocity. The scalar is a measure of how hard the damper resists the motion of a primitive and must be nonnegative.

Example: simscape.Value(10,"N*m/(deg/s))

Attributes:

GetAccess
public
SetAccess
public
NonCopyable
true

Examples

collapse all

This example shows how to set the spring and damping properties for the spherical spring-damper force law. You can use this force law to specify the forces applied to corresponding joint primitives, such as a spherical joint primitive constructed with the simscape.multibody.SphericalPrimitive object.

Create an object that represents a spherical spring-damper force law.

ssd = simscape.multibody.SphericalSpringDamper
ssd = 
  SphericalSpringDamper with properties:

    EquilibriumPosition: [1×1 simscape.multibody.ZeroRotation]
        SpringStiffness: 0 (N*m/deg)
     DampingCoefficient: 0 (N*m*s/deg)

The default equilibrium position of the spring is zero, represented by a simscape.multibody.ZeroRotation object. To specify a different equilibrium position, use a simscape.multibody.Rotation object. For example, you can set the equilibrium position so that the x-axis of the follower aligns with the negative z-axis of the base, and the negative y-axis of the follower aligns with the y-axis of the base.

R = simscape.multibody.AlignedAxesRotation(simscape.multibody.Axis.PosX, ...
    simscape.multibody.Axis.NegZ,simscape.multibody.Axis.NegY,simscape.multibody.Axis.PosY);
ssd.EquilibriumPosition = R
ssd = 
  SphericalSpringDamper with properties:

    EquilibriumPosition: [1×1 simscape.multibody.AlignedAxesRotation]
        SpringStiffness: 0 (N*m/deg)
     DampingCoefficient: 0 (N*m*s/deg)

The default spring stiffness and damping coefficient are zero. To set these values, use simscape.Value objects.

ssd.SpringStiffness = simscape.Value(0.5,"N*cm/deg");
ssd.DampingCoefficient  = simscape.Value(0.1, "N*cm/(rev/s)")
ssd = 
  SphericalSpringDamper with properties:

    EquilibriumPosition: [1×1 simscape.multibody.AlignedAxesRotation]
        SpringStiffness: 0.5000 (N*cm/deg)
     DampingCoefficient: 0.1000 (N*cm*s/rev)

Use the SphericalSpringDamper object to specify the torque applied to a spherical joint.

joint = simscape.multibody.SphericalJoint;
joint.S.ForceLaws = ssd;

Version History

Introduced in R2022a