直动从动件盘型凸轮机构_第1页
直动从动件盘型凸轮机构_第2页
直动从动件盘型凸轮机构_第3页
直动从动件盘型凸轮机构_第4页
直动从动件盘型凸轮机构_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、直动从动件盘型凸轮机凸轮设计简介:凸轮是一个具有曲线轮廓或凹槽的构件,一般为主动件,作等速回转运动或往复直线运动。与凸轮轮廓接触,并传递动力和实现预定的运动规律的构件,一般做往复直线运动或摆动,称为从动件。凸轮机构在应用中的基本特点在于能使从动件获得较复杂的运动规律。因为从动件的运动规律取决于凸轮轮廓曲线,所以在应用时,只要根据从动件的运动规律来设计凸轮的轮廓曲线就可以了。由凸轮的回转运动或往复运动推动从动件作规定往复移动或摆动的机构。凸轮具有曲线轮廓或凹槽,有盘形凸轮、圆柱凸轮和移动凸轮等,其中圆柱凸轮的凹槽曲线是空间曲线,因而属于空间凸轮。从动件与凸轮作点接触或线接触,有滚子从动件、平底从

2、动件和尖端从动件等。尖端从动件能与任意复杂的凸轮轮廓保持接触,可实现任意运动,但尖端容易磨损,适用于传力较小的低速机构中。在带滚子的直动从动件盘形凸轮机构中,凸轮回转一周从动件依次作升-停-降-停4个动作。从动件位移s(或行程高度h)与凸轮转角(或时间t)的关系称为位移曲线。从动件的行程h有推程和回程。凸轮轮廓曲线决定于位移曲线的形状。在某些机械中,位移曲线由工艺过程决定,但一般情况下只有行程和对应的凸轮转角根据工作需要决定,而曲线的形状则由设计者选定,可以有多种运动规律。传统的凸轮运动规律有等速、等加速等减速、余弦加速度和正弦加速度等。等速运动规律因有速度突变,会产生强烈的刚性冲击,只适用于

3、低速。等加速-等减速和余弦加速度也有加速度突变,会引起柔性冲击,只适用于中、低速。正弦加速度运动规律的加速度曲线是连续的,没有任何冲击,可用于高速。曲线是凸轮机构设计的关键,常用的设计方法有解析法和图解法以带滚子的对心直动从动件为例,用图解法时,在确定位移曲线s、滚子中心初始位置和凸轮基圆半径r0后,凸轮廓线可由反转法得到,即使凸不动,找出滚子相对于凸轮的一系列位置,用光滑曲线连接各滚子中心B1、B2、B3等点即得凸轮的理论廓线,再作这些滚子的包络线即得到凸轮的实际廓线。选择滚子半径rr,应小于理论廓线的最小曲率半径,以免产生干涉。用解析法时,同样先要确定从动件的位移变化规律s=s()、基圆半

4、径r0和滚子半径rr,从而得到凸轮理论廓线的参数方程x=-rsi炉rcos式中r=r0+s。凸轮实际廓线是一系列滚子圆组成的曲线族的包络线,曲线族的方程为f(x1,y1)=(x1x)2+(y1-y)2-r女=0,所以联解f(x1,y1,)=0可得曲线族的包络线,即实际廓线(见共轲曲线)。基圆半径选得越小,压力角越大,设计所得的凸轮尺寸虽小,但对受力情况不利,严重的还会发生自锁现象,因此在空间允许的条件下应选取较大的基圆半径以改善凸轮的受力情况。用计算机进行凸轮廓线设计能提高效率,并能从多方面综合考虑进行优化设计。这样可用以求得各种运动规律下的从动件的位移、速度、加速度等值和凸轮廓线坐标值,算出

