哈工大机械原理大作业凸轮23.docx
《哈工大机械原理大作业凸轮23.docx》由会员分享,可在线阅读,更多相关《哈工大机械原理大作业凸轮23.docx(22页珍藏版)》请在冰豆网上搜索。
![哈工大机械原理大作业凸轮23.docx](https://file1.bdocx.com/fileroot1/2023-1/26/97a3e8e0-9eba-47f6-930d-fc21198400f4/97a3e8e0-9eba-47f6-930d-fc21198400f41.gif)
哈工大机械原理大作业凸轮23
机械原理大作业
(二)
作业名称:
凸轮机构设计
设计题目:
23题
院系:
汽车工程学院
设计时间:
2015年5月
哈尔滨工业大学(威海)
1、设计题目
升程/mm
升程运动角/。
升程运动规律
升程许用压力角/。
回程运动角/。
回程运动规律
回城许用压力角/。
远休止角/。
近休止角/。
120
120
余弦加速度
35
90
余弦加速度
65
40
110
2、运动方程式及运动线图
本实验假设凸轮逆时针旋转。
(1)确定凸轮机构推杆升程、回程运动方程,并绘制推杆位移、速度、加速度线图。
(设定角速度为ω=1)
升程:
(0<φ<2π/3)
s=60*(1-Cos(1.5*φ))
v=90*Sin(1.5*φ)
a=135*Cos(1.5*φ)
远休止程:
s=120
v=0
a=0
回程:
(8*π/9<φ<25*π/18)
s=60*(1+Cos(2*(φ-8*pi/9)))
v=-120*Sin(2*(φ-8*pi/9))
a=-240*Cos(2*(φ-8*pi/9))
近休止程:
s=0
v=0
a=0
由上述公式通过编程得到位移、速度、加速度曲线如下:
位移S-转角φ曲线
速度V-转角φ曲线
加速度a-转角φ曲线
3、凸轮机构的
线图及基圆半径和偏距的确定
凸轮机构的
线图:
确定凸轮半径
偏距e取25,S取50.11
半径r=(e^2+s^2)^(1/2)=56
4、滚子半径的确定及凸轮理论廓线和实际廓线的绘制
滚子半径rr的确定:
下图为曲率-转角曲线,20mm>Rmin>10mm取滚子半径为10
理论轮廓(外部)和工作轮廓(内部)
理论轮廓.工作轮廓.基圆(大圆).偏距圆(小圆).滚子包络线(见下页图)
求位移、速度、加速度的程序
PrivateSubCommand1_Click()
DimsAsDouble
Dimf0AsDouble
DimfsAsDouble
Dimf01AsDouble
Dimfs1AsDouble
DimffAsDouble
DimfAsDouble
DimpiAsDouble
DimpaAsDouble
Picture1.DrawWidth=1
Picture1.Scale(-30,150)-(390,-30)
Picture1.Line(-30,0)-(390,0)'XPicture1.Line(0,-30)-(0,150)'Y
Picture1.CurrentX=0:
Picture1.CurrentY=130
Picture1.Print"位移S"
Picture1.CurrentX=330:
Picture1.CurrentY=20
Picture1.Print"角度/度"
Fori=30To390Step30
Picture1.Line(i,5)-(i,0)
Picture1.CurrentX=i-7:
Picture1.CurrentY=0
Picture1.Printi
Nexti
Fori=30To150Step30
Picture1.Line(0,i)-(5,i)
Picture1.CurrentX=-20:
Picture1.CurrentY=i+2
Picture1.Printi
Nexti
Picture1.DrawStyle=2
Fori=-30To150Step30
Picture1.Line(-30,i)-(390,i),vbBlackNexti
Fori=30To360Step30
Picture1.Line(i,150)-(i,-30),vbBlack
Nexti
Picture2.DrawWidth=1
Picture2.Scale(-30,120)-(390,-150)
Picture2.Line(-30,0)-(390,0)'X
Picture2.Line(0,-150)-(0,120)'Y
Picture2.CurrentX=0:
Picture2.CurrentY=100
Picture2.Print"速度V"
Picture2.CurrentX=330:
Picture2.CurrentY=20
Picture2.Print"角度/度"
Fori=30To390Step30
Picture2.Line(i,5)-(i,0)
Picture2.CurrentX=i-7:
Picture2.CurrentY=0
Picture2.Printi
Nexti
Fori=-150To120Step30
Picture2.Line(0,i)-(5,i)
Picture2.CurrentX=-20:
Picture2.CurrentY=i+2
Picture2.Printi
Nexti
Picture2.DrawStyle=2
Fori=-150To120Step30
Picture2.Line(-30,i)-(390,i),vbBlack
Nexti
Fori=30To360Step30
Picture2.Line(i,120)-(i,-150),vbBlack
Nexti
Picture3.DrawWidth=1
Picture3.Scale(-30,280)-(390,-300)
Picture3.Line(-30,0)-(390,0)'X
Picture3.Line(0,-300)-(0,280)'Y
Picture3.CurrentX=0:
Picture3.CurrentY=210
Picture3.Print"加速度a"
Picture3.CurrentX=330:
Picture3.CurrentY=20
Picture3.Print"角度/度"
Fori=30To390Step30
Picture3.Line(i,5)-(i,0)
Picture3.CurrentX=i-7:
Picture3.CurrentY=0
Picture3.Printi
Nexti
Fori=-300To280Step60
Picture3.Line(0,i)-(5,i)
Picture3.CurrentX=-20:
Picture2.CurrentY=i+2Picture3.Printi
Nexti
Picture3.DrawStyle=2
Fori=-300To280Step60
Picture3.Line(-30,i)-(390,i),vbBlack'
Nexti
Fori=30To360Step30
Picture3.Line(i,280)-(i,-300),vbBlack
Nexti
pi=3.1415926
pa=pi/180
f0=120
fs=40
f01=90
fs1=110
s0=50
Forff=0To360Step0.01‘角度从0到360
f=ff*pa
Ifffs=60*(1-Cos(1.5*f))
v=90*Sin(1.5*f)
a=135*Cos(1.5*f)
ElseIfff>=f0Andffs=120
v=0
a=0
ElseIfff>=fs+f0Andffs=60*(1+Cos(2*(f-8*pi/9)))
v=-120*Sin(2*(f-8*pi/9))
a=-240*Cos(2*(f-8*pi/9))
ElseIfff>=fs+f0+f01Andff<=360Then
s=0
v=0
a=0
EndIf
Picture1.PSet(ff,s)
Picture2.PSet(ff,v)
Picture3.PSet(ff,a)
Nextff
EndSub
1.绘制凸轮机构dφ/ds–s线图程序
PrivateSubCommand1_Click()
DimsAsDouble'定义从动件位移
DimdsdfAsDouble'定义ds/df
Dimdsdf2AsDouble
DimffAsDouble
DimfAsDouble
DimpiAsDouble
DimpaAsDouble
pi=4*Atn
(1)
pa=pi/180
Picture1.DrawWidth=1
Picture1.Scale(-180,170)-(270,-280)
Picture1.Line(-180,0)-(270,0)'X
Picture1.Line(0,170)-(0,-280)
Picture1.CurrentX=10:
Picture1.CurrentY=130
Picture1.Print"S"
Picture1.CurrentX=130:
Picture1.CurrentY=20
Picture1.Print"dS/dφ"
Fori=-180To270Step20
Picture1.Line(i,5)-(i,0)
Picture1.CurrentX=i-7:
Picture1.CurrentY=0
Picture1.Printi
Nexti
Fori=-280To170Step20
Picture1.Line(0,i)-(5,i)
Picture1.CurrentX=-10:
Picture1.CurrentY=i+2
Picture1.Printi
Nexti
Picture1.DrawStyle=2
Fori=-280To170Step20
Picture1.Line(-180,i)-(260,i),vbBlackNexti
Fori=-180To270Step20
Picture1.Line(i,170)-(i,-280),vbBlack
Nexti
Forff=0To360Step0.005
f=ff*pa
x=-dsdf
Picture1.DrawWidth=1
Ifff<120Then
s=60*(1-Cos(1.5*f))
dsdf=90*Sin(1.5*f)
ElseIfff>=120Andff<160Then
s=120
dsdf=0
ElseIfff>=160Andff<250Then
s=60*(1+Cos(2*(f-8*pi/9)))
dsdf=-120*Sin(2*(f-8*pi/9))
ElseIfff>=250Andff<=360Then
s=0
dsdf=0
EndIf
Picture1.PSet(x,s)‘汇制dφ/ds–s曲线
Nextff
EndSub
3.确定偏距圆半径,基圆半径程序
PrivateSubCommand1_Click()
DimsAsDouble
DimdsdfAsDouble
DimffAsDouble
DimfAsDouble
DimpiAsDouble
DimpaAsDouble
Dimk1AsDouble
Dimk2AsDouble
Dimy1AsDouble
Dimy2AsDouble
Dimy3AsDouble
pi=3.1415926
pa=pi/180
Picture1.DrawWidth=1
Picture1.Scale(-190,170)-(260,-280)Picture1.Line(-190,0)-(260,0)'X
Picture1.Line(255,2)-(260,0)
Picture1.Line-(255,-2)
Picture1.Print"Y"
Picture1.Line(0,170)-(0,-280)'Y
Picture1.Line(-5,165)-(0,170)
Picture1.Line-(5,165)
Picture1.Print"X"
Fori=-190To260Step10
Picture1.Line(i,5)-(i,0)
Picture1.CurrentX=i-7:
Picture1.CurrentY=0
Picture1.Printi
Nexti
Fori=-280To170Step10
Picture1.Line(0,i)-(5,i)Picture1.CurrentX=-20:
Picture1.CurrentY=i+2
Picture1.Printi
Nexti
Picture1.DrawStyle=2
Fori=-280To170Step10
Picture1.Line(-190,i)-(260,i),vbBlackNexti
Fori=-190To260Step10
Picture1.Line(i,170)-(i,-280),vbBlackNexti
Forff=0To360Step0.005
f=ff*pa
x=-dsdf
Picture1.DrawWidth=1
Ifff<120Then
s=60*(1-Cos(1.5*f))
dsdf=90*Sin(1.5*f)
ElseIfff>=120Andff<160Then
s=120
dsdf=0
ElseIfff>=160Andff<250Then
s=60*(1+Cos(2*(f-8*pi/9)))
dsdf=-120*Sin(2*(f-8*pi/9))
ElseIfff>=250Andff<=360Then
s=0
dsdf=0
EndIf
Picture1.PSet(x,s)
k1=-Cos(35*pa)/Sin(35*pa)
k2=Cos(65*pa)/Sin(65*pa)
y1=k1*x-82
y2=k2*x-22
y3=-k1*x
Picture1.PSet(x,y1),vbBlue
Picture1.PSet(x,y3),vbRed
Picture1.PSet(x,y2)
Nextff
EndSub
4.计算曲率--确定滚子半径程序
DimeAsDouble
DimfAsDouble
DimffAsDouble
Dimf0AsDouble
DimfsAsDouble
Dimf01AsDouble
Dimfs1AsDouble
DimsAsDouble
DimxAsDouble
DimyAsDouble
DimrrAsDouble
DimpiAsDouble
DimpaAsDouble
Dims0AsDouble
DimiAsDouble
DimdsdfAsDouble
Dimdsdf2AsDouble
DimdxdfAsDouble
Dimdxdf2AsDouble
DimdydfAsDouble
Dimdydf2AsDouble
DimdydxAsDouble'
Dimdydx2AsDouble
DimmAsDouble
PrivateSubForm_Load()
pi=4*Atn
(1)
pa=pi/180
f0=120
fs=40
f01=90
fs1=110
s0=50.11
e=25
EndSub
PrivateSubCommand1_Click()
Picture1.Cls
Picture1.DrawWidth=1
Picture1.Scale(-60,400)-(400,-60)
Picture1.Line(-60,0)-(400,0)'X
Picture1.Line(0,-60)-(0,400)
Fori=-60To400Step20
Picture1.Line(i,5)-(i,0)
Picture1.CurrentX=i-7:
Picture1.CurrentY=0Picture1.Printi
Nexti
Fori=-60To400Step20
Picture1.Line(0,i)-(5,i)
Picture1.CurrentX=-20:
Picture1.CurrentY=i+2
Picture1.Printi
Nexti
Picture1.DrawStyle=2
Fori=-60To400Step20
Picture1.Line(-50,i)-(400,i),vbBlackNexti
Fori=-60To400Step20
Picture1.Line(i,400)-(i,-50),vbBlackNexti
Forff=0To360Step0.01
Picture1.DrawWidth=2
f=ff*pa
Ifffs=60*(1-Cos(1.5*f))
dsdf=90*Sin(1.5*f)
dsdf2=135*Cos(1.5*f)
ElseIfff>=f0Andffs=120
dsdf=0
dsdf2=0
ElseIfff>=fs+f0Andffs=60*(1+Cos(2*(f-8*pi/9)))
dsdf=-120*Sin(2*(f-8*pi/9))
dsdf2=-240*Cos(2*(f-8*pi/9))
ElseIfff>=fs+f0+f01Andff<=360Then
s=0
dsdf=0
dsdf2=0
EndIf
y=(s0+s)*Sin(f)+e*Cos(f)
x=(s0+s)*Cos(f)-e*Sin(f)
dxdf=dsdf*Cos(f)-(s0+s)*Sin(f)-e*Cos(f)
dxdf2=(dsdf2-s-s0)*Cos(f)-(2*dsdf-e)*Sin(f)
dydf=dsdf*Sin(f)+(s0+s)*Cos(f)-e*Sin(f)
dydf2=(dsdf2-s-s0)*Sin(f)+(2*dsdf-e)*Cos(f)
dydx=dydf/dxdf
dydx2=((dydf2*dxdf-dxdf2*dydf)/(dxdf^3))
m=Abs(((1+dydx^2)^1.5)/dydx2)
Picture1.PSet(ff,m)
Nextff
EndSub
5.计算理论轮廓.工作轮廓.基圆.偏距圆.滚子包络线程序
DimeAsDouble
DimhAsDouble
DimfAsDouble
DimffAsDouble
DimwAsDouble
Dimf0AsDouble
DimfsAsDouble
Dimf01AsDouble
Dimfs1AsDouble
DimsAsDouble
DimvAsDouble
DimaAsDouble
DimxAsDouble
DimyAsDouble
Dimx1AsDouble
Dimy1AsDouble
DimrrAsDouble
DimpiAsDouble
DimpaAsDouble
DimMAsDouble
Dims0AsDouble
DimiAsDouble
DimdsdfAsDouble
DimdxdfAsDouble
DimdydfAsDouble
PrivateSubForm_Load()
pi=4*Atn
(1)
pa=pi/180
f0=120
fs=40
f01=90
fs1=110
s0=50.11
e=25
rr=10
EndSub
PrivateSubpush()'推程计算f=ff*pa
s=60*(1-Cos(1.5*f))
v=90*Sin(1.5*f)
a=135*Cos(1