Program DuhaNA - Talita

4
Program DuhaNA ! ! Resposta dinamica de sistemas de 1 GL ! nao amortecidos sob carga qualquer ! Implicit double precision (a-h, o-z) Character*40 Dat, Exemp Dimension xt(500),xtp(500),xto(500),xtpo(500),& & F(500),Pc(60),Tc(60) ! Open(1, file="EntDuha.dat") Open(2, file="OutDuha.dat") Open(3, file="GrafDuha.dat") ! read(1,10) Dat, Exemp 10 format(A40,/,A40) ! read(1,*) sm,sk,xto(1),xtpo(1) w=dsqrt(sk/sm) Pi=2.0*asin(1.0) T=2.0*Pi/w ! read(1,*) Nr,Npc,dt do i=1,Npc read(1,*) Tc(i), Pc(i) enddo ! if(xto(1).ne.0.0.or.xtpo(1).ne.0.0) then xto1=xto(1) xtpo1=xtpo(1) Call RespIni(Nr,dt,xto1,xtpo1,w,xto,xtpo) endif ! Call Interp(Nr,Npc,dt,Tc,Pc,F) ! Call Duha(Nr,Npc,Tc,sm,w,dt,F,xt,xtp) ! write(2,20) Dat,Exemp 20 format(10x,"Programa DuhaNA",//,& & 10x,"Calculo da resposta de sistemas de 1GL",/,& & 10x,"sob cargas quaisquer",//,& & 10x,"Data: ",A40,/,& & 10x,"Exemplo: ",A40,/) write(2,25) sm,sk,w,xto(1),xtpo(1),T,Nr,dt 25 format(10x,"Massa: ",E10.4,/,& & 10x,"Rigidez: ",E10.4,/,& & 10x,"Freq natural: ",E10.4,/,& & 10x,"Desl inicial: ",E10.4,/,& & 10x,"XTeloc inicial: ",E10.4,/,& & 10x,"Periodo: ",E10.4,/,&

description

aaaaa

Transcript of Program DuhaNA - Talita

Program DuhaNA!! Resposta dinamica de sistemas de 1 GL! nao amortecidos sob carga qualquer!Implicit double precision (a-h, o-z)Character*40 Dat, ExempDimension xt(500),xtp(500),xto(500),xtpo(500),&& F(500),Pc(60),Tc(60)!Open(1, file="EntDuha.dat")Open(2, file="OutDuha.dat")Open(3, file="GrafDuha.dat")!read(1,10) Dat, Exemp10 format(A40,/,A40)!read(1,*) sm,sk,xto(1),xtpo(1)w=dsqrt(sk/sm)Pi=2.0*asin(1.0)T=2.0*Pi/w!read(1,*) Nr,Npc,dtdo i=1,Npcread(1,*) Tc(i), Pc(i)enddo!if(xto(1).ne.0.0.or.xtpo(1).ne.0.0) thenxto1=xto(1)xtpo1=xtpo(1)Call RespIni(Nr,dt,xto1,xtpo1,w,xto,xtpo)endif!Call Interp(Nr,Npc,dt,Tc,Pc,F)!Call Duha(Nr,Npc,Tc,sm,w,dt,F,xt,xtp)!write(2,20) Dat,Exemp20 format(10x,"Programa DuhaNA",//,&& 10x,"Calculo da resposta de sistemas de 1GL",/,&& 10x,"sob cargas quaisquer",//,&& 10x,"Data: ",A40,/,&& 10x,"Exemplo: ",A40,/)write(2,25) sm,sk,w,xto(1),xtpo(1),T,Nr,dt25 format(10x,"Massa: ",E10.4,/,&& 10x,"Rigidez: ",E10.4,/,&& 10x,"Freq natural: ",E10.4,/,&& 10x,"Desl inicial: ",E10.4,/,&& 10x,"XTeloc inicial: ",E10.4,/,&& 10x,"Periodo: ",E10.4,/,&& 10x,"No. termos na resposta: ",I3,/,&& 10x,"Interxtalo de tempo: ",E10.4,//,&& 10x,"Funcao de carga",/,&& 10x,"Tempo ",5x,"Carga",/)!do i=1,Npcwrite(2,30) Tc(i), Pc(i)30 format(10x,E10.4,5x,E10.4)enddo!! Impressao das cargas interpoladas!write(2,35)35 format(//,10x,"Cargas interpoladas",/,&& 10x,"Tempo ",5x,"Carga",/)Npi=Tc(Npc)/dtdo i=1,Npi+1tt=(i-1)*dtwrite(2,40) tt, F(i)40 format(10x,E10.4,5x,E10.4)enddo!write(2,45)

45 format(//,10x,"Resposta do Sistema",//,&& 10x,"Tempo ",5x,"Desloc ",5x,"XTelocidade",/)do i=1,Npi+1tt=(i-1)*dtxt(i)=xto(i)+xt(i)xtp(i)=xtpo(i)+xtp(i)write(2,50) tt,xt(i),xtp(i)write(3,50) tt,xt(i),xtp(i)50 format(10x,E10.4,5x,E10.4,5x,E10.4)enddo!do i=Npi+2, Nr+1tt=(i-1)*dtwrite(2,60) tt,xt(i),xtp(i)write(3,60) tt,xt(i),xtp(i)60 format(10x,E10.4,5x,E10.4,5x,E10.4)enddo!stopend!! *******************************************Subroutine RespIni(Nr,dt,xto1,xtpo1,w,xto,xtpo)! *******************************************!! Calculo da resposta a condicoes iniciais!Implicit double precision (a-h, o-z)Dimension xto(500), xtpo(500)!do i=1,Nr+1tt=(i-1)*dtxto(i)=xto1*dcos(w*tt)+xtpo1/w*dsin(w*tt)xtpo(i)=-w*xto1*dsin(w*tt)+xtpo1*dcos(w*tt)enddo!returnend!! *************************************SUBROUTINE INTERP(NP,NPX,DPX,PX,PY,P)! *************************************

Implicit double precision (a-h, o-z)Dimension PX(60),PY(60),P(500)!DO l=1,NPXP(l)=0.05 enddo!NP2=NP+2P(1)=PY(1)II=1ANT=0.0!DO 10 I=2,NP2I1=I-1T=I1*DPXIF(T.GT.PX(NPX)) GOTO 10IF(T.LE.PX(II+1)) GOTO 9ANT=-PX(II+1)+T-DPXII=II+19 ANT=ANT+DPXP(I)=PY(II)+(PY(II+1)-PY(II))*ANT/(PX(II+1)-PX(II))10 CONTINUE!RETURNEND!! *****************************************Subroutine Duha(Nr,Npc,Tc,sm,w,dt,F,xt,xtp)

! *****************************************! Calculo da resposta a uma carga qualquer! pela Integral de Duhamel - sistema nao amortecido!Implicit double precision (a-h,o-z)Dimension F(500),xt(500),xtp(500),A(500),B(500),&& Tc(60)!! No. de termos de resposta sob acao da carga - Npi!Npi=Tc(Npc)/dt!! Calculo dos coeficientes A e B!A(1)=0.0B(1)=0.0do i=2,Npi+1tant=(i-2)*dttpos=(i-1)*dtDeltaF=F(i)-F(i-1)Forca=F(i-1)+tant*DeltaF/dtA(i)=A(i-1)+Forca/w*(dsin(w*tpos)-dsin(w*tant))&&* DeltaF/(w*w*dt)*(dcos(w*tpos)-dcos(w*tant))&&* w*(tpos*dsin(w*tpos)-tant*dsin(w*tant))!B(i)=B(i-1)+Forca/w*(dcos(w*tpos)-dcos(w*tant))&&* DeltaF/(w*w*dt)*(dsin(w*tpos)-dsin(w*tant))&&* w*(tpos*dcos(w*tpos)-tant*dcos(w*tant))!xt(i)=1.0/(sm*w)*(A(i)*dsin(w*tpos)+B(i)*dcos(w*tpos))xtp(i)=1.0/(sm*w)*(A(i)*w*dcos(w*tpos)-B(i)*w*dsin(w*tpos))!enddo!xto=xt(Npi+1)xtpo=xtp(Npi+1)td=Tc(Npc)!do i=Npi+2,Nr+1tt=(i-1)*dt-tdxt(i)=xto*dcos(w*tt)+xtpo/w*dsin(w*tt)xtp(i)=xtpo*dcos(w*tt)-w*xto*dsin(w*tt)enddo!returnend