Sunteți pe pagina 1din 7

Universitatea Tehnic Gheorghe Asachi din Iai

Facultatea de Construcii i Instalaii








































Masterand: Chira Ilie Iulian
Domeniul: Inginerie Civil Data: 09.01.2013
Specializarea: Inginerie Structural







Iasi 2013





LUCRAREA NR. 3
Trasarea diagramelor de moment ncovoietor i for
tietoare pentru o grind simplu rezemat
1.Enunul problemei

S se traseze diagramele de moment ncovoietor i for tietoare pentru grinda
simplu rezemat din figur.


2.Analiza problemei
a) Date de intrare: a,b,c,d,e,f,q
1
,q
2
,P
1
,P
2
, M
1

b) Date de ieire: V
A
,V
B
( reaciunile din reazeme)
Trasarea diagramelor de eforturi

Calculul reactiunilor

M
B
=0-P
1
*a+M
1
-P
2
*(a+b+c)-
1
2
*q
1
*e*(
2
3
*e=d+c+b+a)+q
2
*f*(
1
2
*f+a+b+c+d+e)-V
B
*L
Rezult V
B
=[-P
1
*a+M
1
-P
2
*(a+b+c)-
1
2
*q
1
*e*(
2
3
*e=d+c+b+a)+q
2
*f*(
1
2
*f+a+b+c+d+e)]/L
M
A
=0-q
2
*f*
1
2
*f+
1
2
*q
1
*e*(
1
3
*e+f)+P
2
*(d+e+f)+M
1
+P
1
*(b+c+d+e+f)+ V
A
*L
Rezult V
A
=[q
2
*f*
1
2
*f-
1
2
*q
1
*e*(
1
3
*e+f)-P
2
*(d+e+f)-M
1
-P
1
*(b+c+d+e+f)]/L
Verificare: V
A+
V
B
+P
1
+P
2
-
1
2
*q
1
*e+q
2
*f=0

Calculul eforturilor in fiecare sectiune
px(i)<a
-py(i)=V
A

-pz(i)=V
A
*px(i)
px(i)<(a+b)
-py(i)=V
A
+P
1

-pz(i)=V
A
*px(i)+P
1
*(px(i)-a)
px(i)<(a+b+c)
-py(i)= V
A
+P
1

-pz(i)= V
A
*px(i)+P
1
*(px(i)-a)+M
1

px(i)<(a+b+c+d)
-py(i)= V
A
+P
1
+P
2

-pz(i)= V
A
*px(i)+P
1
*(px(i)-a)+M
1
+P
2
*(px(i)-(a+b+c))
px(i)<(a+b+c+d+e)
-py(i)= V
A
+P
1
+P
2
+
1
2
*
q
1
(px()-(u+b+c+d))
c
(px(i) (a +b +c +u))
-pz(i)= V
A
*px(i)+P
1
*(px(i)-a)+M
1
+P
2
*(px(i)-(a+b+c))+
1
2
*
q
1
(px()-(u+b+c+d))
c
(px(i)
(a +b + c + u))*
1
3
*(px(i)-(a+b+c+d))
px(i)<(a+b+c+d+e+f)
-py(i)= V
A
+P
1
+P
2
+
1
2
*q
1
*e-q
2
*(px(i)-(a+b+c+d+e))
-pz(i)= V
A
*px(i)+P
1
*(px(i)-a)+M
1
+P
2
*(px(i)-(a+b+c))+
1
2
*q
1
*e*[
1
3
*e+px(i)-(a+b+c+d+e)]--
q
2
*
1
2
*(px(i)-(a+b+c+d+e))
2
3. Programarea problemei

Pentru rezolvarea problemei s-a folosit limbajul Fortran 90 sub implementarea Intel


versiunea de compilator 11.0.061 iar lucrul cu formatul surs, compilarea, linkeditarea i
depanarea programului s-au efectuat n mediul Microsoft

Visual Studio

