Télécharger phasage.procedur

Retour à la liste

Numérotation des lignes :

  1. * PHASAGE PROCEDUR PASCAL 21/07/08 21:15:06 11064
  2. ************************************************************************
  3. * Procedure de calcul du phasage de mise en tension des cables
  4. ************************************************************************
  5. DEBPROC PHASAGE TABPHAS ;
  6. MESS 'ENTREE dans phasage' ;
  7. *------------------------------------------------------------------
  8. *
  9. LDEPOU=FAUX;
  10. 'SI' ( 'EXISTE' TABPHAS 'DEPOU') ;
  11. LDEPOU=TABPHAS . 'DEPOU' ;
  12. 'FINSI' ;
  13. 'SI' LDEPOU;TABPHAS . 'COURBES' = TABLE ; 'FINSI' ;
  14. LPRECO=VRAI ;
  15. SI (NON ( EXISTE TABPHAS 'PRECONTRAINTE' )) ;
  16. MESS 'TABLE DES ETAPES DE MISE EN PRECONTRAINTE ABSENTE' ;
  17. LPRECO=FAUX ;
  18. SINON ;
  19. SI (NEG (TYPE (TABPHAS . 'PRECONTRAINTE')) 'TABLE ') ;
  20. MESS 'INDICE ETAPE DOIT ETRE UNE TABLE' ;
  21. QUITTER PHASAGE ;
  22. FINSI ;
  23. FINSI ;
  24. SI (NON ( EXISTE TABPHAS 'LEVEES' )) ;
  25. MESS 'TABLE DES LEVEES ABSENTE' ;
  26. QUITTER PHASAGE ;
  27. FINSI ;
  28. SI (NEG (TYPE (TABPHAS . 'LEVEES')) 'TABLE ') ;
  29. MESS 'INDICE LEVEES DOIT ETRE UNE TABLE' ;
  30. QUITTER PHASAGE ;
  31. FINSI ;
  32. SI (NON ( EXISTE TABPHAS 'BLOCAGES' ) ) ;
  33. MESS 'BLOCAGES MECANIQUES ABSENTS' ;
  34. QUITTER PHASAGE ;
  35. SINON ;
  36. CLTOT=TABPHAS . 'BLOCAGES' ;
  37. FINSI ;
  38. NSOUSL=1 ;
  39. SI (EXISTE TABPHAS 'SOUS_LEVEES') ;
  40. NSOUSL= TABPHAS.'SOUS_LEVEES' ;
  41. FINSI ;
  42. NSOUSL = MAXI ( LECT 1 NSOUSL) ;
  43. NSOUSP=1 ;
  44. SI (EXISTE TABPHAS 'SOUS_PRECONTRAINTES') ;
  45. NSOUSP= TABPHAS.'SOUS_PRECONTRAINTES' ;
  46. FINSI ;
  47. NSOUSP = MAXI ( LECT 1 NSOUSP) ;
  48. LFLUAGE=FAUX ;
  49. SI ( EXISTE TABPHAS 'FLUAGE') ;LFLUAGE=VRAI ; FINSI ;
  50. LRETRAIT=FAUX ;
  51. SI ( EXISTE TABPHAS 'RETRAIT'); LRETRAIT=VRAI ; FINSI ;
  52. LRESTE=FAUX ;
  53. SI ( EXISTE TABPHAS 'MOD_RESTE'); LRESTE=VRAI ;
  54. SI (NON ( EXISTE TABPHAS 'MAT_RESTE' )) ;
  55. MESS 'MATERIAU DU RESTE NON INDIQUE' ;
  56. QUITTER PHASAGE ;
  57. FINSI ;
  58. FINSI ;
  59. TLEVEE = TABPHAS . 'LEVEES' ;
  60. NPRECO=0 ;
  61. SI LPRECO;TETAP=TABPHAS.'PRECONTRAINTE';NPRECO=DIME TETAP;FINSI ;
  62. NBLEVE= DIME TLEVEE ;
  63. 'SI'('EXIS' TABPHAS 'TEMPS_FINAL') ;
  64. TEMPSFI = TABPHAS.'TEMPS_FINAL' ;
  65. TEMPSGRA= TEMPSFI*100. ;
  66. 'SINON' ;
  67. 'MESS' 'IL MANQUE LE TEMPS FINAL'; QUITTER PHASAGE ;
  68. 'FINSI' ;
  69. 'SI'('EXIS' TABPHAS 'TEMPS_MAX');TEMPSGRA=TABPHAS.'TEMPS_MAX' ;
  70. 'FINSI' ;
  71. * preparation du stockage de résultats de fluage et retrait
  72. SI LFLUAGE ;
  73. EPFLUAGE=TABLE ;
  74. TABPHAS . 'DFLUAGE' = EPFLUAGE ;
  75. NOMREGF= TABPHAS . 'FLUAGE' ;
  76. TFLUTE=TABLE; TFLUEP=TABLE ; COMTFLU=0 ;
  77. TABPHAS . 'TFLUTE' = TFLUTE;
  78. TABPHAS . 'TFLUEP' = TFLUEP;
  79. FINSI ;
  80. SI LRETRAIT ;
  81. EPRETRAI=TABLE ;
  82. TABPHAS . 'DRETRAIT' = EPRETRAI ;
  83. NOMREGR = TABPHAS . 'RETRAIT' ;
  84. TRETTE=TABLE; TRETEP=TABLE ;
  85. TABPHAS . 'TRETTE' = TRETTE;
  86. TABPHAS . 'TRETEP' = TRETEP;
  87. FINSI ;
  88. *
  89. * calcul des differents chargement correspondant à chacune
  90. * des levées. on les stocke dans la table poilevee
  91. * MOTOUT sera le modele total sans les cables id MATOUT
  92. * GEOBET sera le maillage du beton
  93. POILEVEE=TABLE ;
  94. 'REPETER' FOR NBLEVE ;
  95. MO= TLEVEE . &FOR . 'MODELE' ;
  96. MA= TLEVEE . &FOR . 'MATERIAU' ;
  97. GEO= 'EXTR' MO 'MAILLAGE' ;
  98. 'SI' (( 'EGA' &FOR NBLEVE) 'ET' LRESTE) ;
  99. MO = MO 'ET' TABPHAS. 'MOD_RESTE' ;
  100. MA = MA 'ET' TABPHAS. 'MAT_RESTE' ;
  101. 'FINSI' ;
  102. MAS= 'MASSE' MO MA ;
  103. 'SI' ('EGA' &FOR 1) ;
  104. GEOBET=GEO ;
  105. MOTOUT = MO ;
  106. MATOUT = MA ;
  107. 'SINON' ;
  108. GEOBET = GEOBET 'ET' GEO ;
  109. MOTOUT = MOTOUT 'ET' MO ;
  110. MATOUT = MATOUT 'ET' MA ;
  111. 'FINSI' ;
  112. GG = 'MANU' 'CHPO' GEO 1 'UZ' -9.81 ;
  113. FPO= MAS * GG ;
  114. POILEVEE . &FOR = FPO ;
  115. FIN FOR ;
  116. *
  117. * calcul de la premiere levée
  118. * On introduit le poids propre de la levee 1 et c'est tout.
  119. * seule la premiere levée a une resistance, les autres sont divisées
  120. * par 1000
  121. * pendant les levees on ne prend pas en compte le poids du reste
  122. MATCAL= TLEVEE . 1 . 'MATERIAU' ;
  123. CLCAL = CLTOT ;
  124. 'SI' ( NBLEVE > 1) ;
  125. * on fabrique un materiau bidon
  126. 'REPETER' ADDIMO ( NBLEVE - 1 ) ;
  127. MA = TLEVEE . ( &ADDIMO + 1 ) . 'MATERIAU' ;
  128. YOU = (EXCO MA 'YOUN') * -0.9999 ;
  129. MOMA= MA + YOU ;
  130. MATCAL= MATCAL et MOMA ;
  131. 'FIN' ADDIMO ;
  132. 'FINSI' ;
  133. 'SI' LRESTE;MATCAL= MATCAL 'ET' TABPHAS . 'MAT_RESTE'; 'FINSI' ;
  134. * on accroche aussi les cables en leur donnant un module nul
  135. SI ( NPRECO > 0) ;IDETAP=0 ;
  136. REPETER BOETAP NPRECO ;
  137. IDETAP = IDETAP + 1 ;
  138. NDZONE = (DIME (TETAP . IDETAP) - 1) ;
  139. IDZON = 0 ;
  140. REPETER BOZONE NDZONE ;
  141. IDZON = IDZON + 1 ;
  142. MOBID = TETAP . IDETAP . IDZON . 'MODELE' ;
  143. mabid = TETAP . IDETAP . IDZON . 'MATERIAU' ;
  144. listcomp= 'EXTR' mabid 'COMP' ;
  145. COEFBID = 1.e-3 ;
  146. sectbid='EXCO' 'SECT' TETAP . IDETAP . IDZON . 'MATERIAU' ;
  147. sectbid= sectbid*COEFBID ;
  148. YOUNBID='EXCO' 'YOUN' TETAP . IDETAP . IDZON . 'MATERIAU' ;
  149. YOUNBID = COEFBID * YOUNBID ;
  150. 'SI' ( 'EXIS' listcomp 'TRACTION ') ;
  151. TRACBIO = COEFBID *
  152. (EXTR (TETAP . IDETAP . IDZON . 'TRACTION') 'ORDO') ;
  153. TRACBID = EVOL MANU 'EPS'
  154. (EXTR (TETAP . IDETAP . IDZON . 'TRACTION') 'ABSC')
  155. 'SIG (PA)' TRACBIO ;
  156. MATBID = MATE MOBID 'YOUN' YOUNBID 'NU' 0.3
  157. 'SECT' sectbid RHO 0.0000001 'TRAC' TRACBID ;
  158. 'SINON' ;
  159. MATBID = MATE MOBID 'YOUN' YOUNBID 'NU' 0.3
  160. 'SECT' sectbid RHO 0.0000001 ;
  161. 'FINSI' ;
  162. 'SI' (( IDZON + IDETAP) EGA 2) ;
  163. MODCABL=MOBID ;
  164. MATCABL=MATBID ;
  165. CLCABL= RELA 'ACCRO' (EXTR MOBID 'MAILLAGE') GEOBET ;
  166. 'SINON' ;
  167. MODCABL = MODCABL ET MOBID ;
  168. MATCABL = MATCABL ET MATBID ;
  169. CLTOT1 = RELA 'ACCRO' (EXTR MOBID 'MAILLAGE') GEOBET ;
  170. CLCABL = CLCABL ET CLTOT1 ;
  171. 'FINSI' ;
  172. FIN BOZONE ;
  173. FIN BOETAP ;
  174. MODCAL = MOTOUT ET MODCABL ;
  175. MATCAL = MATCAL ET MATCABL ;
  176. CLCAL= CLCABL ET CLTOT ;
  177. SINON ;
  178. MODCAL= MOTOUT ;
  179. CLCAL=CLTOT ;
  180. FINSI ;
  181. * determination d'un temps de calcul
  182. DTEMPS=0. ;
  183. SI ( nbleve > 1) ; dtemps = tlevee . 2 . 'INSTANT' * 0.001 ;
  184. SINON; SI (NPRECO > 0);DTEMPS= (TETAP . 1 . 'TPS') * 0.001; FINSI;
  185. FINSI ;
  186. 'SI' ('EGA' DTEMPS 0.) ; 'MESS' ' PROBLEME DE PAS DE TEMPS' ;
  187. 'QUITTER' PHASAGE ;
  188. 'FINSI' ;
  189. LTE = prog 0. DTEMPS TEMPSGRA ;
  190. LCOE= PROG 0. 1. 1. ;
  191. EVCH= EVOL MANU 'TEMPS' LTE 'COEF' LCOE ;
  192. FPO= poilevee.1 ;
  193. CHAPOI = CHARGE 'MECA' FPO EVCH ;
  194.  
  195. * appel a pasapas pour calculer la premiere levee ;
  196.  
  197. TABRES= TABLE ;
  198. TABPHAS.'TABRES' = TABRES ;
  199. TABRES . 'MODELE' = MODCAL ;
  200. TABRES . 'CARACTERISTIQUES' = MATCAL ;
  201. LISTTEMP = prog 0. dtemps ;
  202. TABRES . 'TEMPS_CALCULES'=LISTTEMP ;
  203. TABRES . 'BLOCAGES_MECANIQUES' = CLCAL ;
  204. TABRES . 'CHARGEMENT' = CHAPOI ;
  205. 'SI' ('EXIS' TABPHAS 'RIGIDITE_ADDITIONELLE' ) ;
  206. 'MESS' 'PRISE EN COMPTE DE RIGIDITE_ADDITIONELLE' ;
  207. TABRES . 'RIGIDITE_CONSTANTE' =
  208. TABPHAS . 'RIGIDITE_ADDITIONELLE' ;
  209. 'FINSI' ;
  210. PASAPAS TABRES ;
  211. TDER= DTEMPS ;
  212.  
  213. NUMLEV = 1 ;
  214. *messs ' fin premier appel a pasaspas';
  215. *
  216. * calcul du retrait pour tous les temps des levees
  217. *
  218. 'SI' LRETRAIT ;
  219. DEFONUL= 'ZERO' MODCAL 'DEFORMAT' ;
  220. TRETTE . 0 = 0.; TRETEP . 0 = DEFONUL ; COMRETR=0 ;
  221. 'SI' (NBLEVE > 1) ;
  222. REPETER BOURET ( NBLEVE - 1) ;
  223. NUMLEV=&BOURET + 1 ;
  224. TEMPCOUR= TLEVEE . NUMLEV . 'INSTANT' ;
  225. REPETER SOUSLEV ( NUMLEV - 1) ;
  226. MODBET=TLEVEE . &SOUSLEV . 'MODELE' ;
  227. RAYSECH=TLEVEE . &SOUSLEV . 'SECHAGE' ;
  228. TCOFFR= TLEVEE . &SOUSLEV . 'INSTANT' ;
  229. COEF1 = TLEVEE . &SOUSLEV . 'COEF1' ;
  230. COEF2 = TLEVEE . &SOUSLEV . 'COEF2' ;
  231. RET=RETRAIT NOMREGR MODBET RAYSECH
  232. TCOFFR TEMPCOUR COEF1 COEF2 ;
  233. 'SI' ( 'EGA' 1 &SOUSLEV) ;
  234. EPRETRAI. (&BOURET + 1)= RET +DEFONUL ;
  235. 'SINON' ;
  236. EPRETRAI. (&BOURET + 1)= EPRETRAI. (&BOURET + 1)+RET ;
  237. 'FINSI' ;
  238. 'FIN' SOUSLEV ;
  239. 'FIN' BOURET ;
  240. 'FINSI' ;
  241. 'FINSI' ;
  242. *messs ' fin travail sur le retrait ' ;
  243. *
  244. * calcul mecanique des autres levees
  245. * on calcule le temps précedent la levée à dtemps prés puis le
  246. * temps de la levée
  247. * Pour le premier des deux temps seul le fluage retrait est à
  248. * introduire si besoin est . Le materiau de la levee est remis
  249. * normalement pour le second temps et il faut aussi ajouter le poids
  250. * de la levée.
  251. TCONT= TABRES. 'CONTRAINTES' ;
  252. TTEMP= TABRES . 'TEMPS' ;
  253.  
  254. FLUAG1=ZERO MODCAL 'DEFORMAT' ;
  255. 'SI' LFLUAGE;
  256. TFLUTE . 0 = 0. ;
  257. TFLUEP . 0 = FLUAG1 ;
  258. COMTFLU = 0 ;
  259. 'FINSI';
  260.  
  261. 'SI' ( NBLEVE > 1) ;
  262. 'REPETER' COULEE ( NBLEVE - 1) ;
  263.  
  264. NUMLEV=&COULEE + 1 ;
  265.  
  266. * temps des calcul
  267. TCAL= TLEVEE . NUMLEV . 'INSTANT' - dtemps ;
  268. * mess ' travail sur la coulée numero ' numlev 'tcal ' tcal;
  269. CHACAL= CHAPOI ;
  270. * definition du chargement
  271. * recuperation du retrait
  272. 'SI' LRETRAIT ;
  273. COMRETR=COMRETR + 1 ;
  274. TRETTE . COMRETR = TCAL * 1. ;
  275. TRETEP . COMRETR = EPRETRAI . NUMLEV ;
  276. COMRETR=COMRETR + 1 ;
  277. TRETTE . COMRETR = TLEVEE . NUMLEV . 'INSTANT' * 1. ;
  278. TRETEP . COMRETR = EPRETRAI . NUMLEV ;
  279. CHARRET = CHAR 'DEFI' TRETTE TRETEP ;
  280. CHACAL = CHACAL ET CHARRET ;
  281. 'FINSI' ;
  282. * calcul du fluage
  283. 'SI' LFLUAGE ;
  284.  
  285. FLUAG1=ZERO MODCAL 'DEFORMAT' ;
  286. COMTFLU = COMTFLU + 1 ;
  287. TFLUTE . COMTFLU = TCAL * 1. ;
  288. 'REPETER' BOUFLU (NUMLEV - 1) ;
  289.  
  290. MOLE= TLEVEE . &BOUFLU . 'MODELE' ;
  291. TCOUL=TLEVEE . &BOUFLU . 'INSTANT' ;
  292. MALE= TLEVEE . &BOUFLU . 'MATERIAU' ;
  293. RAYSECH= TLEVEE . &BOUFLU . 'SECHAGE' ;
  294. COEF1 = TLEVEE . &BOUFLU . 'COEF1' ;
  295. COEF2 = TLEVEE . &BOUFLU . 'COEF2' ;
  296. NF= NUMLEV - &BOUFLU; NDE=(&BOUFLU - 1)*(1+NSOUSL) + 1 ;
  297. * mess ' on travaille sur levee ' &BOUFLU ' nf ' nf ' nde ' nde;
  298. 'REPETER' BOPAS NF ;
  299. NSI = ( &BOPAS - 1 ) * (1+NSOUSL) + NDE ;
  300. SIG1 =TCONT . NSI ;
  301. SIG0 =TCONT . (NSI - 1) ;
  302. DSIG= REDU ( SIG1 - SIG0) MOLE ;
  303. TCOUR = TTEMP . NSI ;
  304. *aa=maxi (abs dsig); mess ' maxi des cont ' aa ' nsi ' nsi ;
  305. FLUAG1 = FLUAG1 + ( PFLUAGE NOMREGF MOLE MALE DSIG
  306. RAYSECH TCOUR TCAL COEF2 TCOUL COEF1 ) ;
  307. 'FIN' BOPAS ;
  308. 'FIN' BOUFLU ;
  309. TFLUEP . COMTFLU = FLUAG1 ;
  310. COMTFLU = COMTFLU + 1 ;
  311. TFLUTE . COMTFLU = TLEVEE . NUMLEV . 'INSTANT' * 1.0 ;
  312. TFLUEP . COMTFLU = FLUAG1 ;
  313. CHARFLU = CHAR 'DEFINI' TFLUTE TFLUEP ;
  314. EPFLUAGE.NUMLEV=FLUAG1 ;
  315. CHACAL = CHACAL ET CHARFLU ;
  316. 'FINSI' ;
  317. 'SI' ( 'EGA' NSOUSL 1) ;
  318. LC= 'PROG' TCAL ;
  319. 'SINON' ;
  320. TPAS= (TCAL - TDER) / NSOUSL ;
  321. 'SI' ( 'EGA' NSOUSL 2) ;
  322. LC= 'PROG' (TDER+TPAS) TCAL ;
  323. 'SINON' ;
  324. LC= 'PROG' (TDER+TPAS) 'PAS' TPAS TCAL ;
  325. 'FINSI' ;
  326. 'FINSI' ;
  327. LISTTEMP=LISTTEMP 'ET' LC ;
  328. TABRES.'TEMPS_CALCULES'= LC ;
  329. TABRES.'CHARGEMENT' = CHACAL ;
  330. PASAPAS TABRES ;
  331. * redefinition des materiaux et du poids pour le temps exact
  332. * correspondant à la levée
  333. 'REPETER' ADDIMO NBLEVE ;
  334. MA = TLEVEE . &ADDIMO . 'MATERIAU' ;
  335. 'SI' ( &ADDIMO <EG NUMLEV ) ;
  336. 'SI' ( 'EGA' 1 &ADDIMO) ; MATCAL=MA; 'SINON' ;
  337. MATCAL=MATCAL ET MA ;
  338. 'FINSI' ;
  339. 'SINON' ;
  340. YOU = (EXCO MA 'YOUN') * -0.99999 ;
  341. MOMA= MA + YOU ;
  342. MATCAL= MATCAL ET MOMA ;
  343. 'FINSI' ;
  344. 'FIN' ADDIMO ;
  345. 'SI' LRESTE ; MATCAL=MATCAL 'ET' TABPHAS.'MAT_RESTE'; 'FINSI';
  346. 'SI' LPRECO; MATCAL=MATCAL 'ET' MATCABL ;'FINSI' ;
  347. * calcul du poids
  348. FPO = FPO + POILEVEE.NUMLEV ;
  349. * determination d'un temps de calcul
  350. TNOUCAL = TLEVEE . NUMLEV . 'INSTANT' ;
  351. LTE = prog 0. TCAL TNOUCAL TEMPSGRA ;
  352. LCOE= PROG 0. 0. 1. 1. ;
  353. EVCH= EVOL MANU 'TEMPS' LTE 'COEF' LCOE ;
  354. CHAPOI = CHARGE 'MECA' FPO EVCH ;
  355. CHACAL = CHAPOI ;
  356. 'SI' LRETRAIT ; CHACAL= CHACAL ET CHARRET; 'FINSI' ;
  357. 'SI' LFLUAGE ; CHACAL= CHACAL ET CHARFLU; 'FINSI' ;
  358. * mise a jour de la table
  359. tabres .'CARACTERISTIQUES' = MATCAL ;
  360. oubl (tabres.wtable) 'CARACTERISTIQUES' ;
  361. LISTTEMP=LISTTEMP 'ET' ( 'PROG' TNOUCAL) ;
  362. tabres.'TEMPS_CALCULES' = 'PROG' TNOUCAL ;
  363. tabres.'CHARGEMENT' = CHACAL ;
  364. pasapas tabres ;
  365. TDER = TNOUCAL ;
  366. 'FIN' COULEE ;
  367. 'FINSI' ;
  368. *
  369. * fin du traitement des coulées on passe à la précontrainte
  370. * On calcule le temps juste avant la mise en précontrainte
  371. * puis la mise en précontrainte. Pour la i eme precontrainte
  372. * on prend en compte la raideur des (i-1) premiers groupes de
  373. * cables
  374. 'SI' LPRECO;
  375. * on calcule d'abord le retrait pour tous les temps de
  376. * precontraintes
  377. *mess ' debut des precontraintes traitement du retrait';
  378. 'SI' LRETRAIT; NRET = EPRETRAI 'DIME' ;
  379. 'REPETER' BOURET NPRECO ;
  380. TEMPCOUR= TETAP . &BOURET . 'TPS' ;
  381. 'REPETER' SOUSLEV NUMLEV ;
  382. MODBET=TLEVEE . &SOUSLEV . 'MODELE' ;
  383. RAYSECH=TLEVEE . &SOUSLEV . 'SECHAGE' ;
  384. TCOFFR= TLEVEE . &SOUSLEV . 'INSTANT' ;
  385. COEF1 = TLEVEE . &SOUSLEV . 'COEF1' ;
  386. COEF2 = TLEVEE . &SOUSLEV . 'COEF2' ;
  387. RET = RETRAIT NOMREGR MODBET RAYSECH TCOFFR TEMPCOUR
  388. COEF1 COEF2 ;
  389. 'SI' ( 'EGA' 1 &SOUSLEV) ;
  390. EPRETRAI. (&BOURET + NRET)=RET + DEFONUL ;
  391. 'SINON' ;
  392. EPRETRAI.(&BOURET+NRET)=EPRETRAI.(&BOURET+NRET)+RET ;
  393. 'FINSI' ;
  394. 'FIN' SOUSLEV ;
  395. 'FIN' BOURET ;
  396. 'FINSI' ;
  397. * on calcule maintenant les chargements dues à la precontrainte,
  398. * on les mets dans les tables chpreco et sipreco
  399. CHPRECO=TABLE ;SIPRECO=TABLE ;
  400. 'REPETER' CAFO NPRECO ;
  401. NDZONE = ('DIME' TETAP . &CAFO ) - 1 ;
  402. IDZON = 0 ;
  403. 'REPETER' BOZONE NDZONE ;
  404. IDZON = IDZON + 1 ;
  405. 'SI' (EGA IDZON 1) ;
  406. FOPREC = (-1.) * ('BSIG'
  407. TETAP . &CAFO . IDZON . 'PREC'
  408. TETAP . &CAFO . IDZON . 'MODELE'
  409. TETAP . &CAFO . IDZON . 'MATERIAU') ;
  410. SIPREC = TETAP . &CAFO . IDZON . PREC ;
  411. 'SINON' ;
  412. FOPREC = FOPREC ET ((-1.) * (BSIG
  413. TETAP . &CAFO . IDZON . 'PREC'
  414. TETAP . &CAFO . IDZON . 'MODELE'
  415. TETAP . &CAFO . IDZON . 'MATERIAU')) ;
  416. SIPREC = SIPREC ET (TETAP .&CAFO. IDZON . PREC) ;
  417. 'FINSI' ;
  418. 'FIN' BOZONE ;
  419. EVPTOT = EVOL 'MANU' 'TPS' (PROG 0 TETAP.&CAFO.'TPS' TEMPSGRA)
  420. 'COEF' (PROG 0 1 1) ;
  421. CHPRECO . &CAFO = CHARG 'MECA' FOPREC EVPTOT ;
  422. SIPRECO . &CAFO= SIPREC ;
  423. 'FIN' CAFO ;
  424. * boucle sur la mise en precontrainte
  425. *mess ' debut de boucle sur precontrainte ' npreco;
  426. nfinlev= numlev * 2 + 1 ;
  427. 'REPETER' BOUPREC NPRECO ;
  428. *mess ' traitement de la precontrainte ' &bouprec;
  429. TCAL= TETAP . &BOUPREC . 'TPS' * 1. ;
  430. * calcul du chargement
  431. CHCAL= CHAPOI ;
  432. * on commence par le fluage jusqu'a (temps -dtemps)
  433. 'SI' LFLUAGE ;
  434. COMTFLU = COMTFLU + 1 ;
  435. FLUAG1=ZERO MODCAL 'DEFORMAT' ;
  436. TFLUTE . COMTFLU = TCAL - DTEMPS * 1. ;
  437. REPETER BOUFLU NUMLEV ;
  438. MOLE= TLEVEE . &BOUFLU . 'MODELE' ;
  439. MALE= TLEVEE . &BOUFLU . 'MATERIAU' ;
  440. TCOUL=TLEVEE . &BOUFLU . 'INSTANT' ;
  441. RAYSECH= TLEVEE . &BOUFLU . 'SECHAGE' ;
  442. COEF1 = TLEVEE . &BOUFLU . 'COEF1' ;
  443. COEF2 = TLEVEE . &BOUFLU . 'COEF2' ;
  444. NF= NUMLEV - &BOUFLU + &BOUPREC ;
  445. NDE=(&BOUFLU - 1) * (1+NSOUSL) + 1 ;
  446. NSI=NDE - (1+NSOUSL) ;
  447. NTES=NUMLEV - &BOUFLU + 2 ;
  448. *mess ' numero de levées ' &bouflu ' nf ' nf ' nde ' nde ' nsi ' nsi;
  449. REPETER BOPAS NF ;
  450. 'SI' ( < &BOPAS nfinlev ) ;
  451. NSI = NSI + 1 + NSOUSL ;
  452. 'SINON' ;
  453. NSI = NSI + 1 + NSOUSP ;
  454. 'FINSI' ;
  455. SIG1 =TCONT . NSI ;
  456. SIG0= TCONT . (NSI - 1) ;
  457. DSIG= REDU ( SIG1 - SIG0) MOLE ;
  458. TCOUR = TTEMP . NSI ;
  459. *aa= maxi ( abs dsig); mess 'maxi des cont ' aa ' nsi ' nsi;
  460. FLUAG1 = FLUAG1 + ( PFLUAGE NOMREGF MOLE MALE DSIG
  461. RAYSECH TCOUR TCAL COEF2 TCOUL COEF1 ) ;
  462. FIN BOPAS ;
  463. FIN BOUFLU ;
  464. TFLUEP . COMTFLU = FLUAG1 ;
  465. COMTFLU = COMTFLU + 1 ;
  466. TFLUTE . COMTFLU = TCAL ;
  467. TFLUEP . COMTFLU = FLUAG1 ;
  468. CHARFLU = CHAR 'DEFINI' TFLUTE TFLUEP ;
  469. CHCAL=CHCAL 'ET' CHARFLU ;
  470. 'FINSI' ;
  471. *mess ' fin calcul fluage prise en compte du retrait sans calcul' ;
  472. 'SI' LRETRAIT ;
  473. COMRETR = COMRETR + 1 ;
  474. TRETTE . COMRETR = TCAL - DTEMPS * 1. ;
  475. TRETEP . COMRETR = EPRETRAI .(NRET + &BOUPREC) ;
  476. COMRETR = COMRETR + 1 ;
  477. TRETTE . COMRETR = TCAL * 1. ;
  478. TRETEP . COMRETR = EPRETRAI .(NRET + &BOUPREC) ;
  479. CHRE= 'CHAR' 'DEFI' TRETTE TRETEP ;
  480. CHCAL = CHCAL 'ET' CHRE ;
  481. 'FINSI' ;
  482. MATCAL=MATOUT ;
  483. IDETAP=0 ;
  484. idecab=0;
  485. * on tue les groupes de cable non deja tendus
  486. *mess ' precontrainte du gropue &bouprec' &bouprec;
  487. 'REPETER' BOETAP NPRECO ;
  488. IDETAP = IDETAP + 1 ;
  489. NDZONE = (DIME TETAP . IDETAP) - 1 ;
  490. IDZON = 0 ;
  491. 'REPETER' BOZONE NDZONE ;
  492. IDZON = IDZON + 1 ;
  493. MOBID = (TETAP . IDETAP . IDZON . 'MODELE') ;
  494. 'SI' (< IDETAP (&BOUPREC - 0.01) ) ;
  495. MATBID = TETAP . IDETAP . IDZON . 'MATERIAU' ;
  496. 'SINON ' ;
  497. COEFBID = 1E-3 ;
  498. sectbid= EXCO 'SECT' TETAP.IDETAP.IDZON . 'MATERIAU' ;
  499. sectbid=sectbid * coefbid ;
  500. mabid= TETAP . IDETAP . IDZON . 'MATERIAU' ;
  501. LISTCOMP= 'EXTR' MABID 'COMP' ;
  502.  
  503. YOUNBID = EXCO 'YOUN'
  504. (TETAP . IDETAP . IDZON . 'MATERIAU');
  505. YOUNBID = COEFBID * YOUNBID ;
  506. 'SI' ('EXIS' LISTCOMP 'TRACTION' ) ;
  507. TRACBIO = COEFBID *
  508. (EXTR (TETAP . IDETAP . IDZON . 'TRACTION') 'ORDO') ;
  509. TRACBID = EVOL MANU 'EPS'
  510. (EXTR (TETAP . IDETAP . IDZON . 'TRACTION') 'ABSC')
  511. 'SIG (PA)' TRACBIO ;
  512. MATBID = MATE MOBID 'YOUN' YOUNBID 'NU' 0.3
  513. 'SECT' sectbid 'TRAC' TRACBID RHO 1. ;
  514. 'SINON' ;
  515. MATBID = MATE MOBID 'YOUN' YOUNBID 'NU' 0.3
  516. 'SECT' sectbid RHO 1. ;
  517. 'FINSI' ;
  518. 'FINSI' ;
  519. si (idecab ega 0); mmcabl=matbid;mmocab= mobid;idecab=1;sinon;
  520. mmcabl=mmcabl et matbid ;mmocab=mmocab et mobid;finsi;
  521. MATCAL = MATCAL ET MATBID ;
  522. 'FIN' BOZONE ;
  523. 'FIN' BOETAP ;
  524. * on ajoute la contrainte du dernier groupe tendu
  525. 'SI' ( 'NEG' &BOUPREC 1) ;
  526. NA = ('DIME' TCONT ) - 1 ;
  527. TCONT.NA= TCONT . NA + SIPRECO.(&BOUPREC - 1) ;
  528. TABRES.'CONTINUATION'.'CONTRAINTES'=
  529. TABRES.'CONTINUATION'.'CONTRAINTES' + SIPRECO.(&BOUPREC - 1);
  530. 'FINSI' ;
  531. * appel a Pasapas pour le temps (tcal - dtemps)
  532. TCALA=TCAL - DTEMPS ;
  533. 'SI' ( 'EGA' NSOUSP 1) ;
  534. LC= 'PROG' TCALA ;
  535. 'SINON' ;
  536. TPAS = (TCALA - TDER ) / NSOUSP ;
  537. 'SI' ( 'EGA' NSOUSP 2) ;
  538. LC = 'PROG' (TDER + TPAS) TCALA ;
  539. 'SINON' ;
  540. LC = 'PROG' (TDER + TPAS) 'PAS' TPAS TCALA ;
  541. 'FINSI' ;
  542. 'FINSI' ;
  543. tabres.'macable'=mmcabl; tabres.'mmocable'=mmocab;
  544. LISTTEMP=LISTTEMP 'ET' LC ;
  545. TABRES.'TEMPS_CALCULES' = LC ;
  546. TABRES.'CARACTERISTIQUES' = MATCAL ;
  547. oubl (tabres.wtable) 'CARACTERISTIQUES' ;
  548. TABRES.'CHARGEMENT' = CHCAL ;
  549. PASAPAS TABRES ;
  550. * on va calculer le temps TCAL
  551. * on ajoute le chargement du a la precontrainte
  552. CHCAL = CHCAL 'ET' CHPRECO.&BOUPREC ;
  553.  
  554. LISTTEMP = LISTTEMP 'ET' ( 'PROG' TCAL) ;
  555. TABRES.'TEMPS_CALCULES' = 'PROG' TCAL ;
  556. TABRES.'CHARGEMENT' = CHCAL ;
  557. PASAPAS TABRES ;
  558. TDER=TCAL ;
  559. 'FIN' BOUPREC ;
  560. * Il ne rest plus qu'a ajouter la raideur du dernier groupe
  561. * et la contrainte
  562. MATCAL=MATOUT ;
  563. IDETAP = 0 ;
  564. 'REPETER' BOETAP NPRECO ;
  565. IDETAP = IDETAP + 1 ;
  566. NDZONE = DIME TETAP . IDETAP - 1 ;
  567. IDZON = 0 ;
  568. 'REPETER' BOZONE NDZONE ;
  569. IDZON = IDZON + 1 ;
  570. MATCAL = MATCAL 'ET' TETAP . IDETAP . IDZON . 'MATERIAU' ;
  571. 'FIN' BOZONE ;
  572. 'FIN' BOETAP ;
  573. NA = ('DIME' TCONT ) - 1 ;
  574. TCONT.NA=TCONT . NA + SIPRECO. NPRECO ;
  575. TABRES.'CONTINUATION'.'CONTRAINTES'=
  576. TABRES.'CONTINUATION'.'CONTRAINTES' + SIPRECO. NPRECO ;
  577. * le finsi suivant est celui correspondant a 'SI' LPRECO
  578. 'FINSI' ;
  579. *
  580. * calcul du dernier temps tempsfi
  581. * chargement
  582. CHCAL=CHAPOI ;
  583. 'SI' LRETRAIT;NRET = (EPRETRAI 'DIME' ) + 1 ;
  584. TEMPCOUR= TEMPSFI ;
  585. 'REPETER' SOUSLEV NBLEVE ;
  586. MODBET=TLEVEE . &SOUSLEV . 'MODELE' ;
  587. RAYSECH=TLEVEE . &SOUSLEV . 'SECHAGE' ;
  588. TCOFFR= TLEVEE . &SOUSLEV . 'INSTANT' ;
  589. COEF1 = TLEVEE . &SOUSLEV . 'COEF1' ;
  590. COEF2 = TLEVEE . &SOUSLEV . 'COEF2' ;
  591. RET=RETRAIT NOMREGR MODBET RAYSECH
  592. TCOFFR TEMPCOUR COEF1 COEF2 ;
  593. 'SI' ('EGA' 1 &SOUSLEV) ;
  594. EPRETRAI. NRET= RET + DEFONUL ;
  595. 'SINON' ;
  596. EPRETRAI. NRET = EPRETRAI. NRET + RET ;
  597. 'FINSI' ;
  598. 'FIN' SOUSLEV ;
  599. COMRETR = COMRETR + 1 ;
  600. TRETTE . COMRETR = TEMPSFI * 1. ;
  601. TRETEP . COMRETR = EPRETRAI . NRET ;
  602. COMRETR = COMRETR + 1 ;
  603. TRETTE . COMRETR = TEMPSGRA * 1. ;
  604. TRETEP . COMRETR = EPRETRAI . NRET ;
  605. CHRE= 'CHAR' 'DEFINI' TRETTE TRETEP ;
  606. CHCAL = CHCAL 'ET' CHRE ;
  607. 'FINSI' ;
  608. 'SI' LFLUAGE ;
  609. COMTFLU = COMTFLU + 1 ;
  610. FLUAG1=ZERO MODCAL 'DEFORMAT' ;
  611. TFLUTE . COMTFLU = TEMPSFI * 1. ;
  612. 'REPETER' BOUFLU NBLEVE ;
  613. MOLE= TLEVEE . &BOUFLU . 'MODELE' ;
  614. MALE= TLEVEE . &BOUFLU . 'MATERIAU' ;
  615. TCOUL=TLEVEE . &BOUFLU . 'INSTANT' ;
  616. RAYSECH= TLEVEE . &BOUFLU . 'SECHAGE' ;
  617. COEF1 = TLEVEE . &BOUFLU . 'COEF1' ;
  618. COEF2 = TLEVEE . &BOUFLU . 'COEF2' ;
  619. NF= NUMLEV - &BOUFLU + NPRECO + 1 ;
  620. NDE=(&BOUFLU - 1) * (1+NSOUSL) + 1 ;
  621. NSI=NDE - (1+NSOUSL) ;
  622. NTES=NUMLEV - &BOUFLU + 2 ;
  623. REPETER BOPAS NF ;
  624. 'SI' ( < &BOPAS NTES ) ;
  625. NSI = NSI + 1 + NSOUSL ;
  626. 'SINON' ;
  627. NSI = NSI + 1 + NSOUSP ;
  628. 'FINSI' ;
  629. SIG1 =TCONT . NSI ;
  630. SIG0 =TCONT . (NSI - 1) ;
  631. DSIG= REDU ( SIG1 - SIG0) MOLE ;
  632. TCOUR = TTEMP . NSI ;
  633. *aa = maxi ( abs dsig) ;mess ' maxi cont ' aa ' nsi ' nsi;
  634. FLUAG1 = FLUAG1 + ( PFLUAGE NOMREGF MOLE MALE DSIG
  635. RAYSECH TCOUR TEMPSFI COEF2 TCOUL COEF1 ) ;
  636. 'FIN' BOPAS ;
  637. 'FIN' BOUFLU ;
  638. TFLUEP . COMTFLU = FLUAG1 ;
  639. COMTFLU = COMTFLU + 1 ;
  640. TFLUTE . COMTFLU = TEMPSGRA * 1. ;
  641. TFLUEP . COMTFLU = FLUAG1 ;
  642. CHARFLU = 'CHAR' 'DEFI' TFLUTE TFLUEP ;
  643. CHCAL=CHCAL 'ET' CHARFLU ;
  644. 'FINSI' ;
  645. 'SI' ( 'EGA' NSOUSP 1) ;
  646. LC= 'PROG' TEMPSFI ;
  647. 'SINON' ;
  648. TPAS= (TEMPSFI - TDER) / NSOUSP ;
  649. 'SI' ( 'EGA' NSOUSP 2) ;
  650. LC= 'PROG' (TDER+TPAS) TEMPSFI ;
  651. 'SINON' ;
  652. LC= 'PROG' (TDER+TPAS) 'PAS' TPAS TEMPSFI ;
  653. 'FINSI' ;
  654. 'FINSI' ;
  655. LISTTEMP=LISTTEMP 'ET' LC ;
  656. TABRES.'TEMPS_CALCULES' = LC ;
  657. TABRES.'CARACTERISTIQUES' = MATCAL ;
  658. oubl (tabres.wtable) 'CARACTERISTIQUES' ;
  659. TABRES.'CHARGEMENT' = CHCAL ;
  660. PASAPAS TABRES ;
  661.  
  662. TABPHAS.'TABLE_SUITE' = TABRES ;
  663.  
  664. FINPROC TABPHAS ;
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales