Télécharger newmod.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : newmod.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. * chute d'une barre dans un conduit uniforme
  5. * comparaison liaison point_plan_frottement et calcul analytique ;
  6. * ==> exploitation nombre de choc et temps de chute
  7. opti dime 3 mode trid elem seg2 trac x ;
  8. OPTION epsilon lineaire;
  9.  
  10. graph = 'N' ;
  11. complet = 'N' ;
  12. *geometrie * ;
  13. p1= 0. 0. 0. ;
  14. p2= 0.5 0. 0. ;
  15. P3 = 1. 0. 0. ;
  16.  
  17. barre = p1 droi 1 p2 droi 1 p3 ;
  18.  
  19. * modele *
  20. al1 = MODE barre mecanique tuya ;
  21. car1 = 'CARA' al1 epai 33.75e-3 rayo 33.75e-3;
  22.  
  23.  
  24. * calcul des masses volumiques equivalentes *
  25. ro1 = 1400. ;
  26. mat1 = MATE al1 youn 2e11 nu 0.3 rho ro1 ;
  27. rig1 = rigi al1 ( car1 et mat1);
  28.  
  29. * conditions aux limites
  30. blox = bloq uy uz rx ry rz barre ;
  31. bloy = bloq ux uz rx ry rz barre ;
  32. blorz = bloq ux uz rx ry barre ;
  33. blop2 = bloq depla p2 ;
  34. **************************************
  35. rigx = rig1 et blox ;
  36. **************************************
  37. *
  38. **************************************
  39. rigy = rig1 et bloy ;
  40. **************************************
  41. *
  42. **************************************
  43. rigrz = rig1 et blorz et blop2 ;
  44. **************************************
  45. *
  46. **************************************
  47. * matrice de masse ;
  48. **************************************
  49. mas1 = mass al1 ( car1 et mat1);
  50. *
  51. **************************************
  52. * vibration suivant x ;
  53. tmx=vibr inter 0. 1. basse 1 rigx mas1 tbas ;
  54. nnor (tmx . modes) ( mots ux ) ;
  55. *
  56. * vibration suivant y ;
  57. tmy=vibr inter 0. 1. basse 1 rigy mas1 tbas ;
  58. nnor (tmy . modes) ( mots uy ) ;
  59. *
  60. * vibration suivant rz ;
  61. tmrz=vibr inter 0. 1. basse 1 rigrz mas1 tbas ;
  62. *tmrz=vibr simul 0.001 1 rigrz mas1 tbas ;
  63. nnor (tmrz . modes) ( mots uy ) ;
  64.  
  65. *******************************************
  66. * assemblage des bases modales
  67. *******************************************
  68. tbas_m = table base_modale ;
  69. tb1 = table base_de_modes ;
  70. tbas_m . modes = tb1 ;
  71. tb1 . maillage = barre ;
  72. tb1 . 1 = tmx . modes . 1 ;
  73. tb1 . 2 = tmy . modes . 1 ;
  74. tb1 . 3 = tmrz . modes . 1 ;
  75.  
  76. **************************************************************************
  77. * etape 0
  78. * calcul PASAPAS en utilisant modele NEWMARK MODAL
  79. *
  80. ma1ux = manu poi1 tb1 . 1 . point_repere ;
  81. mo1ux = mode ma1ux mecanique elastique modal ;
  82. ca1ux = mate mo1ux freq tb1 . 1 . frequence
  83. mass tb1 . 1 . masse_generalisee defo tb1 . 1 . deformee_modale ;
  84. ma1uy = manu poi1 tb1 . 2 . point_repere ;
  85. mo1uy = mode ma1uy mecanique elastique modal ;
  86. ca1uy = mate mo1uy freq tb1 . 2 . frequence
  87. mass tb1 . 2 . masse_generalisee defo tb1 . 2 . deformee_modale ;
  88. ma1rz = manu poi1 tb1 . 3 . point_repere ;
  89. mo1rz = mode ma1rz mecanique elastique modal ;
  90. ca1rz = mate mo1rz freq tb1 . 3 . frequence
  91. mass tb1 . 3 . masse_generalisee defo tb1 . 3 . deformee_modale ;
  92. mo_mod = mo1ux et mo1uy et mo1rz;
  93. ca_mod = ca1ux et ca1uy et ca1rz ;
  94. **************************************************
  95. * suppression des multiplicateurs de lagrange
  96. * trace des deformeees
  97. **************************************************
  98. i = 0 ;
  99. repeter enlagr 3 ;
  100. i = i + 1 ;
  101. def1 = tb1 . i .'DEFORMEE_MODALE' ;
  102. tb1 . i .'DEFORMEE_MODALE' = enleve def1 lx ;
  103. fin enlagr ;
  104.  
  105. I = 0 ;
  106. tev_def = table ;
  107. REPETER Bmod 3 ;
  108. I=I+1;
  109.  
  110. def_mod = tbas_m . modes . i .'DEFORMEE_MODALE' ;
  111. * DEF11 = DEFO barre DEF1 1.2 ;
  112. * DEF10 = DEFO barre DEF1 0. ;
  113. tev_def.i = evol rose chpo def_mod uy barre ;
  114. TREQ1 = tbas_m . modes . i .'FREQUENCE' ;
  115. mg = tbas_m . modes . i .'MASSE_GENERALISEE' ;
  116. LIST MG ;
  117.  
  118. FIN Bmod ;
  119. *
  120. tabsymb = table ;
  121. tabsymb.1 = 'MARQ TRIA TITR M1' ;
  122. tabsymb.2 = 'MARQ CROI TITR M2' ;
  123. tabsymb.3 = 'MARQ ETOI TITR M3' ;
  124. tabsymb.4 = 'MARQ ROND TITR M4' ;
  125. titre ' modes de corps rigides ' ;
  126. *
  127. *dess (tev_def.1 et tev_def.2 et tev_def.3) lege tabsymb ;
  128. *********************************************************
  129. * calcul
  130. * 1ere etape : avec les liaisons POINT_PLAN_FROTTEMENT
  131. **********************************************************
  132. *
  133. * calcul parametre par : impulsion initiale
  134. t_qp30 = table ;
  135. t_qp30 . 1 = 0.05 ;
  136. t_qp30 . 2 = 0.01 ;
  137. t_qp30 . 3 = 0.1 ;
  138. * ... et coefficient de frottement
  139. t_mu = table ;
  140. t_mu . 1 = 0.5 ;
  141. t_mu . 2 = 0.1 ;
  142. t_mu . 3 = 1. ;
  143. * sorties : chute
  144. t_ux = table ;
  145. * ... force normale
  146. t_fn = table ;
  147. * ... deplacement
  148. t_uy = table ;
  149. * ... frottement
  150. t_ft = table ;
  151. *****************************
  152. * chargement
  153. *****************************
  154. tchar = table chargement;
  155.  
  156. chp1 = manu chpo barre 1 ux 9.81 ;
  157. f1 = mas1 * chp1 ;
  158. pjf = pjba f1 tbas_m ;
  159.  
  160. ltt=prog 0. 6.;
  161. evt1 = evol manu ltt ( prog 1. 1. ) ;
  162.  
  163. ch1 = char meca pjf evt1;
  164. tchar.base_a = ch1 ;
  165. *
  166. *********************************************
  167. * Donnees des constantes
  168. *********************************************
  169. * Nombre de pas Duree du pas de temps Temps d'etude
  170. *npc=1;
  171. *nt2= 200 ;dt2 = 0.01 ;
  172. dt1 = 0.1 ;
  173. l_cal = prog 0. pas dt1 (dt1*55) ;
  174.  
  175. * vue de la barre
  176. p_photo = (prog 0.9 1.7) ;
  177. *********************************************
  178. * amortissement
  179. *********************************************
  180. lam = prog 3 * 0. ;
  181.  
  182. MATAMOR = AMOR TBAS_M LAM ;
  183. TAMOR = TABLE 'AMORTISSEMENT' ;
  184. TAMOR.'AMORTISSEMENT' = MATAMOR ;
  185. **
  186. **debproc chuchoc qp30*flottant c_mu*flottant ;
  187. ****
  188. qp30 = t_qp30 . 3 ; c_mu =t_mu . 1;
  189.  
  190. *********************************************
  191. * conditions initiales
  192. *********************************************
  193. pk = tbas_m . modes . 3 . point_repere ;
  194. pkx = tbas_m . modes . 1 . point_repere ;
  195.  
  196. CPID = manu chpo barre 1 alfa 0. ;
  197. CPIV = manu chpo pk 1 alfa qp30 ;
  198.  
  199. tinit = table initial;
  200. tinit . 'DEPLACEMENT' = CPID ;
  201. tinit . 'VITESSE' = CPIV ;
  202. *---------------------------------------------
  203. y_gui = 0.083 ; c_mu = 0.7 ;
  204.  
  205.  
  206. * on essaye en modal
  207. *
  208. gui_gau = rela mini 1. alfa pk ;
  209. jeu_gau = depi gui_gau (-1.*y_gui) ;
  210. gui_dro = rela maxi 1. alfa pk ; jeu_dro = depi gui_dro y_gui ;
  211. ev2al = evol manu (prog 0. 1.) (prog 1. 1.) ;
  212. ch2 = char dimp (jeu_gau et jeu_dro) ev2al ;
  213.  
  214. mo_gau = mode ma1rz liaison newmark modal ;
  215. ca_gau = mate mo_gau jeu (-1.*y_gui) frot c_mu mofr mo1ux ;
  216. mo_dro = mode ma1rz liaison newmark modal ;
  217. ca_dro = mate mo_dro jeu y_gui frot c_mu mofr mo1ux;
  218.  
  219. tbar2 = table 'PASAPAS' ;
  220. tbar2. dynamique = vrai ;
  221. tbar2 . modele = mo_mod et mo_gau et mo_dro ;
  222. tbar2 . caracteristiques = ca_mod et ca_gau et ca_dro ;
  223. tbar2 . chargement = ch1 ;
  224. *tbar2 . chargement = ch1 et ch2 ;
  225. *tbar2 . blocages_mecaniques = gui_gau et gui_dro ;
  226. tbar2 . vitesses = table ;
  227. tbar2 . vitesses . 0 = cpiv ;
  228. tbar2 . temps_calcules = l_cal ;
  229. pasapas tbar2 ;
  230.  
  231. abc2 = prog ; ord2 = prog ; odf2 = prog ; ordy2 = prog ;
  232. ofn2 = prog 0. ;oft2 = prog 0.;
  233. repeter bdbar2 (dime tbar2 . temps) ;
  234. ii2 = &bdbar2 - 1;
  235. abc2 = abc2 et (prog tbar2 . temps . ii2) ;
  236. ord2 = ord2 et (prog (extr tbar2 . deplacements . ii2 pk alfa));
  237. odf2 = odf2 et (prog (extr tbar2 . deplacements . ii2 pkx alfa));
  238. dlig11 = reco tbar2 . deplacements . ii2 mo_mod ca_mod ;
  239. ordy2 = ordy2 et (prog (extr dlig11 uy p1)) ;
  240. si (ii2 > 0 ) ;
  241. chlia_2 = exco tbar2 . variables_internes . ii2 flia noid ;
  242. nch_2 = extr chlia_2 nbzo ;
  243. si (nch_2 > 0 ) ;
  244. xfn2 = 0. ; xft2 = 0. ;
  245. repeter bli_2 nch_2 ;
  246. xfn2 = xfn2 + (extr (extr chlia_2 flia &bli_2 1 1) pk falf) ;
  247. xft2 = xft2 + (extr (extr chlia_2 flia &bli_2 1 1) pkx falf) ;
  248. fin bli_2 ;
  249. ofn2 = ofn2 et (prog xfn2) ; oft2 = oft2 et (prog xft2) ;
  250. sinon ;
  251. ofn2 = ofn2 et (prog 0.) ; oft2 = oft2 et (prog 0.) ;
  252. finsi ;
  253. finsi ;
  254. si (ega ii2 0 ) ;
  255. deflig11 = defo dlig11 barre 2. vert ;
  256. sinon ;
  257. deflig11 = deflig11 et (defo dlig11 barre 2. vert) ;
  258. finsi ;
  259. fin bdbar2 ;
  260. deflig0 = defo dlig11 barre 0. rouge ;
  261. si (neg graph 'N') ;
  262. trac (-5. 0. 10.) (deflig11 et deflig0) anim ;
  263. finsi ;
  264. ev2dep = evol manu abc2 ord2 ;
  265. ev2dex = evol manu abc2 odf2 ;
  266. ev2yp1 = evol manu abc2 ordy2 ;
  267. ev2fn = evol manu abc2 ofn2 ; ev2ft = evol manu abc2 oft2 ;
  268. si (neg graph 'N') ;
  269. dess (ev2dep et ev2yp1 ) titre ' deplacement mode rotation ' ;
  270. dess ev2dex titre ' deplacement mode translation ' ;
  271. dess (ev2fn)
  272. titre ' reaction normale mode rotation ' ;
  273. finsi ;
  274. t_ux . 1 = ev2dex ;
  275. t_fn . 1 = ev2fn;
  276. t_uy . 1 = ev2yp1 ;
  277. t_ft . 1 = ev2ft ;
  278. *----------------------------------------------
  279. * mixons
  280. *----------------------------------------------
  281. DT3 = 0.001 ;
  282. si (ega complet 'O') ;
  283. l_cal3 = prog 0. pas dt3 (dt1*55) ;
  284. sinon ;
  285. l_cal3 = prog 0. pas dt3 (dt3*4) ;
  286. finsi ;
  287.  
  288. maip1 = manu poi1 p1 ;
  289. mopl1 = mode maip1 liaison point_plan frottement ;
  290. capl1 = mate mopl1 jeu y_gui normale (0 1 0) raideur 1.e6
  291. glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;
  292.  
  293. mopl2 = mode maip1 liaison point_plan frottement ;
  294. capl2 = mate mopl2 jeu y_gui normale (0 -1 0) raideur 1.e6
  295. glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;
  296.  
  297. maip3 = manu poi1 p3 ;
  298. mopl3 = mode maip3 liaison point_plan frottement ;
  299. capl3 = mate mopl3 jeu y_gui normale (0 1 0) raideur 1.e6
  300. glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;
  301.  
  302. mopl4 = mode maip3 liaison point_plan frottement ;
  303. capl4 = mate mopl4 jeu y_gui normale (0 -1 0) raideur 1.e6
  304. glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;
  305. tbar3 = table 'PASAPAS' ;
  306. tbar3 . dynamique = vrai ;
  307. *tbar3 . modele = mo_mod et mopl1 et mopl2 et mopl3 et mopl4;
  308. *tbar3 . caracteristiques = ca_mod et capl1 et capl2 et capl3 et capl4;
  309. tbar3 . modele = mo_mod et mo_dro et mopl2 et mopl3 ;
  310. tbar3 . caracteristiques = ca_mod et ca_dro et capl2 et capl3 ;
  311. tbar3 . chargement = ch1 ;
  312. tbar3 . vitesses = table ;
  313. tbar3 . vitesses . 0 = cpiv ;
  314. tbar3 . temps_calcules = l_cal3 ;
  315. pasapas tbar3 ;
  316.  
  317. abc3 = prog ; ord3 = prog ; odf3 = prog ;ordy3 = prog; ofn3 = prog 0.;
  318. repeter bdbar3 (dime tbar3 . temps) ;
  319. ii3 = &bdbar3 - 1;
  320. abc3 = abc3 et (prog tbar3 . temps . ii3) ;
  321. ord3 = ord3 et (prog (extr tbar3 . deplacements . ii3 pk alfa));
  322. odf3 = odf3 et (prog (extr tbar3 . deplacements . ii3 pkx alfa));
  323. dlig33 = reco tbar3 . deplacements . ii3 mo_mod ca_mod ;
  324. ordy3 = ordy3 et (prog (extr dlig33 uy p1)) ;
  325. si (ii3 > 0 ) ;
  326. chlia_3 = exco tbar3 . variables_internes . ii3 flia noid ;
  327. nch_3 = extr chlia_3 nbzo ;
  328. si (nch_3 > 0 ) ;
  329. xfn3 = 0. ;
  330. repeter bli_3 nch_3 ;
  331. xfn3 = xfn3 + (extr (extr chlia_3 flia &bli_3 1 1) pk falf) ;
  332. fin bli_3 ;
  333. ofn3 = ofn3 et (prog xfn3) ;
  334. sinon ;
  335. ofn3 = ofn3 et (prog 0.) ;
  336. finsi ;
  337. finsi ;
  338. fin bdbar3 ;
  339. ev3dep = evol rouge manu abc3 ord3 ;
  340. ev3dex = evol rouge manu abc3 odf3 ;
  341. ev3yp1 = evol rouge manu abc3 ordy3 ;
  342. ev3fn = evol rouge manu abc3 ofn3 ;
  343. si (neg graph 'N') ;
  344. dess (ev3dep et ev3yp1 ) titre ' deplacement mode rotation ' ;
  345. dess ev3dex titre ' deplacement mode translation ' ;
  346. dess (ev3fn)
  347. titre ' reaction normale mode rotation ' ;
  348. finsi ;
  349. t_ux . 3 = ev3dex;
  350. t_fn . 3 = ev3fn;
  351. t_uy . 3 = ev3yp1 ;
  352. *
  353. **************************************************************************
  354. * 1ere etape
  355. * calcul DYN en utilisant les liaisons POINT_PLAN_FROTTEMENT
  356.  
  357. *********************************************
  358. * Table des Liaisons
  359. *********************************************
  360. *
  361. TLIAI = TABLE 'LIAISON' ;
  362. TLB = TABLE 'LIAISON_B' ;
  363. TLIAI.'LIAISON_B' = TLB ;
  364. TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  365. TL1.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
  366. TL1.'SUPPORT' = p1 ;
  367. TL1.'JEU' = y_gui ;
  368. TL1.'NORMALE' = (0 1 0) ;
  369. TL1.'RAIDEUR' = 1.e6 ;
  370. TL1 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
  371. TL1 . 'COEFFICIENT_ADHERENCE' = 0. ;
  372. TL1.'AMORTISSEMENT' = 0.;
  373. TL1.'RAIDEUR_TANGENTIELLE' = 1.E8 ;
  374. TL1.'AMORTISSEMENT_TANGENTIEL' = 7000.;
  375. tlb.1=tl1;
  376.  
  377. TL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
  378. TL2.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
  379. TL2.'SUPPORT' = p1 ;
  380. TL2.'JEU' = y_gui ;
  381. TL2.'NORMALE' = (0 -1 0) ;
  382. TL2.'RAIDEUR' = 1.e6 ;
  383. TL2 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
  384. TL2 . 'COEFFICIENT_ADHERENCE' = 0. ;
  385. TL2.'AMORTISSEMENT' = 0.;
  386. TL2.'RAIDEUR_TANGENTIELLE' = 1.E8 ;
  387. TL2.'AMORTISSEMENT_TANGENTIEL' = 7000.;
  388. tlb.2=tl2;
  389.  
  390.  
  391. TL3 = TABLE 'LIAISON_ELEMENTAIRE' ;
  392. TL3.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
  393. TL3.'SUPPORT' = p3 ;
  394. TL3.'JEU' = y_gui ;
  395. TL3.'NORMALE' = (0 1 0) ;
  396. TL3.'RAIDEUR' = 1.e6 ;
  397. TL3 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
  398. TL3 . 'COEFFICIENT_ADHERENCE' = 0. ;
  399. TL3.'AMORTISSEMENT' = 0.;
  400. TL3.'RAIDEUR_TANGENTIELLE' = 1.E8 ;
  401. TL3.'AMORTISSEMENT_TANGENTIEL' = 7000.;
  402. tlb.3=tl3;
  403.  
  404. TL4 = TABLE 'LIAISON_ELEMENTAIRE' ;
  405. TL4.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
  406. TL4.'SUPPORT' = p3 ;
  407. TL4.'JEU' = y_gui ;
  408. TL4.'NORMALE' = (0 -1 0) ;
  409. TL4.'RAIDEUR' = 1.e6 ;
  410. TL4 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
  411. TL4 . 'COEFFICIENT_ADHERENCE' = 0. ;
  412. TL4.'AMORTISSEMENT' = 0.;
  413. TL4.'RAIDEUR_TANGENTIELLE' = 1.E8 ;
  414. TL4.'AMORTISSEMENT_TANGENTIEL' = 7000.;
  415. tlb.4=tl4;
  416.  
  417. *********************************************
  418. * Table des resultats demandes
  419. *********************************************
  420. *
  421. * Table de sortie des variables generalisees
  422. TSORT = TABLE 'SORTIE' ;
  423. TSORV = TABLE 'VARIABLE' ;
  424. TSORT.'VARIABLE' = TSORV ;
  425. TSORV.'DEPLACEMENT' = vrai ;
  426. TSORV.'VITESSE' = faux ;
  427. TSORV.'ACCELERATION' = FAUX ;
  428. *
  429. * Table de sortie des variables de liaison sur base B
  430. TSORL = TABLE 'LIAISON_B' ;
  431. tsorl.tl1 = vrai;
  432. tsorl.tl2 = vrai;
  433. tsorl.tl3 = vrai;
  434. tsorl.tl4 = vrai;
  435. TSORT.'LIAISON_B'= tsorl;
  436. **********************************
  437. * execution DYN
  438. **********************************
  439. DT2 = 0.001 ; nt2 = (2200 - 10)/2 ;nt2 = 5*nt2; NPC = 1 ;
  440. tresu1 = dyne de_vogelaere
  441. tbas_m tliai tamor
  442. tchar tinit
  443. nt2 DT2 Npc
  444. TSORT ;
  445.  
  446.  
  447. *
  448. ttl1 = tresu1 . tl1 ;
  449. ttl2 = tresu1 . tl2 ;
  450. ttl3 = tresu1 . tl3 ;
  451. ttl4 = tresu1 . tl4 ;
  452. lis_temp = tresu1 . temps_de_sortie ;
  453. **************************************
  454. * graphiques
  455. **************************************
  456. tabsymb = table ;
  457. tabsymb.1 = 'MOT' 'MARQ LOSA REGU' ;
  458. tabsymb.2 = 'MOT' 'MARQ PLUS REGU' ;
  459. tabsymb.3 = 'MOT' 'MARQ ETOI REGU' ;
  460. tabsymb . titre = table ;
  461.  
  462. *
  463. ev1 = evol bleu manu temps lis_temp 'p1 ux'
  464. ( TTL1.'UX' ) ;
  465.  
  466. ev2 = evol rouge manu temps lis_temp 'p3 ux'
  467. ( TTL3.'UX' ) ;
  468. titre ' deplacement ux points p1 et p3 ' ;
  469. tabsymb . titre . 1 = 'MOT' 'p1' ;
  470. tabsymb . titre . 2 = 'MOT' 'p3' ;
  471. si (neg graph 'N') ;
  472. dessin (ev1 et ev2) lege tabsymb ;
  473. finsi ;
  474. ***
  475. ev11 = evol vert manu temps lis_temp 'p1 uy'
  476. ( TTL1.'UY' ) ;
  477.  
  478. ev22 = evol bleu manu temps lis_temp 'p3 uy'
  479. ( TTL3.'UY' ) ;
  480. si (neg graph 'N') ;
  481. titre ' deplacement uy points p1 et p3 ' ;
  482. dessin (ev11 et ev22) lege tabsymb ;
  483. finsi ;
  484. ***
  485. tf1 = TTL1.'FORCE_DE_CHOC_NORMALE' ;
  486. tf2 = TTL2.'FORCE_DE_CHOC_NORMALE' ;
  487. tf3 = TTL3.'FORCE_DE_CHOC_NORMALE' ;
  488. tf4 = TTL4.'FORCE_DE_CHOC_NORMALE' ;
  489. *
  490. ev3 = evol bleu manu temps lis_temp 'p1 f_choc'
  491. (tf1 - tf2) ;
  492.  
  493. ev4 = evol rose manu temps lis_temp 'p3 f_choc'
  494. (tf3 - tf4) ;
  495. si (neg graph 'N') ;
  496. titre ' force de choc points p1 et p3 ' ;
  497. dessin (ev3 et ev4) lege tabsymb ;
  498. finsi ;
  499. ***
  500. tff1 = TTL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
  501. tff2 = TTL2.'FORCE_DE_CHOC_TANGENTIELLE' ;
  502. tff3 = TTL3.'FORCE_DE_CHOC_TANGENTIELLE' ;
  503. tff4 = TTL4.'FORCE_DE_CHOC_TANGENTIELLE' ;
  504. ev5 = evol bleu manu temps lis_temp
  505. ( tff1 + tff2 ) ;
  506.  
  507. ev6 = evol rose manu temps lis_temp
  508. ( tff3 + tff4 ) ;
  509. si (neg graph 'N') ;
  510. titre ' FORCE_DE_CHOC_TANGENTIELLE p1 et p3' ;
  511. dessin (ev5 et ev6) lege tabsymb ;
  512. finsi ;
  513. ***
  514. ev7 = evol vert reco tresu1 tbas_m depl p2 ux ;
  515. titre ' deplacement ux p2 ' ;
  516. *dess ev7 lege ;
  517. ***
  518. *** tracer le profil a une date donnee
  519. ev8 = evol bleu reco tresu1 tbas_m depl barre uy
  520. p_photo ;
  521. ***
  522. t_ux . 2 = ev1 ;
  523. t_fn . 2 = (-1.) * ev3 ;
  524. t_uy . 2 = ev11 ;
  525. t_ft . 2 = (-1.) * ev5 ;
  526. ***** realisation des calculs ****
  527.  
  528.  
  529.  
  530. **************************************************************************
  531. * 2eme etape
  532. * calcul DYN en utilisant le chargement explicite etabli
  533. * voir aussi : etude de Cerqueira et Metivier, 2eme annee
  534. * IUP genie Mecanique Evry 92--93
  535. * : these Rezkallah, Paris VI 1991
  536. **************************************************************************
  537. ****************************************
  538. * etablir l'evolution temporelle
  539. ****************************************
  540. qp30 = t_qp30 . 3; mu = t_mu . 1;
  541. xjeu = 1.e-3; longueur = 1. ; masse = 5. ; grav = 9.81 ;
  542. xjeu = y_gui ;
  543. * passage coordonnee angulaire --- inconnue modale
  544. vthet0 = 2.01*qp30 ;
  545. K_choc = 1.e6 ;
  546. * discretisation temporelle
  547. pdis_e = 15 ; pdis_c = 35 ;
  548. pdis_e = 15 ; pdis_c = 50 ;
  549. *
  550. t_e = xjeu*2./longueur/vthet0 ; mess 'duree sans choc' t_e ;
  551. abs_e = prog 0. pas (t_e/pdis_e) t_e ;
  552. ndt_e = dime abs_e ;
  553. ord_e = prog ndt_e*0. ;
  554. omega0 = (6.*K_choc/masse)**0.5 ;
  555. t_c = pi/omega0 ; mess 'duree du choc' t_c ;
  556. * expression de la force de choc
  557. pdt_c = t_c/pdis_c ;
  558. abs_c = prog 0. pas pdt_c t_c ;
  559. ndt_c = dime(abs_c) ;
  560. for_y = abs_c * (omega0/pi*180) ;
  561. for_y = (sin(for_y)) *(k_choc*longueur*vthet0/2/omega0) ;
  562. *
  563. *** frottement
  564. frot_y = for_y*mu ;
  565. *
  566. ** cree une histoire de chargement
  567. * force et frottement
  568. k_c = 0 ; k_e = 0 ;
  569. abs_t = prog ; for_t = prog ; frot_t = prog ;
  570. repeter Bhist 2 ;
  571. * segment droit
  572. abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
  573. for_t = for_t et ord_e ;
  574. frot_t = frot_t et ord_e ;
  575. k_e = k_e + 1 ;
  576. * arche de sinus
  577. abs_t = abs_t et (abs_c + (prog ndt_c*((k_e*t_e) + (k_c*t_c)) )) ;
  578. for_t = for_t et for_y ;
  579. frot_t = frot_t et frot_y ;
  580. k_c = k_c + 1 ;
  581. * segment droit
  582. abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
  583. for_t = for_t et ord_e ;
  584. frot_t = frot_t et ord_e ;
  585. k_e = k_e + 1 ;
  586. * segment droit
  587. abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
  588. for_t = for_t et ord_e ;
  589. frot_t = frot_t et ord_e ;
  590. k_e = k_e + 1 ;
  591. * arche de sinus (inverse pour la force de choc)
  592. abs_t = abs_t et (abs_c + (prog ndt_c*((k_e*t_e) + (k_c*t_c)) )) ;
  593. for_t = for_t et (for_y*(-1.)) ;
  594. frot_t = frot_t et frot_y ;
  595. k_c = k_c + 1 ;
  596. * segment droit
  597. abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
  598. for_t = for_t et ord_e ;
  599. frot_t = frot_t et ord_e ;
  600. k_e = k_e + 1 ;
  601. *
  602. ev_for = evol manu temps abs_t force for_t ;
  603. ev_for = ev_for * (-1.) ;
  604. ev_frot = evol manu temps abs_t frottement frot_t ;
  605. *
  606. fin Bhist ;
  607. *
  608.  
  609. tabsymb . titre . 1 = 'MOT' 'p1' ;
  610. tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
  611. tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
  612. tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
  613. si (neg graph 'N') ;
  614. dess ((ev_for * (-1.)) et t_fn . 2 et t_fn . 1 et t_fn . 3) lege tabsymb
  615. titre ' force normale choc ' ;
  616. finsi ;
  617. *dess ev_for lege tabsymb ;
  618. si (neg graph 'N') ;
  619. dess ((ev_frot * (-1.)) et t_ft . 2 et t_ft . 1) lege tabsymb
  620. titre ' force frottement choc ' ;
  621. finsi ;
  622. ***
  623. ****************************************
  624. * creer le champ de force
  625. ****************************************
  626. tchar_x = table chargement;
  627. * gravite
  628. chp_g = manu chpo barre 1 ux 9.81 ;
  629. f_g = mas1 * chp_g ;
  630. pjf_g = pjba f_g tbas_m ;
  631. nabs_t = dime abs_t ;
  632. evt_g = evol manu abs_t (prog nabs_t*1.) ;
  633. ch_g = char pjf_g evt_g;
  634. *
  635. * choc -- rappel : frottement et choc sont proportionnels -- *mu
  636. chp_x1 = manu chpo p1 1 fy 1. ;
  637. chp_xf1 = manu chpo p1 1 fx (-1.);
  638. pjf_x1 = pjba chp_x1 tbas_m ;
  639. pjf_xf1 = pjba chp_xf1 tbas_m ;
  640. *
  641. chp_x3 = manu chpo p3 1 fy (-1.) ;
  642. chp_xf3 = manu chpo p3 1 fx (-1.) ;
  643. pjf_x3 = pjba chp_x3 tbas_m ;
  644. pjf_xf3 = pjba chp_xf3 tbas_m ;
  645. *
  646. ch_x = char (pjf_x1 et pjf_x3) ev_for ;
  647. ch_xf = char (pjf_xf1 et pjf_xf3) ev_frot ;
  648. *
  649. tchar_x.base_a = ch_g et ch_x et ch_xf ;
  650. *
  651. *********************************************
  652. * conditions initiales
  653. *********************************************
  654.  
  655. pk = tbas_m . modes . 3 . point_repere ;
  656.  
  657. CPID = manu chpo barre 1 alfa 0. ;
  658. CPIV = manu chpo pk 1 alfa qp30 ;
  659.  
  660. tinit_x = table initial;
  661. tinit_x . 'DEPLACEMENT' = CPID ;
  662. tinit_x . 'VITESSE' = CPIV ;
  663. *********************************************
  664. * Table des resultats demandes
  665. *********************************************
  666. *
  667. * Table de sortie des variables generalisees
  668. tsort_x = TABLE 'SORTIE' ;
  669. tsorv_x = TABLE 'VARIABLE' ;
  670. tsort_x.'VARIABLE' = tsorv_x ;
  671. tsorv_x.'DEPLACEMENT' = vrai ;
  672. tsorv_x.'VITESSE' = faux ;
  673. tsorv_x.'ACCELERATION' = FAUX ;
  674. *
  675.  
  676. **********************************
  677. * execution DYN
  678. * pb si dt2 = 0.01 (kich)
  679. **********************************
  680. DT2 = 0.001 ; nt2 = (2200 - 10)/2 ;nt2 = nt2 *5; NPC = 20 ;
  681. tresu_x = dyne de_vogelaere
  682. tbas_m tamor
  683. tchar_x tinit_x
  684. nt2 DT2 Npc
  685. tsort_x ;
  686. *
  687.  
  688. lis_temp = tresu_x . temps_de_sortie ;
  689. **************************************
  690. * graphiques
  691. **************************************
  692.  
  693. tabsymb . titre . 1 = 'MOT' 'p1 analy' ;
  694. tabsymb . titre . 2 = 'MOT' 'p3' ;
  695. evxp1_ux = evol vert reco tresu_x tbas_m depl p1 ux ;
  696. evxp3_ux = evol rose reco tresu_x tbas_m depl p3 ux ;
  697. si (neg graph 'N') ;
  698. titre ' deplacement ux p1 et p3' ;
  699. dess (evxp1_ux et evxp3_ux) lege tabsymb ;
  700. finsi ;
  701. tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
  702. tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
  703. tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
  704. si (neg graph 'N') ;
  705. titre ' deplacement ux p1 analytique et liaisons' ;
  706. dess (evxp1_ux et t_ux . 2 et t_ux . 1 et t_ux . 3 ) lege tabsymb ;
  707. finsi ;
  708. ***
  709. evxp1_uy = evol bleu reco tresu_x tbas_m depl p1 uy ;
  710. evxp3_uy = evol rouge reco tresu_x tbas_m depl p3 uy ;
  711. tabsymb . titre . 2 = 'MOT' 'p3' ;
  712. si (neg graph 'N') ;
  713. titre ' deplacement uy p1 et p3' ;
  714. dess (evxp1_uy et evxp3_uy) lege tabsymb ;
  715. tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
  716. tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
  717. tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
  718. titre ' deplacement uy p1 analytique et liaisons' ;
  719. dess (evxp1_uy et t_uy . 2 et t_uy . 1 et t_uy . 3) lege tabsymb ;
  720. finsi ;
  721. ***
  722.  
  723. yyy1 = ipol 2.1 evxp1_uy ;
  724. yyy2 = ipol 2.1 t_uy . 2 ;
  725. yyy3 = ipol 2.1 t_uy . 1 ;
  726.  
  727. err1 = abs ((yyy1 - yyy2)/yyy1) ; err2 = abs ((yyy1 - yyy3)/yyy1) ;
  728. si ((err1 < 0.12) et (err2 < 0.23)) ;
  729. erre 0 ;
  730. sinon ;
  731. erre 5 ;
  732. finsi ;
  733. ***************************
  734. *
  735. fin;
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  

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