Fortran Coder

查看: 6061|回复: 4
打印 上一主题 下一主题

[其他行业算法] 关于滑动轴承承载力的求解

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
QQ
跳转到指定楼层
楼主
发表于 2021-4-26 19:13:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已知压力分布求解承载力的大小。

源代码:
[Fortran] 纯文本查看 复制代码
PROGRAM GASJOURNAL
    DIMENSION H(61,61),P(61,61),Y(61),X(61)
    DATA B,R,C0,AN,PA,EDA,EPSON/60.0E-3,25.0E-3,5.0E-5,6.0E4,1.013E5,1.79E-5,0.8/
    OPEN(8,FILE='PRESSURE.DAT',STATUS='UNKNOWN')
    OPEN(9,FILE='HIGHT.DAT',STATUS='UNKNOWN')
    OPEN(11,FILE='LOAD.DAT',STATUS='UNKNOWN')
    PI=3.1415926
    N=61
    N1=N-1
    M=61
    M1=M-1
    DX=2.0*PI/N1
    DY=2.0/M1
    OMEGA=AN*2.0*PI/60
    U=OMEGA*R
    ALENDA=6.0*EDA*U*R/PA/C0**2
    ALFA=(R/B*DX/DY)**2
    SUM1=0.0
    S=D*B

    CALL SUBH (N,M,DX,EPSON,H)
    CALL SUBP (N,M,DX,EPSON,ALFA,ALENDA,H,P)
    CALL SUBM(N,M,P)
    ALENDA=6.0*EDA*U*R/PA/C0**2
    SUM1=ALENDA*S*SUM1
    DO I=1,N
        X(I)=(I-1)*DX
    ENDDO

    DO J=1,M
        Y(J)=(J-1.0)*DY-0.5
    ENDDO

    WRITE(8,40)Y(1),(Y(J),J=1,M)
    DO I=1,N
        WRITE(8,40)X(I)*180.0/PI,(P(I,J),J=1,M)
    ENDDO
    WRITE(9,40)Y(1),(Y(J),J=1,M)
        DO I=1,N
        WRITE(9,40)X(I)*180.0/PI,(H(I,J),J=1,M)
    END DO
!WRITE(8,40)AX,(H(I,J),J=1,M)
!WRITE(9,40)AX,(P(I,J),J=1,M)
    WRITE(11,*) '承载力=',SUM1
40  FORMAT(62(E12.6,1X))
    STOP
    END

SUBROUTINE SUBH(N,M,DX,EPSON,H)
    DIMENSION H(N,M)
        DO I=1,N
        SETA=(I-1.0)*DX
        DO J=1,M
        H(I,J)=1.0+EPSON*COS(SETA)
        ENDDO
        ENDDO
        RETURN
    END

    SUBROUTINE SUBP(N,M,DX,EPSON,ALFA,ALENDA,H,P)
        DIMENSION H(N,M),P(N,M)
        DO I=2,N-1
        DO J=2,M-1
        P(I,J)=1.1
        ENDDO   
        ENDDO
        DO I=1,N
        P(I,1)=1.0  
        P(I,M)=1.0
        ENDDO
        DO J=1,M
        P(1,J)=1.0
        P(N,J)=1.0
        ENDDO
        IK=0
10        C1=0.0
        ALOAD=0.0
        DO I=2,N-1
        I1=I-1
        I2=I+1
        DO J=2,M-1
        J1=J-1
        J2=J+1
        PD=P(I,J)
    A1=H(I,J)**3+(3*H(I,J)**2*(H(I2,J)-H(I1,J))/4)
    A2=H(I,J)**3-(3*H(I,J)**2*(H(I2,J)-H(I1,J))/4)
    A3=2*H(I,J)**3*(1+ALFA)
    A4=ALFA*(H(I,J)**3+(3*H(I,J)**2*(H(I,J2)-H(I,J1))/4))
    A5=ALFA*(H(I,J)**3-(3*H(I,J)**2*(H(I,J2)-H(I,J1))/4))
    A6=(ALENDA*DX/2)*(P(I,J)*(H(I2,J)-H(I1,J))+ H(I,J)*(P(I2,J)-P(I1,J)))
    P(I,J)=(A1*P(I2,J)**2+A2*P(I1,J)**2+A4*P(I,J2)**2+A5*P(I,J1)**2-A6)/A3
    !A1=(0.5*(H(I2,J)+H(I,J)))**3
        !A2=(0.5*(H(I,J)+H(I1,J)))**3
    !A3=ALFA*(0.5*(H(I,J2)+H(I,J)))**3
        !A4=ALFA*(0.5*(H(I,J)+H(I,J1)))**3
        !P(I,J)=(-DX*ALENDA*(P(I+1,J)*H(I+1,J)-P(I-1,J)*H(I-1,J))+A1*P(I2,J)**2+A2*P(I1,J)**2+A3*P(I,J2)**2+A4*P(I,J1)**2)/(A1+A2+A3+A4)
        IF(P(I,J).LT.0.0)P(I,J)=0.0
        P(I,J)=SQRT(P(I,J))
        P(I,J)=0.7*PD+0.3*P(I,J)
        IF(P(I,J).LT.0.0)P(I,J)=0.0
        C1=C1+ABS(P(I,J)-PD)
        ALOAD=ALOAD+P(I,J)
        ENDDO
        ENDDO
        IK=IK+1
        C1=C1/ALOAD
        WRITE(*,*)IK,C1,ALOAD
        IF(C1.GT.1.E-7)GOTO 10
        RETURN
    END

    SUBROUTINE SUBM(N,M,P)
    DIMENSION P(N,M)
    PX=0
    PY=0
    DO I=1,N
        AI=(I-1)*DX
        DO J=1,M
            PX=PX-(P(I,J)-1)*COS(AI)*DX*DY
            PY=PY+(P(I,J)-1)*SIN(AI)*DX*DY
        ENDDO
    ENDDO
    SUM1=SQRT(PX*PX+PY*PY)
    RETURN
    END

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

沙发
发表于 2021-4-27 08:45:55 | 只看该作者
这是问什么?

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
QQ
板凳
 楼主| 发表于 2021-4-27 10:52:58 | 只看该作者

程序没有报错,但是出来的承载力不对,怎么能求出承载力呀

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
QQ
地板
 楼主| 发表于 2021-4-27 11:08:09 | 只看该作者

您好,我的程序求出来了压力分布然后怎么求解承载力的大小呀?

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

5#
发表于 2021-4-28 08:07:38 | 只看该作者
780782578 发表于 2021-4-27 11:08
您好,我的程序求出来了压力分布然后怎么求解承载力的大小呀?

这个你要问专业人员,不是该专业的不清楚
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-24 18:23

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表