平面连杆机构运动分析的子程序.docx

上传人:b****5 文档编号:4573176 上传时间:2022-12-06 格式:DOCX 页数:10 大小:15.88KB
下载 相关 举报
平面连杆机构运动分析的子程序.docx_第1页
第1页 / 共10页
平面连杆机构运动分析的子程序.docx_第2页
第2页 / 共10页
平面连杆机构运动分析的子程序.docx_第3页
第3页 / 共10页
平面连杆机构运动分析的子程序.docx_第4页
第4页 / 共10页
平面连杆机构运动分析的子程序.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

平面连杆机构运动分析的子程序.docx

《平面连杆机构运动分析的子程序.docx》由会员分享,可在线阅读,更多相关《平面连杆机构运动分析的子程序.docx(10页珍藏版)》请在冰豆网上搜索。

平面连杆机构运动分析的子程序.docx

平面连杆机构运动分析的子程序

SUBROUTINECRANK(N1,N2,R,TH,W,A,P,VP,AP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2),AP(NP,2)

W2=W*W

VP(N1,1)=0.0D0

VP(N1,2)=0.0D0

AP(N1,1)=0.0D0

AP(N1,2)=0.0D0

RX=R*DCOS(TH)

RY=R*DSIN(TH)

P(N2,1)=P(N1,1)+RX

P(N2,2)=P(N1,2)+RY

VP(N2,1)=-RY*W

VP(N2,2)=RX*W

AP(N2,1)=-RY*A-RX*W2

AP(N2,2)=RX*A-RY*W2

RETURN

END

SUBROUTINECRANK2(N1,N2,N3,R,S,PHI,TH,W,A,P,VP,AP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2),AP(NP,2)

W2=W*W

VP(N1,1)=0.0D0

VP(N1,2)=0.0D0

AP(N1,1)=0.0D0

AP(N1,2)=0.0D0

RX=R*DCOS(TH)

RY=R*DSIN(TH)

SX=S*DCOS(TH+PHI)

SY=S*DSIN(TH+PHI)

P(N2,1)=P(N1,1)+RX

P(N2,2)=P(N1,2)+RY

P(N3,1)=P(N1,1)+SX

P(N3,2)=P(N1,2)+SY

VP(N2,1)=-RY*W

VP(N2,2)=RX*W

VP(N3,1)=-SY*W

VP(N3,2)=SX*W

AP(N2,1)=-RY*A-RX*W2

AP(N2,2)=RX*A-RY*W2

AP(N3,1)=-SY*A-SX*W2

AP(N3,2)=SX*A-SY*W2

RETURN

END

SUBROUTINEPAYAD(M,N1,N2,N3,R1,R2,TH1,TH2,P,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2)

LOGICALPRNT

PRNT=.FALSE.

IF(N1.LT.0)PRNT=.FALSE.

DELX=P(N2,1)-P(N1,1)

IF(DABS(DELX).LT.1.0D-10)DELX=1.0D-10

DELY=P(N2,2)-P(N1,2)

PHI=DATAN2(DELY,DELX)

