Télécharger pod_pout_elas.dgibi

Retour à la liste

Numérotation des lignes :

  1. SMALL = 1.E-5 ;
  2. $$ = EXTR (CHAI '''') 1 1 ;
  3. OPTI 'DIME' 3 'ELEM' 'CUB8' 'EPSI' 'LINEAIRE' ;
  4. *
  5. * Calcul complet ? (si FAUX: test de non-regression rapide)
  6. COMPLET = FAUX ;
  7. *
  8. * Affichage graphique ?
  9. GRAPH = FAUX ;
  10. *
  11. * Graine du generateur pseudo-aleatoire
  12. GRAINE = 100 ;
  13. *
  14. * Frequence de la sortie VTK (le dossier "pod_pout_elas" doit exister)
  15. * [0 => PAS DE SORTIE VTK]
  16. FVTK = 0 ;
  17. *
  18. * Parametres geometriques + mecaniques
  19. RH = 8.E3 ;
  20. NU = 0.3 ;
  21. SS = 0.1 ;
  22. II = 1.E-6 ;
  23. EE = 2.E11 ;
  24. HH = 3. ;
  25. FF = 100. ;
  26. *
  27. * Nombre d'elements et densites
  28. SI COMPLET ;
  29. NBELEM = 20 ;
  30. DINIT = 0.005 ;
  31. DFINA = 0.2 ;
  32. SINON ;
  33. NBELEM = 3 ;
  34. DINIT = 0.005 ;
  35. DFINA = 2. ;
  36. FINS ;
  37. *
  38. * Nombre de modes calcules
  39. SI COMPLET ;
  40. NBMODES = 10 ;
  41. SINON ;
  42. NBMODES = 4 ;
  43. FINS ;
  44. *
  45. * Pas de temps
  46. SI COMPLET ;
  47. DT = 0.01 ;
  48. SINON ;
  49. DT = 0.05 ;
  50. FINS ;
  51. *
  52. * Duree chargement
  53. SI COMPLET ;
  54. TCHARG = 10. ;
  55. SINON ;
  56. TCHARG = 2. ;
  57. FINS ;
  58. *
  59. * Duree totale
  60. SI COMPLET ;
  61. TFINAL = 50. ;
  62. SINON ;
  63. TFINAL = 10. ;
  64. FINS ;
  65. *
  66. *
  67. *
  68. *
  69. * +-------------------------------------------------------------------+
  70. * | |
  71. * | S I M U L A T I O N |
  72. * | |
  73. * +-------------------------------------------------------------------+
  74. *
  75. *
  76. OPTI 'ECHO' 0 ;
  77. *
  78. *
  79. * *********************************************************************
  80. * C R E A T I O N D U M A I L L A G E
  81. * *********************************************************************
  82. *
  83. PIED = 0. 0. 0. ;
  84. TETE = 0. 0. HH ;
  85. POUT = PIED DROI (-1*NBELEM) TETE 'DINI' DINIT 'DFIN' DFINA ;
  86. * POUT = PIED DROI NBELEM TETE ;
  87. *
  88. $POUT = MODE POUT 'MECANIQUE' 'ELASTIQUE' 'POUT' ;
  89. MAPOU = MATE $POUT 'YOUN' EE
  90. 'NU' NU
  91. 'RHO' RH
  92. 'SECT' SS
  93. 'INRY' II
  94. 'INRZ' II
  95. 'TORS' (2.*II) ;
  96. *
  97. POUT1 = CHAN 'POI1' POUT ;
  98. NBNO1 = NBEL POUT1 ;
  99. *
  100. SI GRAPH ;
  101. TRAC (POUT ET (COUL 'ROUG' (MANU 'POI1' PIED))
  102. ET (COUL 'VERT' (MANU 'POI1' PIED))) 'NOEU' ;
  103. FINS ;
  104. *
  105. *
  106. * *********************************************************************
  107. * C O N D I T I O N S A U X L I M I T E S
  108. * *********************************************************************
  109.  
  110. RICL1 = BLOQ PIED 'DEPL' 'ROTA' ;
  111. *
  112. *
  113. *
  114. * *********************************************************************
  115. * C O N D I T I O N S I N I T I A L E S
  116. * *********************************************************************
  117. *
  118. LCO = MOTS 'UX' 'UY' 'UZ' 'RX' 'RY' 'RZ' ;
  119. NCO = DIME LCO ;
  120. UN0 = MANU 'CHPO' POUT LCO (PROG NCO*0.) ;
  121. *
  122. *
  123. *
  124. * *********************************************************************
  125. * M A T R I C E S D E M A S S E E T D E R A I D E U R
  126. * *********************************************************************
  127. *
  128. MASS1 = MASS $POUT MAPOU ;
  129. RIGI1 = RIGI $POUT MAPOU ;
  130. *
  131. *
  132. *
  133. * *********************************************************************
  134. * C H A R G E M E N T A L E A T O I R E E N T E T E
  135. * *********************************************************************
  136. *
  137. CFORX1 = MANU 'CHPO' 'NATU' 'DISCRET' TETE 'FX' FF ;
  138. CFORY1 = MANU 'CHPO' 'NATU' 'DISCRET' TETE 'FY' FF ;
  139. *
  140. LTEMP1 = PROG 0. 'PAS' DT TCHARG ;
  141. NTEMP1 = DIME LTEMP1 ;
  142. LFORX1 = BRUI 'BLAN' 'GAUS' 0. 1. NTEMP1 GRAINE ;
  143. LFORY1 = BRUI 'BLAN' 'GAUS' 0. 1. NTEMP1 GRAINE ;
  144. *
  145. LTEMP2 = PROG (TCHARG+DT) 'PAS' DT TFINAL ;
  146. NTEMP2 = DIME LTEMP2 ;
  147. LFORX2 = PROG NTEMP2*0. ;
  148. LFORY2 = PROG NTEMP2*0. ;
  149. *
  150. LTEMP0 = LTEMP1 ET LTEMP2 ;
  151. EFORX1 = EVOL 'ROUG' 'MANU' LTEMP0 (LFORX1 ET LFORX2) ;
  152. EFORY1 = EVOL 'VERT' 'MANU' LTEMP0 (LFORY1 ET LFORY2) ;
  153. CHAR1 = (CHAR CFORX1 EFORX1) ET (CHAR CFORY1 EFORY1) ;
  154. *
  155. *
  156. *
  157. * *********************************************************************
  158. * E X E C U T I O N
  159. * *********************************************************************
  160. *
  161. TAB1 = TABL 'DYNAMIC' ;
  162. TAB1.'DEPL' = UN0 ;
  163. TAB1.'VITE' = UN0 ;
  164. TAB1.'MASS' = MASS1 ET RICL1 ;
  165. TAB1.'RIGI' = RIGI1 ;
  166. TAB1.'CHAR' = CHAR1 ;
  167. TAB1.'TEMPS_CALCULES' = LTEMP0 ;
  168. TAB1.'PAS_SAUVES' = 1 ;
  169. *
  170. SAUT 1 'LIGNE' ;
  171. MESS '************************************' ;
  172. MESS 'NOMBRE DE NOEUDS = ' NBNO1 ;
  173. MESS 'NOMBRE DE PAS DE TEMPS = ' (NTEMP1+NTEMP2) ;
  174. MESS '************************************' ;
  175. SAUT 1 'LIGNE' ;
  176. *
  177. DYNAMIC TAB1 ;
  178. *
  179. *
  180. *
  181. *
  182. * +-------------------------------------------------------------------+
  183. * | |
  184. * | P O S T - T R A I T E M E N T |
  185. * | |
  186. * +-------------------------------------------------------------------+
  187. *
  188. *
  189. SI GRAPH ;
  190. SI COMPLET ;
  191. XMIN1 = 48. ;
  192. XMAX1 = 49. ;
  193. SINON ;
  194. XMIN1 = 8. ;
  195. XMAX1 = 9. ;
  196. FINS ;
  197. FINS ;
  198.  
  199. * MATR1 = MASS1 ;
  200. MATR1 = RIGI1 ;
  201. *
  202. *
  203. *
  204. * ====================================================
  205. * EVOLUTIONS TEMPORELLES DE LA FORCE ET DU DEPLACEMENT
  206. * ====================================================
  207. *
  208. LDEP1 = SUIT ;
  209. TRESU1 = TAB1.'RESULTATS' ;
  210. NRESU1 = DIME TRESU1 ;
  211. LDEPX1 = PROG ;
  212. LDEPY1 = PROG ;
  213. REPE II NRESU1 ;
  214. TPS1 = TRESU1.&II.'TEMP' ;
  215. DEP1 = TRESU1.&II.'DEPL' ;
  216. SI (&II > NTEMP1) ;
  217. LDEP1 = LDEP1 ET DEP1 ;
  218. FINS ;
  219. *
  220. * SORTIE VTK DU TRANSITOIRE
  221. SI (FVTK > 0) ;
  222. SI (EGA ((&II - 1) @MOD FVTK) 0) ;
  223. OPTI 'SORT' 'pod_pout_elas/DEPL' ;
  224. SORT 'VTK' POUT DEP1 'DEPL' 'TEMP' TPS1 ;
  225. FINS ;
  226. FINS ;
  227. *
  228. LDEPX1 = LDEPX1 ET (EXTR DEP1 TETE 'UX') ;
  229. LDEPY1 = LDEPY1 ET (EXTR DEP1 TETE 'UY') ;
  230. FIN II ;
  231. *
  232. EDEPX1 = EVOL 'ROUG' 'MANU' LTEMP0 LDEPX1 ;
  233. EDEPY1 = EVOL 'VERT' 'MANU' LTEMP0 LDEPY1 ;
  234. *
  235. SI GRAPH ;
  236. TLEG1 = TABL ;
  237. TLEG1.'TITRE' = TABL ;
  238. TLEG1.'TITRE' . 1 = 'X' ;
  239. TLEG1.'TITRE' . 2 = 'Y' ;
  240. *
  241. DESS (EFORX1 ET EFORY1) 'TITR' 'Chargement applique en tete'
  242. 'TITX' 'TEMPS (S)'
  243. 'TITY' 'FORCE (N)'
  244. 'POSX' 'EXCE'
  245. 'POSY' 'EXCE'
  246. 'LEGE' TLEG1 ;
  247. *
  248. DESS (EDEPX1 ET EDEPY1) 'TITR' 'Deplacement observe en tete'
  249. 'TITX' 'TEMPS (S)'
  250. 'TITY' 'DEPLACEMENT (M)'
  251. 'POSX' 'EXCE'
  252. 'POSY' 'EXCE'
  253. 'LEGE' TLEG1 ;
  254. FINS ;
  255. *
  256. *
  257. *
  258. * ======================================================
  259. * TRAJECTOIRE DE LA TETE DE LA POUTRE DANS LE PLAN (OXY)
  260. * ======================================================
  261. *
  262. ETRAJ1 = EVOL 'ROUG' 'MANU' LDEPX1 LDEPY1 ;
  263. *
  264. SI GRAPH ;
  265. TLEG2 = TABL ;
  266. TLEG2.'TITRE' = TABL ;
  267. TLEG2.'TITRE' . 1 = MOT 'REGIME TRANSITOIRE' ;
  268. TLEG2.'TITRE' . 2 = MOT 'REGIME PERMANENT' ;
  269. TLEG2.'FINAL' = TABL ;
  270. TLEG2.'FINAL' . 1 = NTEMP1 ;
  271. TLEG2.'INITIAL' = TABL ;
  272. TLEG2.'INITIAL' . 2 = ENTI 'PROC' NTEMP1 ;
  273. TLEG2 . 1 = 'TIRR' ;
  274. *
  275. DESS ((COUL 'ROSE' ETRAJ1) ET ETRAJ1)
  276. 'TITR' 'Trajectoire observee en tete'
  277. 'TITX' 'X (M)'
  278. 'TITY' 'Y (M)'
  279. 'POSX' 'EXCE'
  280. 'POSY' 'EXCE'
  281. 'CARR' 'GRIL'
  282. 'LEGE' TLEG2 ;
  283. FINS ;
  284. *
  285. *
  286. *
  287. * =======================================================
  288. * CALCUL ET VISUALISATION DES MODES ET FREQUENCES PROPRES
  289. * =======================================================
  290. *
  291. * EN CALCULANT LA TRANSFORMEE DE FOURIER
  292. NTFR1 = ENTI 'SUPE' ((LOG NRESU1) / (LOG 2)) ;
  293. ETFR1 = COUL 'JAUN' (EXTR (TFR NTFR1 EDEPX1 'MOPH') 'COURBE' 1) ;
  294. *
  295. * EN RESOLVANT LE PROBLEME AUX VALEURS PROPRES K-W^2*M = 0
  296. DUMMY FREQ1 DUMMY = MAXI ETFR1 ;
  297. TVIB1 = VIBR 'IRAM' FREQ1 NBMODES (RIGI1 ET RICL1) MASS1 'LM' ;
  298. NNOR 'EUCL' TVIB1 MATR1 ;
  299. *
  300. * AFFICHAGE GRAPHIQUE
  301. SI GRAPH ;
  302. EXPLORER TVIB1 (MOTS 'TABL') ;
  303. DESS ETFR1 'TITR' 'Transformee de Fourier du deplacement en tete'
  304. 'TITX' 'FREQUENCE (HZ)'
  305. 'TITY' 'MODULE'
  306. 'POSX' 'EXCE'
  307. 'POSY' 'EXCE'
  308. 'LOGY'
  309. 'GRIL' ;
  310. EXPLORER TVIB1 (MOTS 'DEFO' 'DEF0') ;
  311. FINS ;
  312. *
  313. ************************************************************************
  314. * VTK_MOD = SORTIE AU FORMAT VTK DE LA TABLE TAB1 DE SOUS-TYPE
  315. * 'BASE_MODALE' A L'EMPLACEMENT FIC1
  316. DEBP VTK_MOD TAB1*'TABLE' FIC1*'MOT' ;
  317. TAB2 = TAB1.'MODES' ;
  318. NTAB2 = (DIME TAB2) - 2 ;
  319. REPE II NTAB2 ;
  320. OPTI 'SORT' FIC1 ;
  321. DEP1 = EXCO (TAB2.&II.'DEFORMEE_MODALE') (MOTS 'UX' 'UY' 'UZ') ;
  322. SORT 'VTK' POUT DEP1 'TEMP' &II ;
  323. FIN II ;
  324. FINP ;
  325. ************************************************************************
  326. *
  327. * SORTIE VTK
  328. SI (FVTK NEG 0) ;
  329. VTK_MOD TVIB1 'pod_pout_elas/VIBR' ;
  330. FINS ;
  331. *
  332. *
  333. *
  334. * =====================================
  335. * CALCUL ET VISUALISATION DES MODES POD
  336. * =====================================
  337. *
  338. LPERM1 = NTEMP1 + (LECT 1 'PAS' 1 NTEMP2) ;
  339. LPERM2 = NTEMP1 + (ENTI (PROG 1 'PAS' 20 NTEMP2)) ;
  340. *
  341. TPOD1 = POD TAB1 LPERM2 'SNAP' MATR1 NBMODES 'TBAS' POUT ;
  342. TPOD2 = POD TAB1 LPERM2 'CLAS' MATR1 NBMODES 'TBAS' POUT ;
  343. TPOD3 = POD TAB1 LPERM2 'SNAP' NBMODES 'TBAS' POUT ;
  344. TPOD4 = POD TAB1 LPERM2 'CLAS' NBMODES 'TBAS' POUT ;
  345. *
  346. NNOR 'EUCL' TPOD1 MATR1 ;
  347. NNOR 'EUCL' TPOD2 MATR1 ;
  348. NNOR 'EUCL' TPOD3 ;
  349. NNOR 'EUCL' TPOD4 ;
  350. *
  351. * AFFICHAGE GRAPHIQUE
  352. SI GRAPH ;
  353. EXPLORER TPOD1 (MOTS 'TABL') ;
  354. EXPLORER TPOD1 (MOTS 'DEFO' 'DEF0') ;
  355. FINS ;
  356. *
  357. * SORTIE VTK
  358. SI (FVTK NEG 0) ;
  359. VTK_MOD TPOD1 'pod_pout_elas/SNAP_RIG' ;
  360. VTK_MOD TPOD2 'pod_pout_elas/CLAS_RIG' ;
  361. VTK_MOD TPOD3 'pod_pout_elas/SNAP' ;
  362. VTK_MOD TPOD4 'pod_pout_elas/CLAS' ;
  363. FINS ;
  364. *
  365. *
  366. *
  367. * ================================
  368. * HISTOGRAMMES DES VALEURS PROPRES
  369. * ================================
  370. *
  371. ************************************************************************
  372. * TAB2LIST = EXTRAIT DE LA TABLE TAB1 DE SOUS-TYPE 'BASE_MODALE' LE
  373. * LISTCHPO DES NB1 PREMIERS VECTEURS PROPRES ET LE LISTREEL
  374. * DES NB1 PREMIERES VALEURS PROPRES
  375. DEBP TAB2LIST TAB1*'TABLE' NB1*'ENTIER' ;
  376. LVEC1 = SUIT ;
  377. LVAL1 = PROG ;
  378. REPE K NB1 ;
  379. VEC1 = TAB1.'MODES'.&K.'DEFORMEE_MODALE' ;
  380. VAL1 = (2.*PI*TAB1.'MODES'.&K.'FREQUENCE') ** 2 ;
  381. LVEC1 = LVEC1 ET VEC1 ;
  382. LVAL1 = LVAL1 ET VAL1 ;
  383. FIN K ;
  384. FINP LVEC1 LVAL1 ;
  385. ************************************************************************
  386. *
  387. VECVIB1 VALVIB1 = TAB2LIST TVIB1 NBMODES ;
  388. VECPOD1 VALPOD1 = TAB2LIST TPOD1 NBMODES ;
  389. VECPOD2 VALPOD2 = TAB2LIST TPOD2 NBMODES ;
  390. VECPOD3 VALPOD3 = TAB2LIST TPOD3 NBMODES ;
  391. VECPOD4 VALPOD4 = TAB2LIST TPOD4 NBMODES ;
  392.  
  393. SAUT 1 'LIGNE' ;
  394. MESS '************************************' ;
  395. MESS 'VALEURS PROPRES :' ;
  396. MESS ' ' ;
  397. MESS 'VIBR' ; LIST VALVIB1 ;
  398. MESS ' ' ;
  399. MESS 'POD "SNAPSHOTS" MATR1' ; LIST VALPOD1 ;
  400. MESS ' ' ;
  401. MESS 'POD "CLASSIQUE" MATR1' ; LIST VALPOD2 ;
  402. MESS ' ' ;
  403. MESS 'POD "SNAPSHOTS"' ; LIST VALPOD3 ;
  404. MESS ' ' ;
  405. MESS 'POD "CLASSIQUE"' ; LIST VALPOD4 ;
  406. MESS ' ' ;
  407. MESS '************************************' ;
  408. SAUT 1 'LIGNE' ;
  409. *
  410. *
  411. SI GRAPH ;
  412. THIST = TABL ;
  413. THIST.'NOMS' = TABL ;
  414. REPE K NBMODES ;
  415. THIST.'NOMS'.&K = &K ;
  416. FIN K ;
  417. *
  418. EV1 TA1 = @HISTOGR VALVIB1 THIST VRAI ;
  419. EV2 TA2 = @HISTOGR VALPOD1 THIST VRAI ;
  420. EV3 TA3 = @HISTOGR VALPOD3 THIST VRAI ;
  421. *
  422. YMIN1 = MINI VALVIB1 ;
  423. YMAX1 = MAXI VALVIB1 ;
  424. DESS EV1 'TITR' (CHAI 'VALEURS PROPRES : VIBR')
  425. 'TITX' ' ' 'TITY' 'VALEUR PROPRE'
  426. 'LOGY' 'YBOR' YMIN1 YMAX1 'XBOR' 0. NBMODES 'XGRA' NBMODES
  427. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' TA1 ;
  428. *
  429. YMIN2 = MINI VALPOD1 ;
  430. YMAX2 = MAXI VALPOD1 ;
  431. DESS EV2 'TITR' (CHAI 'VALEURS PROPRES : POD AVEC MATRICE')
  432. 'TITX' ' ' 'TITY' 'VALEUR PROPRE'
  433. 'LOGY' 'YBOR' YMIN2 YMAX2 'XBOR' 0. NBMODES 'XGRA' NBMODES
  434. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' TA2 ;
  435. *
  436. YMIN3 = MINI VALPOD3 ;
  437. YMAX3 = MAXI VALPOD3 ;
  438. DESS EV3 'TITR' (CHAI 'VALEURS PROPRES : POD SANS MATRICE')
  439. 'TITX' ' ' 'TITY' 'VALEUR PROPRE'
  440. 'LOGY' 'YBOR' YMIN3 YMAX3 'XBOR' 0. NBMODES 'XGRA' NBMODES
  441. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' TA3 ;
  442. FINS ;
  443. *
  444. *
  445. *
  446. * ====================================
  447. * CONFRONTATION DES MODES FONDAMENTAUX
  448. * ====================================
  449. *
  450. VIB1 = EXTR VECVIB1 1 ;
  451. POD1 = EXTR VECPOD1 1 ;
  452. POD2 = EXTR VECPOD2 1 ;
  453. POD3 = EXTR VECPOD3 1 ;
  454. POD4 = EXTR VECPOD4 1 ;
  455. *
  456. LVIB1 = EXTR ((PSCA VIB1 VIB1 LCO LCO) ** 0.5) 'VALE' POUT1 ;
  457. LPOD1 = EXTR ((PSCA POD1 POD1 LCO LCO) ** 0.5) 'VALE' POUT1 ;
  458. LPOD2 = EXTR ((PSCA POD2 POD2 LCO LCO) ** 0.5) 'VALE' POUT1 ;
  459. LPOD3 = EXTR ((PSCA POD3 POD3 LCO LCO) ** 0.5) 'VALE' POUT1 ;
  460. LPOD4 = EXTR ((PSCA POD4 POD4 LCO LCO) ** 0.5) 'VALE' POUT1 ;
  461. *
  462. LVIB1 = LVIB1 / (MAXI LVIB1) ;
  463. LPOD1 = LPOD1 / (MAXI LPOD1) ;
  464. LPOD2 = LPOD2 / (MAXI LPOD2) ;
  465. LPOD3 = LPOD3 / (MAXI LPOD3) ;
  466. LPOD4 = LPOD4 / (MAXI LPOD4) ;
  467. *
  468. LZZ = EXTR (COOR 3 POUT) 'VALE' POUT1 ;
  469. EVIB1 = EVOL 'TURQ' 'MANU' LVIB1 LZZ ;
  470. EPOD1 = EVOL 'ROUG' 'MANU' LPOD1 LZZ ;
  471. EPOD2 = EVOL 'ORAN' 'MANU' LPOD2 LZZ ;
  472. EPOD3 = EVOL 'VERT' 'MANU' LPOD3 LZZ ;
  473. EPOD4 = EVOL 'OCEA' 'MANU' LPOD4 LZZ ;
  474. *
  475. * QUANTIFICATION DE L'ECART
  476. ECAR1 = (SOMM ((LVIB1 - LPOD1) ** 2)) / NBNO1 ;
  477. ECAR2 = (SOMM ((LVIB1 - LPOD2) ** 2)) / NBNO1 ;
  478. ECAR3 = (SOMM ((LVIB1 - LPOD3) ** 2)) / NBNO1 ;
  479. ECAR4 = (SOMM ((LVIB1 - LPOD4) ** 2)) / NBNO1 ;
  480.  
  481. SAUT 1 'LIGNE' ;
  482. MESS '************************************' ;
  483. MESS 'MESURE DE L' $$ 'ECART ENTRE LES MODES FONDAMENTAUX :' ;
  484. MESS ' VIBR / POD "SNAPSHOTS" => ' ECAR1 ;
  485. MESS ' VIBR / POD "SNAPSHOTS" MATR1 => ' ECAR2 ;
  486. MESS ' VIBR / POD "CLASSIQUE" => ' ECAR3 ;
  487. MESS ' VIBR / POD "CLASSIQUE" MATR1 => ' ECAR4 ;
  488. MESS '************************************' ;
  489. SAUT 1 'LIGNE' ;
  490. *
  491. * AFFICHAGE GRAPHIQUE
  492. SI GRAPH ;
  493. TLEG3 = TABL ;
  494. TLEG3 . 3 = 'TIRR' ;
  495. TLEG3 . 5 = 'TIRR' ;
  496. TLEG3.'TITRE' = TABL ;
  497. TLEG3.'TITRE' . 1 = MOT 'VIBR' ;
  498. TLEG3.'TITRE' . 2 = MOT 'POD "SNAPSHOTS" RIGI' ;
  499. TLEG3.'TITRE' . 3 = MOT 'POD "CLASSIQUE" RIGI' ;
  500. TLEG3.'TITRE' . 4 = MOT 'POD "SNAPSHOTS"' ;
  501. TLEG3.'TITRE' . 5 = MOT 'POD "CLASSIQUE"' ;
  502. *
  503. DESS (EVIB1 ET EPOD1 ET EPOD2 ET EPOD3 ET EPOD4)
  504. 'TITR' 'Comparaison des modes fondamentaux'
  505. 'TITX' 'DEFORMEE (M)'
  506. 'TITY' 'ALTITUDE (M)'
  507. 'POSX' 'EXCE'
  508. 'POSY' 'EXCE'
  509. 'XBOR' 0. 1.
  510. 'GRIL' 'TIRR'
  511. 'LEGE' TLEG3 ;
  512. FINS ;
  513. *
  514. *
  515. *
  516. * ================================
  517. * VERIFICATION DE L'ORTHONORMALITE
  518. * ================================
  519. *
  520. ************************************************************************
  521. * TESTBAS1 = AFFICHE LES PRODUITS SCALAIRES (AVEC OU SANS MATRICE MATR1)
  522. * ENTRE LES VECTEURS DE BASE LVEC1 PRIS DEUX A DEUX
  523. DEBP TESTBAS1 LVEC1*'LISTCHPO' RIGI1/'RIGIDITE' MTIT1*'MOT' ;
  524. ZRIGI1 = EXIS RIGI1 ;
  525. SI (NON ZRIGI1) ;
  526. COMP1 = EXTR (EXTR LVEC1 1) 'COMP' ;
  527. FINS ;
  528. LPS1 = PROG ;
  529. NVEC1 = DIME LVEC1 ;
  530. REPE I NVEC1 ;
  531. VEC1 = EXTR LVEC1 &I ;
  532. REPE J NVEC1 ;
  533. VEC2 = EXTR LVEC1 &J ;
  534. SI ZRIGI1 ;
  535. XPS1 = YTMX RIGI1 VEC1 VEC2 ;
  536. SINON ;
  537. XPS1 = XTY VEC1 VEC2 COMP1 COMP1 ;
  538. FINS ;
  539. LPS1 = LPS1 ET XPS1 ;
  540. FIN J ;
  541. FIN I ;
  542. *
  543. MTIT2 = CHAI 'VERIFICATION DE L' $$ 'ORTHOGONALITE DES MODES : ' ;
  544. TABLO2D NVEC1 NVEC1 LPS1 (CHAI MTIT2 MTIT1) ;
  545. * TABLO3D NVEC1 NVEC1 LPS1 MTIT1 ;
  546. FINP ;
  547. ************************************************************************
  548. *
  549. * EN THEORIE : (PHI_i,PHI_j)=d_ij
  550. SI GRAPH ;
  551. TESTBAS1 VECVIB1 MATR1 'VIBR' ;
  552. TESTBAS1 VECPOD1 MATR1 'POD "SNAPSHOTS" MATR1' ;
  553. TESTBAS1 VECPOD2 MATR1 'POD "CLASSIQUE" MATR1' ;
  554. TESTBAS1 VECPOD3 'POD "SNAPSHOTS"' ;
  555. TESTBAS1 VECPOD4 'POD "CLASSIQUE"' ;
  556. FINS ;
  557. *
  558. *
  559. *
  560. * =============================================
  561. * VERIFICATION DE LA NON-CORRELATION TEMPORELLE
  562. * =============================================
  563. *
  564. ************************************************************************
  565. * TESTBAS2 = AFFICHE LE COEFFICIENT DE CORRELATION ENTRE LES EVOLUTIONS
  566. * TEMPORELLES DES COEFFICIENTS DE PROJECTION PRIS DEUX A DEUX
  567. DEBP TESTBAS2 TBAS1*'TABLE' RIGI1/'RIGIDITE' ZERO1*'FLOTTANT'
  568. MTIT1*'MOT' ;
  569. SI (EXIS RIGI1) ;
  570. EVTOT1 = EVOL 'PJBA' TAB1 'DEPL' LPERM1 TBAS1 RIGI1 ;
  571. SINON ;
  572. EVTOT1 = EVOL 'PJBA' TAB1 'DEPL' LPERM1 TBAS1 ;
  573. FINS ;
  574. LPS1 = PROG ;
  575. NMOD1 = DIME EVTOT1 ;
  576. NTPS1 = DIME LPERM1 ;
  577. TEMP1 = (NTPS1 - 1) * DT ;
  578. REPE I NMOD1 ;
  579. COEF1 = EXTR EVTOT1 'COUR' &I ;
  580. REPE J NMOD1 ;
  581. COEF2 = EXTR EVTOT1 'COUR' &J ;
  582. COR12 = (INTG (COEF1 * COEF2)) / TEMP1 ;
  583. LPS1 = LPS1 ET COR12 ;
  584. FIN J ;
  585. FIN I ;
  586. *
  587. MTIT2 = CHAI 'VERIFICATION DE LA NON CORRELATION DES MODES : ' ;
  588. * TABLO2D NMOD1 NMOD1 LPS1 (CHAI MTIT2 MTIT1) ;
  589. TABLO3D 'LOGA' ZERO1 NMOD1 NMOD1 LPS1 (CHAI MTIT2 MTIT1) ;
  590. FINP ;
  591. ************************************************************************
  592. *
  593. * EN THEORIE (POUR LA POD) : moyt(ALPHA_i(t)*ALPHA_j(t))=d_ij*lambda_i
  594. SI GRAPH ;
  595. TESTBAS2 TVIB1 MATR1 (MINI VALVIB1) 'VIBR' ;
  596. TESTBAS2 TPOD1 MATR1 (MINI VALPOD1) 'POD "SNAPSHOTS" MATR1' ;
  597. TESTBAS2 TPOD2 MATR1 (MINI VALPOD2) 'POD "CLASSIQUE" MATR1' ;
  598. TESTBAS2 TPOD3 (MINI VALPOD3) 'POD "SNAPSHOTS"' ;
  599. TESTBAS2 TPOD4 (MINI VALPOD4) 'POD "CLASSIQUE"' ;
  600. FINS ;
  601. *
  602. *
  603. *
  604. * ==============================================================
  605. * RECONSTRUCTION DU DEPLACEMENT EN TETE SUR LES N PREMIERS MODES
  606. * ==============================================================
  607. *
  608. PJBVIB1 = PJBA TAB1 'DEPL' LPERM1 TVIB1 MATR1 ;
  609. PJBPOD1 = PJBA TAB1 'DEPL' LPERM1 TPOD1 MATR1 ;
  610. PJBPOD2 = PJBA TAB1 'DEPL' LPERM1 TPOD2 MATR1 ;
  611. PJBPOD3 = PJBA TAB1 'DEPL' LPERM1 TPOD3 ;
  612. PJBPOD4 = PJBA TAB1 'DEPL' LPERM1 TPOD4 ;
  613. *
  614. SI GRAPH ;
  615. TLEG4 = TABL ;
  616. TLEG4.'TITRE' = TABL ;
  617. TLEG4 . 4 = 'TIRR' ;
  618. TLEG4 . 6 = 'TIRR' ;
  619. TLEG4.'TITRE' . 1 = MOT 'Simulation' ;
  620. TLEG4.'TITRE' . 2 = MOT 'VIBR' ;
  621. TLEG4.'TITRE' . 3 = MOT 'POD "SNAPSHOTS" RIGI1' ;
  622. TLEG4.'TITRE' . 4 = MOT 'POD "CLASSIQUE" RIGI1' ;
  623. TLEG4.'TITRE' . 5 = MOT 'POD "SNAPSHOTS"' ;
  624. TLEG4.'TITRE' . 6 = MOT 'POD "CLASSIQUE"' ;
  625. *
  626. EV1 = EVOL 'BLAN' 'TEMP' TAB1 'DEPL' LPERM1 'UX' TETE ;
  627. REPE II NBMODES ;
  628. EV2 = EVOL 'TURQ' 'RECO' PJBVIB1 LTEMP2 TVIB1 &II 'UX' TETE ;
  629. EV3 = EVOL 'ROUG' 'RECO' PJBPOD1 LTEMP2 TPOD1 &II 'UX' TETE ;
  630. EV4 = EVOL 'ORAN' 'RECO' PJBPOD2 LTEMP2 TPOD2 &II 'UX' TETE ;
  631. EV5 = EVOL 'VERT' 'RECO' PJBPOD3 LTEMP2 TPOD3 &II 'UX' TETE ;
  632. EV6 = EVOL 'OCEA' 'RECO' PJBPOD4 LTEMP2 TPOD4 &II 'UX' TETE ;
  633. *
  634. DESS (EV1 ET EV2 ET EV3 ET EV4 ET EV5 ET EV6)
  635. 'TITR' (CHAI 'RECONSTRUCTION SUR ' &II ' MODE(S)')
  636. 'TITX' 'TEMPS (S)'
  637. 'TITY' 'DEPL. TETE (M)'
  638. 'XBOR' XMIN1 XMAX1
  639. 'POSX' 'EXCE'
  640. 'POSY' 'EXCE'
  641. 'LEGE' TLEG4 ;
  642. FIN II ;
  643. FINS ;
  644. *
  645. *
  646. *
  647. * ================================================================
  648. * RECONSTRUCTION DE L'ENERGIE POTENTIELLE SUR LES N PREMIERS MODES
  649. * ================================================================
  650. *
  651. NMOD1 = NBMODES + 1 ;
  652. NBAR1 = (NMOD1*5) + 1 ;
  653. LHIS1 = PROG NBAR1*0. ;
  654. NBAR2 = (4*NBMODES) + 1 ;
  655. LHIS2 = PROG NBAR2*0. ;
  656. *
  657. REPE II NBMODES ;
  658. LVIB1 = RECO PJBVIB1 TVIB1 &II ;
  659. LPOD1 = RECO PJBPOD1 TPOD1 &II ;
  660. LPOD2 = RECO PJBPOD2 TPOD2 &II ;
  661. LPOD3 = RECO PJBPOD3 TPOD3 &II ;
  662. LPOD4 = RECO PJBPOD4 TPOD4 &II ;
  663. *
  664. * CALCUL DE L'ENERGIE EN FONCTION DU TEMPS
  665. LXDEP1 LXVIB1 LXPOD1 LXPOD2 LXPOD3 LXPOD4 = VIDE 'LISTREEL'*6 ;
  666. REPE IT NTEMP2 ;
  667. DEP1 = EXTR LDEP1 &IT ;
  668. VIB1 = EXTR LVIB1 &IT ;
  669. POD1 = EXTR LPOD1 &IT ;
  670. POD2 = EXTR LPOD2 &IT ;
  671. POD3 = EXTR LPOD3 &IT ;
  672. POD4 = EXTR LPOD4 &IT ;
  673. *
  674. XDEP1 = 0.5*(XTMX DEP1 MATR1) ;
  675. XVIB1 = 0.5*(XTMX VIB1 MATR1) ;
  676. XPOD1 = 0.5*(XTMX POD1 MATR1) ;
  677. XPOD2 = 0.5*(XTMX POD2 MATR1) ;
  678. XPOD3 = 0.5*(XTMX POD3 MATR1) ;
  679. XPOD4 = 0.5*(XTMX POD4 MATR1) ;
  680. *
  681. LXDEP1 = LXDEP1 ET XDEP1 ;
  682. LXVIB1 = LXVIB1 ET XVIB1 ;
  683. LXPOD1 = LXPOD1 ET XPOD1 ;
  684. LXPOD2 = LXPOD2 ET XPOD2 ;
  685. LXPOD3 = LXPOD3 ET XPOD3 ;
  686. LXPOD4 = LXPOD4 ET XPOD4 ;
  687. FIN IT ;
  688. *
  689. EDEP1 = EVOL 'BLAN' 'MANU' LTEMP2 LXDEP1 ;
  690. EVIB1 = EVOL 'TURQ' 'MANU' LTEMP2 LXVIB1 ;
  691. EPOD1 = EVOL 'ROUG' 'MANU' LTEMP2 LXPOD1 ;
  692. EPOD2 = EVOL 'ORAN' 'MANU' LTEMP2 LXPOD2 ;
  693. EPOD3 = EVOL 'VERT' 'MANU' LTEMP2 LXPOD3 ;
  694. EPOD4 = EVOL 'OCEA' 'MANU' LTEMP2 LXPOD4 ;
  695. *
  696. SI GRAPH ;
  697. DESS (EDEP1 ET EVIB1 ET EPOD1 ET EPOD2 ET EPOD3 ET EPOD4)
  698. 'TITR' (CHAI 'RECONSTRUCTION SUR ' &II ' MODE(S)')
  699. 'TITX' 'TEMPS (S)'
  700. 'TITY' 'ENERGIE ELAST. (J)'
  701. 'XBOR' XMIN1 XMAX1
  702. 'POSX' 'EXCE'
  703. 'POSY' 'EXCE'
  704. 'LEGE' TLEG4 ;
  705. FINS ;
  706. *
  707. * INTEGRATION TEMPORELLE ET MISE A JOUR DES HISTOGRAMMES
  708. XDEP1 = EXTR (INTG EDEP1) 1 ;
  709. XVIB1 = (EXTR (INTG EVIB1) 1) / XDEP1 * 100 ;
  710. XPOD1 = (EXTR (INTG EPOD1) 1) / XDEP1 * 100 ;
  711. XPOD2 = (EXTR (INTG EPOD2) 1) / XDEP1 * 100 ;
  712. XPOD3 = (EXTR (INTG EPOD3) 1) / XDEP1 * 100 ;
  713. XPOD4 = (EXTR (INTG EPOD4) 1) / XDEP1 * 100 ;
  714.  
  715. REMP LHIS1 ( 1+&II) XVIB1 ;
  716. REMP LHIS1 ( NMOD1+1+&II) XPOD1 ;
  717. REMP LHIS1 (2*NMOD1+1+&II) XPOD2 ;
  718. REMP LHIS1 (3*NMOD1+1+&II) XPOD3 ;
  719. REMP LHIS1 (4*NMOD1+1+&II) XPOD4 ;
  720.  
  721. REMP LHIS2 ((&II - 1)*4 + 2) XVIB1 ;
  722. REMP LHIS2 ((&II - 1)*4 + 3) XPOD3 ;
  723. REMP LHIS2 ((&II - 1)*4 + 4) XPOD1 ;
  724. FIN II ;
  725. *
  726. *
  727. *
  728. * ======================
  729. * ENERGIE TOTALE CUMULEE
  730. * ======================
  731. *
  732. *
  733. SI GRAPH ;
  734. *
  735. * GRAPHIQUE 1
  736. * ***********
  737. *
  738. TNOM1 = TABL ;
  739. TNOM1 . ( NMOD1) = MOT 'VIBR' ;
  740. TNOM1 . (2*NMOD1) = MOT 'POD SNAP RIG' ;
  741. TNOM1 . (3*NMOD1) = MOT 'POD CLAS RIG' ;
  742. TNOM1 . (4*NMOD1) = MOT 'POD SNAP' ;
  743. TNOM1 . (5*NMOD1) = MOT 'POD CLAS' ;
  744. *
  745. THIS1 = TABL ;
  746. THIS1.'COUL' = MOTS NMOD1*'TURQ' NMOD1*'ROUG' NMOD1*'ORAN'
  747. NMOD1*'VERT' NMOD1*'OCEA' ;
  748. THIS1.'LARG' = PROG NBAR1*1. ;
  749. THIS1.'ESPA' = 0. ;
  750. THIS1.'NOMS' = TNOM1 ;
  751. *
  752. EVOL1 TABL1 = @HISTOGR LHIS1 THIS1 VRAI ;
  753. OUBL TABL1 1 ;
  754. *
  755. EVMAX = EVOL 'GRIS' 'MANU' (PROG 0. NBAR1) (PROG 100. 100.) ;
  756. *
  757. DESS (EVMAX ET EVOL1) TABL1
  758. 'TITR' (CHAI 'ENERGIE DU SIGNAL RECONSTRUIT EN FONCTION DU '
  759. 'NOMBRE DE MODES RETENUS')
  760. 'TITY' 'ENERGIE (%)'
  761. 'YBOR' 0. 150. 'XBOR' 0. NBAR1 'XGRA' NBAR1 'YGRA' 10.
  762. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' ;
  763. *
  764. *
  765. * GRAPHIQUE 2
  766. * ***********
  767. *
  768. TNOM2 = TABL ;
  769. REPE KK NBMODES ;
  770. K1 = (&KK - 1) * 4 ;
  771. TNOM2.(K1 + 2) = &KK ;
  772. TNOM2.(K1 + 3) = &KK ;
  773. TNOM2.(K1 + 4) = &KK ;
  774. FIN KK ;
  775. *
  776. THIS2 = TABL ;
  777. THIS2.'COUL' = MOTS 'BLAN' 'TURQ' 'OLIV' 'ROUG' ;
  778. THIS2.'LARG' = PROG NBAR2*1. ;
  779. THIS2.'ESPA' = 0. ;
  780. THIS2.'NOMS' = TNOM2 ;
  781. *
  782. EVOL2 TABL2 = @HISTOGR LHIS2 THIS2 VRAI ;
  783. *
  784. TABL2.'TITRE' = TABL ;
  785. TABL2.'TITRE' . 2 = MOT 'VIBR' ;
  786. TABL2.'TITRE' . 3 = MOT 'POD (SANS MATRICE)' ;
  787. TABL2.'TITRE' . 4 = MOT 'POD (AVEC MATRICE)' ;
  788. REPE KK NBAR2 ;
  789. SI ((&KK >EG 2) ET (&KK <EG 4)) ;
  790. ITER KK ;
  791. FINS ;
  792. TABL2.'TITRE'.&KK = MOT 'PAS DE LEGENDE' ;
  793. FIN KK ;
  794. *
  795. DESS EVOL2
  796. 'TITR' (CHAI 'ENERGIE DU SIGNAL RECONSTRUIT EN FONCTION DU '
  797. 'NOMBRE DE MODES RETENUS')
  798. 'TITY' 'ENERGIE (%)'
  799. 'YBOR' 0. 100. 'XBOR' 0. NBAR2 'XGRA' NBAR2 'YGRA' 10.
  800. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' 'LEGE' TABL2 ;
  801. *
  802. FINS ;
  803. *
  804. *
  805. XNRJVIB = EXTR LHIS2 (NBAR2 - 3) ;
  806. XNRJPOD1 = EXTR LHIS2 (NBAR2 - 2) ;
  807. XNRJPOD2 = EXTR LHIS2 (NBAR2 - 1) ;
  808. SAUT 1 'LIGNE' ;
  809. MESS '************************************' ;
  810. MESS 'LE SIGNAL RECONSTRUIT SUR ' NBMODES ' MODES CONTIENT :' ;
  811. MESS ' ' (@ARR XNRJVIB 2) '% DE L' $$ 'ENERGIE AVEC VIBR' ;
  812. MESS ' ' (@ARR XNRJPOD1 2) '% DE L' $$ 'ENERGIE AVEC POD' ;
  813. MESS ' ' (@ARR XNRJPOD2 2) '% DE L' $$ 'ENERGIE AVEC POD MATR' ;
  814. MESS '************************************' ;
  815. SAUT 1 'LIGNE' ;
  816. *
  817. *
  818. OPTI 'ECHO' 1 ;
  819. *
  820. *
  821. *
  822. *
  823. * +-------------------------------------------------------------------+
  824. * | |
  825. * | T E S T S D E V A L I D A T I O N |
  826. * | |
  827. * +-------------------------------------------------------------------+
  828. *
  829. * 1) LE MODE FONDAMENTAL DOIT ETRE SIMILAIRE QUELLE QUE SOIT LA METHODE
  830. SI (ECAR1 > 1.E-3) ;
  831. ERRE 5 ;
  832. FINS ;
  833. SI (ECAR2 > 1.E-3) ;
  834. ERRE 5 ;
  835. FINS ;
  836. SI (ECAR3 > 1.E-3) ;
  837. ERRE 5 ;
  838. FINS ;
  839. SI (ECAR4 > 1.E-3) ;
  840. ERRE 5 ;
  841. FINS ;
  842. *
  843. * 2) POD "SNAPSHOTS" ET "CLASSIQUE" DOIVENT DONNER LES MEMES RESULTATS
  844. SI (NEG ECAR1 ECAR2 1.E-10) ;
  845. ERRE 5 ;
  846. FINS ;
  847. SI (NEG ECAR3 ECAR4 1.E-10) ;
  848. ERRE 5 ;
  849. FINS ;
  850. *
  851. * 3) LA RECONSTRUCTION POD SUR 10 MODES DOIT CONTENIR AU MOINS 98% DE
  852. * L'ENERGIE
  853. SI (XNRJPOD2 < 98.) ;
  854. ERRE 5 ;
  855. FINS ;
  856. *
  857. *
  858. *
  859. FIN ;
  860. *
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  

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