5、凸轮廓线上任意点的曲率半径、压力角和应力,满足接触强度和抗磨的角度,以获得最小尺寸的凸轮,而且还可画出凸轮的空间图形。解析法设计凸轮简介:解析法设计凸轮用图解法设计凸轮的轮廓曲线,简便易行,但误差较大,所以对于精度要求较高的凸轮(如高速凸轮、靠模凸轮等),往往不能满足要求,这时就需用解析法进行设计。用解析法设计凸轮轮廓线的实质是建立凸轮轮廓线的数学方程式。已知偏距e,基圆半径r,从动件的运动规律s=s(8,)升-停-降-停4个动作角度分别为j1、j2、j3、j4,凸轮以等角速度沿逆时针方向回转,要求设计此凸轮的轮廓曲线。OB0为极轴,则凸轮理论廓线上任一点B的(1)(2)设取凸轮回转中心。为极

6、点,以起始向径向径p和极角0可分别表示为e0eej一22其中s3.r0ee0为初始角度ee为固定倾斜角j为反转转过的角度式(1)、(2)即为该凸轮的理论廓线方程。不支持极坐标画圆弧)由此就可以得到凸轮轮廓线坐标值(VC6xmcosynsin以及从动件顶端坐标值:xmeynss0由从动件顶端坐标可以画出从动件的轮廓。速度曲线和加速度曲线可以对s分别求一阶导和二阶导,得到曲线的y值,x值则均匀变化即可。从而得到曲线坐标:xkjysdsdj程序设计简介:程序选用VC6.0实现,选则CDC来绘图。程序中需要画凸轮的轮廓图,位置、速度、加速度曲线;还要出现凸轮的动画展示。因此设计程序使用了MFC单文档程

7、序,相应的文档用以绘制轮廓图,位置、速度、加速度曲线,而动画展示则在其中插入一个窗口来实现。因为需要向程序输入一定的数据,因而建立一个输入窗口来实现输入。单文档窗口如下:55茫,一工rnadhaie文帕村有阳口=aiM吸阴,接电应=厄03X0,3:7输入窗口如下:动画窗口如下:19程序代码实现简介(调试环境VC6.0):核心代码如下:CDrawingSetDialog类(输入数据类):#includestdafx.h#includemachine.h#includeDrawingSetDialog.h#includeDynamic_pictureDialog.h#ifdef_DEBUG#def

8、inenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endif/CDrawingSetDialogdialogCDrawingSetDialog:CDrawingSetDialog(CWnd*pParent/*=NULL*/):CDialog(CDrawingSetDialog:IDD,pParent)m_e=10.0f;/初始化m_h=50.0f;m_r=40.0f;m_j1=90;m_j2=90;m_j3=90;m_j4=90;m_flag=0;CDrawingSetDialog:CDrawingSetDialog(intwh

9、o,CWnd*pParent/*=NULL*/):CDialog(CDrawingSetDialog:IDD,pParent)whoflag=who;m_e=10.0f;m_h=50.0f;m_r=40.0f;m_j1=90;m_j2=90;m_j3=90;m_j4=90;m_flag=0;voidCDrawingSetDialog:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CDrawingSetDialog)DDX_Text(pDX,IDC_E,m_e);DDX_Text(pDX,ID

10、C_H,m_h);DDV_MinMaxFloat(pDX,m_h,0.f,1.e+023f);DDX_Text(pDX,IDC_R,m_r);DDV_MinMaxFloat(pDX,m_r,0.f,1.e+018f);DDX_Text(pDX,IDC_J1,m_j1);DDV_MinMaxInt(pDX,m_j1,0,360);DDX_Text(pDX,IDC_J2,m_j2);DDV_MinMaxInt(pDX,m_j2,0,360);DDX_Text(pDX,IDC_J3,m_j3);DDV_MinMaxInt(pDX,m_j3,0,360);DDX_Text(pDX,IDC_J4,m_j

11、4);DDV_MinMaxInt(pDX,m_j4,0,360);DDX_Radio(pDX,IDC_FLAG0,m_flag);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CDrawingSetDialog,CDialog)/AFX_MSG_MAP(CDrawingSetDialog)/AFX_MSG_MAPEND_MESSAGE_MAP()/CDrawingSetDialogmessagehandlersvoidCDrawingSetDialog:OnOK()UpdateData(TRUE);if(m_em_r)AfxMessageBox(错误!ER);/错误提示if(3

12、60!=m_j1+m_j2+m_j3+m_j4)AfxMessageBox(错误!m_j1+m_j2+m_j3+m_j4!=360);if(1=whoflag)CDynamic_pictureDialogdlg(m_r,m_e,m_h,m_j1,m_j2,m_j3,m_j4,m_flag);dlg.DoModal();CDialog:OnOK();CDynamic_pictureDialog类(实现动画):#includestdafx.h#includemachine.h#includeDynamic_pictureDialog.h#includemath.h#ifdef_DEBUG#defi

