哈工大机械原理连杆机构设计连杆
连杆
一、机构运动分析
1. 建立坐标系
建立以点C 为原点的固定平面直角坐标系C x , y ,如下图。
图一
2. 对机构进行结构分析
该机构由I 级杆组RR (原动件1)、II 级杆组RPR (滑块2、杆3)和II 级杆组RRP (杆4、滑块5)组成。分别如下图。
3. 确定已知参数和求解流程
(1)原动件1(I 级杆组RR )的运动分析
如图二,已知原动件杆1的转角
ϕ=0-360
原动件杆1的角速度
∙ϕ=ω1=
原动件杆1的角加速度 2πn 12⨯255π==26. 7035rad /s 6060
ϕ=α=0
运动副A 的位置坐标 ∙∙
x A =0
y A =350mm
运动副A 的速度
∙x A =0
y A =0
运动副A 的加速度
∙∙∙x A =0
∙∙y A =0
原动件杆1的长度
l AB =108mm
求出运动副B 的位置坐标(x B , y B ) 、速度(x B , y B ) 、和加速度(x B , y B ) 。
(2)构件2、3杆组(RPR II级杆组)的运动分析
如图三,已求出运动副B 的位置(x B , y B ) 、速度(x B , y B ) 、和加速度(x B , y B ) ,已知运动副C 的位置坐标 ∙∙∙∙∙∙∙∙∙∙∙∙
x C =0
y C =0
运动副C 的速度
∙x C =0
∙
y C =0
运动副C 的加速度
∙∙x C =0
∙∙y C =0
杆长
l CE =620mm
求出构件三的转角ϕ3,角速度ϕ3和角加速度ϕ3及运动副E 的位置坐标(x E , y E ) 、速度∙∙∙
(x E , y E ) 、和加速度(x E , y E ) 。
(3)构件4、5杆组(RRP II级杆组)的运动分析
如图四,已求出运动副E 的位置(x E , y E ) 、速度(x E , y E ) 、和加速度(x E , y E ) ,已知滑块5导路参考点K 的位置坐标 ∙∙∙∙∙∙∙∙∙∙∙∙
x K =0
y K =635mm
参考点K 的速度
∙
x K =0
∙
y K =0
参考点K 的加速度
∙∙
x K =0
∙∙
y K =0
杆长
l EF =300mm
求出构件4的转角ϕ5,角速度ϕ5和角加速度ϕ5,运动副F 的位置坐标(x F , y F ) 、速度∙∙∙
(x F , y F ) 、和加速度(x F , y F ) ,滑块5的位移s ,速度s 和加速度s 。
(4)运动副B 、E 、F 的位置计算
运动副B ∙∙∙∙∙∙∙∙∙
x B =l AB cos ϕ
y B =l AB sin ϕ
运动副E
x E =x B +(l CE -S ) cos ϕa
y E =y B +(l CE -S ) sin ϕa
S=l C B ,ϕa =arctan(y B /x B )
运动副F
x F =x E +l EF cos ϕb
y F =y E +l EF sin ϕb
ϕb =arcsin((H -H 1-y B ) /l EF )
对上述x 、y 求一阶导数即为速度,求二阶导数即为加速度。
二、计算流程图
图五
三、VB 源程序
VERSION 5.00
Private f1(3600) As Double '1杆的转角
Private xB0(3600) As Double
Private yB0(3600) As Double
Private vxB0(3600) As Double
Private vyB0(3600) As Double
Private axB0(3600) As Double
Private ayB0(3600) As Double
Private xE0(3600) As Double
Private yE0(3600) As Double
Private vxE0(3600) As Double
Private vyE0(3600) As Double
Private axE0(3600) As Double
Private ayE0(3600) As Double
Private f3(3600) As Double
Private w3(3600) As Double
Private e3(3600) As Double
Private s5(3600) As Double
Private vs5(3600) As Double
Private as5(3600) As Double
Private pi As Double
Private pa As Double
Private Sub Command1_Click()
Dim i As Double
Dim j As Long
Dim RR1 As rr
Dim RPR1 As rpr
Dim RRP1 As rrp
Set RR1 = New rr
Set RPR1 = New rpr
Set RRP1 = New rrp
pi = 3.1415926
pa = pi / 180
Picture1.DrawWidth = 1
Picture1.Scale (-20, 1000)-(390, -40)
Picture1.Line (-20, 0)-(390, 0) 'X
Picture1.Line (0, 1000)-(0, -40) 'Y
Picture1.CurrentX = 330: Picture1.CurrentY = 40
Picture1.Print "主动件转角/度" 'X 表示
Picture1.CurrentX = 10: Picture1.CurrentY = 960
Picture1.Print "滑块位移S /mm" 'Y 表示
For j = 30 To 390 Step 30 'X 轴坐标
Picture1.Line (j, 5)-(j, 0)
Picture1.CurrentX = j - 5: Picture1.CurrentY = 0
Picture1.Print j
Next j
For j = 0 To 1000 Step 80 'Y 轴坐标
Picture1.Line (0, j)-(5, j)
Picture1.CurrentX = -20: Picture1.CurrentY = j + 2
Picture1.Print j
Next j
Picture1.DrawStyle = 2
For j = 0 To 1000 Step 80
Picture1.Line (-20, j)-(390, j), vbBlack
Next j
For j = 0 To 390 Step 30
Picture1.Line (j, -20)-(j, 1000), vbBlack
Next j
Scale (-20, 8000)-(390, -4000)
Picture2.Line (-20, 0)-(380, 0) 'X
Picture2.Line (0, 8000)-(0, -4000) 'Y
Picture2.CurrentX = 340: Picture2.CurrentY = 400
Picture2.Print "主动件转角/度"
Picture2.CurrentX = 10: Picture2.CurrentY = 2400
Picture2.Print "滑块速度V mm/s"
For j = 30 To 390 Step 30 'X 轴坐标
Picture2.Line (j, 5)-(j, 0)
Picture2.CurrentX = j - 5: Picture2.CurrentY = 0
Picture2.Print j
Next j
For j = -4000 To 8000 Step 800 'Y 轴坐标
Picture2.Line (0, j)-(5, j)
Picture2.CurrentX = -10: Picture2.CurrentY = j + 7
Picture2.Print j
Next j
Picture2.DrawStyle = 2
For j = -4000 To 8000 Step 800
Picture2.Line (-20, j)-(390, j), vbBlack '横向网格
Next j
For j = 30 To 390 Step 30
Picture2.Line (j, -4000)-(j, 8000), vbBlack '纵向网格
Next j
Picture3.DrawWidth = 1
Picture3.Scale (-20, 150000)-(380, -200000)
Picture3.Line (-20, 0)-(390, 0) 'X
Picture3.Line (0, 150000)-(0, -200000) 'Y
Picture3.CurrentX = 300: Picture3.CurrentY = 10000
Picture3.Print "主动件转角/度"
Picture3.CurrentX = 10: Picture3.CurrentY = 80000
Picture3.Print "滑块加速度a mm/S^2"
For j = 30 To 390 Step 30 'X 轴坐标
Picture3.Line (j, 5)-(j, 0)
Picture3.CurrentX = j - 5: Picture3.CurrentY = 0
Picture3.Print j
Next j
For j = -200000 To 150000 Step 10000 'Y 轴坐标
Picture3.Line (0, j)-(5, j)
Picture3.CurrentX = -20: Picture3.CurrentY = j + 7
Picture3.Print j
Next j
Picture3.DrawStyle = 2
For j = -200000 To 150000 Step 10000
Picture3.Line (-200000, j)-(150000, j), vbBlack '横向网格 Next j
For j = 0 To 390 Step 30
Picture3.Line (j, -200000)-(j, 150000), vbBlack '纵向网格 Next j
' 主程序
For i = 0# To 3600# Step 0.1 ' 主动件转角0-360, 步长0.01 'RR 类模块属性赋值
f1(i) = i * pa / 10
RR1.f = f1(i)
RR1.L = 108
RR1.w = 205 * 2 * pi / 60
RR1.e = 0
RR1.xA = 0
RR1.yA = 0
RR1.vxA = 0
RR1.vyA = 0
RR1.axA = 0
RR1.ayA = 0
RR1.calRR ' 执行RR 类模块方法
xB0(i) = RR1.xB
yB0(i) = RR1.yB
vxB0(i) = RR1.vxB
vyB0(i) = RR1.vyB
axB0(i) = RR1.axB
ayB0(i) = RR1.ayB
'RPR 类模块属性赋值
RPR1.Li = 0
RPR1.Lj = 620
RPR1.Lk = 0
RPR1.xB = xB0(i)
RPR1.yB = yB0(i)
RPR1.vxB = vxB0(i)
RPR1.vyB = vyB0(i)
RPR1.axB = axB0(i)
RPR1.ayB = ayB0(i)
RPR1.xD = 0
RPR1.yD = -350
RPR1.vxD = 0
RPR1.vyD = 0
RPR1.axD = 0
RPR1.ayD = 0
RPR1.calRPR '执行RPR 类模块方法
xE0(i) = RPR1.xE
yE0(i) = RPR1.yE
vxE0(i) = RPR1.vxE
vyE0(i) = RPR1.vyE
axE0(i) = RPR1.axE
ayE0(i) = RPR1.ayE
'RRP 类模块属性赋值
RRP1.Li = 300
RRP1.Lj = 0
RRP1.fj = 0
RRP1.wj = 0
RRP1.ej = O
RRP1.xK = 0
RRP1.yK = 285
RRP1.vxK = 0
RRP1.vyK = 0
RRP1.axK = 0
RRP1.ayK = 0
RRP1.xB = xE0(i)
RRP1.yB = yE0(i)
RRP1.vxB = vxE0(i)
RRP1.vyB = vyE0(i)
RRP1.axB = axE0(i)
RRP1.ayB = ayE0(i)
RRP1.calRRP ' 执行RRP 类模块方法
s5(i) = RRP1.xC
vs5(i) = RRP1.vxC
as5(i) = RRP1.axC
Picture1.PSet (i / 10, s5(i)) ' 画出滑块位移s5(i)与 主动件转角的关系图 Picture2.PSet (i / 10, vs5(i)), vbBlue
Picture3.PSet (i / 10, as5(i)), vbRed
Next i
Picture4.Print " 滑块位移 速度 加速度 主动件转角" For i = 0 To 3600 Step 20
Picture4.Print s5(i); vs5(i); as5(i); i / 10
Next i
End Sub
四、计算结果
图六
图七
图八