哈工大机械设计带传动设计电算大作业vb和c语言程序代码

合集下载

哈工大机械原理大作业-连杆

哈工大机械原理大作业-连杆

哈工大机械原理大作业-连杆本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.MarchHarbin Institute of Technology机械原理大作业一课程名称:机械原理设计题目:连杆运动分析院系:机电工程学院班级:设计者:学号:指导教师:陈明设计时间:2013年6月25日1、运动分析题目在图1-10中所示的干草压缩机中,已知LAB=150mm,LBC=600mm,LCE=120mm,LCD=500mm,LEF=600mm,XD=400mm,YD=500mm,YF=600mm,曲柄1作等速转动,其转速n1=50r/min。

求在一个运动循环中活塞5的位移、速度和加速度的变化曲线。

图1-102、机构的结构分析(1)基本杆组的划分①AB即杆件1为原动件②DECB即杆件2、3为RRR型II级杆组,其中CE为同一构件上点。

③ EF 和滑块即4、5为RRP 型II 级杆组(2)、建立以点A 为原点的固定平面直角系3、确定已知参数和求解流程(1)原动件1(I 级杆组RR )如图所示,已知原动件1的转角 πϕ2~01=原动件杆1的角速度 s rad /236.51=ω原动件1的角加速度01=α运动副A 的位置坐标0,0==A A y x运动副A 的速度0,0==yA xA v v运动副A 的加速度0,0==yA xA a a原动件杆I 的长度mm l 1501=可求出B 的位置B 的速度B 的加速度(2)构件2、3(II 级杆组RRR )D 的位置500400==D D y xD 的速度 0==yD xD v vD 的加速度00==yD xD a a杆长mm l l CD j 500==,mm l l BC i 600== 由关系j j D i i B C l x l x x ϕϕcos cos +=+= j j D i i B C l y l y y ϕϕsin sin +=+= 其中)(20sin cos B D i i i x x l A C B A -==-+ ϕϕ)(2B D i y y l B -=222j BD i l l l C -+=222)()(B D B D BD y y X x l -+-= 可解得C A C B A B i +-++=222arctan 2ϕDC DC j x x y y --=arctan ϕ由上面两个式子可以得到两杆的角速度1)()(G y y s x x c w B D j B D j i i -+-==•ϕ132G s G c Gij i i +==ϕα其中i j j i s c s c G -=1,i i i l c ϕcos =,i i i l s ϕsin =,j j j l c ϕcos =,j j j l s ϕsin =可得E 的位置iB E iB E y y x x ϕϕsin 480cos 480+=+=E 的速度 i i yB E yE i i xB E xE v yv v xv ωϕωϕcos 480sin 480+==-==E 的加速度i i i i xB E xE a xa αϕωϕsin 480cos 4802--== i i i i yB E yE a ya ϕαϕωcos 480sin 4802+-== (3)、构件4、5杆组(II 级杆组RRP )在建立的坐标系中取一参考点K600,0==K K y x 则速度0,0==yK xK v v加速度0,0==yK xK a a杆长mm l EF 600=,设F 位移为s 由s x l x x K i EF E F +=+='cos ϕK i EF E F y l y y =+='sin ϕ由上面两个式子可以得到600600arcsin arcsin'E EF E k i y l y y -=-=ϕ 所以:F 点位移 )600600arcsin(cos 600E E F y x x s -+== 速度F F xv = 加速度F F xa =四、编程计算并输出结果(VB编程)主程序:Private Sub Command1_Click()Dim s5(3600) As DoubleDim v5(3600) As DoubleDim a5(3600) As Double Dim pi As DoubleDim pa As Doublepi = 3.1415926pa = pi / 180Dim i As LongDim f1(3600) As Double Dim RR1 As RRDim RR2 As RRDim RRR1 As RRRDim RRP1 As RRPSet RR1 = New RRSet RR2 = New RRSet RRR1 = New RRRSet RRP1 = New RRPFor i = 0 To 3600 Step 1 f1(i) = i * pa / 10RR1.delt = 0RR1.f = f1(i)RR1.w = 5.24RR1.e = 0RR1.L = 150RR1.xA = 0RR1.yA = 0RR1.vxA = 0RR1.vyA = 0RR1.axA = 0RR1.ayA = 0RR1.calRRR1.Li = 600RRR1.Lj = 500RRR1.xB = RR1.xBRRR1.yB = RR1.yBRRR1.vxB = RR1.vxBRRR1.vyB = RR1.vyBRRR1.axB = RR1.axBRRR1.ayB = RR1.ayBRRR1.xD = 400RRR1.yD = 500RRR1.vxD = 0RRR1.vyD = 0RRR1.axD = 0RRR1.ayD = 0RRR1.M = 1RRR1.calRRRRR2.delt = 0RR2.f = RRR1.fi RR2.w = RRR1.wi RR2.e = RRR1.ei RR2.L = 480RR2.xA = RR1.xB RR2.yA = RR1.yB RR2.vxA = RR1.vxB RR2.vyA = RR1.vyB RR2.axA = RR1.axB RR2.ayA = RR1.ayB RR2.calRRP1.Li = 600RRP1.Lj = 0RRP1.fj = piRRP1.wj = 0RRP1.ej = 0RRP1.xB = RR2.xB RRP1.yB = RR2.yB RRP1.vxB = RR2.vxB RRP1.vyB = RR2.vyB RRP1.axB = RR2.axB RRP1.ayB = RR2.ayB RRP1.xK = 0RRP1.yK = 600RRP1.vxK = 0RRP1.vyK = 0RRP1.axK = 0RRP1.ayK = 0RRP1.M = 1RRP1.cals5(i) = RRP1.ssv5(i) = RRP1.vssa5(i) = RRP1.assNext iPicture1.Scale (-30, 700)-(360, 580)Picture1.Line (0, 0)-(360, 0) 'XPicture1.Line (0, 580)-(0, 700) 'YFor i = 0 To 360 Step 10 'X轴坐标Picture1.DrawStyle = 2Picture1.Line (i, 700)-(i, 580)Picture1.CurrentX = i - 10: Picture1.CurrentY = 0 Picture1.Print iNext iFor i = 580 To 700 Step 10 'Y轴坐标Picture1.DrawStyle = 2Picture1.Line (0, i)-(360, i)Picture1.CurrentX = -10: Picture1.CurrentY = iPicture1.Print iNext iFor i = 0 To 3600 Step 1Picture1.PSet (i / 10, s5(i))Next iEnd SubRR:Public L As DoublePublic f As DoublePublic delt As DoublePublic w As DoublePublic e As DoublePublic xA As DoublePublic yA As DoublePublic vxA As DoublePublic vyA As DoublePublic axA As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic Sub cal()xB = xA + L * Cos(f + delt)yB = yA + L * Sin(f + delt)vxB = vxA - w * L * Sin(f + delt)vyB = vyA + w * L * Cos(f + delt)axB = axA - w ^ 2 * L * Cos(f + delt) - e * L * Sin(f + delt) ayB = ayA - w ^ 2 * L * Sin(f + delt) + e * L * Cos(f + delt) End SubRRR:Public Li As DoublePublic Lj As DoublePublic fi As DoublePublic fj As DoublePublic wi As DoublePublic wj As DoublePublic ei As DoublePublic ej As DoublePublic xB As DoublePublic yB As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic xC As DoublePublic yC As DoublePublic vxC As DoublePublic vyC As DoublePublic axC As DoublePublic ayC As DoublePublic xD As DoublePublic yD As DoublePublic vxD As DoublePublic vyD As DoublePublic M As DoublePublic Sub calRRR()Dim fDB As DoubleDim Ci As DoubleDim Cj As DoubleDim Si As DoubleDim Sj As DoubleDim G1 As DoubleDim G2 As DoubleDim G3 As DoubleDim LBD As DoubleDim JCBD As DoubleDim val As Doublepi = 3.1415926LBD = Sqr((xB - xD) ^ 2 + (yD - yB) ^ 2)If LBD < Li + Lj And LBD > Abs(Li - Lj) Thenval = (Li ^ 2 + LBD ^ 2 - Lj ^ 2) / (2 * Li * LBD) JCBD = Atn(-val / Sqr(-val * val + 1)) + 2 * Atn(1) End IfRRP:Public Li As DoublePublic Lj As DoublePublic fi As DoublePublic fj As DoublePublic wi As DoublePublic wj As DoublePublic ei As DoublePublic ej As DoublePublic xB As DoublePublic yB As DoublePublic vxB As DoublePublic vyB As DoublePublic axB As DoublePublic ayB As DoublePublic xK As DoublePublic vyK As DoublePublic axK As DoublePublic ayK As DoublePublic xC As DoublePublic yC As DoublePublic vxC As DoublePublic vyC As DoublePublic axC As DoublePublic ayC As DoublePublic xD As DoublePublic yD As DoublePublic vxD As DoublePublic vyD As DoublePublic axD As DoublePublic ayD As DoublePublic M As SinglePublic ss As DoublePublic vss As DoublePublic ass As DoublePublic Sub cal()Dim A0 As DoubleDim Q1 As DoubleDim Q2 As DoubleDim Q3 As DoubleDim Q4 As DoubleDim Q5 As DoubleDim val As DoubleDim pi As Doublepi = 3.14159216A0 = Lj + ((yK - yB) * Cos(fj) - (xK - xB) * Sin(fj)) val = A0 / Lifi = M * Atn(val / Sqr(-val * val + 1)) + fjxC = xB + Li * Cos(fi)yC = yB + Li * Sin(fi)ss = (xC - xK) * Cos(fj) + (yC - yK) * Sin(fj)xD = xK + ss * Cos(fj)yD = yK + ss * Sin(fj)Q1 = vxK - vxB - wj * (ss * Sin(fj) + Lj * Cos(fj))Q2 = vyK - vyB + wj * (ss * Cos(fj) - Lj * Sin(fj))Q3 = Li * Sin(fi) * Sin(fj) + Li * Cos(fi) * Cos(fj)wi = (-Q1 * Sin(fj) + Q2 * Cos(fj)) / Q3vss = -(Q1 * Li * Cos(fi) + Q2 * Li * Sin(fi)) / Q3vxC = vxB - wi * Li * Sin(fi)vyC = vyB + wi * Li * Cos(fi)vxD = vxK + vss * Cos(fj) - ss * wj * Sin(fj)vyD = vyK + vss * Sin(fj) + ss * wj * Cos(fj)Q4 = axK - axB + wi ^ 2 * Li * Cos(fi) - ej * (ss * Sin(fj) + Lj * Cos(fj)) - wj ^ 2 * (ss * Cos(fj) - Lj * Sin(fj)) - 2 * vss * wj * Sin(fj)Q5 = ayK - ayB + wi ^ 2 * Li * Sin(fi) + ej * (ss * Cos(fj) - Lj * Sin(fj)) - wj ^ 2 * (ss * Sin(fj) + Lj * Cos(fj)) + 2 * vss * wj * Cos(fj)ei = (-Q4 * Sin(fj) + Q5 * Cos(fj)) / Q3ass = (-Q4 * Li * Cos(fi) - Q5 * Li * Sin(fi)) / Q3axC = axB - ei * Li * Sin(fi) - wi ^ 2 * Li * Cos(fi)ayC = ayB + ei * Li * Cos(fi) - wi ^ 2 * Li * Sin(fi)axD = axK + ass * Cos(fj) - ss * ej * Sin(fj) - ss * wj ^ 2 * Cos(fj) - 2 * vss * wj * Sin(fj)ayD = ayK + ass * Sin(fj) + ss * ej * Cos(fj) - ss * wj ^ 2 * Sin(fj) + 2 * vss * wj * Cos(fj)End Sub五、计算结果数据如图:位移曲线:速度曲线:加速度曲线:六、计算结果分析主动件转角为0时,滑块的位移为628mm,随着转角的匀速增加,滑块位移先上升,速度为负快速下降,加速度为负且开始值较小并逐渐下降,到达最低点-2200左右,此时速度为0, 然后位移开始继续下降,速度继续下降,然后到达最小值-100左右,此时加速度为0,又开始上升(向左运动),速度正向增大,在后面一段时期速度继续增大,加速度也正向增大,然后速度下降,加速度下降.滑块分别在4.2s,11.4s速度达到正向最大,1.7s,7.7s速度达到负向最大,0.8s,2.7s,5.8s,9.6s加速度达到极值,滑块就是这样周期性的左右运动。

哈工大精密机械基础 大作业

哈工大精密机械基础 大作业

应用C 语言实现滚子从动件盘状凸轮的轮廓描绘(哈尔滨工业大学 航天学院英才班 )滚子从动件的轮廓与从动件运动方程有关系,本文就一种运动方程描绘了滚子从动件的轮廓。

若有给定的从动件方程,则需要将代码中从动件的运动方程和方程的一阶导改变。

滚子从动件盘状凸轮的几个重要参数:E :从动件的偏心距,OCR :凸轮的基圆半径,OA0S :0S ,CKJ :凸轮的转角S: S=f J (),从动件运动方程,KB0BC=CK+KB=S +S凸轮的理论轮廓线上的某一点坐标(X,Y )0X ()()*()OE EF Cos J S S Sin J =+=++0()*()*()Y BD FD S S Cos J E Sin J =-=+-从动件规律:推程1J :11(1cos())2H S J J π=-; 远休止2J :2S H =;回程3J :33(1cos())2H S H J J π=--; 近休止4J :40S =编程思想:凸轮的代码用了一个循环,当角度变化的时候S 也在变化,然后根据变化的S 计算出凸轮的坐标。

在平面上建立坐标系,计算出滚子内轮廓和外轮廓的坐标,再将横纵坐标取平均,得到滚子滚动的圆心,然后以滚子半径做圆。

滚子半径不能太大。

运行结果如下:图一为运行界面,图二为凸轮图形图一图二附:凸轮代码:#include<graphics.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<math.h>main(){float x[361],y[361];float x1[361],y1[361];float x2[361],y2[361];float n1[361];float n2[361];int E=10;int H=50;int j1=90;int j2=90;int j3=90;int j4=90;int r1=1;float s0=38.726;float s[360];int R,j,m=360,gmode,gdriver,gerror;printf("请输入基圆半径R和滚子半径");printf("R=");scanf("%d",&R);printf("\t%d",R);printf("r1=");scanf("%d",&r1);printf("\t%d",r1);gdriver=VGA;gmode=VGAHI;initgraph (&gdriver,&gmode,"");setbkcolor(BLACK);line(10,240,630,240);line(320,20,320,450); circle(320,240,R);for(j=0;j<=360;j++){if(j>360-j4&&j<=360){s[j]=0;n1[j]=-E*sin(j*3.141592/j1)+(s0+s[j])*cos(j*3.141592/j1); n2[j]=-E*cos(j*3.141592/j1)-(s0+s[j])*sin(j*3.14159/j1);}if(j>360-j3-j4&&j<=360-j4){s[j]=(H-H/2*(1-cos(3.1415926/j3*j)));n1[j]=(100*(-H/2*3.14159/j3*sin(3.14159/j3*j))-E)*sin(j*3.141592/j1)+ (s0+s[j])*cos(j*3.141592/j1);n2[j]=(100*(-H/2*3.14159/j3*sin(3.14159/j3*j))-E)*cos(j*3.141592/j1)-(s0+s[j])*sin(j*3.14159/j1);}if(j>360-j4-j3-j2&&j<=360-j3-j4){s[j]=H;n1[j]=-E*sin(j*3.141592/j1)+(s0+s[j])*cos(j*3.141592/j1); n2[j]=-E*cos(j*3.141592/j1)-(s0+s[j])*sin(j*3.14159/j1);}if(j>=0&&j<=360-j4-j3-j2){s[j]=(H/2*(1-cos(3.1415926/j1*j)));n1[j]=(100*(3.14159*H/j1/2*sin(3.14159/j1*j))-E)*sin(j*3.141592/j1)+( s0+s[j])*cos(j*3.141592/j1);n2[j]=(100*(3.14159*H/j1/2*sin(3.14159/j1*j))-E)*cos(j*3.141592/j1)-( s0+s[j])*sin(j*3.14159/j1);}x[j]=(E*cos(3.14159/180*j)+(s0+s[j])*sin(3.14159/180*j));y[j]=((s0+s[j])*cos(3.141592/180*j)-E*sin(3.141592/180*j)); x1[j]=x[j]-r1*n2[j]/(sqrt(n1[j]*n1[j]+n2[j]*n2[j]));y1[j]=y[j]+r1*n1[j]/(sqrt(n1[j]*n1[j]+n2[j]*n2[j]));x2[j]=x[j]+r1*n2[j]/(sqrt(n1[j]*n1[j]+n2[j]*n2[j]));y2[j]=y[j]-r1*n1[j]/(sqrt(n1[j]*n1[j]+n2[j]*n2[j]));x[j]=320+x[j];y[j]=240-y[j];x1[j]=320+x1[j];x2[j]=320+x2[j];y1[j]=240-y1[j];y2[j]=240-y2[j];circle((x1[j]+x2[j])/2,(y1[j]+y2[j])/2,r1); }getch();closegraph();}。

哈工大机械设计大作业-齿轮传动方案5.1.1

哈工大机械设计大作业-齿轮传动方案5.1.1

哈⼯⼤机械设计⼤作业-齿轮传动⽅案5.1.1⽬录⼀.选择齿轮材料、热处理⽅式、精度等级 (02)⼆.初步计算传动主要尺⼨ (02)1)⼩齿轮传递的转矩T (03)12)齿数的初步确定 (03)3)齿宽系数φ的确定 (04)d4)载荷系数K的确定 (04)5)齿形系数Y和应⼒修正系数s Y (04)F的确定 (04)6)重合度系数Yε7)许⽤弯曲应⼒的确定 (04)8)初算模数 (05)三.计算传动尺⼨ (05)1)计算载荷系数K (05)2)圆整m (06)3)计算传动尺⼨ (06)四.齿⾯接触疲劳强度的校核 (06)五.⼤齿轮结构尺⼨的确定 (07)1)齿轮结构型式的确定 (07)2)轮毂孔径的确定 (07)3)齿轮结构尺⼨的确定 (08)参考⽂献: (08)题⽬:设计带式运输机中的齿轮传动带式运输机的传动⽅案如图1所⽰,机器⼯作平稳、单向回转、成批⽣产,其他数据见表1。

