潘 纹 (黄冈职业技术学院机电学院,湖北 黄冈 438002)
凸轮机构压力角的求解
潘 纹 (黄冈职业技术学院机电学院,湖北 黄冈 438002)
凸轮机构的压力角是机构传力性能参数。当压力角超过一定数值时,摩擦阻力阻止从动件运动,产生自锁现象,因此必须保证凸轮轮廓的最大压力角不超过许用值。利用C++程序求解了凸轮机构的压力角,并对压力角公式进行了修正。
凸轮机构;压力角;C++程序
凸轮机构是机械中常用的一种机构,如内燃机的配气机构、自动机床的进给机构、录音机的卷带机构等。在设计凸轮机构时,应让该机构有较好的受力情况和较小的尽寸。凸轮机构的压力角是凸轮对从动件的法向力与该力作用点速度方向所夹的锐角,在凸轮轮廓上各点的压力角的大小是不同的。对于直动从动件,其压力角为30~40°;对于摆动从动件,其压力角为40~50°。在其他条件不变的情况下,凸轮机构基圆的半径越小则压力角越大,但基圆半径过小则压力角就会超过许用值。因此,在实际设计中,应在保证凸轮轮廓的最大压力角不超过许用值的前提下考虑缩小凸轮的尺寸。下面,笔者对凸轮机构压力角进行了求解。
目前,凸轮机构压力角的计算公式为[1-2]:
(1)
根据式(1)求解凸轮机构的压力角,为此编写C++程序如下。
#include “iostream.h”
#include lt;stdio.hgt;
#include lt;math.hgt;
#define PI 3.1415926
void main( )
{float i,r,m,L,z,y=5,a,v,end=0;
double t0,t1,di,x,fg=0.0,h;
cout≪“Please input the data: ”;
cout≪“从动件最大摆角:” ; cin≫m;
cout≪“从动杆长:” ; cin≫L;
cout≪“许用压力角:” ; cin≫v;
cout≪“推程运动角:” ; cin≫z ;
cout≪“机架长:” ; cin≫a;
cout≪“基圆半径为:” ; cin≫r ;
while(end==0)
{ h=m*PI/180;
t0=acos((pow(a,2)+pow(L,2)-pow(r,2))/(2*a*L));
for(i=0;i≤z;i+=y)
{ if(i≤z/2) /*在推程等加速阶段*/
{ di=fabs(4*m*i/pow(z,2));
t1=t0+2*h*pow(i,2)/pow(z,2);
}
else /*在推程等减速阶段*/
{ di=fabs(4*m*(z-i)/pow(z,2));
t1=t0+h-2*h*pow((z-i),2)/pow(z,2);
}
x=atan((L*di+(a*cos(t1)-L))/(a*sin(t1)));
if(xgt;fg) /* 求最大压力角*/
fg=x;
cout≪“当转角为:”≪i≪“时, ”;
cout≪“压力角为:”≪x*180/PI≪endl;
}
cout≪fg*180/PI≪endl;
if(fg*180/PI≤v)
{ cout≪“基圆半径r为:”≪r≪endl;
cout≪“机架长为:”≪a≪endl;
cout≪“此半径下最大压力角为: ”≪fg*180/PI≪endl;
cout≪“滚子半径为: ”≪(int)(0.14*r)≪endl;
end=1;
}
else {r++;fg=0;}
}}
表1 程序执行最后一次循环的结果
运行该程序,当输入从动件最大摆角25°、从动件杆长130mm、许用压力角42°、推程运动角64°、机架长130mm和基圆半径40mm时,可计算出凸轮机构的各项基本参数,其中程序执行最后一次循环的结果如表1所示。由表1可知,凸轮机构压力角中最大者为41.7119°,没有超过42°的许用压力角,因而从动件运动时不会产生自锁现象。
由表1可知,当凸轮转角为0°、55°和60°时压力角为负值。由于压力角是凸轮从动件的法向力与该力作用点速度方向所夹的锐角,其大小可以用量角器直接量取,也可以由诺模图求得,因而均不会出现负值[3]。因此,应对式(1)作如下修正:
(2)
通过上述修正,这样可以在执行程序时不会出现负值,其计算结果与压力角的定义也相符。
[1]石永刚.凸轮机构设计[M].上海:上海科学技术出版社,1995.
[2]黄锡恺,郑文纬.机械原理[M].北京:高等教育出版社, 1993.
[3]武秀东.对摆动从动件外啮合盘形凸轮机构压力角计算公式的讨论[J].长春光学精密机械学院学报,1995(33):63-65.
[编辑] 李启栋
10.3969/j.issn.1673-1409.2012.01.044
TH112.2
A
1673-1409(2012)01-N137-02