MV-1026: Modeling Curve-to-Curve (CVCV) Higher-Pair Constraint |
|||||
MV-1026: Modeling Curve-to-Curve (CVCV) Higher-Pair Constraint |
In this tutorial, you will learn how to:
• | Model a CVCV (curve-to-curve) joint |
A CVCV (curve-to-curve) joint is a higher pair constraint. The constraint consists of a planar curve on one body rolling and sliding on a planar curve on a second body. The curves are required to be co-planar. This constraint can act as a substitute to contact modeling in many cases where the contact occurs in a plane. One such case is the cam-follower system, in which the follower is in the form of a roller. Instead of modeling the contact between the cam and the follower, we can specify a CVCV constraint between their profiles.
A cam roller mechanism
In this tutorial, we will model a roller type cam-follower mechanism with the help of a CVCV constraint.
Exercise
Copy the files CamProfile.h3d and CamProfile.csv , located in the mbd_modeling\interactive folder, to your <Working directory>.
Step 1: Creating points.
Let’s start with creating points that will help us locate the bodies and joints that we would like to. We will define points for center of mass of the bodies and joint locations.
1. | Start a new MotionView Session. We will work in the default units (kg, mm, s, N). |
2. | From the Project Browser right-click on Model and select Add Reference Entity > Point (or right-click the Points icon on the Model-Reference toolbar). |
The Add Point or PointPair dialog is displayed.
3. | For Label, enter PivotPoint. |
4. | Accept the default variable name and click OK. |
5. | Click on the Properties tab and specify the coordinates as X = 0.0 , Y, = 0.0, and Z = 0.0 |
6. | Follow the same procedure for the points specified in the following table: |
Point |
X |
Y |
Z |
---|---|---|---|
FollowerShaftCM |
0.0 |
67.5 |
0.0 |
FollowerTransJoint |
0.0 |
85.0 |
0.0 |
FollowerRevJoint |
0.0 |
30.0 |
0.0 |
CamCM |
0.0 |
-14.1604 |
0.0 |
Step 2: Creating Bodies.
We will have three bodies apart from the ground body in our model visualization: the cam, the follower shaft and the follower roller. Pre-specified inertia properties will be used to define the bodies.
1. | From the Project Browser right-click on Model and select Add Reference Entity > Body (or right-click the Body icon on the Model-Reference toolbar). |
The Add Body or BodyPair dialog is displayed.
2. | For Label, enter Cam and click OK. |
3. | Right-click on Bodies in the Project Browser and select Add Body to define a second body. |
The Add Body or BodyPair dialog is displayed.
4. | For Label, enter FollowerShaft and click OK. |
5. | Right-click on Bodies in the Project Browser and select Add Body to define a third body. |
The Add Body or BodyPair dialog is displayed.
6. | For Label, enter FollowerRoller and click OK. |
7. | From the Properties tab, specify the following for the three bodies: |
Body |
Mass |
Ixx |
Iyy |
Izz |
Ixy |
Iyz |
Izx |
---|---|---|---|---|---|---|---|
Cam |
0.1724 |
59.339 |
62.6192 |
121.240 |
0.0 |
0.0 |
0.0 |
FollowerShaft |
0.0072 |
3.4270 |
0.0144 |
3.4270 |
0.0 |
0.0 |
0.0 |
FollowerRoller |
0.0030 |
0.0251 |
0.0251 |
0.0375 |
0.0 |
0.0 |
0.0 |
8. | For the Cam body, under the CM Coordinates tab, check the Use CM Coordsys box. |
9. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose CamCM and click OK. |
10. | Accept defaults for axes orientation properties. |
11. | For the FollowerShaft body, under the CM Coordinates tab, check the Use CM Coordsys box. |
12. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerShaftCM and click OK. |
13. | Accept defaults for axes orientation properties. |
14. | For the FollowerRoller body, under the CM Coordinates tab, check the Use CM Coordsys box. |
15. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerRevJoint and click OK. |
16. | Accept defaults for axes orientation properties. |
Step 3: Creating Joints.
Here, we will define all the necessary joints except the CVCV joint which will be defined as a advanced joint later. We require three joints for the model. The first of them is the revolute joint between the cam and ground body. The second joint we need is a translational joint between the follower shaft and ground body and the third joint is the revolute joint that connects the roller to the shaft.
1. | From the Project Browser right-click on Model and select Add Constraint > Joint (or right-click the Joints icon on the Model-Constraint toolbar). |
The Add Joint or JointPair dialog is displayed.
2. | For Label, enter CamPivot. |
3. | Select Revolute Joint as the type and click OK. |
4. | From the Connectivity tab, double-click on Body 1. |
The Select a Body dialog is displayed.
- | Choose Cam and click OK. |
5. | From the Connectivity tab, double-click on Body 2. |
The Select a Body dialog is displayed.
- | Choose Ground Body and click OK. |
6. | Again from the Connectivity tab, double-click on Point. |
The Select a Point dialog is displayed.
- | Choose PivotPoint and click OK. |
7. | For Axis click on the arrow and choose Vector. Now click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Z and click OK. |
8. | Right-click on Joints in the Project Browser and select Add Joint to define a second joint. |
The Add Joint or JointPair dialog is displayed.
9. | For Label, enter FollowerTransJoint. |
10. | Select Translational Joint as the type and click OK. |
11. | From the Connectivity tab, double-click on Body 1. |
The Select a Body dialog is displayed.
- | Choose FollowerShaft and click OK. |
12. | From the Connectivity tab, double-click on Body 2. |
The Select a Body dialog is displayed.
- | Choose Ground Body and click OK. |
13. | Again from the Connectivity tab, double-click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerTransJoint and click OK. |
14. | For Axis, click on the arrow and choose Vector. Now click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Y and click OK. |
15. | Right-click on Joints in the Project Browser and select Add Joint to define a third joint. |
The Add Joint or JointPair dialog is displayed.
16. | For Label, enter FollowerRollerJoint. |
17. | Select Revolute Joint as the type and click OK. |
18. | From the Connectivity tab, double-click on Body 1. |
The Select a Body dialog is displayed.
- | Choose FollowerRoller and click OK. |
19. | From the Connectivity tab, double-click on Body 2. |
The Select a Body dialog is displayed.
- | Choose FollowerShaft and click OK. |
20. | Again from the Connectivity tab, double-click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerRevJoint and click OK. |
21. | For Axis click on the arrow and choose Vector. Now click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Z and click OK. |
Step 4: Creating Markers.
Now, we will define markers required for the definition of the CVCV joint. We need two markers, one associated with the cam and the other associated with the follower roller.
1. | From the Project Browser right-click on Model and select Add Reference Entity > Marker (or right-click the Markers icon on the Model-Reference toolbar). |
2. | For Label, enter CamMarker and click OK. |
3. | From the Properties tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose Cam and click OK. |
4. | From the Properties tab, double-click on Point. |
The Select a Point dialog is displayed.
- | Choose PivotPoint and click OK. |
5. | Accept the defaults for axes orientation. |
6. | Right-click on Markers in the Project Browser and select Add Marker to define a second marker. |
The Add Marker or MarkerPair dialog is displayed.
7. | For Label, enter FollowerMarker and click OK. |
8. | From the Properties tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose FollowerRoller and click OK. |
9. | From the Properties tab, double-click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerRevJoint and click OK. |
10. | Accept the defaults for axes orientation. |
Step 5: Creating Graphics.
Graphics for the cam have been provided as an h3d file. We need to associate the h3d with the cam body defined in our model. The follower shaft and roller can be represented using primitive graphics. To make the visualization better, we will also create some graphics for the joints.
1. | From the Project Browser right-click on Model and select Add Reference Entity > Graphic (or right-click the Graphics icon on the Model-Reference toolbar). |
The Add Graphics or GraphicPair dialog is displayed.
2. | For Label, enter Cam. |
3. | Choose File from the drop-down menu. |
4. | Click on the browser icon and select CamProfile.h3d from the model folder. |
5. | Click Open and then OK. |
6. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose Cam and click OK. |
7. | Right-click on Graphics in the Project Browser and select Add Graphic to define a second graphic. |
The Add Graphics or GraphicPair dialog is displayed.
8. | For Label, enter FollowerShaft. |
9. | Choose Cylinder from the drop-down menu and click OK. |
10. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose FollowerShaft and click OK. |
11. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerShaftCM and click OK. |
12. | Click on the arrow below Direction and select the Vector option. |
13. | Click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Y and click OK. |
14. | From the Properties tab, specify the following values: |
Property |
Value |
---|---|
Length |
75 |
Offset |
-37.5 |
Radius 1 |
2.000 |
Radius 2 |
2.000 |
15. | For the Cap properties, choose Cap Both Ends. |
16. | Right-click on Graphics in the Project Browser and select Add Graphic to define a third graphic. |
The Add Graphics or GraphicPair dialog is displayed.
17. | For Label, enter FollowerRoller. |
18. | Choose Cylinder from the drop-down menu and click OK. |
19. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose FollowerRoller and click OK. |
20. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerRevJoint and click OK. |
21. | Click on the arrow below Direction and select the Vector option. |
22. | Click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Z and click OK. |
23. | From the Properties tab, specify the following values: |
Property |
Value |
---|---|
Length |
5.0 |
Offset |
-2.5 |
Radius 1 |
5.000 |
Radius 2 |
5.000 |
24. | For the Cap properties, choose Cap Both Ends. |
Next, we will add some joint graphics for better visualization and aesthetics.
1. | Right-click on Graphics in the Project Browser and select Add Graphic to define another graphic. |
The Add Graphics or GraphicPair dialog is displayed.
2. | For Label, enter CamPivotGraphicOne (first graphic to show the cam pivot). |
3. | Choose Cylinder from the drop-down menu and click OK. |
4. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose Ground Body and click OK. |
5. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose PivotPoint and click OK. |
6. | Click on the arrow below Direction and select the Vector option. |
7. | Click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Z and click OK. |
8. | From the Properties tab, specify the following values: |
Property |
Value |
---|---|
Length |
7.5 |
Offset |
-3.75 |
Radius 1 |
4.000 |
Radius 2 |
4.000 |
9. | For the Cap properties, choose Cap Both Ends. |
10. | Right-click on Graphics in the Project Browser and select Add Graphic to define another graphic. |
The Add Graphics or GraphicPair dialog is displayed.
11. | For Label, enter CamPivotGraphicTwo (second graphic to show the cam pivot). |
12. | Choose Cylinder from the drop-down menu and click OK. |
13. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose Cam and click OK. |
14. | Double click on Point. |
The Select a Point dialog is displayed.
- | Choose PivotPoint and click OK. |
15. | Click on the arrow below Direction and select the Vector option. |
16. | Click on Vector. |
The Select a Vector dialog is displayed.
- | Choose Global Z and click OK. |
17. | From the Properties tab, specify the following values: |
Property |
Value |
---|---|
Length |
7.6 |
Offset |
-3.8 |
Radius 1 |
2.000 |
Radius 2 |
2.000 |
18. | For the Cap properties, choose Cap Both Ends. |
Repeat this process for the FollowerRevJoint and label the graphics as:
- | RollerPivotGraphicOne on FollowShaft with a length of 7.5 and radius of 2. |
and
- | RollerPivotGraphicTwo on FollowRoller with a length of 7.6 and radius of 1. |
19. | Right-click on Graphics in the Project Browser and select Add Graphic to define another graphic. |
The Add Graphics or GraphicPair dialog is displayed.
20. | For Label, enter FollowerTransJointGraphic (the graphic for the translational joint). |
21. | Choose Box from the drop-down menu and click OK. |
22. | From the Connectivity tab, double-click on Body. |
The Select a Body dialog is displayed.
- | Choose Ground Body and click OK. |
23. | For Type, choose Center from the drop-down menu. |
24. | Double-click on Point. |
The Select a Point dialog is displayed.
- | Choose FollowerTransJoint and click OK. |
25. | For axis orientation, use the vector Global Z as the Z-axis and the vector Global X to define the ZX plane. |
26. | From the Properties tab, specify the following properties: |
Property |
Value |
---|---|
Length X |
15 |
Length Y |
10 |
Length Z |
10 |
At the end of this step, your model should look like the one shown in the figure below:
Step 6: Creating the Curves.
The curves that we will use here are the curves that define the profile of the cam and the roller. The data for the cam profile curve has been provided in csv format. Since the roller profile is circular - it can be defined using mathematical expressions.
1. | From the Project Browser right-click on Model and select Add Reference Entity > Curve (or right-click the Curves icon on the Model-Reference toolbar). |
The Add Curve dialog is displayed.
2. | For Label, enter CamProfile and click OK. |
3. | From the Properties tab, use the first drop-down menu to change the curve from 2D Cartesian to 3D Cartesian. |
4. | From the Properties tab, click on the x radio button. |
5. | Click on the file browser icon and select CamProfile.csv. Click Open. |
6. | Choose the properties of the curve as shown in the figure below: |
7. | From the Properties tab, click on the y radio button. |
8. | Click on the file browser icon and select CamProfile.csv. Click Open. |
9. | Choose the properties of the curve as shown in the figure below: |
10. | From the Properties tab, click on the z radio button. |
11. | Click on the file browser icon and select CamProfile.csv. Click Open. |
12. | Choose the properties of the curve as shown in the figure below: |
Notice the different column numbers used for the x, y and z properties.
13. | From the Properties tab, use the fourth drop-down menu to set the curve type to Closed Curve. |
14. | Right-click on Curves in the Project Browser and select Add Curve to define another curve. |
The Add Curve dialog is displayed.
15. | For Label, enter FollowerRollerProfile and click OK. |
16. | From the Properties tab, use the first drop-down menu to change the curve from 2D Cartesian to 3D Cartesian. |
17. | From the Properties tab, click on the x radio button. |
18. | Select Math from the second drop-down menu on the left. |
19. | Enter 5*sin(2*PI*(0:1:0.01)) in the Expression Builder. |
20. | From the Properties tab, click on the y radio button. |
21. | Select Math from the second drop-down menu on the left. |
22. | Enter 5*cos(2*PI*(0:1:0.01)) in the Expression Builder. |
23. | From the Properties tab, click on the z radio button. |
24. | Select Math from the second drop-down menu at the left. |
25. | Enter 0.0*(0:1:0.01) in the Expression Builder. |
26. | From the Properties tab, use the fourth drop-down menu to change the curve from Open Curve to Closed Curve. |
We now have both of the curves defined.
Step 7: Creating the CVCV Joint.
Now, we will create the CVCV joint.
1. | From the Project Browser right-click on Model and select Add Constraint > Advanced Joint (or right-click the Advanced Joints icon on the Model-Constraint toolbar). |
The Add AdvJoint dialog is displayed.
2. | For Label, enter CVCV. |
3. | Choose CurveToCurveJoint from the drop-down menu and click OK. |
4. | From the Connectivity tab, double-click on Curve 1. |
The Select a Curve dialog is displayed.
- | Choose CamProfile and click OK. |
5. | From the Connectivity tab, double-click on Curve 2. |
The Select a Curve dialog is displayed.
- | Choose FollowerRollerProfile and click OK. |
6. | From the Connectivity tab, double-click on Ref Marker 1. |
The Select a Marker dialog is displayed.
- | Choose CamMarker and click OK. |
7. | Again from the Connectivity tab, double-click on Ref Marker 2. |
The Select a Marker dialog is displayed.
- | Choose FollowerMarker and click OK. |
Step 8: Specifying the Cam Motion.
After we have the topology and constraints specified, we need to provide the cam motion. The most natural choice here is a uniform motion imposed on the revolute joint.
1. | Click the Project Browser right-click on Model and select Add Constraint > Motions (or right-click the Motions icon on the Model-Constraint toolbar). |
The Add Motion or MotionPair dialog is displayed.
2. | For Label, enter CamMotion and click OK. |
3. | From the Connectivity tab, double-click on Joint. Choose CamPivot and click OK. |
4. | From the Properties tab, specify the properties as `10*TIME`. |
Step 9: Specifying Gravity.
Since our shaft is along the Y-axis, we want the gravity to be in the negative Y direction. To specify this:
1. | Click the Forms icon on the Model-General toolbar. |
The Forms panel is displayed.
2. | Select Gravity and specify the following values: |
Direction |
Value |
---|---|
X |
0 |
Y |
-9810 |
Z |
0 |
Step 10: Specifying Output Requests.
We would like to monitor the reaction on CVCV joint since it can help us verify the correctness of our results. This will be discussed in detail towards the end of the tutorial where we will also discuss lift-offs.
1. | From the Project Browser right-click on Model and select Add General MDL Entity > Output (or right-click the Outputs icon on the Model-General toolbar). |
The Add Output dialog is displayed.
2. | For Label, enter CVCV Reaction and click OK. |
3. | From the Properties tab, choose Expressions from the drop-down menu. |
4. | Click in the F2 expression box. |
5. | Click on the button. |
The Expression Builder dialog is displayed.
6. | Populate the expression as 'CVCV({aj_0.idstring},1,2,0)'. |
7. | Click OK. |
8. | Repeat the process for F3, F4, F6, F7, F8 by changing the third parameter to 3, 4, 6, 7, and 8 accordingly. |
The CVCV (id, jflag, comp, ref_marker) function returns the reaction on the CVCV joint:
id |
ID of the CVCV joint |
jflag |
0 gives reaction on the I-marker and 1 on J-marker |
comp |
component of the reaction |
ref_marker |
reference marker (0 implies Global Frame) |
Step 11: Running the Model.
We have the model defined completely and it is now ready to run.
1. | Click the Run icon on the Model-Main toolbar. |
The Run panel is displayed.
2. | From the Main tab, specify values as shown below: |
3. | Choose the Save and run current model radio button. |
4. | Click on the browser icon and specify a file name of your choice. |
5. | Click Save. |
6. | Click the Check Model button on the Model Check toolbar to check the model for errors. |
7. | To run the model, click the Run button on the panel. |
The solver will get invoked here.
Step 12: Viewing the Results.
1. | Once the solver has finished its job, the Animate button will be active. Click on Animate. |
The icon can be used to start the animation, and the icon can be used to stop/pause the animation.
One would also like to inspect the displacement profile of the follower in this mechanism. For this, we will plot the Y position of the center of mass of the follower.
2. | Use the Page Layout drop-down menu on the Page Controls toolbar to select the three-window layout . |
3. | Highlight the lower right window and use the Select application drop-down menu to change the application from MotionView to HyperGraph 2D . |
4. | Click the Build Plots icon on the Curves toolbar. |
5. | Click on the browser icon and load the result.abf file. |
6. | Make selections for the plot as shown below: |
We are plotting the Y profile of the center of mass of the follower.
7. | Click Apply. |
The profile for the Y-displacement of the follower should look like the one shown below:
If we set the X-axis properties to zoom in on one cycle, the profile will look as shown below:
The profile of the cam has been designed to obtain the above Y-profile for the follower.
Now, we come to the discussion on ‘lift-offs’. In some cases, the dynamics of the system may cause the follower to lose contact with the cam - this is called ‘lift-off’. In such cases, modeling the system using a CVCV joint will give us incorrect results. This is because the CVCV joint constrains the follower point to be always on the curve. For such cases, contact modeling has to be used. However one would like to start with a CVCV model whenever applicable, since modeling a CVCV joint is a lot easier than modeling contact. Given this scenario, the following modeling steps should be followed:
1. | Model the system using a CVCV joint. |
2. | Monitor the CVCV joint reaction. If the reaction on the follower is a ‘pulling’ reaction, it means that 'lift-off' would have occurred and one needs to go for a contact model. Otherwise, the CVCV model is good enough. |
Now, let’s check if our CVCV model is good enough. For this, we need to plot the reaction profile on the follower roller. Since the follower is moving along the Y-axis, any negative reaction along the Y-axis is a ‘pulling’ reaction. So, let’s plot the Y-reaction on the follower roller. For this:
3. | Add a new page to the session by clicking on the Add Page icon . |
4. | Choose HyperGraph 2D and click on Build Plots . |
5. | Click on the browser icon and load the result.abf file. |
6. | Make selections for the plot as shown below: |
We are plotting the Y profile of the CVCV reaction on the follower roller.
7. | Click Apply. |
The profile should look like the one shown below:
If we zoom in on one cycle by scaling the X-axis, the profile looks like this:
We see that the Y component of the CVCV reaction on the follower is always positive, and hence it is never a ‘pulling’ reaction. Thus, our CVCV model is good enough to model the dynamics since there is no expected lift-off.
In this tutorial, we learned how to model a CVCV joint and use it to model a cam-follower mechanism. We also discussed 'lift-offs' and ways of verifying the suitability of a CVCV joint model for modeling the dynamics of a particular system.