Télécharger dyne05.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dyne05.dgibi
  2. *
  3. ************************************************************************
  4. *
  5. * DYNE05 :
  6. *
  7. * Calcul d'un oscillateur frottant en contact permanent
  8. * en situation de "Stick and Slip"
  9. *
  10. * | Fn
  11. * ___v___
  12. * | k | |--> x(t)
  13. * |-----|/|/|/|-----| m |
  14. * | |_______|
  15. * --------------------
  16. * µd=µs --> Ve
  17. * ^ Y
  18. * |
  19. * +----> X
  20. *
  21. * Test de l'option VITESSE_ENTRAINEMENT pour la liaison DYNE
  22. * POINT_PLAN_FROTTEMENT qui ajoute une sur-vitesse tangentielle
  23. *
  24. * Ref : [Andreaus & Casini, 2001, JSV, "DYNAMICS OF FRICTION OSCILLATORS
  25. * EXCITED BY A MOVING BASE AND/OR DRIVING FORCE"]
  26. *
  27. * Auteur : BP, 2020-03-16
  28. *
  29. ************************************************************************
  30.  
  31.  
  32. ************************************************************************
  33. * OPTIONS et DONNEES
  34. ************************************************************************
  35. OPTI DIME 3 ELEM SEG2;
  36. OPTI TRAC PSC EPTR 8 POTR HELVETICA_16;
  37. GRAPH = FAUX;
  38.  
  39. * physical data
  40. m = 1.;
  41. k = 1.;
  42. mu_s = 0.6;
  43. mu_d = 0.5;
  44. si (mu_s < mu_d); erreur 21; finsi;
  45. Ve = 1.;
  46. Fn = 1.;
  47.  
  48. * contact parameters
  49. kchoc = 1.*k;
  50. Kt = 100.*kchoc;
  51.  
  52. * deduced parameter
  53. w = (k/m)**0.5;
  54. wHz = w / (2.*pi);
  55. u0 = Fn / k;
  56. Ct = 0.5*(m*Kt)**0.5;
  57. *test Ct = 0.;
  58.  
  59. * critical timestep (Diff Centrees, no damping)
  60. wadhe = ((k+Kt)/m)**0.5;
  61. dtc = 2. / wadhe;
  62.  
  63. * initial conditions
  64. x_0 = mu_d * u0 ;
  65. y_0 = -1. * Fn / kchoc;
  66. * la valeur pour dxdt_0 critique entre pure sliding et stick-slip
  67. * doit etre de Ve/w=1 ici.
  68. * dxdt_prog = prog 0.8 1.0;
  69. dxdt_prog = prog 0.8 0.9 1.0 ;
  70. * dxdt_prog = prog 0.8 0.9 1.0 1.1 1.2 ;
  71. coco_anal = mots 'MARI' 'BLEU' 'AZUR' 'CYAN' 'TURQ';
  72. * CI pour DYNE deduite de la solution analytique
  73. dxdt_nega = prog;
  74.  
  75.  
  76. ************************************************************************
  77. * SOLUTION ANALYTIQUE
  78. ************************************************************************
  79.  
  80. ev_anal = VIDE 'EVOLUTIO';
  81.  
  82. *-------------------------------------------> BOUCLE SUR LES CI
  83. REPE B (DIME dxdt_prog);
  84.  
  85. dxdt_0 = extr dxdt_prog &B;
  86. coco = extr coco_anal &B;
  87. MESS '*** CALCUL ANALYTIQUE pour x(0)='x_0, ' , dx/dt(0)='dxdt_0 ' ***';
  88. cha_lege = CHAI 'Analytic v0=' FORMAT '(F3.1)' dxdt_0;
  89.  
  90. * vitesse critique
  91. Aux0 = x_0 - (mu_d * u0);
  92. Ve_crit = w * (( (Aux0**2) + (dxdt_0**2) )**0.5);
  93. MESS 'Ve Ve_crit = ' Ve Ve_crit;
  94.  
  95. * portrait de phase
  96. SI (Ve > Ve_crit);
  97. * si tapis rapide (ou CI faibles), alors regime "pure sliding" (_ps)
  98. R_ps = ((Aux0**2) + (dxdt_0**2))**0.5;
  99. tprog = prog 0. 'PAS' (1. / 200) 1.;
  100. x_ps = (R_ps * (sin (360.*w*tprog))) + (mu_d * u0);
  101. dx_ps = R_ps * (cos (360.*w*tprog));
  102. ev_ps = EVOL coco MANU LEGE cha_lege 'x' x_ps 'dxdt' dx_ps;
  103. * DESS ev_ps CARR;
  104. ev_anal = ev_anal et ev_ps;
  105. si GRAPH; DESS ev_ps 'CARR' 'TITRE' cha_lege 'MIMA'; finsi;
  106. dxdt_nega = dxdt_nega et (-1.*R_ps);
  107.  
  108. SINON;
  109. * si tapis "lent" (ou CI "fortes"), alors stick-slip
  110. * sticking phase (_stick)
  111. x_deb = u0 * ((2.*mu_d) - mu_s);
  112. x_fin = u0 * mu_s;
  113. n_stick = 10;
  114. x_stick = prog x_deb 'PAS' ((x_fin - x_deb)/n_stick) x_fin;
  115. dx_stick = prog (dime x_stick) * (Ve/w);
  116. * sliding phase
  117. R_slip = ( ((Ve/w)**2) + ((u0*(mu_s-mu_d))**2) )**0.5;
  118. t_deb = ASIN (u0*(mu_s-mu_d) / R_slip);
  119. t_fin = 360. - t_deb;
  120. t_slip = prog t_deb 'PAS' ((t_fin - t_deb)/200) t_fin;
  121. x_slip = (R_slip * (sin (t_slip))) + (mu_d * u0);
  122. dx_slip = R_slip * (cos (t_slip));
  123. * evol
  124. ev_ss = EVOL coco MANU LEGE cha_lege 'x' (x_stick et x_slip )
  125. 'dxdt' (dx_stick et dx_slip);
  126. ev_anal = ev_anal et ev_ss;
  127. si GRAPH; DESS ev_ss 'CARR' 'TITRE' cha_lege 'MIMA'; finsi;
  128. dxdt_nega = dxdt_nega et (-1.*R_slip);
  129.  
  130. FINSI;
  131.  
  132.  
  133. fin B;
  134.  
  135. si GRAPH; DESS ev_anal 'CARR' 'TITRE' 'Solutions analytiques'; finsi;
  136. list dxdt_nega;
  137.  
  138.  
  139. ************************************************************************
  140. * BASE MODALE
  141. ************************************************************************
  142. * point physique
  143. p1 = 0. 0. 0.;
  144.  
  145. * base modale = 2 modes
  146. palfa1 = 0. 0. 0.;
  147. phi1 = MANU 'CHPO' p1 2 'UX' 1. 'UY' 0. 'NATURE' 'DIFFUS';
  148. palfa2 = 0. 0. 0.;
  149. phi2 = MANU 'CHPO' p1 2 'UX' 0. 'UY' 1. 'NATURE' 'DIFFUS';
  150.  
  151. TBAS = TABL 'BASE_MODALE';
  152. TBAS . 'MODES' = TABL 'BASE_DE_MODES';
  153. TBAS . 'MODES' . 1 = TABL 'MODES';
  154. TBAS . 'MODES' . 1 . 'POINT_REPERE' = palfa1;
  155. TBAS . 'MODES' . 1 . 'FREQUENCE' = wHz;
  156. TBAS . 'MODES' . 1 . 'MASSE_GENERALISEE' = m;
  157. TBAS . 'MODES' . 1 . 'DEFORMEE_MODALE' = phi1;
  158. TBAS . 'MODES' . 2 = TABL 'MODES';
  159. TBAS . 'MODES' . 2 . 'POINT_REPERE' = palfa2;
  160. TBAS . 'MODES' . 2 . 'FREQUENCE' = 0.;
  161. TBAS . 'MODES' . 2 . 'MASSE_GENERALISEE' = m;
  162. TBAS . 'MODES' . 2 . 'DEFORMEE_MODALE' = phi2;
  163.  
  164.  
  165. ************************************************************************
  166. * LIAISONS
  167. ************************************************************************
  168.  
  169. * contact-frottant point_plan_frottement
  170. TL1 = TABL 'LIAISON_ELEMENTAIRE';
  171. TL1 . 'TYPE_LIAISON' = mot 'POINT_PLAN_FROTTEMENT';
  172. TL1 . 'SUPPORT' = p1;
  173. TL1 . 'NORMALE' = (0. -1. 0.) ;
  174. TL1 . 'RAIDEUR' = kchoc;
  175. TL1 . 'JEU' = 0.;
  176. TL1 . 'COEFFICIENT_GLISSEMENT' = mu_d;
  177. TL1 . 'COEFFICIENT_ADHERENCE' = mu_s;
  178. TL1 . 'RAIDEUR_TANGENTIELLE' = Kt;
  179. TL1 . 'AMORTISSEMENT_TANGENTIEL'= Ct;
  180. TL1 . 'VITESSE_ENTRAINEMENT' = poin Ve 0. 0.;
  181. * stockage
  182. TLB = TABL 'LIAISON_B';
  183. TLB . 1 = TL1;
  184. TLIA = TABL 'LIAISON';
  185. TLIA . 'LIAISON_B' = TLB;
  186.  
  187.  
  188. ************************************************************************
  189. * CHARGEMENT
  190. ************************************************************************
  191.  
  192. TCHARG = TABLE 'CHARGEMENT' ;
  193. t_char = PROG -1. 1.E3 ;
  194. F_char = PROG 1. 1. ;
  195. ev_char = EVOL MANU t_char F_char;
  196. F_chpo = MANU CHPO 1 p1 'FY' (-1.*Fn);
  197. CHAR1 = CHAR ev_char F_chpo ;
  198. TCHARG . 'BASE_A' = PJBA TBAS CHAR1 ;
  199.  
  200.  
  201. ************************************************************************
  202. * SORTIES
  203. ************************************************************************
  204.  
  205. TSORT = TABLE 'SORTIE';
  206. * +on stocke les deplacements modaux
  207. TSORV = TABLE 'VARIABLE';
  208. TSORV . 'TYPE_SORTIE' = MOT 'LISTREEL';
  209. TSORT . 'VARIABLE' = TSORV;
  210. * + on stocke les variables du contact
  211. TSORLB = TABLE 'LIAISON_B';
  212. TSORLB . TL1 = VRAI;
  213. TSORT . 'LIAISON_B' = TSORLB;
  214.  
  215. * pour le post traitement DYNE
  216. ev_dyne = VIDE 'EVOLUTIO';
  217. * coco_dyne = mots 'ROUG' 'ORAN';
  218. * coco_dyne = mots 'BRUN' 'BRIQ' 'ROUG' 'ORAN' 'OR';
  219. coco_dyne = mots 'BRUN' 'ROUG' 'ORAN' 'OR' 'OLIV';
  220. Tdess1 = TABL ;
  221. Tdess1 . 2 = MOT 'TIRR';
  222.  
  223.  
  224. ************************************************************************
  225. * PARAMETRES TEMPORELS
  226. ************************************************************************
  227.  
  228. * PAS DE TEMPS, NOMBRE DE PAS, SORTIE TOUS LES NSORT
  229. DT = 1.E-3;
  230. NPAS = 10000;
  231. NSORT = 10;
  232. si (DT < dtc); mess 'Pas de temps =' DT ' < critique=' dtc;
  233. sinon; erre 21;
  234. finsi;
  235.  
  236.  
  237. ************************************************************************
  238. * CONDITIONS INITIALES
  239. ************************************************************************
  240.  
  241. TINIT = TABL 'INITIAL';
  242. TINIT . 'DEPLACEMENT'
  243. = (MANU 'CHPO' palfa1 1 'ALFA' x_0 'NATURE' 'DISCRET')
  244. et (MANU 'CHPO' palfa2 1 'ALFA' y_0 'NATURE' 'DISCRET');
  245.  
  246.  
  247. *-------------------------------------------> BOUCLE SUR LES CI
  248. REPE B (DIME dxdt_prog);
  249.  
  250. dxdt_0 = extr dxdt_prog &B;
  251. dxdt_0 = extr dxdt_nega &B;
  252. coco = extr coco_dyne &B;
  253. MESS '*** CALCUL DYNE pour x(0)='x_0, ' , dx/dt(0)='dxdt_0 ' ***';
  254. cha_lege = CHAI 'Cast3M v0=' FORMAT '(F6.3)' dxdt_0;
  255. TITRE cha_lege;
  256.  
  257. TINIT . 'VITESSE'
  258. = (MANU 'CHPO' palfa1 1 'ALFA' dxdt_0 'NATURE' 'DIFFUS')
  259. et (MANU 'CHPO' palfa2 1 'ALFA' 0. 'NATURE' 'DIFFUS');
  260.  
  261.  
  262.  
  263. ************************************************************************
  264. * CALCUL DYNE : INTEGRATION TEMPORELLE
  265. ************************************************************************
  266.  
  267. * opti impi 333;
  268. * TDYNE = DYNE 'DE_VOGELAERE' TBAS TLIA TSORT TINIT TCHARG
  269. TDYNE = DYNE 'DIFFERENCES_CENTREES' TBAS TLIA TSORT TINIT TCHARG
  270. NPAS DT NSORT ;
  271. * opti impi 0;
  272. * opti TRAC X ; erre 21;
  273.  
  274.  
  275. ************************************************************************
  276. * POST TRAITEMENT
  277. ************************************************************************
  278. *OPTI TRAC 'X';
  279.  
  280. pr_time = TDYNE . 'TEMPS_DE_SORTIE';
  281. pr_x = TDYNE . 'DEPLACEMENT' . palfa1;
  282. pr_y = TDYNE . 'DEPLACEMENT' . palfa2;
  283. pr_vx = TDYNE . 'VITESSE' . palfa1;
  284.  
  285. ev_x = EVOL coco MANU 'LEGE' 'u_{x}' 't' pr_time 'u' pr_x;
  286. ev_y = EVOL coco MANU 'LEGE' 'u_{y}' 't' pr_time 'u' pr_y;
  287. si GRAPH; DESS (ev_x et ev_y) Tdess1; finsi;
  288.  
  289. ev_phase = EVOL coco MANU LEGE cha_lege 'u_{x}' pr_x 'v_{x}' pr_vx;
  290. si GRAPH; DESS ev_phase 'CARR'; finsi;
  291. ev_dyne = ev_dyne et ev_phase;
  292.  
  293. pr_fn = TDYNE . TL1 . 'FORCE_DE_CHOC_NORMALE';
  294. ev_Fn = EVOL coco MANU 'LEGE' 'F_{n}' 't' pr_time 'F' pr_fn;
  295. pr_ft = TDYNE . TL1 . 'FORCE_DE_CHOC_TANGENTIELLE';
  296. ev_Ft = EVOL coco MANU 'LEGE' 'F_{t}' 't' pr_time 'F' pr_ft;
  297. *dess (ev_Ft et ev_Fn) Tdess1;
  298. si GRAPH; dess ev_Ft ; finsi;
  299.  
  300. pr_vt = TDYNE . TL1 . 'VITESSE_TANGENTIELLE';
  301. *ev_vt = EVOL rose MANU 'LEGE' 'v_{t} (rel.)' 't' pr_time 'V' pr_vt;
  302. *ev_vx = EVOL coco MANU 'LEGE' 'v_{x}' 't' pr_time 'V' pr_vx;
  303. ev_vt = EVOL rose MANU 'LEGE' 'v_{t} (rel.)' 't' pr_time 'V' (-1.*pr_vt);
  304. ev_vx = EVOL coco MANU 'LEGE' 'v_{x}-Ve' 't' pr_time 'V' (pr_vx - Ve);
  305. si GRAPH;dess (ev_vx et ev_vt) LEGE 'NO' Tdess1; finsi;
  306.  
  307. fin B;
  308.  
  309. * zoom sur le passage glissement -> adherence -> glissement
  310. si GRAPH;
  311. dess ev_Ft Tdess1 XBOR 3. 3.5 XGRA 0.05;
  312. dess (ev_vx et ev_vt) XBOR 3. 3.5 XGRA 0.05 LEGE 'SO' Tdess1;
  313. finsi;
  314. * OPTI TRAC 'X';
  315.  
  316. * comparaison avec solution analytique
  317. Tdess6 = tabl;
  318. Tdess6 . 4 = mot 'TIRR';
  319. Tdess6 . 5 = mot 'TIRR';
  320. Tdess6 . 6 = mot 'TIRR';
  321. si GRAPH;
  322. DESS (ev_dyne et ev_anal) 'CARR' LEGE 'AXES' Tdess6;
  323. DESS (ev_dyne et ev_anal) 'YBOR' 0.9 1.1 'XBOR' 0.3 0.8 LEGE Tdess6;
  324. DESS (ev_dyne et ev_anal) 'YBOR' -1.1 -0.9 'XBOR' 0.3 0.8 LEGE Tdess6;
  325. finsi;
  326.  
  327.  
  328. ************************************************************************
  329. * TEST DE VALIDATION
  330. ************************************************************************
  331. * TODO ...
  332.  
  333. FIN ;
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  

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