SSQ=(P(N2,1)-P(N1,1)**2+(P(N2,2)-P(N1,2))**2

S=DEQRT(SSQ)

TEST=S-(R1+R2)

IF(TEST)40,40,500

40TEST=DABS(R1-R2)-S

IF(TEST)50,50,500

50CONTINUE

COSIN=(R1**2-R2**2+SSQ)/(2.0D0*R1*S)

ALF=DATAN2(DSQRT(1.0D0-COSIN**2),COSIN)

IF(M)200,100,100

100TH=PHI+ALF

GOTO300

200TH=PHI-ALF

300CONTINUE

RC=R1*DCOS(TH)

RS=R1*DSIN(TH)

P(N3,1)=P(N1,1)+RC

P(N3,2)=P(N1,2)+RS

TH1=DATAN2(RS,RC)

PS=P(N3,2)-P(N2,2)

PC=P(N3,1)-P(N2,1)

TH2=DATAN2(PS,PC)

RETURN

500IF(PRNT)WRITE(*,600)

600FORMAT(3X,'DYADCANNOTBEASSEMBLED.'/)

END

SUBROUTINEVDYAD(M,N1,N2,N3,R1,R2,TH1,TH2,P,W1,W2,VP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2)

CALLPDYAD(M,N1,N2,N3,R1,R2,TH1,TH2,P,NP)

R2X=P(N3,1)-P(N2,1)

R2Y=P(N3,2)-P(N2,2)

A1=(VP(N2,1)-VP(N1,1))*R2X

A2=(VP(N2,2)-VP(N1,2))*R2Y

R1X=P(N3,1)-P(N1,1)

R1Y=P(N3,2)-P(N1,2)

C1=R1Y*R2X

C2=R2Y*R1X

DET=C1-C2

B1=(VP(N2,2)-VP(N1,2))*R1Y

B2=(VP(N2,1)-VP(N1,1))*R1X

W1=-(A1+A2)/DET

W2=-(B1+B2)/DET

VP(N3,1)=VP(N1,1)-W1*R1Y

VP(N3,2)=VP(N1,2)+W1*R1X

RETURN

END

SUBROUTINEADYAD(M,N1,N2,N3,R1,R2,TH1,TH2,P,W1,W2,VP,A1,A2,AP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2),AP(NP,2)

CALLVDYAD(M,N1,N2,N3,R1,R2,TH1,TH2,P,W1,W2,VP,NP)

R1X=P(N3,1)-P(N1,1)

R1Y=P(N3,2)-P(N1,2)

R2X=P(N3,1)-P(N2,1)

R2Y=P(N3,2)-P(N2,2)

C1=R1Y*R2X

C2=R2Y*R1X

DET=C1-C2

W1S=W1*W1

W2S=W2*W2

E=AP(N2,1)-AP(N1,1)+W1S*R1X-W2S*R2X

F=AP(N2,2)-AP(N1,2)+W1S*R1Y-W2S*R2Y

A1=-(E*R2X+F*R2Y)/DET

A2=-(F*R1Y+E*R1X)/DET

AP(N3,1)=AP(N1,1)-W1S*R1X-A1*R1Y

AP(N3,2)=AP(N1,2)-W1S*R1Y+A1*R1X

RETURN

END

SUBROUTINEPGUIDE(M,N1,N2,N3,R1,R2,TH,BETA,P,NP)

DIMENSIONP(NP,2)

LOGICALPRNT

PRNT=.TRUE.

IF(N1.LT.0)PRNT=.FALSE.

N1=IABS(N1)

SSQ=(P(N1,1)-P(N2,1))**2+(P(N1,2)-P(N2,2))**2

E=2.*((P(N2,1)-P(N1,1))*DCOS(BETA)+(P(N2,2)-P(N1,2))*DSIN(BETA))

F=SSQ-R1**2

TEST=E**2-4.0*F

IF(TEST)500,50,50

50SQROOT=SQRT(TEST)

MODE=M

RSQ=R1*R1

IF(RSQ.GE.SSQ)MODE=+1

IF(MODE)200,100,100

100R2=ABS(-E+SQROOT)/2.

GOTO300

200R2=ABS(-E-SQROOT)/2.

300CONTINUE

P(N3,1)=P(N2,1)+R2*DCOS(BETA)

P(N3,2)=P(N2,2)+R2*DSIN(BETA)

TH=ATAN2((P(N3,2)-P(N1,2)),(P(N3,1)-P(N1,1)))

RETURN

500IF(PRNT)WRITE(6,600)

600FORMAT(/*ROTATINGGUIDECANNOTBEASSEMBLED*/)

RETURN

END

SUBROUTINEVGUIDE(M,N1,N2,N3,R1,R2,TH,BETA,P,W,VBETA,VR2,VP,NP)

DIMENSIONP(NP,2),VP(NP,2)

CALLPGUIDE(M,N1,N2,N3,R1,R2,TH,BETA,P,NP)

CB=DCOS(BETA)

SB=DSIN(BETA)

CT=DCOS(TH)

ST=DSIN(TH)

E1=(VP(N2,1)-VP(N1,1))-R2*VBETA*SB

F1=(VP(N2,2)-VP(N1,2))+R2*VBETA*CB

DET=ST*SB+CT*CB

W=(F1*CB-E1*SB)/(R1*DET)

VR2=-(E1*CT+F1*ST)/DET

VP(N3,1)=VP(N1,1)-R1*W*ST

VP(N3,2)=VP(N1,2)+R1*W*CT

RETURN

END

SUBROUTINEAGUIDE(M,N1,N2,N3,R1,R2,TH,BETA,P,W,VBETA,VR2,A,ABETA,AR2,AP,NP)

DIMENSIONP(NP,2),VP(NP,2),AP(NP,2)

CALLVGUIDE(M,N1,N2,N3,R1,R2,TH,BETA,P,W,VBETA,VR2,VP,NP)

CB=DCOS(BETA)

SB=DSIN(BETA)

CT=DCOS(TH)

ST=DSIN(TH)

E2=AP(N2,1)-AP(N1,1)+W**2*R1*CT-ABETA*R2*SB-VBETA**2*R2*CB-2.*VBETA*VR2*SB

F2=AP(N2,2)-AP(N1,2)+W**2*R1*ST+ABETA*R2*CB-VBETA**2*R2*SB+2.*VBETA*VR2*CB

DET=ST*SB+CT*CB

A=(F2*CB-E2*SB)/(R1*DET)

AR2=-(E2*CT+F2*ST)/DET

AP(N3,1)=AP(N1,1)-R1*A1*ST-R1*W**2*CT

AP(N3,2)=AP(N1,2)+R1*A*CT-R1*W**2*ST

RETURN

END

SUBROUTINEPOSC(M,N1,N2,N3,E,R2,R3,TH,P,NP)

DIMENSIONP(NP,2)

LOGICALPRNT

PRNT=.TRUE.

IF(N1.LT.0)PRNT=.FALSE.

N1=IABS(N1)

TEST=((P(N2,1)-P(N1,1))**2+(P(N2,2)-P(N1,2))**2-E**2)

IF(TEST)500,50,50

50R2=SQRT(TEST)

ALPHA=ATAN2((P(N2,2)-P(N1,2)),(P(N2,1)-P(N1,1)))

BETA=ATAN(E/R2)

IF(M)200,100,100

100TH=ALPHA+BETA

GOTO300

200TH=ALPHA-BETA

300CONTINUE

P(N3,1)=P(N2,1)+(R3-R2)*DCOS(TH)

P(N3,2)=P(N2,2)+(R3-R2)*DSIN(TH)

RETURN

500IF(PRNT)WRITE(6,600)

600FORMAT(/*OSCILLATINGSLIDERCANNOTBEASSEMBLED*/)

RETURN

END

SUBROUTINEVOSC(M,N1,N2,N3,E,R2,R3,TH,P,W,VR2,VP,NP)

DIMENSIONP(NP,2),VP(NP,2)

CALLPOSC(M,N1,N2,N3,E,R2,R3,TH,P,NP)

C=DCOS(TH)

S=DSIN(TH)

SX=R2*C+E*S

SY=R2*S-E*C

W=((VP(N2,1)-VP(N1,1))*S-(VP(N2,2)-VP(N1,2))*C)/(-SX*C-SY*S)

VR2=(-(VP(N2,2)-VP(N1,2))*SY-(VP(N2,1)-VP(N1,1))*SX)/(-SY*S-SX*C)

VP(N3,1)=VP(N1,1)-W*(R3*S-E*C)

VP(N3,2)=VP(N1,2)+W*(R3*C+E*S)

RETURN

END

SUBROUTINEAOSC(M,N1,N2,N3,E,R2,R3,TH,P,W,VR2,VP,A,AR2,AP,NP)

DIMENSIONP(NP,2),VP(NP,2),AP(NP,2)

CALLVOSC(M,N1,N2,N3,E,R2,R3,TH,P,W,VR2,VP,NP)

C=DCOS(TH)

S=DSIN(TH)

SX=R2*C+E*S

SY=R2*S-E*C

E2=(AP(N2,1)-AP(N1,1))+W**2*SX+2.*W*VR2*S

F2=(AP(N2,2)-AP(N1,2))+W**2*SY-2.*W*VR2*C

A=(F2*C-E2*S)/(SX*C+SY*S)

AR2=(E2*SX+F2*SY)/(SX*C+SY*S)

R3X=R3*C+E*S

R3Y=R3*S-E*C

AP(N3,1)=AP(N1,1)-W**2*R3X-A*R3Y

AP(N3,2)=AP(N1,2)-W**2*R3Y+A*R3X

RETURN

END

SUBROUTINEDISP(N1,N2,TH,P,PI,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),PI(NP,2)

C=DCOS(TH)

S=DSIN(TH)

RX=PI(N2,1)-PI(N1,1)

RY=PI(N2,2)-PI(N1,2)

P(N2,1)=P(N1,1)+RX*C-RY*S

P(N2,2)=P(N1,2)+RX*S+RY*C

RETURN

END

SUBROUTINEVEL(N1,N2,W,P,VP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2)

VP(N2,1)=VP(N1,1)-W*(P(N2,2)-P(N1,2))

VP(N2,2)=VP(N1,2)+W*(P(N2,1)-P(N1,1))

RETURN

END

SUBROUTINEACC(N1,N2,W,A,P,VP,AP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8P(NP,2),VP(NP,2),AP(NP,2)

RX=P(N2,1)-P(N1,1)

RY=P(N2,2)-P(N1,2)

CALLVEL(N1,N2,W,P,VP,NP)

W2=W*W

AP(N2,1)=AP(N1,1)-W2*RX-A*RY

AP(N2,2)=AP(N1,2)+A*RX-W2*RY

RETURN

END

SUBROUTINEGEOM(N1,N2,N3,R,S,PHI,PI,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8PI(NP,2)

PI(N1,1)=0.0D0

PI(N1,2)=0.0D0

PI(N2,1)=R

PI(N2,2)=0.0D0

PI(N3,1)=S*DCOS(PHI)

PI(N3,2)=S*DSIN(PHI)

RETURN

END

SUBROUTINEMOTION(N1,N2,N3,R,S,PHI,TH,W,A,PI,P,VP,AP,NP)

IMPLICITREAL*8(A-H,O-Z)

REAL*8PI(NP,2),P(NP,2),VP(NP,2),AP(NP,2)

CALLGEOM(N1,N2,N3,R,S,PHI,PI,NP)

CALLDISP(N1,N3,TH,P,PI,NP)

CALLACC(N1,N3,W,A,P,VP,AP,NP)

RETURN

END

CALLCRANK(1,2,L

(1),TH

(1),W

(1),A

(1),P,VP,AP,NP)

CALLAGUIDE(1,2,5,3,L

(2),R3,TH

(2),BETA,P,W

(2),VBETA,VR2,VP,A

(2),ABETA,AR2,AP,NP)

CALLMOTION(2,3,4,L

(2),R

(2),PSI

(2),TH

(2),W

(2),A

(2),WK,P,VP,AP,NP)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1