Télécharger dyna16.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dyna16.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ***************************************
  5. *
  6. * Portique soumis à un déplacement différentiel des appuis
  7. *
  8. * Calcul sur un mode dynamique et les modes statiques
  9. *
  10. * D. Combescure aout 2006
  11. *
  12. ***************************************
  13.  
  14. ************************************************************************
  15. * OPTIONS
  16. ************************************************************************
  17.  
  18. *GRAPH = VRAI;
  19. GRAPH = FAUX;
  20. *COMPLET = VRAI;
  21. COMPLET = FAUX;
  22. *
  23. opti dime 2 elem seg2 mode plan cont;
  24.  
  25. ************************************************************************
  26. * MAILLAGE
  27. ************************************************************************
  28.  
  29. H = 3.;
  30. L = 4.;
  31. p1 = ((-0.5)*L) 0.;
  32. vv = 0. H;
  33. p1h = p1 plus vv;
  34. p2 = (0.5*L) 0.;
  35. p2h = p2 plus vv;
  36. n1 = 10;
  37. n2 = 20;
  38. a = 0.25;
  39. b = a;
  40. e1 = 30000.D6;
  41. ro1 = 2400.;
  42. nu1 = 0.30;
  43. sec1 = a*b;
  44. in1 = (1./12.)*(b*(a**3));
  45. lig1 = (d n1 p1 p1h) et (d n1 p2 p2h) et (d n2 p1h p2h);
  46.  
  47. ************************************************************************
  48. * MODELES, MATERIAU ET MATRICES
  49. ************************************************************************
  50.  
  51. mod1 = MODE lig1 mecanique elastique TIMO;
  52. mat1 = MATE mod1 YOUN E1 NU nu1 RHO ro1
  53. SECT sec1 INRZ in1;
  54. KK1 = rigi mod1 mat1;
  55. CC1 = 0.001*KK1;
  56. MM1 = mass mod1 mat1;
  57. bl1 = BLOQ UY RZ p1;
  58. bl2 = BLOQ UY RZ p2;
  59. bl1u = BLOQ UX p1;
  60. bl2u = BLOQ UX p2;
  61. bltot = bl1 et bl2 et bl1u et bl2u;
  62. fh1 = DEPI bl1u 1.;
  63. fh2 = DEPI bl2u 1.;
  64. *
  65. ************************************************************************
  66. * MODE PROPRE
  67. ************************************************************************
  68. *
  69. vib1 = vibr proche (prog 1.) (lect 1) (KK1 et bltot) MM1;
  70. vib1b= vib1 . 'MODES' ;
  71. nmod = (dime (vib1b) ) - 2;
  72. repeter lab1 nmod;
  73. dep1 = vib1b. &lab1 . DEFORMEE_MODALE;
  74. fr1 = vib1b. &lab1 . FREQUENCE;
  75. MESS &lab1 ' : ' fr1 'Hz';
  76. * trac (defo lig1 dep1) ;
  77. fin lab1;
  78.  
  79. ************************************************************************
  80. * CALCUL TEMPOREL
  81. ************************************************************************
  82. *
  83. * Définition du chargement
  84. *
  85. T1 = 0.02;
  86. SI COMPLET;
  87. tfin = 50.*T1;
  88. SINON;
  89. tfin = 2.*T1;
  90. FINSI;
  91. ltemps = prog 0. T1 (2.*T1) (3.*T1) (4.*T1) 10.;
  92. lpacc1 = prog 0 1. -1. 0. 0. 0.;
  93. lpacc2 = prog 0 0. 1. -1. 0. 0.;
  94. dt = T1/20.;
  95. ltime = prog 0 pas dt 10.;
  96. evacc1 = evol manu ltime (ipol ltime ltemps lpacc1);
  97. evdep1 evvit1 = insi evacc1;
  98. evacc2 = evol manu ltime (ipol ltime ltemps lpacc2);
  99. evdep2 evvit2 = insi evacc2;
  100. prtimeb = prog 0 pas dt tfin;
  101. prdep1 = extr evdep1 ordo;
  102. prdep2 = extr evdep2 ordo;
  103. *
  104. *--------------------------------------------------------
  105. *
  106. * Méthode 1 => on impose le déplacement
  107. * (calcul direct sur base physique avec DYNAMIC)
  108. *
  109. *---------------------------------------------------------
  110. cha1 = (char fh1 evdep1) et (char fh2 evdep2);
  111. *
  112. tab1 = table;
  113. tab1.'DEPL' = manu chpo lig1 2 ux 0 uy 0;
  114. tab1.'VITE' = manu chpo lig1 2 ux 0 uy 0;
  115. tab1.'CHAR' = cha1;
  116. tab1.'RIGI' = (KK1 et bltot);
  117. tab1.'AMOR' = CC1;
  118. tab1.'MASS' = MM1;
  119. tab1.'FREQ' = (0.25/dt);
  120. tab1.'INST' = prtimeb;
  121. tab1.'SAUV' = VRAI;
  122. tab2 = dynamic tab1;
  123. nn = dime tab2;
  124. prp1h = prog;
  125. repeter lab1 nn;
  126. si (ega &lab1 1);
  127. deft = defo lig1 (tab2 . &lab1 . DEPL) 100;
  128. sinon;
  129. deft = deft et
  130. (defo lig1 (tab2 . &lab1 . DEPL) 100);
  131. finsi;
  132. prp1h = prp1h et
  133. (prog (extr (tab2 . &lab1 . DEPL) p1h UX));
  134. fin lab1;
  135. Ev1UX1 = evol rouge manu prtimeb prp1h;
  136. SI GRAPH;
  137. dess (evol manu prtimeb prp1h);
  138. trac deft anime;
  139. FINSI;
  140. *---------------------------------------------------------------
  141. *
  142. * Méthode 2 => on impose -M*[K**-1*uimpose] au second membre
  143. * (calcul direct sur base physique avec DYNAMIC)
  144. *
  145. *---------------------------------------------------------------
  146. *
  147. * mode statique (à la main)
  148. *
  149. depsta1 = reso (KK1 et bltot) fh1;
  150. depsta2 = reso (KK1 et bltot) fh2;
  151. *
  152. fh12 = (-1.)*MM1*depsta1;
  153. fh22 = (-1.)*MM1*depsta2;
  154. cha2 = (char fh12 evacc1) et (char fh22 evacc2);
  155. *
  156. tab1 = table;
  157. tab1.'DEPL' = manu chpo lig1 2 ux 0 uy 0;
  158. tab1.'VITE' = manu chpo lig1 2 ux 0 uy 0;
  159. tab1.'CHAR' = cha2;
  160. tab1.'RIGI' = (KK1 et bltot);
  161. tab1.'AMOR' = CC1;
  162. tab1.'MASS' = MM1;
  163. tab1.'FREQ' = (0.25/dt);
  164. tab1.'INST' = prtimeb;
  165. tab1.'SAUV' = VRAI;
  166. tab2 = dynamic tab1;
  167. nn = dime tab2;
  168. prp1h2 = prog;
  169. prp1h2t = prog;
  170. repeter lab2 nn;
  171. depj = (tab2 . &lab2 . DEPL);
  172. depjt = depj +
  173. ((extr prdep1 &lab2)*depsta1)
  174. + ((extr prdep2 &lab2)*depsta2);
  175. si (ega &lab2 1);
  176. def2 = defo lig1 depj 1000;
  177. deft2 = defo lig1 depjt 1000;
  178. sinon;
  179. deft2 = deft2 et
  180. (defo lig1 depjt 1000);
  181. finsi;
  182. prp1h2 = prp1h2 et
  183. (prog (extr depj p1h UX));
  184. prp1h2t = prp1h2t et
  185. (prog (extr depjt p1h UX));
  186. fin lab2;
  187. ta = table;
  188. ta.2 = 'TIRR';
  189. ta.3 = 'TIRL';
  190. ta.4 = 'TIRL';
  191. Ev2UX1 = evol rouge manu prtimeb prp1h2t;
  192.  
  193. *------------------------------------------------------------------
  194. *
  195. * Méthode 3=> superposition de solution statique et dynamique
  196. * (calcul direct sur base modale avec DYNE)
  197. *
  198. *------------------------------------------------------------------
  199. vib1 = vibr proche (prog 1.) (lect 1)
  200. (KK1 et bl1 et bl2 et bl1u et bl2u) MM1 'SOLU';
  201. SPLA1=STRU (KK1 et bl1 et bl2 et bl1u et bl2u) MM1 ;
  202. ELM1=CLST SPLA1 BL1u;
  203. ELM2=CLST SPLA1 BL2u;
  204. PR1=PROG 1. ;
  205. LIUX=(RELA ELM1 LX PR1) et (RELA ELM2 LX PR1);
  206. SOL1 = SOLS LIUX SPLA1;
  207. BASE1 = BASE SPLA1 VIB1 LIUX SOL1;
  208. *
  209. MODYN1 = TRADUIRE (EXTR BASE1 MODE);
  210. MOSTA1 = TRADUIRE (EXTR BASE1 STAT);
  211. *
  212. depsta1 = MOSTA1. 1 . DEFORMEE_MODALE;
  213. fh12 = (-1.)*MM1*depsta1;
  214. depsta2 = MOSTA1. 2 . DEFORMEE_MODALE;
  215. fh22 = (-1.)*MM1*depsta2;
  216. cha3 = (char fh12 evacc1) et (char fh22 evacc2);
  217. *
  218. vib1c= traduire vib1;
  219. tbas1 = table 'BASE_MODALE';
  220. tbas1.'MODES' = vib1c;
  221. *
  222. TRIG = TABLE 'RAIDEUR_ET_MASSE';
  223. TRIG.'RAIDEUR' = pjba tbas1 (KK1 et bl1 et bl2 et bl1u et bl2u) ;
  224. TRIG.'MASSE' = pjba tbas1 MM1;
  225. TAMOR = TABLE 'AMORTISSEMENT';
  226. TAMOR . 'AMORTISSEMENT' = PJBA tbas1 CC1;
  227. TCHAR = TABLE 'CHARGEMENT' ;
  228. TCHAR.'BASE_A' = pjba tbas1 cha3;
  229. *
  230. TSORT = TABLE 'SORTIE' ;
  231. TSORV = TABLE 'VARIABLE' ;
  232. TSORT.'VARIABLE' = TSORV ;
  233. TSORV.'VITESSE' = VRAI;
  234. TSORV.'DEPLACEMENT' = VRAI ;
  235. TSORV.'ACCELERATION' = VRAI ;
  236. *
  237. DTEX = (pi/12.6)/100.;
  238. NTT = ENTIER (tfin/DTEX);
  239. *
  240. * Appel à DYNE
  241. *
  242. TRESU = DYNE DE_VOGELAERE TRIG TAMOR TCHAR
  243. NTT DTEX TSORT ;
  244.  
  245.  
  246. ************************************************************************
  247. * POST-TRAITEMENT
  248. ************************************************************************
  249. *
  250. Ev3UXD1 = EVOL VERT RECO TRESU tbas1 'DEPL' P1h UX ;
  251. EV3UXS1 = EVOL MANU (EXTR Ev3UXD1 ABSC)
  252. (ipol (EXTR Ev3UXD1 ABSC) (extr evdep1 absc)
  253. ((extr evdep1 ordo)*(extr depsta1 p1h ux)));
  254. EV3UXS2 = EVOL MANU (EXTR Ev3UXD1 ABSC)
  255. (ipol (EXTR Ev3UXD1 ABSC) (extr evdep2 absc)
  256. ((extr evdep2 ordo)*(extr depsta2 p1h ux)));
  257. Ev3UX1 = EVOL MANU (EXTR Ev3UXD1 ABSC)
  258. ((EXTR Ev3UXD1 ORDO) + (EXTR Ev3UXS1 ORDO)
  259. + (EXTR Ev3UXS2 ORDO));
  260. *
  261. SI GRAPH;
  262. TRAC (DEFO LIG1 (MODYN1. 1 . DEFORMEE_MODALE));
  263. TRAC ((DEFO LIG1 depsta1) et
  264. (DEFO LIG1 depsta1 0. ROUG));
  265. TRAC ((DEFO LIG1 depsta2) et
  266. (DEFO LIG1 depsta2 0. ROUG));;
  267. TRAC ((DEFO LIG1 (depsta1 + depsta2)) et
  268. (DEFO LIG1 depsta2 0. ROUG));;
  269. trac lig1 (vecteur fh12 fx fy);
  270. trac lig1 (vecteur fh22 fx fy);
  271. trac lig1 (vecteur (fh12 et fh22) fx fy);
  272. dess (evacc1 et (evacc2 coul rouge)) xbord 0. 0.20;
  273. dess (evdep1 et (evdep2 coul rouge)) xbord 0. 0.20;
  274. DESS (Ev3UXD1 et Ev3UXS1 et Ev3UXS2) xbord 0 0.2;
  275. DESS (Ev1UX1 et Ev2UX1 et Ev3UX1) xbord 0. 1.;
  276. FINSI;
  277. *
  278. TEST = MAXI (PROG
  279. ((MAXI (EXTR Ev2UX1 ORDO)) - (MAXI (EXTR Ev1UX1 ORDO)))
  280. ((MAXI (EXTR Ev3UX1 ORDO)) - (MAXI (EXTR Ev1UX1 ORDO)))) ABS;
  281. SI (TEST > 1.D-5);
  282. ERR 4;
  283. LIST TEST;
  284. FINSI;
  285. *
  286. FIN;
  287. *
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  

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