机械原理大作业凸轮机构.docx

上传人:b****1 文档编号:1329598 上传时间:2023-04-30 格式:DOCX 页数:24 大小:171.94KB
下载 相关 举报
机械原理大作业凸轮机构.docx_第1页
第1页 / 共24页
机械原理大作业凸轮机构.docx_第2页
第2页 / 共24页
机械原理大作业凸轮机构.docx_第3页
第3页 / 共24页
机械原理大作业凸轮机构.docx_第4页
第4页 / 共24页
机械原理大作业凸轮机构.docx_第5页
第5页 / 共24页
机械原理大作业凸轮机构.docx_第6页
第6页 / 共24页
机械原理大作业凸轮机构.docx_第7页
第7页 / 共24页
机械原理大作业凸轮机构.docx_第8页
第8页 / 共24页
机械原理大作业凸轮机构.docx_第9页
第9页 / 共24页
机械原理大作业凸轮机构.docx_第10页
第10页 / 共24页
机械原理大作业凸轮机构.docx_第11页
第11页 / 共24页
机械原理大作业凸轮机构.docx_第12页
第12页 / 共24页
机械原理大作业凸轮机构.docx_第13页
第13页 / 共24页
机械原理大作业凸轮机构.docx_第14页
第14页 / 共24页
机械原理大作业凸轮机构.docx_第15页
第15页 / 共24页
机械原理大作业凸轮机构.docx_第16页
第16页 / 共24页
机械原理大作业凸轮机构.docx_第17页
第17页 / 共24页
机械原理大作业凸轮机构.docx_第18页
第18页 / 共24页
机械原理大作业凸轮机构.docx_第19页
第19页 / 共24页
机械原理大作业凸轮机构.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

机械原理大作业凸轮机构.docx

《机械原理大作业凸轮机构.docx》由会员分享,可在线阅读,更多相关《机械原理大作业凸轮机构.docx(24页珍藏版)》请在冰点文库上搜索。

机械原理大作业凸轮机构.docx

机械原理大作业凸轮机构

HarbinInstituteofTechnology

大作业设计说明书

 

课程名称:

机械原理

设计题目:

凸轮机构

院系:

机电工程学院

班级:

1108101

设计者:

马舜

学号:

1110810115

指导教师:

陈明丁刚

设计时间:

2013.06.12

 

哈尔滨工业大学

一、设计题目

图1

序号

升程mm

升程运动角()

升程运动规律

升程许用压力角()

回程运动角()

回程运动规律

回程许用压力角()

远休止角()

近休止角()

16

100

90

正弦加速度

30

80

3-4-5多项式

70

110

80

二、推杆升程,回程运动方程

