哈工大机械原理大作业凸轮机构设计题标准化管理部编码-[99968T-6889628-J68568-1689N]H a r b i n I n s t i t u t e o f T e c h n o l o g y机械原理大作业二课程名称: 机械原理 设计题目: 凸轮机构设计一.设计题目设计直动从动件盘形凸轮机构,1.运动规律(等加速等减速运动) 推程 0450≤≤ϕ 推程 009045≤≤ϕ2.运动规律(等加速等减速运动) 回程 00200160≤≤ϕ 回程 00240200≤≤ϕ三.推杆位移、速度、加速度线图及凸轮s d ds-φ线图 采用VB 编程,其源程序及图像如下: 1.位移:Private Sub Command1_Click() = True '开启计时器 End SubPrivate Sub Timer1_Timer() Static i As SingleDim s As Single, q As Single 'i 作为静态变量,控制流程;s 代表位移;q 代表角度 = 0 = 0 i = i +If i <= 45 Thenq = is = 240 * (q / 90) ^ 2Step(q, -s), vbRedElseIf i >= 45 And i <= 90 Thenq = is = 120 - 240 * ((90 - q) ^ 2) / (90 ^ 2)Step(q, -s), vbGreenElseIf i >= 90 And i <= 150 Thenq = is = 120Step(q, -s), vbBlackElseIf i >= 150 And i <= 190 Thenq = is = 120 - 240 * (q - 150) ^ 2 / 6400Step(q, -s), vbBlueElseIf i >= 190 And i <= 230 Thenq = is = 240 * (230 - q) ^ 2 / 6400Step(q, -s), vbRedElseIf i >= 230 And i <= 360 Thenq = is = 0Step(q, -s), vbBlackElseEnd IfEnd Sub2.速度Private Sub Command2_Click()= True '开启计时器End SubPrivate Sub Timer2_Timer()Static i As SingleDim v As Single, q As Single, w As Single 'i为静态变量,控制流程;q代表角度;w代表角速度,此处被赋予50= 0= 0w = 50i = i +If i <= 45 Thenq = iv = 480 * w * q / 8100Step(q, -v), vbRedElseIf i >= 45 And i <= 90 Thenq = iv = 480 * w * (90 - q) / 8100Step(q, -v), vbBlackElseIf i >= 90 And i <= 150 Thenq = iv = 0Step(q, -v), vbGreenElseIf i >= 150 And i <= 190 Thenq = iv = -480 * w * (q - 150) / 6400Step(q, -v), vbBlueElseIf i >= 190 And i <= 230 Thenq = iv = -480 * w * (230 - q) / 6400Step(q, -v), vbRedElseIf i >= 230 And i <= 360 Thenq = iv = 0Step(q, -v), vbBlackElseEnd IfEnd Sub3.加速度Private Sub Command3_Click()= True '开启计时器End SubPrivate Sub Timer3_Timer()Static i As SingleDim a As Single, w As Single, q As Single 'i为静态变量,控制流程;a代表加速度;q代表角度;w代表角速度w = 50= 0= 0i = i +If i <= 45 Thenq = ia = 480 * w ^ 2 / 8100Step(q, -a), vbRedElseIf i >= 45 And i <= 90 Thenq = ia = -480 * w ^ 2 / 8100Step(q, -a), vbBlackElseIf i >= 90 And i <= 150 Thenq = ia = 0Step(q, -a), vbGreenElseIf i >= 150 And i <= 190 Thenq = ia = -480 * w ^ 2 / 6400Step(q, -a), vbBlueElseIf i >= 190 And i <= 230 Thenq = ia = 480 * w ^ 2 / 6400Step(q, -a), vbRedElseIf i >= 230 And i <= 360 Thenq = ia = 0Step(q, -a), vbBlackElseEnd IfEnd Subdq---dsPrivate Sub Command4_Click()= True '开启计时器;建立坐标系(-400, -400)-(400, 400)End SubPrivate Sub Timer4_Timer()Static i As SingleDim x As Single, s As Single, q As Single, scaley As Single, t As Single 'i 为静态变量,控制流程;x代表位移;s代表纵坐标ds/dq;q代表角度= 0= 0scaley = 1t = / 180i = i +If i <= 45 Thenq = i * tx = * qs = 240 * (2 * q / ^ 2Step(x, -s), vbRedElseIf i >= 45 And i <= 90 Thenq = i * tx = * / 2 - q)s = 120 - * / 2 - q) ^ 2Step(x, -s), vbRedElseIf i >= 90 And i <= 150 Thenq = i * tx = 0s = 120 * scaleyStep(x, -s), vbRedElseIf i >= 150 And i <= 190 Thenq = i * tx = * (q - 5 * / 6)s = 120 - * (q - 5 * / 6) ^ 2 Step(x, -s), vbRedElseIf i >= 190 And i <= 230 Then q = i * tx = * (23 * / 18 - q)s = * (23 * / 18 - q) ^ 2Step(x, -s), vbRedElseIf i >= 230 And i <= 360 Then q = i * tx = 0s = 0Step(x, -s), vbRedElseEnd IfEnd Sub四.确定凸轮基圆半径和偏距1. 求切点转角在图中,右侧曲线为升程阶段的类速度-位移图,作直线Dt dt与其相切,且位移轴正方向呈夹角[ 1]=300,则切点处的斜率与直线D t d t的斜率相等,因为k Dtdt=tan600,右侧曲线斜率可以表示为:q;q=tan600继而求出切点坐标(,)。
同理可求出另一切点(,)2.确定直线方程=*()=*(x+)3.绘图确定基圆半径和偏距程序如下:Private Sub Command5_Click() '开启计时器;画出ds/dq-s图的切线= True(-400, -400)-(400, 400)(-50, -(200, , vbRed(-200, -(40, , vbBlue(-200, -(200, , vbBlack(-200, -(200, , vbGreenEnd SubPrivate Sub Timer5_Timer() 'i为静态变量,控制流程;x代表位移;s代表纵坐标ds/dq;q代表角度;scaley是图形比例系数;t为角度,弧度转化系数Static i As SingleDim x As Single, s As Single, q As Single, scaley As Single, t As Single= 0= 0scaley = 1t = / 180i = i +If i <= 45 Thenq = i * tx = * qs = 240 * (2 * q / ^ 2Step(x, -s), vbRedElseIf i >= 45 And i <= 90 Thenq = i * tx = * / 2 - q)s = 120 - * / 2 - q) ^ 2Step(x, -s), vbRedElseIf i >= 90 And i <= 150 Thenq = i * tx = 0s = 120 * scaleyStep(x, -s), vbRedElseIf i >= 150 And i <= 190 Thenq = i * tx = * (q - 5 * / 6)s = 120 - * (q - 5 * / 6) ^ 2Step(x, -s), vbRedElseIf i >= 190 And i <= 230 Thenq = i * tx = * (23 * / 18 - q)s = * (23 * / 18 - q) ^ 2Step(x, -s), vbRedElseIf i >= 230 And i <= 360 Thenq = i * tx = 0s = 0Step(x, -s), vbRedElseEnd IfEnd Sub在轴心公共许用区内取轴心位置,能够满足压力角要求,现取直线红线与直线绿线的= 偏距e= s0=交点为轴心位置,通过解方程组:x= y= r五.绘制凸轮理论廓线和实际廓线1.绘制凸轮理论轮廓Private Sub Command6_Click() '开启计时器;建立坐标系(-500, -500)-(500, 500)= TrueEnd SubPrivate Sub Timer6_Timer() 'i为静态变量,控制流程;e为偏距;s为基圆半径平方减去偏距平方再开方所得;q为角度;x为横坐标;y为纵坐标Static i As SingleDim e As Single, q As Single, s As Single, x As Single, y As Singlee =s ===i = i +If i <= / 4 Thenq = ix = (s + 240 * (2 * q / ^ 2) * Cos(q) - e * Sin(q)y = (s + 240 * (2 * q / ^ 2) * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseIf i >= / 4 And i <= / 2 Thenq = ix = (s + 120 - * / 2 - q) ^ 2) * Cos(q) - e * Sin(q)y = (s + 120 - * / 2 - q) ^ 2) * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseIf i >= / 2 And i <= 5 * / 6 Thenq = ix = (s + 120) * Cos(q) - e * Sin(q)y = (s + 120) * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseIf i >= 5 * / 6 And i <= 19 * / 18 Thenq = ix = (s + 120 - * (q - 5 / 6 * ^ 2) * Cos(q) - e * Sin(q)y = (s + 120 - * (q - 5 / 6 * ^ 2) * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseIf i >= 19 / 18 * And i <= 23 / 18 * Thenq = ix = (s + * (23 / 18 * - q) ^ 2) * Cos(q) - e * Sin(q)y = (s + * (23 / 18 * - q) ^ 2) * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseIf i >= 23 / 18 * And i <= 2 * Thenq = ix = s * Cos(q) - e * Sin(q)y = s * Sin(q) + e * Cos(q)Step(x, -y), vbRedElseEnd IfEnd Sub2.确定滚子半径并绘制曲率半径图Private Sub Command7_Click() '开启计时器,建立坐标系= True(-10, -500)-(10, 10)End SubPrivate Sub Timer7_Timer() 'i为静态变量,控制流程;x代表dx/dq;y代表dy/dq;p代表曲率;e为偏距;s为基圆半径平方减去偏距平方再开方所得Static i As SingleDim s As Single, q As Single, x As Single, y As Single, p As Singles =e == 0= -Sqr(e ^ 2 + s ^ 2)i = i +If i <= / 4 Thenq = ix = (480 * 4 * q / ^ 2) * Cos(q) + (s + 240 * (2 * q / ^ 2) * (-Sin(q))- e * Cos(q)y = (480 * 4 * q / ^ 2) * Sin(q) - e * Sin(q) + (s + 240 * (2 * q / ^ 2) * Cos(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseIf i >= / 4 And i <= / 2 Thenq = ix = (2 * * / 2 - q)) * Cos(q) + (s + 120 - * / 2 - q) ^ 2) * (-Sin(q)) - e * Cos(q)y = (2 * * / 2 - q)) * Sin(q) + (s + 120 - * / 2 - q) ^ 2) * Cos(q)- e * Sin(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseIf i >= / 2 And i <= 5 / 6 * Thenq = ix = (s + 120) * (-Sin(q)) - e * Cos(q)y = (s + 120) * Cos(q) - e * Sin(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseIf i >= 5 / 6 * And i <= 19 / 18 * Thenq = ix = (-2 * * (q - 5 / 6 * ) * Cos(q) + (s + 120 - * (q - 5 / 6 * ^ 2) * (-Sin(q)) - e * Cos(q)y = (-2 * * (q - 5 / 6 * ) * Sin(q) + (s + 120 - * (q - 5 / 6 * ^ 2) * Cos(q) - e * Sin(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseIf i >= 19 / 18 * And i <= 23 / 18 * Thenq = ix = (-2 * * (23 / 18 * - q)) * Cos(q) + (s + * (23 / 18 * - q) ^ 2)* (-Sin(q)) - e * Cos(q)y = (-2 * * (23 / 18 * - q)) * Sin(q) + (s + * (23 / 18 * - q) ^ 2) * Cos(q) - e * Sin(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseIf i >= 23 / 18 * And i <= 2 * Thenq = ix = s * (-Sin(q)) - e * Cos(q)y = s * Cos(q) - e * Sin(q)p = Sqr(x ^ 2 + y ^ 2)Step(q, -p), vbRedElseEnd IfEnd Sub其中曲率最小值为可以得到滚子半径为3.绘制实际轮廓线Private Sub Command8_Click()(-500, -500)-(500, 500) '建立坐标系;开启计时器= TrueEnd SubPrivate Sub Timer8_Timer() 'i为静态变量,控制流程;q代表角度;x代表dx/dy;y代表dy/dq;a代表理论轮廓的横坐标;b代表理论轮廓的纵坐标;m代表横坐标;n代表纵坐标Static i As SingleDim s As Single, q As Single, x As Single, y As Single, p As Single, rr As Single, a As Single, b As Single, m As Single, n As Singlerr =s =e ===i = i +If i <= / 4 Thenq = ix = (480 * 4 * q / ^ 2) * Cos(q) + (s + 240 * (2 * q / ^ 2) * (-Sin(q))- e * Cos(q)y = (480 * 4 * q / ^ 2) * Sin(q) - e * Sin(q) + (s + 240 * (2 * q / ^ 2) * Cos(q)a = (s + 240 * (2 * q / ^ 2) * Cos(q) - e * Sin(q)b = (s + 240 * (2 * q / ^ 2) * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseIf i >= / 4 And i <= / 2 Thenq = ix = (2 * * / 2 - q)) * Cos(q) + (s + 120 - * / 2 - q) ^ 2) * (-Sin(q)) - e * Cos(q)y = (2 * * / 2 - q)) * Sin(q) + (s + 120 - * / 2 - q) ^ 2) * Cos(q)- e * Sin(q)a = (s + 120 - * / 2 - q) ^ 2) * Cos(q) - e * Sin(q)b = (s + 120 - * / 2 - q) ^ 2) * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseIf i >= / 2 And i <= 5 / 6 * Thenq = ix = (s + 120) * (-Sin(q)) - e * Cos(q)y = (s + 120) * Cos(q) - e * Sin(q)a = (s + 120) * Cos(q) - e * Sin(q)b = (s + 120) * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseIf i >= 5 / 6 * And i <= 19 / 18 * Thenq = ix = (-2 * * (q - 5 / 6 * ) * Cos(q) + (s + 120 - * (q - 5 / 6 * ^ 2) * (-Sin(q)) - e * Cos(q)y = (-2 * * (q - 5 / 6 * ) * Sin(q) + (s + 120 - * (q - 5 / 6 * ^2) * Cos(q) - e * Sin(q)a = (s + 120 - * (q - 5 / 6 * ^ 2) * Cos(q) - e * Sin(q)b = (s + 120 - * (q - 5 / 6 * ^ 2) * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseIf i >= 19 / 18 * And i <= 23 / 18 * Thenq = ix = (-2 * * (23 / 18 * - q)) * Cos(q) + (s + * (23 / 18 * - q) ^ 2)* (-Sin(q)) - e * Cos(q)y = (-2 * * (23 / 18 * - q)) * Sin(q) + (s + * (23 / 18 * - q) ^ 2) * Cos(q) - e * Sin(q)a = (s + * (23 / 18 * - q) ^ 2) * Cos(q) - e * Sin(q)b = (s + * (23 / 18 * - q) ^ 2) * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseIf i >= 23 / 18 * And i <= 2 * Thenq = ix = s * (-Sin(q)) - e * Cos(q)y = s * Cos(q) - e * Sin(q)a = s * Cos(q) - e * Sin(q)b = s * Sin(q) + e * Cos(q)p = Sqr(x ^ 2 + y ^ 2)m = a - rr * y / pn = b + rr * x / pStep(m, -n), vbBlackElseEnd IfEnd Sub内部轮廓为实际轮廓,外部轮廓为理论轮廓。