13、nenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endif/CDynamic_pictureDialogdialogCDynamic_pictureDialog:CDynamic_pictureDialog(CWnd*pParent/*=NULL*/):CDialog(CDynamic_pictureDialog:IDD,pParent)m_r=100;/初始化m_e=10;m_h=50;m_j1=90;m_j2=90;m_j3=90;m_j4=90;m=400;n=250;m_flag=0;e0=0;wflag=1;CDyna

14、mic_pictureDialog:CDynamic_pictureDialog(floatr,floate,floath,intj1,intj2,intj3,intj4,intflag,CWnd*pParent):CDialog(CDynamic_pictureDialog:IDD,pParent)m_r=r;m_e=e;m_h=h;m_j1=j1;m_j2=j2;m_j3=j3;m_j4=j4;m=350;n=270;m_flag=flag;e0=0;wflag=1;voidCDynamic_pictureDialog:DoDataExchange(CDataExchange*pDX)CD

15、ialog:DoDataExchange(pDX);/AFX_DATA_MAP(CDynamic_pictureDialog)/NOTE:theClassWizardwilladdDDXandDDVcallshere/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CDynamic_pictureDialog,CDialog)/AFX_MSG_MAP(CDynamic_pictureDialog)ON_WM_TIMER()ON_BN_CLICKED(IDC_START,OnStart)ON_BN_CLICKED(IDC_STOP,OnStop)/AFX_MSG_MAPEND_MES