图1表1 带式运输机中V 带传动的已知数据⽅案电动机⼯作功率电动机满载转速⼯作机的转速第⼀级传动⽐轴承座中⼼⾼最短⼯作年限⼯作环境5.1.1 3960901.81508年1班室外、有尘⼀.选择齿轮材料、热处理⽅式、精度等级由于运输机的⼤齿轮结构为对称式,齿宽系数d φ仅能取到1.左右。

由指导⼿册可知,本装置的齿轮传动为开式齿轮传动,导致在齿⾯解除疲劳强度校核时,对接触疲劳极限要求很⾼,故在本设计中采⽤硬齿⾯,⼤⼩齿轮均选⽤40Cr ,表⾯淬⽕处理。

由参考⽂献1表8.2查得齿⾯硬度为4855HRC 。

由参考⽂献2表16.1查得,齿轮可选⽤8级精度。

⼆.初步计算传动主要尺⼨因为齿轮采⽤软齿⾯开式传动,齿⾯磨损是其主要失效形式。

由于⽬前对于齿⾯磨损还⽆完善的计算⽅法,因此通常按齿根疲劳强度进⾏设计,然后考虑磨损的影响,⼀般将算的模数增⼤10%-15%之后再取标准值。

下⾯初步确定按齿根弯曲疲劳强度设计齿轮传动主要参数和尺⼨。

齿根弯曲疲劳强度设计公式13212[]F s Fd Y Y Y KT m z εσφ≥式中:F Y ——齿形系数,反映了轮齿⼏何形状对齿根弯曲应⼒F σ的影响;s Y ——应⼒修正系数,⽤以考虑齿根过度圆⾓处的应⼒集中和除弯曲应⼒以外的其它应⼒对齿根应⼒的影响;Y ε——重合度系数,是将全部载荷作⽤于齿顶时的齿根应⼒折算为载荷作⽤于单对齿啮合区上界点时的齿根应⼒系数; []F σ——许⽤齿根弯曲应。

机械设计大作业——V带传动

机械设计大作业——V带传动

机械设计设计说明书设计题目:V带传动设计机械与能源工程学院机械设计制造及其自动化专业班级学号设计人指导老师李兴华完成日期2012 年 3 月24 日同济大学目录1.确定计算功率P ca (2)2.选择V带的类型 (2)3.确定带轮的基准直径d d并验算带速v (2)4.确定V带的中心距a和基准长度L d (2)5.验算小带轮上的包角α1 (3)6.计算带的根数z (3)7.计算单根V带的初拉力的最小值(F0)min (3)8.计算压轴力F P (3)9.设计结果 (3)10.带轮结构设计 (4)11.设计小结 (5)12.参考文献 (5)根数:4根带长:L d =2000 mm带轮基准直径:d d1=118 mm d d2=250 mm带传动中心距:a=708 mm作用在轴上的压力:(F p)min=1123 N10.带轮结构设计1)带轮材料的选择。

本设计中转速要求不高,故材料选用铸铁,牌号为HT150。

2)带轮的结构形式。

本方案中小带轮基准直径为118mm,为中小尺寸(d d≤300mm),故选用腹板轮。

3)轮槽截面尺寸(部分)如下。

查表8-10及表9-1(机械设计课程设计书)得各数据:轮槽截面尺寸尺寸大小(mm)b d11.0h a 2.75h f8.7e15f10ψ34°δ6c10d168B65l82对小带轮:d d1=118 mm,d a1=2×h a+d d1=123.5 mm对大带轮:d d2=250 mm,d a1=2×h a+d d2=255.5 mm4)键槽尺寸如下。

查表14-1(机械设计课程设计书)得各数据:键槽截面尺寸尺寸大小(mm)d38h8b10t 5.0t1 3.311.设计小结通过本次设计,我了解了V带设计的基本方法和步骤,为以后的学习和实践打下了坚实的基础。

在完成本次设计的过程中,我体会到了设计的严谨性,有时候稍不注意就容易设计出错,导致前后矛盾,使设计出现各种问题。

哈工大机械原理大作业齿轮传动设计(word文档良心出品)

哈工大机械原理大作业齿轮传动设计(word文档良心出品)