1.推杆升程方程(式中

2.推杆回程方程(式中

其中

并且取

=1

三、推杆的位移、速度和加速度图像

(1)推杆位移图

图2

(2)推杆速度图

图3

(3)推杆加速度图

图4

三、确定凸轮基圆半径和偏距

(1)凸轮机构的

线图

图5

(2)确定凸轮的基圆半径r0和偏距e

①理论依据

设以从动件的位移s为纵坐标(相当于从动件运动导路),以类速度

为横坐标。

当给定一系列的凸轮转角

,则根据已知的运动规律,可以求得s和

的值,从而作出

曲线。

由于题目为左偏置凸轮机构,故推程在s轴左边,回程在s轴右边。

分别再作出升程压力角对应的极限直线和回程压力角对应的极限直线,有图像可得偏距e和s0的取值范围。

从中选取最合理的偏距,从而得到基圆半径r0。

②r0和e取值

综合考虑取偏距e=50mm,s0=100mm。

故可得到基圆半径r0=111.80mm。

用matlab进行编程时选取e=50.54mm,r0=101.09mm

四、滚子半径rr的选择

(1)理论依据

为保证凸轮正常工作,其工作轮廓线曲率半径ρa、理论轮廓线ρ和滚子rr半径三者应满足:

只有当ρ>rr时,ρa>0,这时可以作出凸轮的工作轮廓线。

综上所述,滚子半径rr不宜过大。

但因为滚子装在销轴上,故亦不宜过小。

一般推荐:

式中,

为凸轮理论轮廓外凸部分的最小曲率半径;

=3~5mm。

(2)滚子半径的取值

可求得在极坐标下曲线曲率半径的表达式:

用VB编程求得理论轮廓曲线上最小的曲率半径为

=78.56mm。

故综合考虑取rr=20mm。

五、绘制理论轮廓线

图6

六、绘制实际轮廓线

图7

附录1:

VB程序界面

该程序有良好的人机交互界面,可以计算表中列出的所有凸轮参数值,只需要选择运动规律并输入值即可完成运算和绘图,易于更改参数,从而观察不同参数对凸轮轮廓的影响。

对于偏距和基圆半径的确定,采用有限搜寻法,画出了偏距和基圆半径的取值区域,可根据不同环境下选择参数。

最小曲率半径的计算用到了高等代数的弧微分知识,同样用搜寻法找出最小曲率半径的位置。

根据曲率半径即所应用的场合确定棍子半径,进而可以画出凸轮实际轮廓线和滚子运动的模拟图。

 

附录2:

VB源程序

(1)窗体部分

PrivateSubcmdCancle_Click()

UnloadMe

EndSub

PrivateSubcmdLL_Click()

IftetR0.Text=""Then

MsgBox"请输入偏距e和s0!

"

ExitSub

EndIf

CallModule3.Lframe

EndSub

PrivateSubcmdOk_Click()

DimiAsLong

pi=3.1415936

h=Val(tetH.Text)

w=Val(tetW.Text)

a1=Val(tetA1.Text)*pi/180

a0=Val(tetA0.Text)*pi/180

b1=Val(tetB1.Text)*pi/180

b0=Val(tetB0.Text)*pi/180

s1=Val(tetS1.Text)*pi/180

s2=Val(tetS2.Text)*pi/180

Ifh<=0Orw=0Then

MsgBox"你输入的参数有误,请重新输入!

"

ExitSub

EndIf

IfVal(tetA1.Text)+Val(tetB1.Text)+Val(tetS1.Text)+Val(tetS2.Text)<>360Then

MsgBox"你输入的角度值不正确,请重新输入!

"

ExitSub

EndIf

Fori=0To3600

Module1.f=i*pi/1800

CallModule1.action

SS(i)=Module1.S

DDsf(i)=Module1.Dsf

DDDDsf(i)=Module1.DDDsf

VV(i)=Module1.V

AA(i)=Module1.A

Nexti

CallModule2.Paint

EndSub

PrivateSubcmdOk1_Click()

DimiAsLong

e=Val(tetE.Text)

s0=Val(tetS0.Text)

r0=Sqr(e^2+s0^2)

tetR0.Text=r0

Fori=0To10*(Val(Form1.tetA1.Text))

IfTan(a0)<(DDsf(i)-e)/(s0+SS(i))Then

MsgBox"您输入的偏距e和s0不满足升程压力角要求,请重新输入!

"

ExitSub

EndIf

Nexti

Fori=10*(Val(Form1.tetA1)+Val(Form1.tetS1))To10*(Val(Form1.tetA1)+Val(Form1.tetS1)+Val(Form1.tetB1))

IfTan(b0)<(DDsf(i)+e)/(s0+SS(i))Then

MsgBox"您输入的偏距e和s0不满足回程压力角要求,请重新输入!

"

ExitSub

EndIf

Nexti

EndSub

PrivateSubcmdP_Click()

CallModule4.pmin

tetPmin.Text=Module4.pm

EndSub

PrivateSubcmdSecond_Click()

tetH.Text=""

tetW.Text=""

tetA1.Text=""

tetA0.Text=""

tetB1.Text=""

tetB0.Text=""

tetS1.Text=""

tetS2.Text=""

tetE.Text=""

tetS0.Text=""

tetR0.Text=""

tetPmin.Text=""

tetRr.Text=""

picS.Cls

picV.Cls

picA.Cls

picDsf.Cls

picT.Cls

EndSub

PrivateSubcmdSecond1_Click()

tetE.Text=""

tetS0.Text=""

tetR0.Text=""

EndSub

PrivateSubcmdSJ_Click()

Rr=Val(tetRr.Text)

IfRr=0Then

MsgBox"请输入滚子半径!

"

ExitSub

EndIf

CallModule3.Lframe

IfRr>(Module4.pm-3)Then

MsgBox"您输入的滚子半径不满足要求,一般推荐rr<ρmin-Δ,Δ=3~5mm。

"

ExitSub

EndIf

CallModule5.SFrame

EndSub

PrivateSubForm_Load()

'位移图像定义

Form1.picS.Scale(-400,130)-(4000,-30)

Form1.picS.Line(0,-50)-(0,150)

Form1.picS.Line(-300,0)-(3900,0)

Form1.picS.Line(-100,120)-(0,130)

Form1.picS.Line-(100,120)

Form1.picS.Line(3800,-5)-(3900,0)

Form1.picS.Line-(3800,5)

Form1.picS.DrawStyle=2

Fori=450To3600Step450

Form1.picS.Line(i,0)-(i,100)

Form1.picS.CurrentX=i-350:

Form1.picS.CurrentY=-10:

Form1.picS.Printi/10

Nexti

Fori=20To100Step20

Form1.picS.Line(0,i)-(3600,i)

Form1.picS.CurrentX=-450:

Form1.picS.CurrentY=i:

Form1.picS.Printi

Nexti

'速度图像定义

Form1.picV.Scale(-400,180)-(4000,-180)

Form1.picV.Line(0,-170)-(0,180)

Form1.picV.Line(-300,0)-(3900,0)

Form1.picV.Line(-100,160)-(0,180)

Form1.picV.Line-(100,160)

Form1.picV.Line(3800,-10)-(3900,0)

Form1.picV.Line-(3800,10)

Form1.picV.DrawStyle=2

Fori=450To3600Step450

Form1.picV.Line(i,-140)-(i,140)

Form1.picV.CurrentX=i-450:

Form1.picV.CurrentY=-10:

Form1.picV.Printi/10

Nexti

Fori=-140To140Step40

Ifi<>-20Then

Form1.picV.Line(0,i)-(3600,i)

EndIf

Form1.picV.CurrentX=-450:

Form1.picV.CurrentY=i:

Form1.picV.Printi

Nexti

'加速度图像定义

Form1.picA.Scale(-400,400)-(4000,-400)

Form1.picA.Line(0,-390)-(0,400)

Form1.picA.Line(-300,0)-(3900,0)

Form1.picA.Line(-100,370)-(0,400)

Form1.picA.Line-(100,370)

Form1.picA.Line(3800,-20)-(3900,0)

Form1.picA.Line-(3800,20)

Form1.picA.DrawStyle=2

Fori=450To3600Step450

Form1.picA.Line(i,-320)-(i,320)

Form1.picA.CurrentX=i-450:

Form1.picA.CurrentY=-10:

Form1.picA.Printi/10

Nexti

Fori=-320To320Step80

Form1.picA.Line(0,i)-(3600,i)

Form1.picA.CurrentX=-450:

Form1.picA.CurrentY=i:

Form1.picA.Printi

Nexti

'类速度图像定义

Form1.picDsf.Scale(-200,150)-(200,-200)

Form1.picDsf.Line(0,-200)-(0,150)

Form1.picDsf.Line(-200,0)-(200,0)

Form1.picDsf.Line(-8,130)-(0,150)

Form1.picDsf.Line-(8,130)

Form1.picDsf.Line(190,-10)-(200,0)

Form1.picDsf.Line-(190,10)

Form1.picDsf.DrawStyle=2

Fori=-150To150Step50

Form1.picDsf.Line(i,-200)-(i,100)

Form1.picDsf.CurrentX=i-30:

Form1.picDsf.CurrentY=-5:

Form1.picDsf.Printi

Nexti

Fori=-200To100Step50

Ifi<>0Then

Form1.picDsf.Line(-150,i)-(150,i)

Form1.picDsf.CurrentX=-40:

Form1.picDsf.CurrentY=i:

Form1.picDsf.Printi

EndIf

Nexti

'凸轮轮廓图像定义

Form1.picT.Scale(-200,200)-(250,-250)

Form1.picT.Line(0,-240)-(0,200)

Form1.picT.Line(-200,0)-(250,0)

Form1.picT.Line(-10,190)-(0,200)

Form1.picT.Line-(10,190)

Form1.picT.Line(240,-8)-(250,0)

Form1.picT.Line-(240,8)

Form1.picT.DrawStyle=2

Fori=-180To240Step60

Form1.picT.Line(i,-240)-(i,180)

Form1.picT.CurrentX=i-20:

Form1.picT.CurrentY=-5:

Form1.picT.Printi

Nexti

Fori=-240To180Step60

Ifi<>0Then

Form1.picT.Line(-180,i)-(240,i)

Form1.picT.CurrentX=-50:

Form1.picT.CurrentY=i+20:

Form1.picT.Printi

EndIf

Nexti

EndSub

(2)运动分析模块

OptionExplicit

PublicpiAsDouble

Publica1AsDouble'升程运动角

Publica0AsDouble'升程许用压力角

PublichAsDouble'行程

Publicb1AsDouble'回程运动角

Publicb0AsDouble'回程许用压力角

Publics1AsDouble'远休止角

Publics2AsDouble'近休止角

PublicfAsDouble'转角

PublicwAsDouble'角速度

PublicSAsDouble'位移

PublicDsfAsDouble'类速度

PublicDDDsfAsDouble'类速度一阶导数

PublicVAsDouble'速度

PublicAAsDouble'加速度

PublicSS(3600)AsDouble'每点的位移

PublicDDsf(3600)AsDouble'每点的类速度

PublicDDDDsf(3600)AsDouble'每点的类速度的一阶导数

PublicVV(3600)AsDouble'每点的速度

PublicAA(3600)AsDouble'每点的加速度

PublicSubaction()

pi=3.1415926

Iff<=a1Then

SelectCaseForm1.cboS.Text

Case"等加等减速"

Iff<=a1/2Then

S=2*h*(f/a1)^2

Dsf=(4*h/a1^2)*f

DDDsf=4*h/a1^2

V=(4*h*w/a1^2)*f

A=4*h*w^2/a1^2

ElseIff>=a1/2Andf<=a1Then

S=h-(2*h/a1^2)*(a1-f)^2

Dsf=(4*h/a1^2)*(a1-f)

DDDsf=-4*h/a1^2

V=(4*h*w/a1^2)*(a1-f)

A=-4*h*w^2/a1^2

EndIf

Case"余弦加速度"

S=h*(1-Cos(pi*f/a1))/2

Dsf=(pi*h/(2*a1))*Sin(pi*f/a1)

DDDsf=(pi^2*h/(2*a1^2))*Sin(pi*f/a1)

V=(pi*h*w/(2*a1))*Sin(pi*f/a1)

A=(pi^2*h*w^2/(2*a1^2))*Cos(pi*f/a1)

Case"正弦加速度"

S=h*((f/a1)-(1/(2*pi))*Sin(2*pi*f/a1))

Dsf=h/a1-(h/a1)*Cos(2*pi*f/a1)

DDDsf=(2*pi*h/a1^2)*Sin(2*pi*f/a1)

V=(h*w/a1)*(1-Cos(2*pi*f/a1))

A=(2*pi*h*w^2/a1^2)*Sin(2*pi*f/a1)

Case"3-4-5多项式"

T=f/a1

S=h*(10*T^3-15*T^4+6*T^5)

Dsf=30*h*T^2/a1-60*h*T^3/a1+30*h*T^4/a1

DDDsf=60*h*T/(a1^2)-180*h*T^2/(a1^2)+120*h*T^3/(a1^2)

V=(30*h*w*T^2/a1)*(1-2*T+T^2)

A=(60*h*w^2*T/(a1^2))*(1-3*T+2*T^2)

EndSelect

ElseIff>=a1Andf<=a1+s1Then

S=h

Dsf=0

DDDsf=0

V=0

A=0

ElseIff>=a1+s1Andf<=a1+s1+b1Then

SelectCaseForm1.cboH.Text

Case"等加等减速"

Iff>=a1+s1Andf<=a1+s1+b1/2Then

S=h-(2*h/b1^2)*(f-(a1+s1))^2

Dsf=-(4*h/b1^2)*(f-(a1+s1))

DDDsf=-4*h/b1^2

V=-(4*h*w/b1^2)*(f-(a1+s1))

A=-4*h*w^2/b1^2

ElseIff>=a1+s1+b1/2Andf<=a1+s1+b1Then

S=(2*h/b1^2)*((a1+s1+b1)-f)^2

Dsf=-(4*h/b1^2)*((a1+s1+b1)-f)

DDDsf=4*h/b1^2

V=-(4*h*w/b1^2)*((a1+s1+b1)-f)

A=4*h*w^2/b1^2

EndIf

Case"余弦加速度"

S=h*(1+Cos(pi*(f-(a1+s1))/b1))/2

Dsf=-(pi*h/(2*b1))*Sin(pi*(f-(a1+s1))/b1)DDDsf=-(pi^2*h/(2*b1^2))*Cos(pi*(f-(a1+s1))/b1)

V=-(pi*h*w/(2*a1))*Sin(pi*(f-(a1+s1))/b1)

A=-(pi^2*h*w^2/(2*b1^2))*Cos(pi*(f-(a1+s1))/a1)

Case"正弦加速度"

S=h*(1-((f-(a1+s1))/b1)+(1/(2*pi))*Sin(2*pi*(f-(a1+s1))/b1))

Dsf=-h/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2