Télécharger pod_pout_elas.dgibi

Retour à la liste

Numérotation des lignes :

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

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