按照静力求解要求,完成了一对渐开线直齿圆柱齿轮模型的整体分析中接触对的建立,齿轮边界条件设定和位移约束的施加。最后对求解类型、计算载荷步选项以及输出结果进行了设定。
参考文献
[1] 杜春玲,郭施炜.Visual Basic 6.0程序设计教程.西安大学出版社,2008,01.
[2] 六木工作室.Visual Basic 6.0中文版实用编程技巧.北京:人民邮电出版社..1999.5
[3] 孙恒,陈作模,葛文杰.机械原理[M].北京:高等教育出版社,2006.5.
[4] 成大先.机械设计手册.单行本.联接与紧固[M].北京:化学工业出版社,2004.1.
[5] 马迅.有限元基础与应用.湖北汽车工业学院汽车工程系,2002.
[6] 朱孝录,鄂中凯.齿轮承载能力分析[M].北京:高等教育出版社,1992.
[7] Vijayarangan, Ganesan. A study of dynamic stresses in a spur gear under a moving line load and impact load conditions by a three-dimensional finite element method. Journal of Sound and Vibration. (1993) 162(1).pp.l85~189.
[8] 周长城,胡任喜。ANSYS11.0基础与典型范例[M].北京:电子工业出版社,2007.10
[9] 王玉新,柳杨,王仪明,朱殿华.渐开线直齿圆柱齿轮齿根应力的有限元分析[J].机械设计,2001.
[10] 王勖成,邵敏.有限单元法基本原理和数值方法[M].北京:清华大学出版社,1997.
[11] 龚曙光,谢桂兰.ANSYS操作命令与参数化编程[M].北京:机械工业出版社,2004.
[12] 陈建辉.柱齿轮的三维参数化建模与应力分析[D].西安:西北工业大学,2005.
[13] 徐步青.冲击载荷下齿轮动态响应的有限元和光弹性试验[D].天津:天津大学,2000.
[14] 陈玲,侯艳华,田作奎.汽车齿轮动态响应的有限元分析[J].机械设计出版社,2003.
[15] 李呼斯勒.基于ANSYS的齿轮运动副有限元结构分析研究[D].呼和浩特:内蒙古工业大学,2005.
附录
保存按钮的程序
Private Sub Command1_Click()
Open "1.txt" For Output As #1
Print #1, "/prep7 "
Print #1, "m=", Text4.Text, "3!齿轮模数 "
Print #1, "z1=", Text3.Text, "!齿轮齿数 "
Print #1, "pi=3.1415926 "
Print #1, "ang=", Text5.Text, " !分度圆上的压力角 "
Print #1, "ha_c=", Text1.Text, " ! 齿顶高系数 "
Print #1, "c_c=", Text7.Text, " !顶隙系数 "
Print #1, "ha=ha_c*m !齿顶高 "
Print #1, "hf=(ha_c+c_c)*m !齿根高 "
Print #1, "d=m*z1 !分度圆直径 "
Print #1, "db=d*cos(ang*pi/180) !基圆直径 "
Print #1, "da=d+2*ha !齿顶圆直径 "
Print #1, "df=d-2*hf !齿根圆直径"
Print #1, "s=pi*m/2!分度圆齿厚 "
Print #1, "theta_s=tan(ang*pi/180)-ang*pi/180"
Print #1, "fai_s=s/d"
Print #1, "alfa_a=acos(db/da)*180/pi !齿顶圆压力角(角度表示) "
Print #1, "alfa_f=acos(db/db)*180/pi !齿根圆压力角(角度表示) "
Print #1, "dfr=0.38*m !齿根圆角半径 "
Print #1, "b=", Text8.Text, "!齿宽 "
Print #1, "deata_ang=360/z1 !齿轮两齿间的夹角"
Print #1, "*dim,alfa,array,10 "
Print #1, "*dim,rk,array,10 "
Print #1, "*dim,theta,array,10 "
Print #1, "*dim,fai,array,10"
Print #1, "*do,i,1,10 "
Print #1, "alfa(i)=(alfa_f+((alfa_a-alfa_f)/9)*(i-1))*pi/180 !渐开线上生成10各关键点所对应压力角(弧表示) "
Print #1, "*enddo "
Print #1, "*do,i,1,10 "
Print #1, "rk(i)=(db/2)/cos(alfa(i)) "
Print #1, "theta(i)=tan(alfa(i))-alfa(i) !弧度表示 "
Print #1, "*enddo "
Print #1, "*do,i,1,10 "
Print #1, "fai(i)=(theta_s+fai_s-theta(i))*180/pi !角度 "
Print #1, "*enddo"
Print #1, "ET,1,PLANE42 !定义单元类型"
Print #1, "ET,2,SOLID185 !定义材料参数"
Print #1, "MP,EX,1,2.11e5 !MP定义线形材料特性EX弹性模亮PRXY为泊松比"
Print #1, "MP,PRXY,1,0.277"
Print #1, "MP,EX,2,2.09e5 "
Print #1, "MP,PRXY,2,0.259"
Print #1, "CSYS,1 "
Print #1, "*do,i,1,10 "
Print #1, "k,i,rk(i),fai(i) "
Print #1, "*enddo "
Print #1, "ksel,all"
Print #1, "BSPLIN,ALL !绘制齿廓线"
Print #1, "FLST,2,2,8 "
Print #1, "FITEM,2,0,0,0 "
Print #1, "FITEM,2,0,df/2,0 "
Print #1, "CIRCLE,P51X !生成齿根圆"
Print #1, "*if,df,lt,db,then"
Print #1, "LEXTND,1,1,(db-df)/2+1,0"
Print #1, "*endif"
Print #1, "FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,1 "
Print #1, "FITEM,2,5 "
Print #1, "LOVLAP,P51X !搭接"
Print #1, "*get,l1,line,,num,max"
Print #1, "*if,l1,eq,10,then"
Print #1, "FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,7 "
Print #1, "FITEM,2,10 "
Print #1, "LCOMB,P51X, ,0 "
Print #1, "*endif !布尔加两条线"
Print #1, "LFILLT,7,8,0.38m, , !倒圆角"
Print #1, "FLST,2,6,4,ORDE,5 "
Print #1, "FITEM,2,2 "
Print #1, "FITEM,2,-4 "
Print #1, "FITEM,2,6 "
Print #1, "FITEM,2,8 "
Print #1, "FITEM,2,-9 "
Print #1, "LDELE,P51X, , ,1 !删除多余线"
Print #1, " FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,1 "
Print #1, "FITEM,2,7 "
Print #1, "LCOMB,P51X, ,0 !布尔加"
Print #1, "numcmp,all "
Print #1, "csys,0"
Print #1, "LSYMM,Y,1"
Print #1, "csys,1"
Print #1, "lgen,z1,all,,,,360/z1, !线段复制Z1次"
Print #1, "lplot !显示线的信息"
Print #1, "csys,0"
Print #1, "!得到一个最大的关键点编号kmax"
Print #1, "*GET,kmax,kp,,num,max"
Print #1, "k,kmax+1,0,0,0 !让新的关键点为000"
Print #1, "csys,1"
Print #1, "LARC,9,12,kmax+1,da/2"
Print #1, "*do,i,14,z1*4+6,4"
Print #1, "LARC,i,i+2,kmax+1,da/2"
Print #1, "*enddo"
Print #1, "LARC,10,15,kmax+1,df/2"
Print #1, "*do,i,13,z1*4+1,4"
Print #1, "LARC,i,i+6,kmax+1,df/2"
Print #1, "*enddo"
Print #1, "LARC,11,z1*4+5,kmax+1,df/2 !齿顶圆和齿根圆"
Print #1, "TYPE,1"
Print #1, "MAT,1 !选择材料1"
Print #1, "al,all, !由封闭的线生成面"
Print #1, "CSYS,0 !选择笛卡尔坐标系"
Print #1, "CYL4,,,d/4 !生成一个轴孔"
Print #1, "ASBA,1,2 !布尔减"
Print #1, "numcmp,area !压缩线的编号"
Print #1, "/prep7 "
Print #1, "m1=m!齿轮模数 "
Print #1, "z2=", Text2.Text, "!齿轮齿数 "
Print #1, "ha2=ha_c*m1 !齿顶高 "
Print #1, "hf2=(ha_c+c_c)*m1 !齿根高 "
Print #1, "d2=m1*z2 !分度圆直径 "
Print #1, "db2=d2*cos(ang*pi/180) !基圆直径 "
Print #1, "da2=d2+2*ha2 !齿顶圆直径 "
Print #1, "df2=d2-2*hf2 !齿根圆直径"
Print #1, "s2=pi*m1/2!分度圆齿厚 "
Print #1, "theta_s2=tan(ang*pi/180)-ang*pi/180"
Print #1, "fai_s2=s2/d2"
Print #1, "w1=acos(db2/da2)*180/pi !齿顶圆压力角(角度表示) "
Print #1, "w2=acos(db2/db2)*180/pi !齿根圆压力角(角度表示) "
Print #1, "dfr2=0.38*m1 !齿根圆角半径 "
Print #1, "b=10!齿宽 "
Print #1, "deata_ang2=360/z2 !齿轮两齿间的夹角"
Print #1, "*dim,w,array,10 "
Print #1, "*dim,n2,array,10 "
Print #1, "*dim,n3,array,10 "
Print #1, "*dim,n4,array,10"
Print #1, "*do,i,1,10 "
Print #1, "w(i)=(w2+((w1-w2)/9)*(i-1))*pi/180 !每条渐开线上生成10各关键点所对应的压力角(用弧表示) "
Print #1, "*enddo "
Print #1, "*do,i,1,10 "
Print #1, "n2(i)=(db2/2)/cos(w(i)) "
Print #1, "n3(i)=tan(w(i))-w(i) !弧度表示 "
Print #1, "*enddo "
Print #1, "*do,i,1,10 "
Print #1, "n4(i)=(theta_s2+fai_s2-n3(i))*180/pi !角度 "
Print #1, "*enddo"
Print #1, "CSYS,1 "
Print #1, "NSEL,NONE!不选择节点号码"
Print #1, "KSEL,ALL !选择所有关键点"
Print #1, "*get,KMAX,kp,,num,max"
Print #1, "KSEL, NONE !选择所有关键点"
Print #1, "j=1"
Print #1, "*do,i,KMAX+1,KMAX+10"
Print #1, "k,KMAX+j,n2(j),n4(j) !在柱坐标下生成这10个齿廓点"
Print #1, "j=j+1"
Print #1, "*enddo"
Print #1, "*GET,lmax,line,,num,max !得到最大的线编号"
Print #1, "LSEL,NONE"
Print #1, "BSPLIN,ALL !绘制齿廓线"
Print #1, "FLST,2,2,8 "
Print #1, "FITEM,2,0,0,0 "
Print #1, "FITEM,2,0,df2/2,0 "
Print #1, "CIRCLE,P51X !生成齿根圆"
Print #1, "*if,df2,lt,db2,then"
Print #1, "LEXTND,1+lmax,1+KMAX,(db2-df2)/2+1,0"
Print #1, "*endif "
Print #1, "FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,1+lmax "
Print #1, "FITEM,2,5+lmax "
Print #1, "LOVLAP,P51X "
Print #1, "*get,l1,line,,num,max"
Print #1, "*if,l1,eq,lmax+10,then"
Print #1, "FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,7+lmax "
Print #1, "FITEM,2,10+lmax "
Print #1, "LCOMB,P51X, ,0 "
Print #1, "*endif"
Print #1, "LFILLT,lmax+8,lmax+7,dfr2, , "
Print #1, "FLST,2,6,4,ORDE,5 "
Print #1, "FITEM,2,lmax+2 "
Print #1, "FITEM,2,-(lmax+4)"
Print #1, "FITEM,2,lmax+6 "
Print #1, "FITEM,2,lmax+8 "
Print #1, "FITEM,2,-(lmax+9)"
Print #1, "LDELE,P51X, , ,1"
Print #1, "FLST,2,2,4,ORDE,2 "
Print #1, "FITEM,2,lmax+1"
Print #1, "FITEM,2,lmax+7"
Print #1, "LCOMB,P51X, ,0 "
Print #1, "csys,0"
Print #1, "*GET,lmax,line,,num,max !得到最大的线编号"
Print #1, "numcmp,kp !压缩关键点编号"
Print #1, "LSYMM,Y,lmax"
Print #1, "csys,1"
Print #1, "lgen,z2,all,,,,360/z2, !复制线"
Print #1, "lplot"
Print #1, "*GET,nmax,node,,num,max !得到最大结点"
Print #1, "csys,0"
Print #1, "n,nmax+1,0,0,0"
Print #1, "NSEL,ALL !选择节点号码"
Print #1, "KSEL,ALL !选择所有关键点"
Print #1, "csys,1"
Print #1, "LARC,KMAX+9,KMAX+12,nmax+1,da2/2"
Print #1, "*do,i,14,z2*4+6,4"
Print #1, "LARC,KMAX+i,KMAX+i+2,nmax+1,da2/2"
Print #1, "*enddo"
Print #1, "LARC,KMAX+10,KMAX+15,nmax+1,df2/2"
Print #1, "*do,i,13,z2*4+1,4"
Print #1, "LARC,KMAX+i,KMAX+i+6,nmax+1,df2/2"
Print #1, "*enddo"
Print #1, "LARC,KMAX+11,KMAX+z2*4+5,nmax+1,df2/2"
Print #1, "lplot"
Print #1, "TYPE,1 !指定单元类型和材料"
Print #1, "MAT,2 !定义材料类型"
Print #1, "al,all, !由封闭的线生成面"
Print #1, "CSYS,0 !选择笛卡尔坐标系"
Print #1, "CYL4,,,d2/4 !生成一个轴孔"
Print #1, "ASBA,2,3 !布尔减"
Print #1, "numcmp,area !压缩线的编号"
Print #1, "CSYS,1 "
Print #1, "FLST,3,1,5,ORDE,1 "
Print #1, "FITEM,3,2 "
Print #1, "AGEN,2,P51X, , , ,180, , ,0 "
Print #1, "ADELE, 2, , ,1 !旋转180"
Print #1, "CSYS,0 "
Print #1, "FLST,3,1,5,ORDE,1 "
Print #1, "FITEM,3,3 "
Print #1, "AGEN,2,P51X, , ,(d+d2)/2, , , ,0 !平移"
Print #1, "ADELE, 3, , ,1"
Print #1, "CSYS,1 "
Print #1, "FLST,3,1,5,ORDE,1 "
Print #1, "FITEM,3,1 "
Print #1, "AGEN,2,P51X, , , ,deata_ang/2, , ,0 !旋转"
Print #1, "ADELE, 1, , ,1"
Print #1, "numcmp,area !压缩线的编号"
Print #1, "SMRT,6"
Print #1, "MSHAPE,0,2D "
Print #1, "MSHKEY,0"
Print #1, "FLST,5,2,5,ORDE,2 "
Print #1, "FITEM,5,1 "
Print #1, "FITEM,5,-2 "
Print #1, "CM,_Y,AREA "
Print #1, "ASEL, , , ,P51X "
Print #1, "CM,_Y1,AREA "
Print #1, "CHKMSH,'AREA' "
Print #1, "CMSEL,S,_Y "
Print #1, "AMESH,_Y1 "
Print #1, "CMDELE,_Y "
Print #1, "CMDELE,_Y1 "
Print #1, "CMDELE,_Y2 "
Print #1, "TYPE,2 !定义单元类型"
Print #1, "EXTOPT,ESIZE,3,0, !定义扫掠方向的单元尺寸 "
Print #1, "EXTOPT,ACLEAR,1 !定义在扫掠后是否删除源面上的网格"
Print #1, "EXTOPT,ATTR,0,0,0 !定义扫掠体单元属性"
Print #1, "MAT,1 !指定下面使用的单元的材料属性"
Print #1, "REAL,_Z4 !指定该值为后边定义单元的实常数值"
Print #1, "ESYS,0 !定义单元坐标系只通过局部坐标定义"
Print #1, "VOFFST,2,b, , !选择面号2拉伸齿宽"
Print #1, "TYPE,2 "
Print #1, "EXTOPT,ESIZE,3,0, "
Print #1, "EXTOPT,ACLEAR,1 "
Print #1, "EXTOPT,ATTR,0,0,0 "
Print #1, "MAT,2 "
Print #1, "REAL,_Z4"
Print #1, "ESYS,0 "
Print #1, "VOFFST,1,b, ,"
Close #1
End Sub