VC++凸轮机构运动仿真编程示例 一. 机构运动原理 1. 推杆从动件的运动规律(仅列出常用的四种运动规律) 表1-1 从动件的运动方程式 行程 运动 类型 推 程 回 程
等速运动 sh0
vh0
a0
sh
00
vh0
a0
等加速等 减速运 动
前半程 sh2202
vh40
2
ah4202
shh2202
vh40
2
ah4202
后半程 shh2
020
2
vh4002 ah4202 sh20202 vh4
00
2
ah4202
余弦加 速度运动
shvhah212200022020cos
sincos
shvhah212200022020cossincos
正弦加 速度运动
shvhah00002002221222sincossin
shvhah122122200002002sincossin
2. 偏置直动尖顶推杆盘形凸轮机构 如图所示,凸轮逆时针方向转动,导路偏置于凸轮转动中心A,导路距转轴A的垂直距离为偏距e。以偏距e为半径作的圆为偏距圆。当凸轮转动时,凸轮上的偏距圆也随之转动,但其始终与导路轴线相切。凸轮转动时不便求解其上的廓线方程,故采用反转法。反转法是建立在推杆与凸轮的相对运动与参考系无关这一原理上的。所谓反转法,即给整个机构一个与凸轮转向相反的角速度-1,则凸轮静止不动,而从动件随机架反转且沿凸轮廓线相对运动,导路的反转角即凸轮的转角。如图所示,此时导路由BK00转到BK。由于AKBK000
,
AKBK,所以KAK0,此时导路BK与基圆和凸轮廓线的交点BB间的长度,即从动件的位移sBB。由几何关系知BKABKA00'',所以s0BKreb2212。选取坐标 系xAy,B0点为凸轮廓线起始点。当凸轮转过角,由反转法知此时从动件位于BK。则B点的坐标为 XsseYsse00sincos
cossin
(1-1)
式(1-1)即为尖顶推杆凸轮廓线的方程式,也称为理论廓线方程。
2
3
y
x e K B'' B
B0 rb
s K0
s0
1
e A
3. 偏置直动滚子推杆盘形凸轮机构 大多数推杆在尖顶B处装有滚子,以提高推杆的使用寿命。显然,只要使滚子中心B沿理论廓线曲线上运动,即可保证推杆预期的运动规律。如图所示,此时凸轮的轮廓曲线不是理论廓线,而是处处与滚子相切的另一条曲线,这条曲线称为凸轮的实际廓线。因为实际廓线与理论廓线在法线方向的距离处处相等,且等于滚子半径rr,故当已知廓线上任一点
Bxy,时,只要沿理论廓线在该点法线方向取距离为rr,即得实际廓线上的相应点Bxy,。由此可见,理论廓线上作一系列滚子圆的包络线即实际廓线。因此实际廓线是理论廓线的等距曲线。该等距曲线有两条,即内等距曲线和外等距曲线。 盘状槽形凸轮的廓线即该两条等距曲线。由高等数学知识可求得理论廓线B点处法线n-n的斜率(与切线斜率互为负倒数)应为
tanddddddxyxy (1-2)
式(1-2)中的dx/dy与dy/dx可根据式(1-1)求出,代入式(1-2)后有
tansincossincos
ddsess
ssse0
0 (1-3)
式(8-10)中的角可在0360~变化,其值要根据分子、分母的正负号所决定的tan
所在象限来计算。求出角后,可计算Bxy,的坐标值: xxryyrrrcossin
(1-4)
式中“-”号为内等距曲线,“+”号为外等距曲线。式(8-11)即为凸轮的实际廓线方程式。此时实际廓线的基圆半径r0等于理论廓线的基圆半径rb与滚子半径rr之差: rrr0br
r0
A
理论轮廓线
实际轮廓线 B
0
B(x,y)
n
B'(x',y') n
rr
K K0 rb
x
y
4. 机构运动的基本原理 前面计算出了凸轮机构的坐标点,当凸轮转动时,其相对于原点的坐标值要改变。此处可参考《机械原理》教材第六章“平面连杆机构”第三节“机构综合的位移矩阵法”所讲述的内容。
设凸轮上一点原来的坐标为:),(yx,当凸轮转动θ角以后,其坐标变为:
),(yx,则有以下关系:
cossinsincosyxyyxx
在做机构动画时,让θ角从0度到360度等量增加,则可以画出一系列凸轮的位置,形成连续的动画。 二. 编程步骤 1. 项目类型选择MFC AppWizard(exe),项目名取为“TuLun”。
2. 在程序向导的第1步选择建立一个单文档的应用程序,点击“Finish”结束向导。 3. 点击菜单项“Insert → Resource”,插入一个对话框资源,这个对话框将来作为凸轮机构的参数输入窗口。 4. 在参数输入对话框上右键点击,弹出属性对话框,设定其ID号为IDD_PARAMETER,设定其标题Caption为“参数输入对话框”。然后在对话框上添加控件如下图所示,为每一个控件指定ID号。 推程运动规律 一组单选钮:IDC_TUI_1;IDC_TUI_2;IDC_TUI_3;IDC_TUI_4 回程运动规律 一组单选钮:IDC_HUI_1;IDC_HUI_2;IDC_HUI_3;IDC_HUI_4 推程角:IDC_TUI_ANGL;回程角:IDC_HUI_ANGLE; 远停角:IDC_FAR_REST_ANGLE 基圆半径:IDC_BASE_CIRCLE; 行 程:IDC_COURSE;偏 距:IDC_SETOVER 推杆滚子半径:IDC_ROLLER_RADIUS;凸轮转动速度:IDC_CAM_VELOCITY
5. 为对话框添加一个类:在对话框的空白区域处双击鼠标,弹出ClassWizard窗口,在添加一个新类对话框中点击OK按钮,将新类命名为CParameterDlg,其余选择默认值,点击OK按钮确定。 6. 为对话框中的控件添加相应的成员变量:点击菜单“View →ClassWizard” ,点击“Member Variables”标签项,为对话框中的控件添加对应的成员变量如下图所示。
7. 在资源视图(ResourceView)中打开主菜单资源IDR_MAINFRAME,添加顶层菜单项“输入”,弹出菜单项“凸轮机构参数”,并如图设置ID号及标题等。 8. 点击菜单“View →ClassWizard” 为菜单项命令添加消息映射函数。在Class name中选择“CTuLunView”类,目标ID号中选择“ID_INPUT_SIZE”,在“Messages”中选择“Command”,双击,弹出“添加成员函数”对话框,点击“OK”,确认函数名为“OnInputSize”。
9. 在CTuLunView类中定义凸轮相关的成员变量如下: public: //与盘形凸轮相关的数据与变量 int m_Hui_Rule; int m_Tui_Rule; double m_Base_Radius; double m_Course; double m_Setover; int m_Tui_Angle;