机械原理大作业(三)课程名称:设计题目:院系:姓名:学号:指导教师:设计时间:哈尔滨工业大学(威海)设计说明书1.设计题目 (2)2.传动比的分配计算 (3)3. 计算滑移齿轮变速传动中每对齿轮的基本几何尺寸 (3)(1)齿轮5、齿轮6 (4)(2)齿轮7、齿轮8 (4)(3)齿轮9、齿轮10 (5)4.计算定轴齿轮传动中每对齿轮的基本几何尺寸。

(5)(1)齿轮11、齿轮12 (5)(2)齿轮13、齿轮14 (6)(3)齿轮15、齿轮16 (6)5.每对齿轮的几何尺寸及重合度。

(6)7.实际设计参数 (14)1.设计题目如图所示一个机械传动系统,运动由电动机1输入,经过机械传动系统变速后由圆锥齿轮16输出三种不同的转速。

根据表中的传动系统原始参数设计该传动系统。

1.15,16.圆锥齿轮表机械传动系统原始参数2.传动比的分配计算电动机转速ni=1450r/min,输出转速n1=12r/min,n2=17r/min,n3=23r/min,带传动的最大传动比idmax=2.5,滑移齿轮传动的最大传动比ihmax=4,定轴齿轮传动的最大传动比ifmax=4。

根据传动系统的原始参数可知,传动系统的总传动比为i1=nin1=1450÷12=120.833i2=nin2=1450÷17=85.294i3=nin3=1450÷23=63.043传动系统的总传动比由带传动、滑移齿轮传动和定轴齿轮传动三部分实现。

设带传动的传动比为id,滑移齿轮的传动比为ih1、ih2和ih3,定轴齿轮传动的传动比为if,则总传动比i1=id*ih1*ifi2=id*ih2*ifi3=id*ih3*if令=ih1=ihmax=4则可得:定轴齿轮传动部分的传动比为if=i1/(id*ih1)=120.833/(2.5*4)=12.083滑移齿轮传动的传动比ih2=i2/(id*if)=85.294/(2.5*12.083)=2.824Ih3=i3/(id*if)=63.043/(2.5*12.083)=2.087定轴齿轮传动由3对齿轮传动组成,则每对齿轮的传动比为iv*iv*iv=if=12.083,iv=2.2953.计算滑移齿轮变速传动中每对齿轮的基本几何尺寸根据滑移齿轮变速传动系统中对齿轮齿数的要求,选择齿轮5、6、7、8、9和10为角度变位齿轮。

哈工大机械原理大作业连杆机构运动分析29

哈工大机械原理大作业连杆机构运动分析29

机械原理大作业一课程名称:机械原理设计题目:连杆机构运动分析-29院系:机电工程学院班级:设计者:学号:指导教师:设计时间:哈尔滨工业大学一、设计题目(29)二、VB编程得到动画、轨迹、位移、速度、加速度线图1.用VB编写程序得到的机构动画2.构件2上的E点轨迹4.构件7的速度线图三、计算说明书(一)建立机构运动分析数学模型对机构进行结构分析,找出基本杆组1.基本杆组划分a)杆件1为原动件b)构件2、3为RRR型II级杆组c)构件4、5为RRR型II级杆组d)构件6、7为RRP型II级杆组2.结构分析与自由度计算机构为平面连杆机构,活动构件数n=7,L P =10,转动副为9个,移动副为1个,高副为0个,则机构自由度为F=3n-2P L -P H =3x7-2x10=1。