versiunea 8.
Programul surs n limbaj Fortran 90
program GrindaI
!Masterand Chira Ilie Iulian
! trasare V,M la o grinda simplu rezemata
use iflogm
implicit none
include 'resource.fd'
type(dialog) numint
logical rez
character*20 text
real a,b,c,d,e,f,q1,q2,P1,P2,M1,VA,VB,L,verif
integer bapel,ce,eroare
external calb,trasare
common a,b,c,d,e,f,q1,q2,P1,P2,M1,VA,VB,L,verif,eroare

rez=dlginit(fereastra,numint)
rez=dlgsetsub(numint,txta,calb)
rez=dlgsetsub(numint,txtb,calb)
rez=dlgsetsub(numint,txtc,calb)
rez=dlgsetsub(numint,txtd,calb)
rez=dlgsetsub(numint,txte,calb)
rez=dlgsetsub(numint,txtf,calb)
rez=dlgsetsub(numint,txtq1,calb)
rez=dlgsetsub(numint,txtq2,calb)
rez=dlgsetsub(numint,txtP1,calb)
rez=dlgsetsub(numint,txtP2,calb)
rez=dlgsetsub(numint,txtM1,calb)
rez=dlgsetsub(numint,btras,trasare)
rez=dlgmodal(numint)

print *, 'Sfarsitul programului'
read *
end program GrindaI

subroutine calb(numint,bapel,ce)
use iflogm
implicit none
include 'resource.fd'
type(dialog) numint
integer rez,st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,eroare
character*20 text
real a,b,c,d,e,f,P1,P2,q1,q2,M1,VA,VB,L,verif
integer bapel,ce
common a,b,c,d,e,f,P1,P2,q1,q2,M1,VA,VB,L,eroare

rez=dlgget(numint,txta,text)
read(text,1,iostat=st1) a
1 format(f15.0)
rez=dlgget(numint,txtb,text)
read(text,1,iostat=st2) b
rez=dlgget(numint,txtc,text)
read(text,1,iostat=st3) c
rez=dlgget(numint,txtd,text)
read(text,1,iostat=st4) d
rez=dlgget(numint,txte,text)
read(text,1,iostat=st5) e
rez=dlgget(numint,txtf,text)
read(text,1,iostat=st6) f
rez=dlgget(numint,txtP1,text)
read(text,1,iostat=st7) P1
rez=dlgget(numint,txtP2,text)
read(text,1,iostat=st8) P2
rez=dlgget(numint,txtq1,text)
read(text,1,iostat=st9) q1
rez=dlgget(numint,txtq2,text)
read(text,1,iostat=st10) q2
rez=dlgget(numint,txtM1,text)
read(text,1,iostat=st11) M1
if
((st1==0).and.(a>0.).and.(st2==0).and.(b>0.).and.(st3==0).and.(c>0.).and.(s
t4==0).and.(d>0.).and.(st5==0).and.(e>0.).and.(st6==0).and.(f>0.) .and. &
(st7==0).and.(st8==0).and.(st9==0).and.(st10==0).and.(st11==0))then
rez=dlgset(numint,txtmesaj,'date corecte')
eroare=0
L=a+b+c+d+e+f
write(text,2)L
2 format(f7.2)
rez=dlgset(numint,txtL,text)
VA=(-P1*(b+c+d+e+f)-M1-P2*(d+e+f)-1.0/2.0*q1*e*(e/3.0+f)+q2*f**2/2.0)/L
write(text,2)VA
rez=dlgset(numint,txtVA,text)
VB=(-P1*a+M1-P2*(a+b+c)-
1.0/2.0*q1*e*(2.0/3.0*e+a+b+c+d)+q2*f*(a+b+c+d+e+f/2.0))/L
write(text,2)VB
rez=dlgset(numint,txtVB,text)
verif=VA+VB+P1+P2+q1/2.0*e-q2*f
write(text,2) verif
rez=dlgset(numint,txtverif,text)
else
rez=dlgset(numint,txtmesaj,'Eroare la citire date')
eroare=1
rez=dlgset(numint,txtL,'')
rez=dlgset(numint,txtVA,'')
rez=dlgset(numint,txtVB,'')
rez=dlgset(numint,txtverif,'')
endif
end subroutine calb

