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

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