《弹性流体动压润滑》黄平、fortran程序注释、等温线接触_第1页
《弹性流体动压润滑》黄平、fortran程序注释、等温线接触_第2页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PROGRAMGREASELINECHARACTER*1S,S1,S2CHARACTER*16CDATE,CTIMECOMMON/COM1/ENDA,A1,A2,A3,Z,C1,C3,CW,LMAX,FF/COM2/EDA0/COM4/X0,XE/COM3/E1,PH,B,U1,U2,RDATAPAI,Z,P0/3.14159265,0.68,1.96E8/S1,S2/1HY,1Hy/!预定义数值DATAN,X0,XE,W,E1,EDA0,R,Us,CU,C1,FN/129,-4.,1.4,1.E5,2.26E11,0.41,0.0128,0.87,0.67,0.5,0.846/CDATE,C

2、TIME/'Thedateis','The廿meis'/!预赋值参数0PEN(8,FILE='0UT.DAT',STATUS='UNKN0WN')!建立输出结果文件1 FORMAT(20X,A12,I2.2,':',I2.2,':',I4.4)2 F0RMAT(20X,A12,I2.2,':',I2.2,':',I2.2,'.',I2.2)WRITE(*,*)'参数已经赋值?(YorN)?'!询问是否在程序中更改参数READ(*,

3、9;(A)')SIF(S.EQ.S1.0R.S.EQ.S2)THENG0T010ENDIFWRITE(*,*)'PH='!程序运行中更改数值,PH为Hertz接触压力READ(*,*)PHW=2.*PAI*R*PH*(PH/E1)WRITE(*,*)'W=',W10CW=N+0.1FF=1./FNLMAX=AL0G(CW)/AL0G(2.)!将参数量纲一化N=2*LMAX+1LMIN=(AL0G(CW)-AL0G(SQRT(CW)/AL0G(2.)LMAX=LMINW1=W/(E1*R)PH=E1*SQRT(0.5*W1/PAI)A1=(AL0G(EDA

4、0)+9.67)A2=PH/P0A3=0.59/(PH*1.E-9)B=4.*R*PH/E1ALFA=Z*A1/P0G=ALFA*E1U=EDA0*US/(2.*E1*R)C3=1.6*(R/B)*2*G*0.6*U*0.7*W1*(-0.13)ENDA=B*(2.+FF)*(PH/2/EDA0)*FF/R*(1+FF)/US/(2.+FF)U1=0.5*(2.+CU)*UU2=0.5*(2.-CU)*UWRITE(*,*)'B,PH,G,U=',B,PH,G,UCW=-1.13*C3WRITE(*,*)N,X0,XE,W,E1,EDA0,R,US,PHWRITE(8,*)N,

5、W,E1,EDA0,R,US,B,PH,FFWRITE(*,40)40FORMAT(2X,'WaitPlease',/)CALLSUBAK(N)!计算弹性变形系数CALLMULTI(N)!计算压力P和HSTOPENDSUBROUTINEMULTI(N)!计算压力P和HREAL*8X(1100),P(1100),H(1100),RO(1100),POLD(1100),EPS(1100),EDA(1100),R(1100),K(1100),E(1100)COMMON/COM1/ENDA,A1,A2,A3,Z,C1,C3,CW,LMAX,FF/COM4/X0,XE/COM3/E1,P