各基本杆组的运动分析数学模型1.原动件(I 级构件)图1(1)位置分析B 点位置方程cos sin B A i iBA i i x x l y y l ϕϕ=+⎧⎨=+⎩ (1-1)(2)速度分析把(1-1)对时间t 求导得B 速度方程sin cos B B A i i i BB A i i i dx x x l dt dy y y l dt ϕϕϕϕ⎫==-⎪⎪⎬⎪==+⎪⎭g g g g g g (1-2)(3)加速度分析把(2-2)对时间他求导得B 加速度方程222222cos sin sin cos B B A i i i i i i BB A i i i i i i d x x x l l dt d y y y l l dt ϕϕϕϕϕϕϕϕ⎫==--⎪⎪⎬⎪==-+⎪⎭g g g g g g g g g g g g g g (1-3) 上式中 i i d dt ϕϕω==g22i i d dtϕϕα==g g 2. RRR 杆组的运动分析3.RRP杆组的运动分析图2(1) 位置分析内运动副C 的位置方程cos cos sin sin sin cos C B i i K j j jCB i i K j j j x x l x s l y y l y s l ϕϕϕϕϕϕ=+=+-⎧⎪⎨=+=++⎪⎩ (2-1)i l 的转角 0arcsin()ji j iA l l ϕϕ+=+ (2-2)式中0()sin ()cos B k j B K j A x x y y ϕϕ=---满足装配条件0j i A l l +≤ 滑块D 相对参考点K 的位移为sin cos cos sin C k j jC K j jjjx x l y y l s ϕϕϕϕ-+--==(2-3)滑块D 的位置方程 cos sin D K iD K ix x s y y s ϕϕ=+⎧⎨=+⎩ (2-4)(2) 速度分析杆i l 的角速度123sin cos j ji i Q Q Q ϕϕωϕ-+==g(2-5)滑块D 沿导路的移动速度 123cos sin i i i iQ l Q l s Q ϕϕ-+=g(2-6)式中1(sin cos )K B j j j j Q x x s l ϕϕϕ=--+ggg2(cos sin )K B j j j j Q y y s l ϕϕϕ=-+-g g g3sin sin cos cos i i j i i j Q l l ϕϕϕϕ=+内运动副C 的速度为sin cos C B i i iC B i i ix x l y y l ϕϕϕϕ⎧=-⎪⎨⎪=+⎩gg gg g g (2-7)外移动副D 的速度为cos sin sin cos D K i j jD K i j j x x s s y y s s ϕϕϕϕϕϕ⎧=+-⎪⎨⎪=++⎩gg g g g g g g(2-8) (3) 加速度分析 杆i l 的角加速度453sin s j ji i Q Q co Q ϕϕεϕ-+==g g(2-9)滑块D 沿导路移动的加速度为453cos sin i i i i Q l Q l s Q ϕϕ--=g g (2-10) 式中224cos (sin cos )(cos sin )2sin K B i i i j j j j j j j j j j Q x x l s l s l s ϕϕϕϕϕϕϕϕϕϕ=-+-+---g g g g g g g g g g225sin (cos sin )(sin cos )2cos K B i i i j j j j j j j j j j Q y y l s l s l s ϕϕϕϕϕϕϕϕϕϕ=-++--++g g g g g g g g g g内运动副C 的加速度22cos sin sin cos C B i i i j i j C B i i i j i jx x l l y y l l ϕϕϕϕϕϕϕϕ⎧=--⎪⎨⎪=-+⎩g gg g g g g g gg g g g g(2-11) 滑块D 的加速度22cos sin cos 2sin sin cos sin 2cos D K j j j j j j jD K j j j j j j jx x s s s s y y s s s s ϕϕϕϕϕϕϕϕϕϕϕϕϕϕ⎧=+---⎪⎨⎪=++-+⎩g g g g g g g g g g gg g g g g g g gg g g(2-12) 以上为基本杆组的通用分析,根据已知条件进行赋值均在程序中体现(二) 计算流程框图(见下页)(三)VB编写程序清单'定义变量Dim xA As Double 'A点的坐标、速度、加速度Dim yA As DoubleDim vxA As DoubleDim vyA As DoubleDim axA As DoubleDim ayA As DoubleDim xB As Double 'B点Dim yB As DoubleDim vxB As DoubleDim vyB As DoubleDim axB As DoubleDim ayB As DoubleDim xD As Double 'D点Dim yD As DoubleDim vxD As DoubleDim vyD As DoubleDim axD As DoubleDim ayD As DoubleDim xE As Double 'E点Dim yE As DoubleDim vxE As DoubleDim vyE As DoubleDim axE As DoubleDim ayE As DoubleDim xG As Double 'G点Dim yG As DoubleDim vxG As DoubleDim vyG As DoubleDim axG As DoubleDim ayG As DoubleDim xH As Double 'H点Dim yH As DoubleDim vxH As DoubleDim vyH As DoubleDim axH As DoubleDim ayH As DoubleDim xM As Double 'M点Dim yM As DoubleDim vxM As DoubleDim vyM As DoubleDim axM As DoubleDim xN As Double '参考点NDim yN As DoubleDim vxN As DoubleDim vyN As DoubleDim axN As DoubleDim ayN As DoubleDim xK As Double 'K点Dim yK As DoubleDim vxK As DoubleDim vyK As DoubleDim axK As DoubleDim ayK As DoubleDim delt1 As Double 'AB杆初始转角Dim L1 As Double 'AB杆长Dim f1 As Double 'AB杆转角Dim w1 As Double 'AB杆角速度Dim e1 As Double 'AB杆角加速度Dim L2 As Double 'BC杆Dim f2 As DoubleDim w2 As DoubleDim e2 As DoubleDim L3 As Double 'CD杆Dim f3 As DoubleDim w3 As DoubleDim e3 As DoubleDim LBE As Double 'BE杆Dim delt2 As DoubleDim L4 As Double 'EF杆Dim f4 As DoubleDim w4 As DoubleDim e4 As DoubleDim LFG As Double 'FG杆Dim f5 As DoubleDim w5 As DoubleDim e5 As DoubleDim deltGH As Double 'GH杆Dim LGH As DoubleDim L6 As Double 'HM(HK)杆Dim f6 As DoubleDim w6 As DoubleDim e6 As DoubleDim Lj As Double 'MK杆Dim wj As DoubleDim ej As DoubleDim ss As Double '移动副K的位移Dim vss As Double '移动副K的速度Dim ass As Double '移动副K的加速度Dim pi As DoubleDim pa As DoubleDim i As DoubleDim fj1 As DoublePrivate Sub Command1_Click() '点E的轨迹Picture1.Scale (-50, 250)-(600, -100)Picture1.Line (-50, 0)-(600, 0) 'XPicture1.Line (0, 250)-(0, -100) 'YFor i = -50 To 600 Step 50 'X轴坐标Picture1.DrawStyle = 2Picture1.Line (i, 250)-(i, -100)Picture1.CurrentX = i - 0: Picture1.CurrentY = 0 Picture1.Print iNext iFor i = -100 To 250 Step 50 'Y轴坐标Picture1.DrawStyle = 2Picture1.Line (-50, i)-(600, i)Picture1.CurrentX = -20: Picture1.CurrentY = i + 7 Picture1.Print iNext iFor fj1 = 0 To 360 Step 0.01f1 = fj1 * paCall RR1Call RRR1Call RR2Picture1.PSet (xE, yE)Next fj1End SubPrivate Sub Command2_Click() '求点G的位移Picture2.Scale (-20, 300)-(380, 200)Picture2.Line (-20, 0)-(380, 0) 'XPicture2.Line (0, 300)-(0, 200) 'YFor i = 0 To 360 Step 30 'X轴坐标Picture2.DrawStyle = 2Picture2.Line (i, 300)-(i, 0)Picture2.CurrentX = i - 10: Picture2.CurrentY = 0Picture2.Print iNext iFor i = 200 To 300 Step 10 'Y轴坐标Picture2.Line (0, i)-(380, i)Picture2.CurrentX = -25: Picture2.CurrentY = i Picture2.Print iNext iFor fj1 = 0 To 360 Step 0.01f1 = fj1 * paCall RR1Call RRR1Call RR2Call RRR2Call RR3Call RRP1Picture2.PSet (fj1, ss)Next fj1End SubPrivate Sub Command3_Click() '求点G的速度Picture3.Scale (-30, 600)-(380, -600)Picture3.Line (-30, 0)-(380, 0) 'XPicture3.Line (0, 600)-(0, -600) 'YFor i = 0 To 360 Step 30 'X轴坐标Picture3.DrawStyle = 2Picture3.Line (i, 600)-(i, -600)Picture3.CurrentX = i - 10: Picture3.CurrentY = 0 Picture3.Print iNext iFor i = -600 To 600 Step 50 'Y轴坐标Picture3.Line (0, i)-(380, i)Picture3.CurrentX = -28: Picture3.CurrentY = i Picture3.Print iNext iFor fj1 = 0 To 360 Step 0.01f1 = fj1 * paCall RR1Call RRR1Call RR2Call RRR2Call RR3Call RRP1Picture3.PSet (fj1, vss)Next fj1End SubPrivate Sub Command4_Click() '求点G的加速度Picture4.Scale (-20, 20000)-(380, -10000)Picture4.Line (-20, 0)-(380, 0) 'XPicture4.Line (0, 20000)-(0, -10000) 'YFor i = 0 To 360 Step 30 'X轴坐标Picture4.DrawStyle = 2Picture4.Line (i, 20000)-(i, -10000)Picture4.CurrentX = i - 10: Picture4.CurrentY = 0 Picture4.Print iNext iFor i = -10000 To 20000 Step 1000 'Y轴坐标Picture4.Line (0, i)-(380, i)Picture4.CurrentX = -25: Picture4.CurrentY = i + 5 Picture4.Print iNext iFor fj1 = 0 To 360 Step 0.01f1 = fj1 * paCall RR1Call RRR1Call RR2Call RRR2Call RR3Call RRP1Picture4.PSet (fj1, ass)Next fj1End SubPrivate Sub Form_Load() '赋初值xA = 0yA = 0vxA = 0vyA = 0axA = 0ayA = 0xD = 730yD = -138vxD = 0vyD = 0axD = 0ayD = 0xG = 465yG = -248vxG = 0vyG = 0axG = 0ayG = 0xN = 545yN = 0vxN = 0vyN = 0axN = 0ayN = 0delt1 = 0L1 = 200w1 = 10e1 = 0L2 = 670L3 = 350delt2 = 0LBE = 335L4 = 380LFG = 130deltGH = 56 * paLGH = 100L6 = 486Lj = 0fj = pi / 2wj = 0ej = 0pi = 3.14pa = pi / 180End SubPublic Sub RR1() '杆ABxB = xA + L1 * Cos(f1 + delt1)yB = yA + L1 * Sin(f1 + delt1)vxB = vxA - w1 * L1 * Sin(f1 + delt1)vyB = vyA + w1 * L1 * Cos(f1 + delt1)axB = axA - w1 ^ 2 * L1 * Cos(f1 + delt1) - e1 * L1 * Sin(f1 + delt1) ayB = ayA - w1 ^ 2 * L1 * Sin(f1 + delt1) + e1 * L1 * Cos(f1 + delt1) End SubPublic Sub RRR1() '杆BCDDim xC As DoubleDim yC As DoubleDim vxC As DoubleDim vyC As DoubleDim axC As DoubleDim ayC As DoubleDim LBD As DoubleDim JCBD As DoubleDim val1 As DoubleDim fDB As DoubleDim C2 As DoubleDim C3 As DoubleDim S2 As DoubleDim S3 As DoubleDim G11 As DoubleDim G12 As DoubleDim G13 As DoubleLBD = Sqr((xD - xB) ^ 2 + (yD - yB) ^ 2)If LBD > L2 + L3 And LBD < Abs(L2 - L3) ThenIf MsgBox("RRR杆组杆长不符合要求", vbOKOnly, "提示") = 1 Then EndElseEnd IfElseEnd IfIf LBD < L2 + L3 And LBD > Abs(L2 - L3) Thenval1 = (L2 ^ 2 + LBD ^ 2 - L3 ^ 2) / (2 * L2 * LBD)JCBD = Atn(-val1 / Sqr(-val1 * val1 + 1)) + 2 * Atn(1)ElseEnd IfIf LBD = L2 + L3 ThenJCBD = 0ElseEnd IfIf LBD = Abs(L2 - L3) ThenIf L2 > L3 ThenJCBD = 0ElseEnd IfIf L2 < L3 ThenJCBD = piElseEnd IfElseEnd IfIf xD > xB And yD >= yB Then '第一象限fDB = Atn((yD - yB) / (xD - xB))ElseEnd IfIf xD = xB And yD > yB ThenfDB = pi * 2ElseEnd IfIf xD < xB And yD >= yB Then '第二象限fDB = pi + Atn((yD - yB) / (xD - xB)) ElseEnd IfIf xD < xB And yD < yB Then '第三象限fDB = pi + Atn((yD - yB) / (xD - xB)) ElseEnd IfIf xB = xD And yD < yB ThenfDB = 3 * pi / 2ElseEnd IfIf xD > xB And yD <= yB Then '第四象限fDB = 2 * pi + Atn((yD - yB) / (xD - xB)) ElseEnd Iff2 = fDB + JCBDxC = xB + L2 * Cos(f2)yC = yB + L2 * Sin(f2)If xC > xD And yC >= yD Then '第一象限f3 = Atn((yC - yD) / (xC - xD))ElseEnd IfIf xC = xD And yC > yD Thenf3 = pi / 2ElseEnd IfIf xC < xD And xC >= xD Then '第二象限f3 = pi + Atn((yC - yD) / (xC - xD))ElseEnd IfIf xC < xD And xC < xD Then '第三象限f3 = pi + Atn((yC - yD) / (xC - xD))ElseEnd IfIf xC = xD And xC < xD Thenf2 = 3 * pi / 2ElseEnd IfIf xC > xD And xC <= xD Then '第四象限f2 = 2 * pi + Atn((yC - yD) / (xC - xD))ElseEnd IfC2 = L2 * Cos(f2)S2 = L2 * Sin(f2)C3 = L3 * Cos(f3)S3 = L3 * Sin(f3)G11 = C2 * S3 - C3 * S2w2 = (C3 * (vxD - vxB) + S3 * (vyD - vyB)) / G11w3 = (C2 * (vxD - vxB) + S2 * (vyD - vyB)) / G11vxC = vxB - w2 * L2 * Sin(f2)vyC = vyB + w2 * L2 * Cos(f2)G12 = axD - axB + w2 ^ 2 * C2 - w3 ^ 2 * C3G13 = ayD - ayB + w2 ^ 2 * S2 - w3 ^ 2 * S3e2 = (G12 * C3 + G13 * S3) / G11e3 = (G12 * C2 + G13 * S2) / G11axC = axB - e2 * L2 * Sin(f2) - w2 ^ 2 * L2 * Cos(f2)ayC = ayB - e2 * L2 * Cos(f2) - w2 ^ 2 * L2 * Sin(f2)End SubPublic Sub RR2() '杆BExE = xB + LBE * Cos(f2 + delt2)yE = yB + LBE * Sin(f2 + delt2)vxE = vxB - w2 * LBE * Sin(f2 + delt2)vyE = vyB + w2 * LBE * Cos(f2 + delt2)axE = axB - w2 ^ 2 * LBE * Cos(f2 + delt2) - e2 * LBE * Sin(f2 + delt2) ayE = ayB - w2 ^ 2 * LBE * Sin(f2 + delt2) + e2 * LBE * Cos(f2 + delt2) End SubPublic Sub RRR2() '杆EFGDim xF As DoubleDim yF As DoubleDim vxF As DoubleDim vyF As DoubleDim axF As DoubleDim ayF As DoubleDim LEG As DoubleDim JFEG As DoubleDim val2 As DoubleDim fGE As DoubleDim C4 As DoubleDim C5 As DoubleDim S4 As DoubleDim S5 As DoubleDim G21 As DoubleDim G22 As DoubleDim G23 As DoubleLEG = Sqr((xG - xE) ^ 2 + (yG - yE) ^ 2)If LEG > L4 + LFG And LEG < Abs(L4 - LFG) ThenIf MsgBox("RRR杆组杆长不符合要求", vbOKOnly, "提示") = 1 Then EndElseEnd IfElseEnd IfIf LEG < L4 + LFG And LEG > Abs(L4 - LFG) Thenval2 = (L4 ^ 2 + LEG ^ 2 - LFG ^ 2) / (2 * L4 * LEG)JFEG = Atn(-val2 / Sqr(-val2 * val2 + 1)) + 2 * Atn(1)ElseEnd IfIf LEG = L4 + LFG ThenJFEG = 0ElseEnd IfIf LEG = Abs(L4 - LFG) ThenIf L4 > LFG ThenJFEG = 0ElseEnd IfIf L4 < LFG ThenJFEG = piElseEnd IfElseEnd IfIf xG > xE And yG >= yE Then '第一象限fGE = Atn((yG - yE) / (xG - xE))ElseEnd IfIf xG = xE And yG > yE ThenfGE = pi * 2ElseEnd IfIf xG < xE And yG >= yE Then '第二象限fGE = pi + Atn((yG - yE) / (xG - xE)) ElseEnd IfIf xG < xE And yG < yE Then '第三象限fGE = pi + Atn((yG - yE) / (xG - xE)) ElseEnd IfIf xE = xG And yG < yE ThenfGE = 3 * pi / 2ElseEnd IfIf xG > xE And yG <= yE Then '第四象限fGE = 2 * pi + Atn((yG - yE) / (xG - xE)) ElseEnd Iff4 = fGE - JFEGxF = xE + L4 * Cos(f4)yF = yE + L4 * Sin(f4)If xF > xG And yF >= yG Then '第一象限f5 = Atn((yF - yG) / (xF - xG))ElseEnd IfIf xF = xG And yF > yG Thenf5 = pi / 2ElseEnd IfIf xF < xG And xF >= xG Then '第二象限f5 = pi + Atn((yF - yG) / (xF - xG))ElseEnd IfIf xF < xG And xF < xG Then '第三象限f5 = pi + Atn((yF - yG) / (xF - xG))ElseEnd IfIf xF = xG And xF < xG Thenf4 = 3 * pi / 2ElseEnd IfIf xF > xG And xF <= xG Then '第四象限f4 = 2 * pi + Atn((yF - yG) / (xF - xG)) ElseEnd IfC4 = L4 * Cos(f4)S4 = L4 * Sin(f4)C5 = LFG * Cos(f5)S5 = LFG * Sin(f5)G21 = C4 * S5 - C5 * S4w4 = (C5 * (vxG - vxE) + S5 * (vyG - vyE)) / G21w5 = (C4 * (vxG - vxE) + S4 * (vyG - vyE)) / G21vxF = vxE - w4 * L4 * Sin(f4)vyF = vyE + w4 * L4 * Cos(f4)G22 = axG - axE + w4 ^ 2 * C4 - w5 ^ 2 * C5G23 = ayG - ayE + w4 ^ 2 * S4 - w5 ^ 2 * S5e4 = (G22 * C5 + G23 * S5) / G21e5 = (G22 * C4 + G23 * S4) / G21axF = axE - e4 * L4 * Sin(f4) - w4 ^ 2 * L4 * Cos(f4)ayF = ayE - e4 * L4 * Cos(f4) - w4 ^ 2 * L4 * Sin(f4)End SubPublic Sub RR3() '杆GHxH = xG + LGH * Cos(f5 + deltGH)yH = yG + LGH * Sin(f5 + deltGH)vxH = vxG - w5 * LGH * Sin(f5 + deltGH)vyH = vyG + w5 * LGH * Cos(f5 + deltGH)axH = axG - w5 ^ 2 * LGH * Cos(f5 + deltGH) - e5 * LGH * Sin(f5 + deltGH) ayH = ayG - w5 ^ 2 * LGH * Sin(f5 + deltGH) + e5 * LGH * Cos(f5 + deltGH) End SubPublic Sub RRP1() '杆组H(M)KDim A0 As DoubleDim Q1 As DoubleDim Q2 As DoubleDim Q3 As DoubleDim Q4 As DoubleDim Q5 As DoubleDim val3 As DoubleA0 = Lj + (yN - yH) * Cos(fj) - (xN - xH) * Sin(fj)val3 = A0 / L6fi = Atn(val3 / Sqr(-val3 * val3 + 1)) + fjxM = xH + L6 * Cos(fi)yM = yH + L6 * Sin(fi)ss = (xM - xN) * Cos(fj) + (yM - yN) * Sin(fj)xK = xN + ss * Cos(fj)yK = yN + ss * Sin(fj)Q1 = vxN - vxH - wj * (ss * Sin(fj) + Lj * Cos(fj))Q2 = vyN - vyH + wj * (ss * Cos(fj) - Lj * Sin(fj))Q3 = L6 * Sin(fi) * Sin(fj) + L6 * Cos(fi) * Cos(fj)w6 = (-Q1 * Sin(fj) + Q2 * Cos(fj)) / Q3vss = -(Q1 * L6 * Cos(fi) + Q2 * L6 * Sin(fi)) / Q3vxM = vxH - w6 * L6 * Sin(fi)vyM = vyH + w6 * L6 * Cos(fi)vxK = vxN + vss * Cos(fj) - ss * wj * Sin(fj)vyK = vyN + vss * Sin(fj) + ss * wj * Cos(fj)Q4 = axN - axH + w6 ^ 2 * L6 * Cos(fi) - ej * (ss * Sin(fj) + Lj * Cos(fj)) - wj ^ 2 * (ss * Cos(fj) - Lj * Sin(fj)) - 2 * vss * wj * Sin(fj)Q5 = ayN - ayH + w6 ^ 2 * L6 * Sin(fi) + ej * (ss * Cos(fj) - Lj * Sin(fj)) - wj ^ 2 * (ss * Sin(fj) + Lj * Cos(fj)) + 2 * vss * wj * Cos(fj)e6 = (-Q4 * Sin(fj) + Q5 * Cos(fj)) / Q3ass = (-Q4 * L6 * Cos(fi) - Q5 * L6 * Sin(fi)) / Q3axM = axH - e6 * L6 * Sin(fi) - w6 ^ 2 * L6 * Cos(fi)ayM = ayH + e6 * L6 * Cos(fi) - w6 ^ 2 * L6 * Sin(fi)axK = axN + ass * Cos(fj) - ss * ej * Sin(fj) - ss * wj ^ 2 * Cos(fj) - 2 * vss * wj * Sin(fj)ayK = ayN + ass * Sin(fj) + ss * ej * Cos(fj) - ss * wj ^ 2 * Sin(fj) + 2 * vss * wj * Cos(fj)End Sub(四)计算结果分析用VB编程可得构件6的位移、速度、加速度图像,由图像可得机构运动一个周期内每个时刻的运动参数值,较为直观。

