*SetCoupler() - single coupler

Sets the coupler ratios for a 2-joint or 3-joint coupler.

Syntax

*SetCoupler(coupler_name, ratio_1, [ratio_2])

Arguments

coupler_name
The variable name of an existing coupler pair.
Data type: varname
ratio_1
The ratio is the displacement of joint 1 divided by the displacement of joint 2 for each joint's respective direction of displacement.
Data type: real
ratio_2
The ratio is the displacement of joint 1 divided by the displacement of joint 3 for each joint's respective direction of displacement. Required if *SetCouplerType() is set to 3JOINT.
Data type: real

Example

*RevJoint(rj_kingpinleft, "Left Kingpin Joint", 
 b_leftknuckle, 
 b_ground, 
 p_lknuckle_cg, 
 v_Z)
*RevJoint(rj_kingpinright, "Right Kingpin Joint", 
 b_rightknuckle, 
 b_ground, 
 p_rknuckle_cg, 
 v_Z)
*TransJoint(tj_rack, "Rack Joint", 
 b_rack, 
 b_ground, 
 p_rack, 
 v_Y)
*Body(b_leftknuckle, "Left Knuckle", p_lknuckle_cg)
*Body(b_rightknuckle, "Right Knuckle", p_rknuckle_cg)
*Body(b_rack, "Right Knuckle", p_rack_cg)
*Point(p_lknuckle_cg, "Left Knuckle Pt")
*Point(p_rknuckle_cg, "Right Knuckle Pt")
*Point(p_rack_cg, "Right Knuckle Pt")
*Vector(v_Z, "Global Z")
*Vector(v_Y, "Global Y")
*Coupler(rot_cplr, "Rot Coupler", rj_kingpinleft, 
 rj_kingpinright, 
 rj_rack, 
 ROT, 
 ROT, 
 TRANS) 
*SetCouplerType(rot_cplr, 3JOINT)
*SetCoupler(rot_cplr, 5.0, 10.0)

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Comments

No pair entity exists for a three joint coupler.

In the example of a rack (joint 2) moving 20 mm per column (joint 1) revolution, the ratio of joint 1 translational to joint 2 rotational would be (20 mm)/(2*pi rad).