subroutine trasare()
use AvFRT
use AvObjMod
use iflogm
implicit none
include 'resource.fd'
type(dialog) numint
integer rez,eroare
character*20 text
real a,b,c,d,e,f,P1,P2,q1,q2,M1,VA,VB,L,verif
integer bapel,ce
common a,b,c,d,e,f,P1,P2,q1,q2,M1,VA,VB,L,eroare
integer,parameter::imax=1001
real px(imax),py(imax),pL,pz(imax)
integer i,stare,vid,hroot,hg

rez=dlgget(numint,txtmesaj,text)
if(eroare==0)then
write(*,*)('Trasare posibila')
pL=L/(imax-1)
do i=1,imax
px(i)=(i-1)*pL
if(px(i)<a)then
py(i)=VA
pz(i)=VA*px(i)
elseif(px(i)<(a+b))then
py(i)=VA+P1
pz(i)=VA*px(i)+P1*(px(i)-a)
elseif (px(i)<(a+b+c)) then
py(i)=VA+P1
pz(i)=VA*px(i)+P1*(px(i)-a)+M1
elseif (px(i)<(a+b+c+d))then
py(i)=VA+P1+P2
pz(i)=VA*px(i)+P1*(px(i)-a)+M1+P2*(px(i)-a-b-c)
elseif (px(i)<(a+b+c+d+e))then
py(i)=VA+P1+P2+1.0/2.0*(q1*(px(i)-a-b-c-d))/e*(px(i)-a-b-c-d)
pz(i)=VA*px(i)+P1*(px(i)-a)+M1+P2*(px(i)-a-b-c)+1.0/2.0*(q1*(px(i)-a-b-
c-d))/e*(px(i)-a-b-c-d)*1.0/3.0*(px(i)-a-b-c-d)
elseif (px(i)<(a+b+c+d+e+f))then
py(i)=VA+P1+P2+1.0/2.0*q1*e-q2*(px(i)-a-b-c-d-e)
pz(i)=VA*px(i)+P1*(px(i)-a)+M1+P2*(px(i)-a-b-
c)+1.0/2.0*q1*e*(e/3.0+px(i)-a-b-c-d-e)-q2*(px(i)-a-b-c-d-e)**2/2
endif
pz(i)=-pz(i)
enddo
call AvStartWatch(loc(px),1,shape(px),AV_REAL4,'px',stare)
call AvStartWatch(loc(py),1,shape(py),AV_REAL4,'py',stare)
call AvStartWatch(loc(pz),1,shape(pz),AV_REAL4,'pz',stare)
call AvNewViewer(vid)
hroot=AvGetObject('/')

call
AvCreateGraph2DObj(AvGraphs(hroot),'FTaiet|plot:xyplot,xsource:/px,ysource:
/py',hg)
call
AvCreateGraph2DObj(AvGraphs(hroot),'MIncov|plot:xyplot,xsource:/px,ysource:
/pz',hg)

call AvVisible(vid,1,stare)
call AvSaveImage('grafic1.jpg','graph:/FTaiet',1200,1600,72,stare)
call AvSaveImage('grafic2.jpg','graph:/MIcov',1200,1600,72,stare)
else
write(*,*)('Trasare imposibila')
endif
endsubroutine trasare


4. Rezultate
Programul a fost rulat pentru mai multe serii de valori, unele intenionat eronate astfel
nct s fie verificat validitatea rezolvrii.


Cazul I:



















Figura 1






Figura 2

Cazul II:























Figura 3



















Figura 4: Diagrama de for tietoare

















Figura 5: Diagrama de moment ncovoietor


5. Concluzii
Prin utilizarea seturilor de valori s-au pus n vedere eventualele posibiliti,
evidenierea acestora sugernd corectitudinea problemei. Se observ c n cazul introducerii
unor valori eronate programul afiseaza acest lucru fr a trasa diagramele corespunztoare.

S-ar putea să vă placă și