1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
| ---------DEFINITION DES VARIABLES--------------------------------------------------------- !
!b est la largeur de la poutre
!detf est le pas de discrétisation des flèches
!h est la hauteur de la poutre
!i est le numéro de la fibre
!j est le numéro de l'incrément
!k est le nombre d'incrément d'incrément
!l est la longueur de la poutre
!modyoung est le module d'young du matériau
!n est le nombre total de fibres d'une poutre
!nb contient le nombre de contraintes aléatoirement génèrées
!U est le nombre aléatoire génère
!w est le compteur du nombre de poutre
!Z le nombre de poutre
!----------------PARTIE DES INSTRUCTIONS EXECUTABLES------------------------------------------!
!----------------------SAISIE DES DONNEES-----------------------------------------------------!
!implicit none
Real Z,U, h, b,l,D,modyoung,detf,q,h1
Real*4 sigmin,sigmax,sig,sigma
Integer n,i,k,j,R,w,G,G1,F,M,Y,P,S,Kmax,tempo
Dimension sig(10,10), f(10,10), Q(10,10)
Dimension y(10,10), G(10,10), G1(10,10)
Dimension M(10,10), h(10,10)
Dimension s(10,10), D(10,10),R(10,10)
Dimension P(10), sigma(10)
Print*,'BIENVENUE AU PROGRAMME DE SIMULATION DU'
Print*,'COMPORTEMENT MECANIQUE DU BOIS EN FLEXION 3 POINTS'
Print*,'entrer la valeur du nombre de Poutres Z'
Read*, Z
Print*,'entrer la valeur du nombre de fbres n'
Read*, n
Print*,'entrer la valeur de la contrainte minimale (sigmin)'
Read*, sigmin
Print*,'entrer la valeur de la contrainte maximale (sigmax)'
Read*, sigmax
Print*,'entrer la valeur de la largeur de la poutre (b)'
Read*, b
Print*,'entrer la valeur de la hauteur de la poutre (h)'
Read*, h1
Print*,'entrer la valeur de la longueur de la poutre (l)'
Read*, l
Print*,'entrer la valeur du module dyoung (modyoung)'
Read*, modyoung
Print*,'entrer la valeur du nombre dincrémentation (k)'
Read*, k
!--------------------------PARTIE DES CALCULS----------------------------------------------------!
!---------------GENERATION ALEATOIRE DES CONTRAINTES DANS LES FIBRES-----------------------------!
w=1
1 print*,'poutreNø',w
!do i=1,n
call random_number (U)
nb = U*1
P(i)= nb
!enddo
!-------------------------------CALCULS POUR UNE POUTRE-----------------------------------------!
i=1
2 print*,'fibreNø',i
detf=0.001
f(i,j)=detf
j=1
Sigma(i)=(sigmin+P(i)*(sigmax-sigmin))
h(i,j)=h1*(n-i+1)/n
G(i,j)= b*h1**3/12
y(i,j)=(h1+(h1*2*(i-1)+1))/2*n
s(i,j)= b*(h1/n)
G1(i,j)= s(i,j)*(y(i,j)**2)+G(i,j)
3 Q(i,j)=(48*modyoung*G1(i,j)*f(i,j))/(l**3)
M(i,j)=Q(i,j)*l/4
sig(i,j)=(M(i,j)*y(i,j)/G1(i,j))*1000
D(i,j)=(G(i,j)-G1(i,j))/ G(i,j)
R(i,j)= Q(i,j)/f(i,j)
f(i,j)=detf
!-------------------------INCREMMENTTION DE LA FLECHE--------------------------------------!
if(sigma(i).gt.sig(i,j))then
f(i,j)=f(i,j)+detf
print*,'Effort à la rupture',Q(i,j)
print*,'Flèche à la rupture',f(i,j)
print*,'Endomagement de la fibre',D(i,j)
j=j+1
if(j.lt.k) then
goto 3
else
continue
endif
else
print*,'fibreNø', i,' a rompu'
Print*,'position de la fibre',y(i)
print*,'Section de la poutre',S(i)
print*,'inerti de la poutre entière',G(i)
print*,'inertie de la potre à la fibre i',G1(i)
print*,'Contrainte de la fibre ittérée',sig(i,j)
print*,'Moment fléchissant maximum',M(i,j)
print*,'Rigidité de la fibre',R(i,j)
continue
end if
!------------------------------ITTERATION DES FIBRES---------------------------------------!
if(n.gt.i)then
i=i+1
goto 2
else
print*,'Fin des calculs pour la poure',w
continue
end if
!------------------------------ITTERATION DES POUTRES--------------------------------------!
if(w.lt.Z)then
w=w+1
goto 1
else
print*,'FIN DE L ESSAI'
end if
!------------------------------PROGRAMME TRI--------------------------------------!
do i=1
10 do j=1,n-1
kmax=j
do k= j+1,n
if(f(i ,k).gt.f(i,kmax)) then
kmax=k
endif
enddo
tempo=f(i,kmax)
f(i,kmax)=f(i,j)
f(i,j)=tempo
enddo
l=i
do l=1,n
print*,f(i,l)
enddo
!------------------------------FICHIER TEXTE--------------------------------------!
unite=99
nomfich = 'data.txt'
open(99, FILE=nomfich)
write(99,*) f(i,j), Q(i,j)
End program
!---------FIN DE L'ESSAI--------------------------------------------------------------------------------! |
Partager