带传动设计程序流程图

带传动设计程序流程图

带传动设计程序流程图
B
注:1)输出结果包括选择带的型号、确定基准长度、根数、中心距、带轮的基
准直径以及结构尺寸;
2)V带类型只包括普通V带。

计算机语言的实现:
对于该设计程序,可以用Visual Basic语言来实现。

VB语言中的可视界面,对程序的进展过程以及对数据的操作带来更加方便,而且可视界面带给造作者更加直观的效果。

首先,打开程序,输入原始数据,单击“下一步”,直接输出功率P ca,再单击界面控件,弹出普通V带选型图,对照计算所得功率P ca以及小带轮转速,选择普通V带类型。

对于后面所涉及的临时数据,都可以在编程中根据书本上所给出的计算公式,单击“下一步”计算所得,并在相应数据栏输出。

程序中所涉及的循环环节,可以手动单击控件“返回”进行二次选择;程序中所要查找的数据、图表都可以在界面上单击提示的控件来展开所查看图表或者查找所需数据。

对于该程序进一步改进,就是引进数据库,对每一种带型编上一个代码,通过输入原始数据:带传动的工作条件;传动位置与总体尺寸限制;所需传递的额定功率P;小带轮转速n1;大带轮转速n2或传动比i。

单击“输出”按键,直接输出计算机所分析得出的结果:带的型号、确定基准长度、根数、中心距、带轮的基准直径以及结构尺寸;。

机械设计作业普通V带传动设计

机械设计作业普通V带传动设计

机械设计作业普通V带传动设计图1运行界面图2设计结果界面Option Explicit '数据库定义Const DBname As String = "V带传动计算.mdb"Dim strPath As StringDim db As DatabaseDim rs1 As RecordsetDim rs2 As RecordsetDim rs3 As RecordsetDim rs4 As RecordsetDim strSQL As StringPrivate Sub Command1_Click()Dim ka As Single '工作情况系数Dim kl As Single '带长修正系数Dim pc As Single '计算功率pcDim n1 As Single '主动轮转速Dim n2 As Single '从动轮转速Dim t As Single '数据库中间变量Dim h As Single '数据库中间变量Dim h1 As Single '数据库中间变量Dim h2 As Single '数据库中间变量Dim h3 As Single '数据库中间变量Dim h4 As Single '数据库中间变量Dim h5 As Single 'kr中间变量Dim h6 As Single '普通v带的基本额定功率p0 Dim h7 As Single '额定功率的增量Δp0Dim h8% '带的根数Dim d1% '带的小轮直径Dim d2% '带的大轮直径Dim i% '循环中间变量Dim j% '循环中间变量Dim A1 ' 数组Dim A2Dim A3Dim A4Dim A5Dim A6Dim B1Dim v As Single '带速Dim s As Single '中间变量Dim a0 As Single '计算中心距Dim a As Integer '标准中心距Dim arf As Single '包角αDim L0 As Single '带长度Dim Ld As Single '带的基准长度Dim bj As Single '包角If Combo1.ListIndex = 0 Then '电动机(交流启动,三角启动,直流并励),四缸以上的内燃机ka = 1 + 0.1 * Combo1.ListIndex + 0.1 * Combo2.ListIndex + 0.1 * Combo3.ListIndexEnd IfIf Combo1.ListIndex = 1 Then '电动机(联机交流启动,直流复励启动),四缸以上的内燃机If Combo2.ListIndex <= 1 Then '负载变动不大ka = 1 + 0.1 * Combo1.ListIndex + 0.1 * Combo2.ListIndex + 0.1 * Combo3.ListIndexElseIf Combo3.ListIndex <= 1 Then '每天工作时间小于十六小时ka = 1.1 + 0.1 * Combo1.ListIndex + 0.1 * Combo2.ListIndex + 0.1 * Combo3.ListIndexElseka = 1.2 + 0.1 * Combo1.ListIndex + 0.1 * Combo2.ListIndex + 0.1 * Combo3.ListIndexEnd IfEnd IfEnd If 'ka计算出pc = ka * Text1.Text '求出pcn1 = Text2.Textn2 = Text3.Text '带的选型和小轮(主动轮)的确定,带型号函数是由双对数坐标系算出If n1 > (10 ^ 2.89975) * (pc ^ 0.9659) ThenText4.Text = "推荐选Z带"A1 = Array(50, 56, 63, 71)For i = 0 To 3v = 3.145926 * A1(i) * n1 / 60000If v > 5 And v < 25 Then '要求速度在大于5m/s小于25m/s d1 = A1(i)Exit ForEnd IfNextEnd IfIf n1 < (10 ^ 2.89975) * (pc ^ 0.9659) And n1 > (10 ^ 2.7228) * (pc ^ 0.9659) ThenText4.Text = "推荐选Z带"A1 = Array(80, 90)For i = 0 To 1v = 3.145926 * A1(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A1(i)Exit ForEnd IfEnd IfIf n1 < (10 ^ 2.7228) * (pc ^ 0.9659) And n1 >= (10 ^ 2.2286) * (pc ^ 1.1477) Then Text4.Text = "推荐选A带"A2 = Array(90, 100)For i = 0 To 1v = 3.145926 * A2(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A2(i)Exit ForEnd IfNextEnd IfIf n1 < (10 ^ 2.2286) * (pc ^ 1.1477) And n1 > (10 ^ 2.13101) * (pc ^ 0.9659) Then Text4.Text = "推荐选A带"A2 = Array(112, 125, 140, 160, 180)For i = 0 To 4v = 3.145926 * A2(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A2(i)Exit ForEnd IfNextEnd IfIf n1 <= (10 ^ 2.13101) * (pc ^ 0.9659) And n1 >= (10 ^ 1.7758) * (pc ^ 1.03366) Then Text4.Text = "推荐选B带"A3 = Array(125, 140)For i = 0 To 1v = 3.145926 * A3(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A3(i)Exit ForEnd IfNextEnd IfIf n1 < (10 ^ 1.7758) * (pc ^ 1.03366) And n1 >= (10 ^ 1.46891) * (pc ^ 1.16112) Then Text4.Text = "推荐选B带"A3 = Array(160, 180, 200, 224, 250, 280)For i = 0 To 5v = 3.145926 * A3(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A3(i)End IfNextEnd IfIf n1 < (10 ^ 1.46891) * (pc ^ 1.16112) And n1 >= (10 ^ 0.89902) * (pc ^ 1.21825) ThenText4.Text = "推荐选C带"A4 = Array(200, 224, 250, 280, 315, 355, 400, 450)For i = 0 To 7v = 3.145926 * A4(i) * n1 / 60000If v > 5 And v < 25 Thend1 = A4(i)Exit ForEnd IfNextEnd IfIf n1 < (10 ^ 0.89902) * (pc ^ 1.21825) And n1 >= (10 ^ -0.24592) * (pc ^ 1.32193) ThenText4.Text = "推荐选D带"End IfIf n1 < (10 ^ -0.24592) * (pc ^ 1.32193) ThenText4.Text = "推荐选E带"End If '小轮直径d1求出,并圆整到标准尺寸s = (1 - 0.02) * d1 * n1 / n2B1 = Array(50, 56, 63, 71, 75, 80, 85, 90, 95, 100, 106, 112, 118, 125, 132, 140, 150, 160, 170, 180, 200, 212, 224, 236, 250, 265, 280, 300, 315, 355, 375, 400, 425, 450, 475, 500, 530, 560, 600, 630, 670, 710, 750, 800, 900, 1000)For j = 0 To 45If s < B1(j) Thens = B1(j)d2 = sExit ForEnd IfNext ' 大轮直径求出并圆整到标准尺寸Label10.Caption = d1 & "mm"Label11.Caption = d2 & "mm"If d1 = 0 Or d2 = 0 ThenMsgBox "参数不合适请重新设计"End Ifa0 = 1.5 * (d1 + d2)L0 = 2 * a0 + 3.1415926 * (d1 + d2) / 2 + 0.25 * (d2 - d1) ^ 2 / a0Set rs4 = db.OpenRecordset("ldyukl")Do While Not rs4.EOFt = rs4.Fields(0).ValueIf t > L0 ThenLd = tExit DoEnd Ifrs4.MoveNextLooprs4.Close' L0算出Text5.Text = "带长度为" & Lda = a0 + (Ld - L0) / 2'验算包角arf = 180 - (d2 - d1) / 2If arf > 90 ThenElseMsgBox "包角太小,参数不合理重新设计"End If '包角α求出'选择klstrSQL = "SELECT z,a,b,c FROM ldyukl " '数据库调用strSQL = strSQL & "WHERE JZchangdu = " & LdSet rs4 = db.OpenRecordset(strSQL)If Text4.Text = "推荐选z带" Thenh = rs4.Fields(0).Valuekl = hEnd IfIf Text4.Text = "推荐选A带" Thenh1 = rs4.Fields(1).Valuekl = h1' kl算出End IfIf Text4.Text = "推荐选B带" Thenh2 = rs4.Fields(2).Valuekl = h2End IfIf Text4.Text = "推荐选C带" Thenh3 = rs4.Fields(3).Valuekl = h3End If'求带根数zSet rs1 = db.OpenRecordset("baojiaokr") '数据库查询krDo While Not rs1.EOFh4 = rs1.Fields(0).ValueIf arf > h4 Thenbj = h4Exit DoEnd Ifrs1.MoveNextLooprs1.ClosePrint ; bj & "bj"strSQL = "SELECT baojiao,kr FROM baojiaokr "strSQL = strSQL & "WHERE baojiao = " & bjSet rs1 = db.OpenRecordset(strSQL)h5 = rs1.Fields(1).Value' "h5=kr求出A5 = Array(200, 400, 800, 950, 1200, 1450, 1600, 1800, 2000, 2400, 2800, 3200, 3600, 4000, 5000, 6000) For i = 0 To 15If n1 < A5(i) Thenn1 = A5(i)Exit ForEnd IfNextIf Text4.Text = "推荐选Z带" ThenstrSQL = "SELECT " & " [" & n1 & "],xinghao, xiaozhijing FROM EDinggonglv " strSQL = strSQL & "WHERE xinghao= 'z' AND xiaozhijing=" & d1Set rs2 = db.OpenRecordset(strSQL)h6 = rs2.Fields(0).ValueEnd IfIf Text4.Text = "推荐选A带" ThenstrSQL = "SELECT " & " [" & n1 & "],xinghao, xiaozhijing FROM EDinggonglv " strSQL = strSQL & "WHERE xinghao= 'a' AND xiaozhijing=" & d1Set rs2 = db.OpenRecordset(strSQL)h6 = rs2.Fields(0).ValueEnd IfIf Text4.Text = "推荐选B带" ThenstrSQL = "SELECT " & " [" & n1 & "],xinghao, xiaozhijing FROM EDinggonglv " strSQL = strSQL & "WHERE xinghao= 'b' AND xiaozhijing=" & d1Set rs2 = db.OpenRecordset(strSQL)h6 = rs2.Fields(0).ValueEnd IfIf Text4.Text = "推荐选C带" ThenstrSQL = "SELECT " & " [" & n1 & "],xinghao, xiaozhijing FROM EDinggonglv " strSQL = strSQL & "WHERE xinghao= 'c' AND xiaozhijing=" & d1Set rs2 = db.OpenRecordset(strSQL)h6 = rs2.Fields(0).ValueEnd If'h6就是p0A6 = Array(400, 730, 800, 980, 1200, 1460, 1600, 2000)For j = 0 To 7If n1 > A6(j) Thenn1 = A6(j)End IfNextIf Text4.Text = "推荐选Z带" ThenIf n1 / n2 < 1.52 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'z' AND i= " & 1.52Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 >= 1.52 And n1 / n2 < 1.99 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'z' AND i= " & 2Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 / n2 >= 2 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'z' AND i= " & 100Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfEnd IfIf Text4.Text = "推荐选A带" ThenIf n1 / n2 < 1.52 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'a' AND i= " & 1.52Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 >= 1.52 And n1 / n2 < 1.99 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'a' AND i= " & 2Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 / n2 >= 2 ThenstrSQL = "SELECT" & "[" & n1 & "],i,xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'a' AND i = " & 100Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfEnd IfIf Text4.Text = "推荐选B带" ThenIf n1 / n2 < 1.52 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang " strSQL = strSQL & " WHERE xinghao= 'b' AND i= " & 1.52Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 >= 1.52 And n1 / n2 < 1.99 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'b' AND i= " & 2Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 / n2 > 2 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'b' AND i= " & 100Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfEnd IfIf Text4.Text = "推荐选C带" ThenIf n1 / n2 < 1.52 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'c' AND i= " & 1.52Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 >= 1.52 And n1 / n2 < 1.99 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'c' AND i= " & 2Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfIf n1 / n2 >= 2 ThenstrSQL = "SELECT" & "[" & n1 & " ],i , xinghao FROM EDzengliang "strSQL = strSQL & " WHERE xinghao= 'c' AND i= " & 100Set rs3 = db.OpenRecordset(strSQL)h7 = rs3.Fields(0).ValueEnd IfEnd If' h7 ' h7就是detp0 h8 = pc / (h6 + h7)Text6.Text = "根数" & h8 ' h8 是带的根数If h8 > 10 ThenMsgBox "参数不合适带数太多请重新设计"End IfIf d1 = 0 Or d2 = 0 ThenMsgBox "参数不合适请重新设计"End IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Label10.Caption = ""Label11.Caption = ""End SubPrivate Sub Form_Load()Combo1.AddItem "第一类电动机"Combo1.AddItem "第二类电动机"Combo2.AddItem "载荷变动很小"Combo2.AddItem "载荷变动小"Combo2.AddItem "载荷变动较大"Combo2.AddItem "载荷变动很大"Combo3.AddItem "工作<10小时"Combo3.AddItem "工作10到16小时"Combo3.AddItem "工作>16小时"strPath = App.Path & "\"Set db = OpenDatabase(strPath & DBname)Set rs1 = db.OpenRecordset("baojiaokr")Set rs2 = db.OpenRecordset("EDinggonglv")Set rs3 = db.OpenRecordset("EDzengliang")End Sub说明:设计中汉字为注释,本设计采用了数据库的调用,因数据库与课本上各表相符,所以没有打印出来。

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