16、SAGE_MAP()/CDynamic_pictureDialogmessagehandlersvoidCDynamic_pictureDialog:panduan()CDC*pDC=GetDC();/取得设备环境CPenpen,*poldpen;if(0=wflag)pen.CreatePen(0,3,RGB(255,10,0);poldpen=pDC-SelectObject(&pen);huatu(pDC);/调用绘图elsepen.CreatePen(0,3,RGB(192,192,192);poldpen=pDC-SelectObject(&pen);e0-;huatu(pDC);/

17、调用绘图e0+;pDC-SelectObject(poldpen);pen.DeleteObject();ReleaseDC(pDC);voidCDynamic_pictureDialog:huatu(CDC*pDC)doublepi=3.141592653;/辅助变量doubles,s0,s11,s12,s2,r;doublex,y,e,y0=m_r*sin(e);e=e0*pi/180+acos(m_e/m_r);pDC-MoveTo(m+(int)m_r*cos(e),n-m_r*sin(e);/画凸轮轮廓线for(intj=0;j=360-m_j4)s0=s11=s12=s2=0;el

18、seif(j=360-m_j4-m_j3)s0=m_h-m_h*(j-180)/m_j3;s11=m_h-m_h*(j-180)*(j-180)/(m_j3*m_j3);s12=m_h*(j-m_j3-180)*(j-m_j3-180)/(m_j3*m_j3);s2=m_h-0.5*m_h*(1-cos(double)pi*(j-180)/m_j3);elseif(j=360-m_j4-m_j3-m_j2)s0=s11=s12=s2=m_h;elses0=m_h*j/m_j1;s11=m_h*j*j/(m_j1*m_j1);s12=m_h-m_h*(j-m_j1)*(j-m_j1)/(m_j1

19、*m_j1);s2=0.5*m_h*(1-cos(double)pi*j/m_j1);if(0=m_flag)s=s0;elseif(1=m_flag)s=s11;elseif(2=m_flag)s=s12;elses=s2;r=sqrt(m_e*m_e+(sqrt(m_r*m_r-m_e*m_e)+s)*(sqrt(m_r*m_r-m_e*m_e)+s);e=e0*pi/180+acos(m_e/m_r)+j*pi/180;if(j=360-e0)y0=s+sqrt(m_r*m_r-m_e*m_e);x=m+r*cos(e);y=n-r*sin(e);pDC-LineTo(int)x,(in

20、t)y);pDC-MoveTo(m+(int)m_e,n-(int)y0);/画从动件轮廓线pDC-LineTo(m+(int)m_e-10,n-(int)y0-40);pDC-LineTo(m+(int)m_e-10,n-(int)y0-100);pDC-LineTo(m+(int)m_e+10,n-(int)y0-100);pDC-LineTo(m+(int)m_e+10,n-(int)y0-40);pDC-LineTo(m+(int)m_e,n-(int)y0);voidCDynamic_pictureDialog:OnTimer(UINTnIDEvent)e0=e0+1;/旋转角度加一

21、if(360=e0)e0=0;wflag=1-wflag;/调整画笔if(1=startstop)panduan();CDialog:OnTimer(nIDEvent);voidCDynamic_pictureDialog:OnStart()SetTimer(0,10,NULL);/建立计时器对应函数OnTimerstartstop=1;/开始与结束之间切换voidCDynamic_pictureDialog:OnStop()startstop=0;wflag=1;e0=e0+1;panduan();CMachineView类(绘制轮廓线和各曲线)#includestdafx.h#includ

22、estdafx.h#includemachine.h#includemachineDoc.h#includemachineView.h#includemath.h#includeDrawingSetDialog.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE=_FILE_;#endif/CMachineViewIMPLEMENT_DYNCREATE(CMachineView,CView)BEGIN_MESSAGE_MAP(CMachineView,CView)/AFX_MSG_MAP(CMachineView

23、)ON_COMMAND(IDM_DRAWIN_SET,OnDrawinSet)ON_COMMAND(IDM_DYNAMIC_PICTURE,OnDynamicPicture)/AFX_MSG_MAP/StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView:OnFilePrintPreview)END_MESSAGE_MAP()/CMachin

24、eViewconstruction/destructionCMachineView:CMachineView()m_r=40;/初始化m_e=10;m_h=50;m_j1=90;m_j2=90;m_j3=90;m_j4=90;m=200;n=120;flag=3;CMachineView:CMachineView()BOOLCMachineView:PreCreateWindow(CREATESTRUCT&cs)/TODO:ModifytheWindowclassorstylesherebymodifying/theCREATESTRUCTcsreturnCView:PreCreateWind

25、ow(cs);/CMachineViewdrawingvoidCMachineView:OnDraw(CDC*pDC)CMachineDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);/CMachineViewprintingBOOLCMachineView:OnPreparePrinting(CPrintInfo*pInfo)/defaultpreparationreturnDoPreparePrinting(pInfo);voidCMachineView:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/T

26、ODO:addextrainitializationbeforeprintingvoidCMachineView:OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/TODO:addcleanupafterprinting/CMachineViewdiagnostics#ifdef_DEBUGvoidCMachineView:AssertValid()constCView:AssertValid();voidCMachineView:Dump(CDumpContext&dc)constCView:Dump(dc);CMachineDoc*CMachi

27、neView:GetDocument()/non-debugversionisinlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMachineDoc);return(CMachineDoc*)m_pDocument;#endif/_DEBUG/CMachineViewmessagehandlersvoidCMachineView:OnDrawinSet()CDrawingSetDialogdlg;/新建窗口并打开,方便输入数据dlg.DoModal();m_r=dlg.m_r;/读取输入的数据m_e=dlg.m_e;m_h=dlg.m_h;m_j