6、H,B,U1,U2,RRDATAMK,G0/1,1.570796325/NX=NDX=(XE-X0)/(N-1.0)DO10I=1,NX(I)=X0+(I-1)*DXIF(ABS(X(I).GE.1.0)P(I)=0.0IF(ABS(X(I).LT.1.0)P(I)=SQRT(1.-X(I)*X(I)10CONTINUECALLHREE(N,DX,HOO,GO,X,P,H,RO,EPS,EDA)!实现各点的膜厚、密度、粘度、弹性变形的计算CALLFZ(N,P,POLD)14KK=19CALLITER(N,KK,DX,H00,G0,X,P,H,RO,EPS,EDA,R)!利用雷诺方程进行各点压力

7、的重新计算,并再次调用HREE子程序MK=MK+1CALLERROP(N,P,POLD,ERP)!计算迭代前后的压力差IF(ERP.GT.1.E-4.AND.MK.LE.800)THENGOTO14ENDIFWRITE(*,*)PH,RR,B105IF(MK.GE.800)THENWRITE(*,*)'Pressuresarenotconvergent!'READ(*,*)ENDIFFM=FRICT(N,DX,X,H,P,EDA)H2=1.E3P2=0.0DO106I=1,NIF(H(I).LT.H2)H2=H(I)IF(P(I).GT.P2)P2=P(I)106CONTINU

8、EDO108I=1,NK(I)=P(I)*PH/1.E9E(I)=H(I)*B*B*1.E6/RR108CONTINUEH3=H2*B*B/RRP3=P2*PH110FORMAT(6(1X,E12.6)120CONTINUEWRITE(8,*)'P2,H2,P3,H3=',P2,H2,P3,H3CALLOUTHP(N,X,K,E)!实现结果的输出功能RETURNENDSUBROUTINEOUTHP(N,X,K,E)!实现结果的输出功能REAL*8X(N),K(N),E(N)DX=X(2)-X(1)DO10I=1,NWRITE(8,20)X(I),K(I),E(I)10CONTI

9、NUE20FORMAT(1X,6(F20.6,1X)RETURNENDSUBROUTINEHREE(N,DX,H00,G0,X,P,H,RO,EPS,EDA)!实现各点的膜厚、密度、粘度弹性变形的计算REAL*8X(N),P(N),H(N),RO(N),EPS(N),EDA(2200)REAL*8W(2200)COMMON/COM1/ENDA,A1,A2,A3,Z,C1,C3,CW,K,FF/COM2/EDA0/COMAK/AK(0:1100)DATAKK,NW,PAI1/0,2200,0.318309886/IF(KK.NE.0)GOTO3HM0=C3H00=0.03 W1=0.0DO4I=

10、1,N4W1=W1+P(I)!此压力下的量纲一化载荷WC3=(DX*W1)/G0DW=1.-C3!承载力判断值CALLDISP(N,NW,K,DX,P,W)!计算各点弹性变形量HMIN=1.E3DO30I=1,NH0=0.5*X(I)*X(I)-PAI1*W(I)!IF(H0.LT.HMIN)HMIN=H0H(I)=H030CONTINUEIF(KK.NE.0)GOTO32KK=1H00=-HMIN+HM032H0=H00+HMINIF(H0.LE.0.0)GOTO48IF(H0+0.3*CW*DW.GT.0.0)HM0=H0+0.3*CW*DWIF(H0+0.3*CW*DW.LE.0.0)H

11、M0=HM0*C348H00=HM0-HMIN50DO60I=1,N60H(I)=HOO+H(I)!膜厚计算DO100I=1,NEDA(I)=EXP(A1*(-1.+(1.+A2*P(I)*Z)!各点粘度数值计算RO(I)=1.0EPS(I)=RO(I)*H(I)*(2+FF)*ENDA/EDA(I)*FF!离散化ReynoIds方程中的系数100CONTINUERETURNENDSUBROUTINEITER(N,KK,DX,H00,G0,X,P,H,RO,EPS,EDA,R)!利用雷诺方程进行各点压力的重新计算,并再次调用HREE子程序REAL*8X(N),P(N),H(N),RO(N),E

12、PS(N),EDA(N),R(N)COMMON/COM1/ENDA,A1,A2,A3,Z,C1,C3,CW,LMAX,FF/COMAK/AK(0:1100)DATAKG1,PAI/0,3.14159265/IF(KG1.NE.0)GOTO5KG1=1DX1=1./DXDX2=DX*DXDX3=1./DX2DX4=DX1/PAIDX5=DX1*(1+FF)DXL=DX*ALOG(DX)AK0=DX*AK(0)+DXLAK1=DX*AK(1)+DXL5DO100K=1,KKD2=0.5*(EPS(1)+EPS(2)D3=0.5*(EPS(2)+EPS(3)D5=DX1*(RO(2)*H(2)-RO

13、(1)*H(1)D7=DX4*(RO(2)*AK0-RO(1)*AK1)PP=0.DO70I=2,N-1D1=D2D2=D3D4=D5D6=D7IF(I+2.LE.N)D3=0.5*(EPS(I+1)+EPS(I+2)D5=DX1*(RO(I+1)*H(I+1)-RO(I)*H(I)D7=DX4*(RO(I+1)*AK0-RO(I)*AK1)DD=(D1+D2)*DX3IF(0.05*DD.LT.ABS(D6)GOTO10RI=-DX5*(D2*SIGN(1.0,(P(I+1)-P(I)*ABS(P(I+1)-P(I)*(FF)-D1*SIGN(1.0,(P(I)-P(I-1)*ABS(P(I

14、)-P(I-1)*(FF)+D4!雷诺方程离散形式R(I)=RIDLDP=-FF*DX5*(D1*ABS(P(I)-P(I-1)*(FF-1)+D2*ABS(P(I+1)-P(I)*(FF-1)+D6RI=RI/DLDPRI=RI/C1GOTO2010RI=-DX5*(D2*SIGN(1.0,(P(I+1)-P(I)*ABS(P(I+1)-P(I)*(FF)-D1*SIGN(1.0,(P(I)-PP)*ABS(P(I)-PP)*(FF)+D4R(I)=RIDLDP=-FF*DX5*(2*D1*ABS(P(I)-PP)*(FF-1)+D2*ABS(P(I+1)-P(I)*(FF-1)+2.*D6

15、RI=RI/DLDPIF(I.GT.2.AND.P(I-1)-C1*RI.GT.0)P(I-1)=P(I-1)-C1*RI20PP=P(I)P(I)=P(I)+C1*RIIF(P(I).LT.0.0)P(I)=0.0IF(P(I).LE.0.0)R(I)=0.070CONTINUECALLHREE(N,DX,HOO,GO,X,P,H,RO,EPS,EDA)!再次调用HREE子程序实现各点的膜厚、密度、粘度、弹性变形的计算100CONTINUERETURNENDSUBROUTINEDISP(N,NW,KMAX,DX,P1,W)!计算弹性变形REAL*8P1(N),W(NW),P(2200),AK

16、1(0:50),AK2(0:50)COMMON/COMAK/AK(0:1100)DATANMAX,KMIN/2200,1/N2=NM=3+2*ALOG(FLOAT(N)!求和次数M>3+2In(n)K1=N+KMAXDO10I=1,N10P(K1+I)=P1(I)DO20KK=KMIN,KMAX-1K=KMAX+KMIN-KK!积分系数N1=(N2+1)/2CALLD0WNP(NMAX,N1,N2,K,P)!下传节点参数到最粗网格20N2=N1DX1=DX*2*(KMAX-KMIN)CALLWI(NMAX,N1,KMIN,KMAX,DX,DX1,P,W)!在粗网格上进行积分D030K=K

17、MIN+1,KMAXN2=2*N1-1DX1=DX1/2.CALLAKC0(M+5,KMAX,K,AK1)!将粗网格上积分系数传到细网格节点上CALLAKIN(M+6,AK1,AK2)!插值计算上层网格的积分系数CALLWC0S(NMAX,N1,N2,K,W)!将在粗网格上得到的积分数值映射到相对应的细网格上CALLC0RR(NMAX,N2,K,M,1,DX1,P,W,AK1)!利用积分系数插值对映射节点积分值进行修正CALLWINT(NMAX,N2,K,W)!插值计算不与粗网格重合的细网格节点的积分数值CALLCORR(NMAX,N2,K,M,2,DX1,P,W,AK2)!利用积分系数插值对

18、插值节点积分值进行修正30N1=N2D040I=1,N40W(I)=W(K1+I)RETURNENDSUBROUTINED0WNP(NMAX,N1,N2,K,P)!下传节点参数到最粗网格REAL*8P(NMAX)K1=N1+K-1K2=N2+K-1D010I=3,N1-2I2=2*I+K210P(K1+I)=(16.*P(I2)+9.*(P(I2-1)+P(I2+1)-(P(I2-3)+P(I2+3)/32.!细网格节点压力插值后传到粗网格节点P(K1+2)=0.25*(P(K2+3)+P(K2+5)+0.5*P(K2+4)P(K1+N1-1)=0.25*(P(K2+N2-2)+P(K2+N2

19、)+0.5*P(K2+N2-1)RETURNENDSUBROUTINEWC0S(NMAX,N1,N2,K,W)!将在粗网格上得到的积分数值映射到相对应的细网格上REAL*8W(NMAX)K1=N1+K-1K2=N2+KD010I=1,N1II=2*I-110W(K2+II)=W(K1+I)!部分细网格节点上的积分数值未计算,根据已知的粗网格上的数值进行计算RETURNENDSUBROUTINEWINT(NMAX,N,K,W)!插值计算不与粗网格重合的细网格节点的积分数值REAL*8W(NMAX)K2=N+KDO10I=4,N-3,2II=K2+I10W(II)=(9.*(W(II-1)+W(I

20、I+1)-(W(II-3)+W(II+3)/16.!部分细网格节点上的积分数值未计算,根据已知的粗网格上的数值进行计算I1=K2+2I2=K2+N-1W(I1)=0.5*(W(I1-1)+W(I1+1)W(I2)=0.5*(W(I2-1)+W(I2+1)RETURNENDSUBROUTINECORR(NMAX,N,K,M,I1,DX,P,W,AK)!利用积分系数插值对映射节点积分值进行修正REAL*8P(NMAX),W(NMAX),AK(0:M)K1=N+KIF(I1.EQ.2)GOTO20DO10I=1,N,2II=K1+IJ1=MAX0(1,I-M)J2=MIN0(N,I+M)DO10J=

21、J1,J2IJ=IABS(I-J)10W(II)=W(II)+AK(IJ)*DX*P(K1+J)RETURN20DO30I=2,N,2II=K1+IJ1=MAX0(1,I-M)J2=MIN0(N,I+M)DO30J=J1,J2IJ=IABS(I-J)30W(II)=W(II)+AK(IJ)*DX*P(K1+J)RETURNENDSUBROUTINEWI(NMAX,N,KMIN,KMAX,DX,DX1,P,W)!求最粗网格上的数值积分REAL*8P(NMAX),W(NMAX)COMMON/COMAK/AK(0:1100)K1=N+1K=2*(KMAX-KMIN)C=ALOG(DX)DO10I=1

22、,NII=K1+IW(II)=0.0DO10J=1,NIJ=K*IABS(I-J)10W(II)=W(II)+(AK(IJ)+C)*DX1*P(K1+J)RETURNENDSUBROUTINEAKCO(KA,KMAX,K,AK1)!将粗网格上积分系数传到细网格节点上REAL*8AK1(0:KA)COMMON/COMAK/AK(0:1100)J=2*(KMAX-K)DO10I=0,KAII=J*I10AK1(I)=AK(II)RETURNENDSUBROUTINEAKIN(KA,AK1,AK2)!插值计算上层网格的积分系数REAL*8AK1(KA),AK2(KA)DO10I=4,KA-310AK

23、2(I)=(9.*(AK1(I-1)+AK1(I+1)-(AK1(I-3)+AK1(I+3)/16.AK2(1)=(9.*AK1(2)-AK1(4)/8.AK2(2)=(9.*(AK1(1)+AK1(3)-(AK1(3)+AK1(5)/16.AK2(3)=(9.*(AK1(2)+AK1(4)-(AK1(2)+AK1(6)/16.DO20I=1,KA20AK2(I)=AK1(I)-AK2(I)DO30I=1,KA-1,2I1=I+1AK1(I)=0.030AK1(I1)=AK2(I1)RETURNENDSUBROUTINESUBAK(MM)!计算弹性变形系数COMMON/COMAK/AK(0:1100)!程序所得弹性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论