哈工大机械设计带传动设计电算大作业vb和c语言程序代码课程名称, 机械设计电算题目, V带传动设计院系, 机电控制学院班级, 1308102班设计者, 尤开灵学号, 1130810222 设计时间, 2015.10.17 部分变量说明(所有说明见程序部分变量定义)ka 工作情况系数 p 输入功率 kwpd 工作功率 kw i 传动比n1 输入小轮转速 r/min d1 小带轮直径 mmd2 大带轮直径 mm v 皮带速度 m/sjiao 输出包容角度 ? ff0 初拉力 Nff1 轴间力 N ld 带的长度 mmz 皮带代数根 m 质量 kg程序运行截图判断语句:包括速度判断选择小轮直径,输入数据判断小轮直径输出结果及其函数界面'运行程序程序代码Private Sub Command5_Click() '条件输入确定 Dim ka1 As Double '工作情况系数变量 Call f0Dim ka As Double '工作情况系数 Call f1Dim p As Double '输入功率 Text5.Text = n1 & "r/min" Dim pi As Double 'pi的定义 Text4.Text = pd & "kw" Dim pd As Double '工作功率 End Sub Dim i As Double '传动比 Private Sub Command2_Click() '小轮直径选择与确定 Dim n1 As Double '输入小轮转速 d1 = Val(Text7.Text) Dim d1 As Double '小带轮直径 Call f2Dim d2 As Double '大带轮直径 Call f3Dim k As Double '循环变量 Call f4Dim a() As Variant '小轮直径选择序列 End SubDim b() As Variant '皮带的长度选择序列 Private Sub Command3_Click() '中心距离输入 Dim nn() As Variant '转速的选择序列 aa = Val(Text16.Text) Dim mm() As Variant '包容修正系数列表 Call f5Dim v As Double '皮带速度 End SubDim aa As Double '输入中心距离 Private Sub Command4_Click() '计算Dim aaa As Double '输出实际中心距 Call f6Dim jiao As Double '输出包容角度 Call f7Dim ff0 As Double '初拉力 Call f8Dim ff1 As Double '轴间力 Text6.Text = d1 & "mm" Dim ld As Double '带的长度 Text9.Text = d2 & "mm" Dim shunxu As Double '基本额定功率顺序Text10.Text = z & "根"Dim shunxu1 As Double '长度顺序 Text12.Text = aaa & "mm" Dim pnum() As Variant '基本功率序列 Text11.Text = jiao & "度" Dim lxishu() As Variant 'c长度系数 Text13.Text = ff0 & "N" Dim p0 As Double '基本功率Text14.Text = ff1 & "N" Dim dp0 As Double '增加功率 End SubDim z As Double '皮带数 Private Sub Command1_Click() Dim kaa As Double '包容修正系数 EndDim kl As Double '长度系数 End SubDim ki As Double '传动比系数 Private Sub f0() '参数赋值函数 Dim kbAs Double '弯曲系数 pi = 3.14159Dim m As Double '质量 p = Val(Text1.Text)i = Val(Text2.Text)n1 = Val(Text3.Text) If dianjileixing.Text = "I类" And zaihe.Text = "a() = Array(20, 28, 31.5, 35.5, 40, 45, 50, 56, 63, 载荷变动较大" And workhour.Text = "10-16h/天" Then 71, 75, 80, 90, 100, 112, 125, 140, 150, 160, 180, ka1 = 1.3200, 224, 250, 280, 315, 355, 400, 425, 450, 500, Ifdianjileixing.Text = "I类" And zaihe.Text = "560, 600, 630, 710, 800, 0) 载荷变动较大" And workhour.Text = ">16h/天" Then b() = Array(200, 224, 250, 280, 315, 355, 400, 450, ka1 = 1.4500, 560, 630, 710, 800, 900, 1000, 1120, 1250, 1400, Ifdianjileixing.Text = "I类" And zaihe.Text = "1600, 1800, 2000, 2240, 2500, 2800, 3150, 3550, 4000, 载荷变动很大" And workhour.Text = "<10h/天" Then 4500, 5000, 0) ka1 = 1.3nn() = Array(100, 200, 400, 700, 800, 950, 1200, 1450, If dianjileixing.Text = "I类" And zaihe.Text = "1600, 2000, 2400, 2800, 3200, 3600, 4000, 4500, 5000, 载荷变动很大" And workhour.Text = "10-16h/天" Then 5500, 6000, 0) ka1 = 1.4mm() = Array(0.68, 0.73, 0.78, 0.82, 0.86, 0.89, Ifdianjileixing.Text = "I类" And zaihe.Text = "0.92, 0.95, 0.98, 1, 1.05, 1.1, 1.15, 1.2, 0) 载荷变动很大" And workhour.Text = ">16h/天" Then End Sub ka1 = 1.5Private Sub f1() '选择ka1 计算pd If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" And workhour.Text = "<10h/天" Then ka1 = 载荷平稳" And workhour.Text = "<10h/天" Then ka1 = 1.11 If dianjileixing.Text = "II类" And zaihe.Text = "Ifdianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" Andworkhour.Text = "10-16h/天" Then ka1 载荷平稳" And workhour.Text = "10-16h/天" Then ka1 = 1.2= 1.1 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷平稳" Andworkhour.Text = ">16h/天" Then ka1 = 载荷平稳" And workhour.Text =">16h/天" Then ka1 = 1.31.2 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = "<10h/天" Then ka1 载荷变动小" And workhour.Text ="<10h/天" Then ka1 = 1.2= 1.1 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = "10-16h/天" Then 载荷变动小" And workhour.Text = "10-16h/天" Then ka1 = 1.3ka1 = 1.2 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动小" And workhour.Text = ">16h/天" Then ka1 载荷变动小" And workhour.Text =">16h/天" Then ka1 = 1.4= 1.3 If dianjileixing.Text = "II类" And zaihe.Text = "If dianjileixing.Text = "I类" And zaihe.Text = "载荷变动较大" And workhour.Text = "<10h/天" Then 载荷变动较大" And workhour.Text = "<10h/天" Then ka1 = 1.4ka1 = 1.2 If dianjileixing.Text = "II类" And zaihe.Text = "载荷变动较大" And workhour.Text = "10-16h/天" Then Exit Subka1 = 1.5 End IfIf dianjileixing.Text = "II类 " And zaihe.Text = "载荷变动较大" And workhour.Text = ">16h/天" Then End Subka1 = 1.6 Private Sub f3() '判断速度If dianjileixing.Text = "II类" And zaihe.Text = "v = pi * d1 * n1 / 60 / 1000 载荷变动很大" And workhour.Text = "<10h/天" Thenka1 = 1.5 If v > 20 Then If dianjileixing.Text = "II类 " And zaihe.Text = "MsgBox "小带轮直径过大~,重新输入直径" 载荷变动很大" And workhour.Text = "10-16h/天" Then Exit Subka1 = 1.6 End IfIf dianjileixing.Text = "II类" And zaihe.Text = "载荷变动很大" And workhour.Text = ">16h/天" Then If v < 5 Thenka1 = 1.8 MsgBox "小带轮直径过小~,重新输入直径" If Check1.Value = 0 Then ka = ka1 Exit SubIf Check1.Value = 1 Then ka = ka1 * 1.1 End Ifpd = p * kaEnd Sub End SubPrivate Sub f2() '计算带轮直径 Private Sub f4() '估计中心距离 d1 =Val(Text7.Text)d2 = 0 Dim aa0 As DoubleDim aa1 As Double For k = 0 To 50 Step 1If a(k) = 0 Then aa0 = 0.7 * (d1 + d2)Exit For aa1 = 2 * (d1 + d2)End If Text15.Text = aa0 & "-" & aa1If Abs((a(k) / d1 - i) / i) <= 0.05 Then End Subd2 = a(k) Private Sub f5() '确定带长和中心距和角度Exit For Dim ll As DoubleEnd If Dim c1 As DoubleDim c2 As Double Next kIf Text8.Text = "Y" Then lxishu = Array(0.81, 0.82,If d2 = 0 Then 0.84, 0.87, 0.9, 0.92, 0.96, 1, 1.02, 0, 0, 0, 0,MsgBox "小带轮直径和带型选择不合适~,重新输入0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,直径" 0, 0, 0, 0, 0, 0, 0, 0, 0)If Text8.Text = "Z" Then lxishu = Array(0, 0, 0, 0,0, 0, 0.87, 0.89, 0.91, 0.94, 0.96, 0.99, 1, 1.03, If b(k) = 0 Then1.06, 1.08, 1.1, 1.14, 1.16, 1.18, 0, 0, 0, 0, 0, Exit For0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) End IfIf Text8.Text = "A" Then lxishu = Array(0, 0, 0, 0, Next k0, 0, 0, 0, 0, 0, 0.81, 0.83, 0.85, 0.87, 0.89, 0.91,0.93, 0.96, 0.99, 1.01, 1.03, 1.06, 1.09, 1.11, 1.13, kl =lxishu(shunxu1)1.17, 1.19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) aaa = aa + (ld - ll) / 2If Text8.Text = "B" Then lxishu = Array(0, 0, 0, 0, jiao = 180 -((d2 - d1) / aaa * 57.3) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.82, 0.84, 0.86,0.88, End Sub0.9, 0.92, 0.95, 0.98, 1, 1.03, 1.05, 1.07, 1.09,1.13, 1.15, 1.18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) Private Sub f6() '确定根数If Text8.Text = "C" Then lxishu = Array(0, 0, 0, 0, Dim c1 As Double 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.83, 0.86, Dim c2 As Double0.88, 0.91, 0.93, 0.95, 0.97, 0.99, 1.02, 1.04, 1.07, c2 = 50001.09, 1.12, 1.15, 1.18, 1.21, 1.23, 0, 0, 0, 0)If Text8.Text = "D" Then lxishu = Array(0, 0, 0, 0, If Text8.Text = "Y" And Text7.Text = "20" Then pnum 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, = Array(0, 0, 0, 0, 0, 0.01, 0.02, 0.02, 0.03, 0.03, 0, 0, 0.83, 0.86, 0.89, 0.91, 0.93, 0.96, 0.98, 1, 0.04, 0.04, 0.06, 0.06,0.07, 0.08, 0.09, 0.1) 1.03, 1.06, 1.08, 1.11, 1.14, 1.17, 1.2, 1.22) If Text8.Text = "Y" And Text7.Text = "28" Then pnum If Text8.Text = "E" Then lxishu = Array(0, 0, 0, 0, = Array(0, 0, 0, 0, 0.03, 0.04, 0.04,0.05, 0.05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.06,0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0, 0, 0, 0, 0, 0, 0.9,0.92, 0.96, 0.97, 1, 1.02, 0.15)1.05, 1.07, 1.1, 1.12, 1.15, 1.18) If Text8.Text = "Y" AndText7.Text = "35.5" Then pnum= Array(0, 0, 0, 0.04, 0.05, 0.05, 0.06, 0.06, 0.07, ll = 2 * aa +pi / 2 * (d1 + d2) + (d1 - d2) ^ 2 / 0.08, 0.09, 0.11, 0.12, 0.13, 0.14, 0.16, 0.18, 0.19, (4 * aa) 0.2)c2 = 5000 If Text8.Text = "Y" And Text7.Text = "40" Then pnum= Array(0, 0, 0, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, For k = 0 To 100 Step 1 0.11, 0.12, 0.14, 0.15, 0.16, 0.18, 0.19, 0.2, 0.22, c1 = Abs(b(k) - ll) 0.24)If c1 < c2 Then If Text8.Text = "Z" And Text7.Text = "50" Then pnum c2 = c1 = Array(0, 0.04, 0.06, 0.09, 0.1, 0.12, 0.14, 0.16,ld = b(k) 0.17, 0.2, 0.22, 0.26, 0.28, 0.3, 0.32, 0.33, 0.34,shunxu1 = k 0.33, 0.31)End If If Text8.Text = "Z" And Text7.Text = "63" Then pnum= Array(0, 0.05, 0.08, 0.13, 0.15, 0.18, 0.22, 0.25, If Text8.Text = "B" And Text7.Text = "180" Then pnum 0.27, 0.32, 0.37, 0.41, 0.45, 0.47, 0.49, 0.5, 0.5, = Array(0, 0.88, 1.59, 2.53, 2.81, 3.22, 3.85, 4.39,0.49, 0.48) 4.68, 5.3, 5.67, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "Z" And Text7.Text = "71" Then pnum= Array(0, 0.06, 0.09, 0.17, 0.2, 0.23, 0.27, 0.3, If Text8.Text = "C" And Text7.Text = "200" Then pnum 0.33, 0.39, 0.46, 0.5, 0.54, 0.58,0.61, 0.62, 0.62, = Array(0, 1.39, 2.41, 3.69, 4.07, 4.58, 5.29, 5.84, 0.61, 0.58) 6.07, 6.34, 6.02, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "Z" And Text7.Text = "80" Then pnum If Text8.Text = "C" And Text7.Text = "250" Then pnum = Array(0, 0.1, 0.14, 0.2, 0.22, 0.26, 0.3, 0.35, =Array(0, 2.03, 3.62, 5.64, 6.23, 7.04, 8.21, 9.04, 0.39, 0.44, 0.5, 0.56, 0.61, 0.64, 0.67, 0.67, 0.66, 9.38, 9.62, 0, 0, 0, 0, 0, 0, 0, 0, 0)0.64, 0) If Text8.Text = "C" And Text7.Text = "315" Then pnum= Array(0, 2.84, 5.14, 8.09, 8.92, 10.05, 11.53, If Text8.Text = "A" And Text7.Text = "75" Then pnum 12.46, 12.72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = Array(0, 0.15, 0.26, 0.4, 0.45, 0.51, 0.6, 0.68, If Text8.Text = "C" And Text7.Text = "400" Then pnum 0.73, 0.84, 0.92, 1, 1.04, 1.08,1.09, 1.07, 1.02, = Array(0, 3.91, 7.06, 11.02, 12.1, 13.48, 15.04, 0.96, 0.8) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)If Text8.Text = "A" And Text7.Text = "90" Then pnum= Array(0, 0.22, 0.39, 0.61, 0.68, 0.77, 0.93, 1.07, If Text8.Text = "D" And Text7.Text = "355" Then pnum 1.15, 1.34, 1.5, 1.64, 1.73, 1.83, 1.87, 1.88, 1.82, = Array(3.01, 5.31, 9.24, 13.7, 14.83, 16.15, 17.25, 0, 0) 16.77, 15.63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "A" And Text7.Text = "100" Then pnum If Text8.Text = "D" And Text7.Text = "400" Then pnum = Array(0, 0.26, 0.47, 0.74, 0.83, 0.95, 1.14, 1.32, =Array(3.66, 6.52, 11.45, 17.07, 18.46, 20.06, 21.2, 1.42, 1.66, 1.87,2.05, 2.19, 2.28, 2.34, 2.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)0, 0) If Text8.Text = "D" And Text7.Text = "450" Then pnum IfText8.Text = "A" And Text7.Text = "125" Then pnum = Array(4.37, 7.9,13.85, 20.63, 22.25, 24.01, 24.84, = Array(0, 0.37, 0.67, 1.07, 1.19,1.37, 1.66, 1.92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)2.07, 2.44, 2.74, 2.98,3.16, 3.26, 0, 0, 0, 0, 0) If Text8.Text = "D" And Text7.Text = "500" Then pnum= Array(5.08, 9.21, 16.2, 23#, 25.76, 27.5, 0, 0, If Text8.Text = "B" And Text7.Text = "125" Then pnum 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = Array(0, 0.48, 0.84, 1.3, 1.44, 1.64, 1.93, 2.19,2.33, 2.64, 2.85, 2.96, 2.94, 2.8, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "500" Then pnum If Text8.Text = "B" And Text7.Text = "140" Then pnum = Array(6.21, 10.86, 18.55, 26.21, 27.57, 28.32, 0, = Array(0, 0.59, 1.05, 1.64, 1.82, 2.08, 2.47, 2.82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)3, 3.42, 3.7, 3.85, 3.83, 0, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "560" Then pnum If Text8.Text = "B" And Text7.Text = "160" Then pnum = Array(7.32, 13.09, 22.49, 31.59, 33.03, 33.4, 0, = Array(0, 0.74, 1.32, 2.09, 2.32, 2.66, 3.17, 3.62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)3.86,4.4, 4.75, 4.89, 0, 0, 0, 0, 0, 0, 0) If Text8.Text = "E" And Text7.Text = "630" Then pnum= Array(8.75, 15.65, 26.95, 37.26, 38.62, 0, 0, 0, ElseIf i >= 1.05 And i <= 1.08 Then 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ki = 1.0276 If Text8.Text = "E" And Text7.Text = "710" Then pnum ElseIf i >=1.09 And i <= 1.12 Then = Array(10.31, 18.52, 31.83, 42.87, 43.52, 0, 0, 0, ki = 1.04190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ElseIf i >= 1.13 And i <= 1.18 Then ki = 1.0567For k = 0 To 20 Step 1 ElseIf i >= 1.19 And i <= 1.24 Thenc1 = Abs(nn(k) - n1) ki = 1.0719If c1 < c2 Then ElseIf i >= 1.25 And i <= 1.34 Thenc2 = c1 ki = 1.0875shunxu = k ElseIf i >= 1.35 And i <= 1.51 ThenEnd If ki = 1.1036If nn(k) = 0 Then ElseIf i >= 1.52 And i <= 1.99 ThenExit For ki = 1.1202End If ElseIf i >= 2 ThenNext k ki = 1.1373End Ifp0 = pnum(shunxu)For k = 0 To 21 Step 1If Text8.Text = "Z" Then jiao) c1 = Abs(100 + k * 10 - kb =0.0002925 If c1 <= 5 ThenElseIf Text8.Text = "A" Then kaa = mm(k)kb = 0.0007725 End IfElseIf Text8.Text = "B" Then Next kkb = 0.0019785ElseIf Text8.Text = "C" Then dp0 = kb * n1 * (1 - 1 / ki) kb =0.005625 z = pd / (p0 + dp0) / kaa / kl ElseIf Text8.Text = "D" Then z = Round(z, 0)kb = 0.01995ElseIf Text8.Text = "E" Then If z >= 10 Thenkb = 0.03735 MsgBox "小带轮直径和带型选择不合适~,重新输入End If 直径和选择带型"Exit SubIf i >= 1 And i <= 1.01 Then End Ifki = 1 End SubElseIf i >= 1.02 And i <= 1.04 Then Private Sub f7() '选择质量函数ki = 1.0136 If Text8.Text = "Z" Thenm = 0.06 ElseIf Text8.Text = "A" Then m = 0.1 ElseIf Text8.Text = "B" Then m = 0.17 ElseIf Text8.Text = "C" Then m = 0.3 ElseIf Text8.Text = "D" Then m = 0.6 ElseIf Text8.Text = "E" Then m = 0.9 End If End Sub Private Sub f8() '计算初拉力和轴向力 ff0 = 500 * pd / z / v * (2.5 - kaa) / kaa + m * v * vff1 = 2 * z * ff0 * Sin(jiao * pi / 2 / 180)ff0 = Round(ff0, 3)ff1 = Round(ff1, 3)aaa = Round(aaa, 3)jiao = Round(jiao, 3) End Subdd2=DD2[j];else #include<stdio.h>dd2=DD2[j-1]; #include<math.h>return dd2; #include<string.h>} #define PAI 3.14float* Compute_LAK(float dd1,float dd2,int TYPE) #include<windows.h> {int j=0;float a1,a2,a0,Ld0,temp,KALF,Ld,a,KL; float Select_dd1(int TYPE) float LAK[3]; {float int i;kl[23][6]={{400,0.87},{450,0.89},{500,0.91}, float dd1;{560,0.94},{630,0.96,0.81},{710,0.99,0.83},{ float800,1.00,0.85,0.82},{900,1.03,0.87,0.84,0.83},{1DD1[6][4]={{50,63,71 ,80},{75,90,100,125},{125,14000,1.06,0.89,0.86,0.86,0.83}, 0,160,180},{1120,1.08,0.91,0.88,0.88,0.86},{1250,1.10,0.93,0.90,0.91,0.89},{1400,1.14,0.96,0.92,0.93,0.{200,250,315,400},{355,400,450,500},{500,56091},{1600,1.16,0.99,0.95,0.95,0.93}, ,630,710}};{1800,1.18,1.01,0.98,0.97,0.96},{2000,0,1.03 printf("该带型推荐的小带轮基准直径有,1.00,0.99,0.98},{2240,0,1.06,1.03,1.02,1.00},{2(mm):\n");500,0,1.09,1.05,1.04,1.03}, for(i=0;i<4;i++){2800,0,1.11,1.07,1.07,1.06},{3150,0,1.13,1. {09,1.09,1.08},{3550,0,1.17,1.13,1.12,1.11},{4000 printf("%.2f",DD1[TYPE][i]);,0,1.19,1.15,1.15,1.14},{4500,0,0,1.18,1.18,1.17 }},{5000,0,0,0,1.21,1.20}}; printf("\n请选择小带轮基准直径dd1:");a1=0.7*(dd1+dd2); scanf("%f",&dd1);a2=2*(dd1+dd2); return dd1;printf("请选择输入初估中心距a0(范围}为%.2fmm~%.2fmm):",a1,a2); float Select_dd2(int dd1,float i) scanf("%f",&a0); {Ld0=2*a0+(dd1+dd2)*PAI/2+(dd2-dd1)*(dd2-dd1) float/a0/4; DD2[]={50,56,63,71,80,90,100,112,125,140,150,160for(j=0;j<23;j++) ,180,200,224,{temp=Ld0-kl[j][0]; 250,280,315,355,400,425,450,500,560,600,630, if(temp<=0) 710,800};break; float dd2,temp,t;} int j=0;if((Ld0-kl[j-1][0])>(kl[j][0]-Ld0)) temp=i*dd1;{ Ld=kl[j][0]; for(j=0;j<28;j++)KL=kl[j][TYPE+1]; {} t=temp-DD2[j];else if(t<=0){ Ld=kl[j-1][0]; break;KL=kl[j-1][TYPE+1]; }} if((DD2[j]-temp)<(temp-DD2[j-1]))a=a0+(Ld-Ld0)/2;LAK[0]=Ld; printf("电机额定功率P(KW):");LAK[1]=a; scanf("%f",&P);LAK[2]=KL; printf("小带轮/电动机转速n1(r/min):");return LAK; scanf("%f",&n1); } printf("传动比i:");scanf("%f",&i);printf("每天工作时间H(h):"); int main() scanf("%f",&H); { printf("原动机类型(1或):");float scanf("%d",&YDJ);ka1[4][3]={{1.0,1.1,1.2},{1.1,1.2,1.3},{1.2,1.3, printf("工作机载荷类型:\n1,载荷平稳\n2,载荷 1.4},{1.3,1.4,1.5}}; 变动较小\n3,载荷变动较大\n4,载荷变动很大\n");float scanf("%d",&GZJ);ka2[4][3]={{1.1,1.2,1.3},{1.2,1.3,1.4},{1.4,1.5,DX: printf("选择V带带型:"); 1.6},{1.5,1.6,1.8}}; scanf(" %c",&type);float if(type<91) K1[6]={0.246,0.449,0.794,1.48,3.15,4.57}; type+=32;float switch(type) KI[10]={1.0000,1.0136,1.0276,1.0419,1.0567,1.071 {9,1.0875,1.1036,1.1202,1.1373}; case 'z':float TYPE=0; I[10]={1.00,1.02,1.05,1.09,1.13,1.19,1.25,1.35,1break; .52,2.00}; case 'a':float TYPE=1; K2[6]={7.44,19.02,50.6,143.2,507.3,951.5}; break;float case 'b': K3[6]={0.441e-4,0.765e-4,1.31e-4,2.34e-4,4.77e-4TYPE=2; ,7.06e-4}; break;float case 'c': KB[6]={0.2925e-3,0.7725e-3,1.9875e-3,5.625e-3,19TYPE=3; .95e-3,37.35e-3}; break;float case 'd': kalf[2][14]={220,210,200,190,180,170,160,150,140 TYPE=4; ,130,120,110,100,90,1.20,1.15,1.10,1.05,1.00,0.9 break;8,0.95,0.92, case 'e':0.89,0.86,0.82,0.78,0.73,0.68}; TYPE=5;float M[6]={0.06,0.1,0.17,0.3,0.6,0.9}; break;float f[6]={8,10,12.5,17,23,29}; case 'y':float e[6]={12,15,19,25.5,37,44.5}; TYPE=6;float break; P,H,i,n1,KA,Ki,dd1,dd2,V,P0,DIFP0,Pd,VMAX,*LAK,m case 's': ,Ld,KALF,a,KL,z,F0,ALF1,Q,B,Kb; TYPE=7;int YDJ,GZJ,TYPE,ANS,j; break;char type,ans; case 'n':printf(" V带传动 TYPE=8; 设计程序\n"); }START: printf("请输入初始参数:\n"); if(YDJ==1){ break;if(H<10) }Ki=KI[j]; KA=ka1[GZJ-1][0];Kb=KB[TYPE]; else if(H>16)KA=ka1[GZJ-1][2]; DIFP0=Kb*n1*(1-1/Ki);else LAK=Compute_LAK(dd1,dd2,TYPE);KA=ka1[GZJ-1][1]; Ld=LAK[0];} a=LAK[1];if(YDJ==2) KL=LAK[2];{ ALF1=180-57.3*(dd2-dd1)/a;if(H<10) for(j=0;j<14;j++)KA=ka2[GZJ-1][0]; {else if(H>16) if(ALF1<kalf[0][j]&&ALF1>kalf[0][j+1])KA=ka2[GZJ-1][2]; {elseKA=ka2[GZJ-1][1]; KALF=kalf[1][j]+(kalf[1][j]-kalf[1][j+1])*(ALF1- } kalf[0][j])/10;Pd=KA*P; break;switch(TYPE) }{ }case 0: z=ceil(Pd/(KALF*KL*(P0+DIFP0)));case 1: if(z>=10)case 2: goto DX;case 3: m=M[TYPE];VMAX=25; F0=500*Pd*(2.5-KALF)/(z*V*KALF)+m*V*V;Q=2*z*F0*sin(ALF1*PAI/360); break;case 4: B=(z-1)*e[TYPE]+2*f[TYPE];case 5:VMAX=30; printf("小带轮基准直径dd1:%.3f mm\n大带轮基准直径break; dd2:%.3f mm\n中心距a:%.3f mm\n带长L:%.3f mm\n带宽} B:%.3f mm\n带的根数Z:%.3f\n初拉力F0:%.3f N\n轴压DD1:dd1=Select_dd1(TYPE); 力FQ:%.3f N\n",dd1,dd2,a,Ld,B,z,F0,Q);V=PAI*dd1*n1/60000; X: printf("计算下一组带轮直径按'Y',重新开始按while(V>VMAX) 'S',结束按'N':");{ scanf(" %c",&ans);printf("V带速度验算不符!小带轮基准直径过小!请重新选择!\n"); if(ans=='y')dd1=Select_dd1(TYPE); goto DD1;V=PAI*dd1*n1/60000; else if(ans=='s')} goto START;dd2=Select_dd2(dd1,i); else if(ans=='n')P0=(K1[TYPE]*pow(V,-0.09)-K2[TYPE]/dd1-K3[TY printf("程序结束"); PE]*V*V)*V; elsefor(j=9;j>=0;j--) {{ printf("输入错误,请重新输入");m=i-I[j]; goto X;if(m>=0) }return 0;}。

相关文档
最新文档