28、1=dlg.m_j1;m_j2=dlg.m_j2;m_j3=dlg.m_j3;m_j4=dlg.m_j4;flag=dlg.m_flag;CDC*pDC=GetDC();/取得设备环境CPenpen,*poldpen;pen.CreatePen(0,1,240);poldpen=pDC-SelectObject(&pen);pDC-TextOut(m-(int)m_r*3,n+(int)m_r*1.5,轮廓线);/画轮廓线坐标pDC-MoveTo(m,n-(int)m_r*3);pDC-LineTo(m,n+(int)m_r*3);pDC-MoveTo(m-(int)m_r*3,n);pDC-

29、LineTo(m+(int)m_r*3,n);intm0,n0,m1,n1,m2,n2,ss,vv,aa;m0=m+(int)m_r*9,n0=n;/画位置曲线坐标pDC-TextOut(m0-(int)m_h*2,n0+(int)m_h*1.5,位置曲线);pDC-MoveTo(m0-(int)m_r,n0);pDC-LineTo(m0-(int)m_r+(int)m_h*4,n0);pDC-MoveTo(m0,n0+(int)m_h*1.5);pDC-LineTo(m0,n0-(int)m_h*1.5);m1=m,n1=n+(int)m_r*3+(int)m_h*2;/画速度曲线坐标pDC

30、-TextOut(m1-(int)m_h*2,n1+(int)m_h*1.5,速度曲线);pDC-MoveTo(m1,n1-(int)m_h*1.5);pDC-LineTo(m1,n1+(int)m_h*1.5);pDC-MoveTo(m-(int)m_h*0.5,n1);pDC-LineTo(m+(int)m_h*4,n1);m2=m+(int)m_r*9,n2=n+(int)m_r*3+(int)m_h*2;/画加速度曲线坐标pDC-TextOut(m2-(int)m_h*2,n2+(int)m_h*1.5,加速度曲线);pDC-MoveTo(m2,n2-(int)m_h*1.5);pDC

31、-LineTo(m2,n2+(int)m_h*1.5);pDC-MoveTo(m2-(int)m_h*0.5,n2);pDC-LineTo(m2+(int)m_h*4,n2);doublepi=3.141592653;/辅助变量doubles,s0,s11,s12,s2,r;doublev,v0,v11,v12,v2;doublea,a0,a11,a12,a2;doublex,y,e,x0,y0;x0=m+(int)m_r,y0=n,ss=n0,vv=n1,aa=n2,s=0,v=0,a=0;/画位置、速度、加速度各条曲线及轮廓线pDC-Ellipse(m-(int)m_r,n-(int)m_

32、r,m+(int)m_r,n+(int)m_r);/画基圆for(intj=0;j360-m_j4)/j4s0=s11=s12=s2=v0=v11=v12=v2=a0=a11=a12=a2=0;elseif(j360-m_j4-m_j3)/j3s0=m_h-m_h*(j-180)/m_j3;s11=m_h-m_h*(j-180)*(j-180)/(m_j3*m_j3);s12=m_h*(j-m_j3-180)*(j-m_j3-180)/(m_j3*m_j3);s2=m_h-0.5*m_h*(1-cos(double)pi*(j-180)/m_j3);v0=0-m_h*90/m_j1;v11=0

33、-2*m_h*90*(j-180)/(m_j3*m_j3);v12=2*m_h*90*(j-m_j3-180)/(m_j3*m_j3);v2=0-0.5*m_h*sin(double)pi*(j-180)/m_j3)*180/m_j3;a0=0;a11=0-2*m_h*90*90/(m_j3*m_j3);a12=2*m_h*90*90/(m_j3*m_j3);a2=0-0.5*m_h*cos(double)pi*(j-180)/m_j3)*180*180/(m_j3*m_j3);elseif(j360-m_j4-m_j3-m_j2)/j2s0=s11=s12=s2=m_h,v0=v11=v12=v2=a0=a11=a12=a2=0;else/j1s0=m_h*j/m_j1;s11=m_h*j*j/(m_j1*m_j1);s12=m_h-m_h*(j-m_j1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论