Construct lead-screw joint
Use an object of the
simscape.multibody.LeadScrewJoint class to construct a
lead-screw joint. The
LSz property of the object contains a single
simscape.multibody.LeadScrewPrimitive object that has one degree of freedom, as
shown in the image.
During a simulation, the follower frame translates along the z-axis
of the base frame while the follower frame rotates about the same z-axis.
The z-axes of the base and follower frames are aligned. The translation
is proportional to the rotation based on the value of the
Direction properties of the
To specify the state targets of a
LeadScrewJoint object, use a
simscape.op.OperatingPoint object. Note that you can specify either the linear or
angular targets for the object. Specifying both linear and angular targets for one object
generates an error.
For information on class attributes, see Class Attributes.
constructs a lead-screw joint with default values.
lsj = simscape.multibody.LeadScrewJoint
LSz — Lead-screw primitive of joint
Lead-screw primitive of the
returned as a
Specify the Lead, Direction, and State Targets for a Lead-Screw Joint
simscape.multibody.LeadScrewJointobject to create a lead-screw joint.
joint = simscape.multibody.LeadScrewJoint;
Set the lead and direction for the joint.
joint.LSz.Lead = simscape.Value(3,"mm/rev"); joint.LSz.Direction = simscape.multibody.Handedness.LeftHand;
mb = simscape.multibody.Multibody; addComponent(mb,"MyJoint",joint);
To specify the targets of the object, create an empty operating point.
op = simscape.op.OperatingPoint;
Add a high-priority angular position target for the lead-screw primitive to the operating point.
op("MyJoint/LSz/q") = simscape.op.Target(simscape.Value(30,"deg"),"High");
Alternatively, you can add a linear position target. Note that the angular and linear targets must not be added to the same object.
op("MyJoint/LSz/p") = simscape.op.Target(simscape.Value(50,"mm"),"High");
Add a high-priority angular velocity target for the lead-screw primitive to the operating point.
op("MyJoint/LSz/w") = simscape.op.Target(simscape.Value(3,"deg/s"),"High");
Alternatively, you can add a linear velocity target.
op("MyJoint/LSz/v") = simscape.op.Target(simscape.Value(5,"mm/s"),"High")
Introduced in R2022a