Télécharger dyne05.dgibi

Retour à la liste

Numérotation des lignes :

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

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