哈尔滨工业大学机械原理大作业_连杆26题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.运动分析题目
如图所示机构,已知机构各构件的尺寸为AB=108mm,EF=320mm,BC=CE=CD=200mm,FG=162mm,AD=258mm,AG=514mm,DG=384mm,β=80º,构件1的角速度为ω1=10rad/s,试求构件2上点E的轨迹及构件5的角位移、角速度和角加速度,并对计算结果进行分析。

2.机构的结构分析,组成机构的基本杆组划分
3.各基本杆组的运动分析数学模型
(1)RR基本杆组:
delt=0
xB = xA + AB * Cos(f + delt)
yB = yA + AB* Sin(f + delt)
vxB = vxA - w * AB * Sin(f + delt)
vyB = vyA + w * AB* Cos(f + delt)
axB = axA - w ^ 2 * AB * Cos(f + delt):
ayB = ayA - w ^ 2 * AB* Sin(f + delt)
(2)RRR基本杆组
Ci = lbc * Cos(fbc)
Si = lbc * Sin(fbc)
Cj = lcd * Cos(fcd)
Sj = lcd * Sin(fcd)
G1 = Ci * Sj - Cj * Si
wbc = (Cj * (vxD - vxB) + Sj * (vyD - vyB)) / G1
wcd = (Ci * (vxD - vxB) + Si * (vyD - vyB)) / G1
vxC = vxB - wbc * lbc * Sin(fbc)
vyC = vyB + wbc * lbc * Cos(fbc)
G2 = axD - axB + wbc ^ 2 * Ci - wcd ^ 2 * Cj
G3 = ayD - ayB + wbc ^ 2 * Si - wcd ^ 2 * Sj
ebc = (G2 * Cj + G3 * Sj) / G1
ecd = (G2 * Ci + G3 * Si) / G1
axC = axB - ebc * lbc * Sin(fbc) - wbc ^ 2 * lbc * Cos(fbc)
ayC = ayB + ebc * lbc * Cos(fbc) - wbc ^ 2 * lbc * Sin(fbc)
EB = 2 * BC * Cos(febc)
xE = xB + EB* Cos(fbc + febc)
yE = yB + EB * Sin(fbc + febc)
vxE = vxB – wbc * EB* Sin(fbc + febc)
vyE = vyB + wbc * EB* Cos(fbc + febc)
axE = axB - wbc ^ 2 * EB * Cos(fbc + delt) - ebc * EB * Sin(fbc + febc)
ayE = ayB - wbc ^ 2 * leb * Sin(fbc + delt) + ebc * leb * Sin(fbc + febc) Ci = lef * Cos(fef)
Si = lef * Sin(fef)
Cj = lfg * Cos(ffg)
Sj = lfg * Sin(ffg)
G1 = Ci * Sj - Cj * Si
wef = (Cj * (vxG - vxE) + Sj * (vyG - vyE)) / G1
wfg = (Ci * (vxG - vxE) + Si * (vyG - vyE)) / G1
vxF = vxE - wef * lef * Sin(fef)
vyF = vyE + wef * lef * Cos(fef)
G2 = axG - axE + wef ^ 2 * Ci - wfg ^ 2 * Cj
G3 = ayG - ayE + wef ^ 2 * Si - wfg ^ 2 * Sj
eef = (G2 * Cj + G3 * Sj) / G1
efg = (G2 * Ci + G3 * Si) / G1
axF = axE - eef * lef * Sin(fef) - wef ^ 2 * lef * Cos(fef)
ayF = ayE + eef * lef * Cos(fef) - wef ^ 2 * lef * Sin(fef)
4.计算编程
Dim xA As Double
Dim yA As Double
Dim vxA As Double
Dim vyA As Double
Dim axA As Double 'A '点加速度x轴分量
Dim ayA As Double 'A '点加速度y轴分量
Dim xB As Double 'B'点'x轴坐标
Dim yB As Double 'B点y轴坐标
Dim vxB As Double 'B点速度x轴分量
Dim vyB As Double 'B点速度y轴分量
Dim axB As Double 'B点加速度x轴分量
Dim ayB As Double 'B点加速度y轴分量
Dim xC As Double 'C点x轴坐标
Dim yC As Double C'点y轴坐标
Dim vxC As Double 'C点速度x轴分量
Dim vyC As Double 'C点速度y轴分量
Dim axC As Double 'C点加速度x轴分量
Dim ayC As Double 'C点加速度y轴分量
Dim xD As Double 'D点x轴坐标
Dim yD As Double 'D点y轴坐标
Dim vxD As Double 'D点速度x轴分量
Dim vyD As Double 'D点速度y轴分量
Dim axD As Double 'D点加速度x轴分量
Dim ayD As Double 'D点加速度y轴分量
Dim xE As Double 'E点x轴坐标
Dim yE As Double 'E点y轴坐标
Dim vxE As Double 'E点速度x轴分量Dim vyE As Double 'E点速度y轴分量Dim axE As Double 'E点加速度x轴分量Dim ayE As Double 'E点加速度y轴分量Dim xF As Double 'F点x轴坐标
Dim yF As Double 'F点y轴坐标
Dim vxF As Double 'F点速度x轴分量Dim vyF As Double 'F点速度y轴分量Dim axF As Double 'F点加速度x轴分量Dim ayF As Double 'F点加速度y轴分量Dim xG As Double 'G点x轴坐标
Dim yG As Double 'G点y轴坐标
Dim vxG As Double 'G点速度x轴分量Dim vyG As Double 'G点速度y轴分量Dim axG As Double 'G点加速度x轴分量Dim ayG As Double 'G点加速度y轴分量Dim delt As Double ' AB杆初始转角
Dim lab As Double 'AB杆长
Dim lbc As Double 'BC杆长
Dim lcd As Double ' CD杆长
Dim lce As Double 'CE杆长
Dim lef As Double 'EF杆长
Dim lfg As Double 'FG杆长
Dim leb As Double 'ED杆长
Dim f As Double 'AB杆转角
Dim fbc As Double 'BC杆转角
Dim fcd As Double 'CD杆转角
Dim fce As Double 'CE杆转角
Dim fef As Double 'EF杆转角
Dim ffg As Double 'FG杆转角
Dim fge As Double 'ge杆转角
Dim w As Double 'AB杆角速度
Dim wbc As Double ' BC角速度
Dim wcd As Double 'CD角速度
Dim wce As Double 'CE角速度
Dim wef As Double 'EF角速度
Dim wfg As Double 'FG角速度
Dim e As Double 'AB杆角加速度
Dim ebc As Double ' BC杆角加速度
Dim ecd As Double 'CD杆角加速度
Dim ece As Double 'CE杆角加速度
Dim eef As Double 'EF杆角加速度
Dim efg As Double 'FG杆角加速度
Dim LBD As Double 'BD距离
Dim leg As Double 'EG距离
Dim JCBD As Double '角CBD
Dim jfeg As Double '角FEG
Dim fBD As Double 'BD转角
Dim feg As Double 'EG转角
Dim Ci As Double
Dim Cj As Double
Dim Si As Double
Dim Sj As Double
Dim G1 As Double
Dim G2 As Double
Dim G3 As Double
Dim val As Double
Dim pi As Double
Dim pa As Double
Dim febc As Double '角EBC
Dim i As Double
Dim fj1 As Double
Private Sub Command1_Click() '求点E的轨迹Picture1.Scale (-300, 400)-(10, -15)
Picture1.Line (-300, 0)-(10, 0) 'X
Picture1.Line (0, 400)-(0, -15) 'Y
For i = -300 To 0 Step 50 'X轴坐标
Picture1.DrawStyle = 2
Picture1.Line (i, 400)-(i, 0)
Picture1.CurrentX = i - 10: Picture1.CurrentY = 0 Picture1.Print i
Next i
For i = 0 To 350 Step 50 'Y轴坐标
Picture1.DrawStyle = 2
Picture1.Line (0, i)-(-400, i)
Picture1.CurrentX = -20: Picture1.CurrentY = i + 7 Picture1.Print i
Next i
For fj1 = 0 To 360 Step 0.01
f = fj1 * pa
Call RR1
Call RRR1
Call RR2
Picture1.PSet (xE, yE)
Next fj1
End Sub
Private Sub Command2_Click() '求构件5的角位移Picture2.Scale (-20, 5)-(380, -0.5)
Picture2.Line (-20, 0)-(380, 0) 'X
Picture2.Line (0, 3)-(0, -0.5) 'Y
For i = 0 To 360 Step 30 'X轴坐标
Picture2.DrawStyle = 2
Picture2.Line (i, 3)-(i, 0)
Picture2.CurrentX = i - 10: Picture2.CurrentY = 0 Picture2.Print i
Next i
For i = -0.5 To 3 Step 0.5 'Y轴坐标
Picture2.Line (0, i)-(380, i)
Picture2.CurrentX = -25: Picture2.CurrentY = i Picture2.Print i
Next i
For fj1 = 0 To 360 Step 0.01
f = fj1 * pa
Call RR1
Call RRR1
Call RR2
Call RRR2
Picture2.PSet (fj1, ffg)
Next fj1
End Sub
Private Sub Command3_Click() '求构件5的角速度Picture3.Scale (-20, 10)-(380, -10)
Picture3.Line (-20, 0)-(380, 0) 'X
Picture3.Line (0, 10)-(0, -10) 'Y
For i = 0 To 360 Step 30 'X轴坐标
Picture3.DrawStyle = 2
Picture3.Line (i, 10)-(i, -10)
Picture3.CurrentX = i - 10: Picture3.CurrentY = 0 Picture3.Print i
Next i
For i = -8 To 8 Step 2 'Y轴坐标
Picture3.Line (0, i)-(380, i)
Picture3.CurrentX = -20: Picture3.CurrentY = i Picture3.Print i
Next i
For fj1 = 0 To 360 Step 0.01
f = fj1 * pa
Call RR1
Call RRR1
Call RR2
Call RRR2
Picture3.PSet (fj1, wfg)
Next fj1
End Sub
Private Sub Command4_Click() '求构件5的角加速度Picture4.Scale (-20, 300)-(380, -200)
Picture4.Line (-20, 0)-(380, 0) 'X
Picture4.Line (0, 300)-(0, -200) 'Y
For i = 0 To 360 Step 30 'X轴坐标
Picture4.DrawStyle = 2
Picture4.Line (i, 300)-(i, -200)
Picture4.CurrentX = i - 10: Picture4.CurrentY = 0 Picture4.Print i
Next i
For i = -200 To 300 Step 50 'Y轴坐标
Picture4.Line (0, i)-(380, i)
Picture4.CurrentX = -25: Picture4.CurrentY = i + 5 Picture4.Print i
Next i
For fj1 = 0 To 360 Step 0.01
f = fj1 * pa
Call RR1
Call RRR1
Call RR2
Call RRR2
Picture4.PSet (fj1, efg
Next fj1
End Sub
Private Sub Form_Load() '赋初值
lab = 108
lce = 200
lbc = 200
lcd = 200
lef = 320
lfg = 162
w = 10
e = 0
delt = 0
xA = 0
yA = 0
vyA = 0
axA = 0
ayA = 0
xD = -178.311284
yD = 186.464704
vxD = 0
vyD = 0
axD = 0
ayD = 0
xG = -514
yG = 0
vxG = 0
vyG = 0
axG = 0
ayG = 0
pi = 3.1415926
pa = pi / 180
febc = pa * 50
End Sub
Private Sub RR1() 'RR基本杆组
xB = xA + lab * Cos(f + delt)
yB = yA + lab * Sin(f + delt)
vxB = vxA - w * lab * Sin(f + delt)
vyB = vyA + w * lab * Cos(f + delt)
axB = axA - w ^ 2 * lab * Cos(f + delt) - e * lab * Sin(f + delt)
ayB = ayA - w ^ 2 * lab * Sin(f + delt) + e * lab * Sin(f + delt)
End Sub
Private Sub RR2() 'RR基本杆组
leb = 2 * lbc * Cos(febc)
xE = xB + leb * Cos(fbc + febc)
yE = yB + leb * Sin(fbc + febc)
vxE = vxB - wbc * leb * Sin(fbc + febc)
vyE = vyB + wbc * leb * Cos(fbc + febc)
axE = axB - wbc ^ 2 * leb * Cos(fbc + delt) - ebc * leb * Sin(fbc + febc) ayE = ayB - wbc ^ 2 * leb * Sin(fbc + delt) + ebc * leb * Sin(fbc + febc) End Sub
Private Sub RRR1() 'RRR基本杆组
LBD = Sqr((xD - xB) ^ 2 + (yD - yB) ^ 2)
If LBD > lbc + lcd And LBD < Abs(lbc - lcd) Then
If MsgBox("RRR杆组杆长不符合要求", vbOKOnly, "提示") = 1 Then End
End If
Else
End If
If LBD < lbc + lcd And LBD > Abs(lbc - lcd) Then val = (lbc ^ 2 + LBD ^ 2 - lcd ^ 2) / (2 * lbc * LBD) JCBD = Atn(-val / Sqr(-val * val + 1)) + 2 * Atn(1) Else
End If
If LBD = lbc + lcd Then
JCBD = 0
Else
End If
If LBD = Abs(lbc - lcd) Then
If lbc > lcd Then
JCBD = 0
Else
End If
If lbc < lcd Then
JCBD = pi
Else
End If
Else
End If
If xD > xB And yD >= yB Then '第一象限
fBD = Atn((yD - yB) / (xD - xB))
Else
End If
If xD = xB And yD > yB Then
fBD = pi / 2
Else
End If
If xD < xB And yD >= yB Then '第二象限
fBD = pi + Atn((yD - yB) / (xD - xB))
Else
End If
If xD < xB And yD < yB Then '第三象限
fBD = pi + Atn((yD - yB) / (xD - xB))
Else
End If
If xD = xB And yD < yB Then
fBD = 3 * pi / 2
Else
End If
If xD > xB And yD <= yB Then '第四象限
fBD = 2 * pi + Atn((yD - yB) / (xD - xB))
Else
End If
fbc = fBD - JCBD
xC = xB + lbc * Cos(fbc)
yC = yB + lbc * Sin(fbc)
If xC > xD And yC >= yD Then '第一象限
fcd = Atn((yC - yD) / (xC - xD))
Else
End If
If xC = xD And yC >= yD Then
fcd = pi / 2
Else
End If
If xC < xD And yC >= yD Then '第二象限
fcd = pi + Atn((yC - yD) / (xC - xD))
Else
End If
If xC < xD And yC < yD Then '第三象限
fcd = pi + Atn((yC - yD) / (xC - xD))
Else
End If
If xC = xD And yC < yD Then
fcd = 3 * pi / 2
Else
End If
If xC > xD And yC <= yD Then '第四象限
fcd = 2 * pi + Atn((yC - yD) / (xC - xD))
Else
End If
Ci = lbc * Cos(fbc)
Si = lbc * Sin(fbc)
Cj = lcd * Cos(fcd)
Sj = lcd * Sin(fcd)
G1 = Ci * Sj - Cj * Si
wbc = (Cj * (vxD - vxB) + Sj * (vyD - vyB)) / G1 wcd = (Ci * (vxD - vxB) + Si * (vyD - vyB)) / G1 vxC = vxB - wbc * lbc * Sin(fbc)
vyC = vyB + wbc * lbc * Cos(fbc)
G2 = axD - axB + wbc ^ 2 * Ci - wcd ^ 2 * Cj
G3 = ayD - ayB + wbc ^ 2 * Si - wcd ^ 2 * Sj ebc = (G2 * Cj + G3 * Sj) / G1
ecd = (G2 * Ci + G3 * Si) / G1
axC = axB - ebc * lbc * Sin(fbc) - wbc ^ 2 * lbc * Cos(fbc)
ayC = ayB + ebc * lbc * Cos(fbc) - wbc ^ 2 * lbc * Sin(fbc)
End Sub
Private Sub RRR2() 'RRR基本杆组
leg = Sqr((xG - xE) ^ 2 + (yG - yE) ^ 2)
If leg > lef + lfg And leg < Abs(lef - lfg) Then
If MsgBox("RRR杆组杆长不符合要求", vbOKOnly, "提示") = 1 Then End
Else
End If
Else
End If
If leg < lef + lfg And leg > Abs(lef - lfg) Then
val = (lef ^ 2 + leg ^ 2 - lfg ^ 2) / (2 * lef * leg)
jfeg = Atn(-val / Sqr(-val * val + 1)) + 2 * Atn(1)
Else
End If
If leg = lef + lfg Then
jfeg = 0
Else
End If
If leg = Abs(lef - lfg) Then
If lef > lfg Then
jfeg = 0
Else
End If
If lef < lfg Then
jfeg = pi
Else
End If
Else
End If
If xG > xE And yG >= yE Then '第一象限
feg = Atn((yG - yE) / (xG - xE))
Else
End If
If xG = xE And yG > yE Then
feg = pi / 2
Else
End If
If xG < xE And yG >= yE Then '第二象限
feg = pi + Atn((yG - yE) / (xG - xE))
Else
End If
If xG < xE And yG < yE Then '第三象限feg = pi + Atn((yG - yE) / (xG - xE)) Else
End If
If xG = xE And yG < yE Then
feg = 3 * pi / 2
Else
End If
If xG > xE And yG <= yE Then '第四象限feg = 2 * pi + Atn((yG - yE) / (xG - xE)) Else
End If
fef = feg - jfeg
xF = xE + lef * Cos(fef)
yF = yE + lef * Sin(fef)
If xF > xG And yF >= yG Then '第一象限ffg = Atn((yF - yG) / (xF - xG))
Else
End If
If xF = xG And yF >= yG Then
ffg = pi / 2
Else
End If
If xF < xG And yF >= yG Then '第二象限ffg = pi + Atn((yF - yG) / (xF - xG)) Else
End If
If xF < xG And yF < yG Then '第三象限ffg = pi + Atn((yF - yG) / (xF - xG)) Else
End If
If xF = xG And yF < yG Then
ffg = 3 * pi / 2
Else
End If
If xF > xG And yF <= yG Then '第四象限ffg = 2 * pi + Atn((yF - yG) / (xF - xG)) Else
End If
Ci = lef * Cos(fef)
Si = lef * Sin(fef)
Cj = lfg * Cos(ffg)
Sj = lfg * Sin(ffg)
G1 = Ci * Sj - Cj * Si
wef = (Cj * (vxG - vxE) + Sj * (vyG - vyE)) / G1
wfg = (Ci * (vxG - vxE) + Si * (vyG - vyE)) / G1
vxF = vxE - wef * lef * Sin(fef)
vyF = vyE + wef * lef * Cos(fef)
G2 = axG - axE + wef ^ 2 * Ci - wfg ^ 2 * Cj
G3 = ayG - ayE + wef ^ 2 * Si - wfg ^ 2 * Sj
eef = (G2 * Cj + G3 * Sj) / G1
efg = (G2 * Ci + G3 * Si) / G1
axF = axE - eef * lef * Sin(fef) - wef ^ 2 * lef * Cos(fef)
ayF = ayE + eef * lef * Cos(fef) - wef ^ 2 * lef * Sin(fef)
End Sub
5.结果及分析
图1 E点的运动轨迹
(1)由图1所示,E点的运动轨迹呈稍倾斜“8字形”。

若以“8字”的中心为出发点,运动形式为循环往复运动:E点先是向左上方移动,绕一圈后回到出发点,再向右下方移动并再次回到出发点,。

图2 构件5的角位移曲线
由图2所示,构件大约在90度和240度处该构件角位移最大,在160度和330度附近该构件角位移最小。

出现两次极大值与极小值的原因应该与构件E的8字形运动有关。

图3 构件5的角速度曲线
由图3所示,在角位移为极大极小值对应的角度处,其角速度为0,这验证了角位移曲线方程为角速度曲线方程的一阶导数。

而在约130度和190度时,角速度分别达到了反向和正向的最大值。

在其中角速度还有两次达到了正向和反向的极大值,这又证明了E点8字形运动的影响。

图4 构件5的角加速度曲线
由图4所示,在角速度达到极大极小值时,角加速度对应为0,验证了角加速度方程为角速度方程的一阶导数,即角位移曲线的二阶导数为角加速度的方程。

相关文档
最新文档