Télécharger hbm.procedur

Retour à la liste

Numérotation des lignes :

  1. * HBM PROCEDUR BP208322 16/09/01 21:15:03 9010
  2. *
  3. ************************************************************************
  4. * CREATION : 22/05/2014 Lihan XIE
  5. * MODIF : 06/01/2016 BP
  6. *
  7. * OBJET :
  8. *
  9. * - Construire les matrices caracteristiques (Matrice de MASSE,
  10. * RIGIDITE, AMORTISSEMENT, ...) pour toutes les harmoniques
  11. * sans modele
  12. * - Traduit la table de resultats demandés à CONTINU
  13. * (inconnues temporelles -> inconnues frequentielles)
  14. *
  15. *
  16. * ENTREE :
  17. *
  18. * TABHBM = TABLE
  19. *
  20. * . 'RIGIDITE_CONSTANTE' = K
  21. * . 'AMORTISSEMENT_CONSTANT' = C
  22. * . 'MASSE_CONSTANTE' = M
  23. * . 'BLOCAGES_MECANIQUES' = Kblocages
  24. * . 'RIGIDITE_CENTRIFUGE'
  25. * . 'CORIOLIS_CONSTANT'
  26. * . 'N_HARMONIQUE' = nombre d'harmoniques H
  27. * . 'RESULTATS' = table des resultats attendus
  28. * . i . 'POINT_MESURE' exprimés sur ddl temporel
  29. * . 'COMPOSANTES'
  30. * . 'COULEUR'
  31. * . 'TITRE'
  32. *
  33. *
  34. * Sortie :
  35. * _______
  36. *
  37. * TABHBM
  38. * . 'RIGIDITE_HBM' = K developpe en H harmoniques
  39. * . 'AMORTISSEMENT_HBM' = C developpe en H harmoniques
  40. * . 'MASSE_HBM' = M developpe en H harmoniques
  41. * . 'BLOCAGES_HBM' = Kblocages en H harmoniques
  42. * . 'CENTRIFUGE_HBM'
  43. * . 'CORIOLIS_HBM'
  44. *
  45. * . 'RESULTATS_HBM' = table des resultats attendus
  46. * . j . 'POINT_MESURE' exprimés sur ddl frequentiels
  47. * . 'COMPOSANTES'
  48. * . 'COULEUR'
  49. * . 'TITRE'
  50. * . 'RESULTATS'
  51. * . i . 'INDICES_HBM' = liste des indices j associe
  52. * au i^eme resultat
  53. *
  54. * . 'COMPOSANTES'
  55. * . 'DEPLACEMENT' = composantes dep temporelles (max.6)
  56. * . 'FORCE' = composantes for temporelles (max.6)
  57. * . 'DEPLACEMENT_HBM' = comp dep frequentielles
  58. * . 'FORCE_HBM' = comp for frequentielles
  59. * . 'HARM_DEPLACEMENT' = comp dep par ordre d'harmonique
  60. * . 'HARM_FORCE' = comp for par ordre d'harmonique
  61. *
  62. * Correspondance entre inconnues temporelles et frequentielles :
  63. * +-----------+--------------------------------------+
  64. * | domaine | domaine fréquentiel |
  65. * | temporel | k=0 k=1(cos) k=1(sin) ... |
  66. * +-----------+--------------------------------------+
  67. * | UX | U1 U4 V4 ... |
  68. * | UY | U2 U5 V5 ... |
  69. * | UZ | U3 U6 V6 ... |
  70. * +-----------+--------------------------------------+
  71. *
  72. *
  73. ***********************************************************************
  74. DEBPROC HBM TABHBM*'TABLE';
  75. * fldebug = vrai;
  76. fldebug = faux;
  77.  
  78. ************************************************************************
  79. * *
  80. * VERIFICATION DES DONNEES D'ENTREE + VALEURS PAR DEFAUT *
  81. * *
  82. ************************************************************************
  83.  
  84.  
  85. * lecture des matrices definies dans le domaine temporel ***************
  86.  
  87. SI (EXIS TABHBM 'RIGIDITE_CONSTANTE');
  88. RI1 = TABHBM . 'RIGIDITE_CONSTANTE';
  89. SINON;
  90. MESS 'IL MANQUE LA RIGIDITE'; ERRE 21;
  91. FINSI;
  92.  
  93. SI (EXIS TABHBM 'AMORTISSEMENT_CONSTANT');
  94. AMOR1 = TABHBM . 'AMORTISSEMENT_CONSTANT';
  95. SINON;
  96. AMOR1 = VIDE 'RIGIDITE';
  97. MESS 'IL MANQUE L AMORTISSEMENT : on poursuit malgré tout...';
  98. FINSI;
  99.  
  100. SI (EXIS TABHBM 'MASSE_CONSTANTE');
  101. MASS1 = TABHBM . 'MASSE_CONSTANTE';
  102. SINON;
  103. MASS1 = VIDE 'RIGIDITE';
  104. MESS 'IL MANQUE LA MASSE: on poursuit malgré tout...';
  105. FINSI;
  106.  
  107. SI (EXIS TABHBM 'BLOCAGES_MECANIQUES');
  108. KBLO1 = TABHBM . 'BLOCAGES_MECANIQUES';
  109. SINON;
  110. MESS 'IL MANQUE LES BLOCAGES_MECANIQUES : on poursuit malgré tout...';
  111. KBLO1 = VIDE 'RIGIDITE';
  112. TABHBM . 'BLOCAGES_MECANIQUES' = VIDE 'RIGIDITE';
  113. FINSI;
  114.  
  115. SI (EXIS TABHBM 'GYRO_CONSTANT');
  116. CG1 = TABHBM . 'GYRO_CONSTANT';
  117. SINON;
  118. CG1 = VIDE 'RIGIDITE';
  119. FINSI;
  120.  
  121. SI (EXIS TABHBM 'RIGIDITE_CENTRIFUGE');
  122. Kcen1 = TABHBM . 'RIGIDITE_CENTRIFUGE';
  123. SINON;
  124. Kcen1 = VIDE 'RIGIDITE';
  125. FINSI;
  126.  
  127. SI (EXIS TABHBM 'PRECONTRAINTE_CENTRIFUGE');
  128. Ksig1 = TABHBM . 'PRECONTRAINTE_CENTRIFUGE';
  129. SINON;
  130. Ksig1 = VIDE 'RIGIDITE';
  131. FINSI;
  132.  
  133. SI (EXIS TABHBM 'CORIOLIS_CONSTANT');
  134. Ccor1 = TABHBM . 'CORIOLIS_CONSTANT';
  135. SINON;
  136. Ccor1 = VIDE 'RIGIDITE';
  137. FINSI;
  138.  
  139. * lecture du nombre d'harmoniques **************************************
  140.  
  141. SI (EXIS TABHBM 'N_HARMONIQUE');
  142. nhbm = TABHBM . 'N_HARMONIQUE';
  143. SINON;
  144. MESS 'IL MANQUE LE NOMBRE D HARMONIQUE'; ERRE 21;
  145. FINSI;
  146.  
  147.  
  148. ************************************************************************
  149. * *
  150. * INITIALISATIONS *
  151. * *
  152. ************************************************************************
  153.  
  154. *composantes primales et duales temporelles ****************************
  155. NOMCOM = EXTR (RI1 ET KBLO1) 'COMP';
  156. NOMFOR = EXTR (RI1 ET KBLO1) 'COMP' 'DUAL';
  157. TABHBM . 'COMPOSANTES' = TABLE;
  158. TABHBM . 'COMPOSANTES'. 'DEPLACEMENT' = NOMCOM;
  159. TABHBM . 'COMPOSANTES'. 'FORCE' = NOMFOR;
  160. *ncom = nombre de composantes par noeud
  161. ncom = DIME NOMCOM;
  162. si fldebug;
  163. mess 'composantes primales temporelles :'; list NOMCOM;
  164. mess 'composantes duales temporelles :'; list NOMFOR;
  165. finsi;
  166.  
  167. * des matrices etendues aux inconnues frequentielles *******************
  168. * type raideur
  169. Ktot = VIDE 'RIGIDITE'/'RIGIDITE';
  170. KBtot = VIDE 'RIGIDITE'/'RIGIDITE';
  171. KCtot = VIDE 'RIGIDITE'/'RIGIDITE';
  172. KStot = VIDE 'RIGIDITE'/'RIGIDITE';
  173. * type masse
  174. Mtot = VIDE 'RIGIDITE'/'MASSE';
  175. * type amortissement
  176. Atot = VIDE 'RIGIDITE'/'AMORTISSEMENT';
  177. Gtot = VIDE 'RIGIDITE'/'AMORTISSEMENT';
  178. Ctot = VIDE 'RIGIDITE'/'AMORTISSEMENT';
  179.  
  180. * + celles necessaires a l'analyse de stabilite par method de Hill
  181. * (procedure FLOQUET)
  182. * type masse
  183. Mtot1 = VIDE 'RIGIDITE';
  184. Mtot2 = VIDE 'RIGIDITE';
  185. * type amortissement
  186. Atot1 = VIDE 'RIGIDITE';
  187. Gtot1 = VIDE 'RIGIDITE';
  188. Ctot1 = VIDE 'RIGIDITE';
  189.  
  190.  
  191.  
  192. ************************************************************************
  193. * *
  194. * CONSTRUCTION DES MATRICES *
  195. * *
  196. ************************************************************************
  197.  
  198. MOTDEP0 = MOTS;
  199. MOTFOR0 = MOTS;
  200. NOMU = TABLE;
  201. NOMF = TABLE;
  202.  
  203.  
  204. * BOUCLE SUR LES HARMONIQUES -------------------------------------------
  205.  
  206. ik = -1;
  207. REPE bk (NHBM + 1); ik = ik + 1 ;
  208.  
  209. si fldebug; mess '---------- k=' ik '---------'; finsi;
  210.  
  211. ************ CAS HARMONIQUE 0 ************
  212.  
  213. SI (ik EGA 0);
  214.  
  215. * GENERATION DES NOMS DE COMPOSANTES EN FREQUENTIEL
  216. MOTDEP = MOTS; MOTFOR = MOTS;
  217. il = 0; ij = 0; ilx = 0;
  218. REPE bl ncom; il = il + 1 ;
  219. MOTCOM = EXTR NOMCOM il;
  220. SI (EGA MOTCOM (CHAI 'LX'));
  221. MOTDEP = MOTDEP ET (MOTS 'LX');
  222. MOTFOR = MOTFOR ET (MOTS 'FLX');
  223. ilx = 1;
  224. SINON;
  225. ij = ij + 1;
  226. motu = chai 'U' ij;
  227. motf = chai 'F' ij;
  228. MOTDEP = MOTDEP ET (MOTS motu);
  229. MOTFOR = MOTFOR ET (MOTS motf);
  230. FINSI;
  231. FIN bl ;
  232. NOMU . ik = MOTDEP; NOMF . ik = MOTFOR;
  233. MOTDEP0 = MOTDEP0 ET MOTDEP;
  234. MOTFOR0 = MOTFOR0 ET MOTFOR;
  235. si fldebug;
  236. mess 'composantes primales k=0 :'; list MOTDEP;
  237. mess 'composantes duales k=0 :'; list MOTFOR;
  238. finsi;
  239.  
  240. * GENERATION DES MATRICES FREQUENTIELLES pour ik=0
  241. * type raideur
  242. K_ik = CHAN 'INCO' RI1 NOMCOM MOTDEP NOMFOR MOTFOR;
  243. KB_ik = CHAN 'INCO' KBLO1 NOMCOM MOTDEP NOMFOR MOTFOR;
  244. KC_ik = CHAN 'INCO' Kcen1 NOMCOM MOTDEP NOMFOR MOTFOR;
  245. KS_ik = CHAN 'INCO' Ksig1 NOMCOM MOTDEP NOMFOR MOTFOR;
  246. A_ik = vide 'RIGIDITE';
  247. G_ik = A_ik;
  248. C_ik = A_ik;
  249. M_ik = A_ik;
  250. * type amortissement (seulement pour FLOQUET)
  251. A1_ik = CHAN 'INCO' AMOR1 NOMCOM MOTDEP NOMFOR MOTFOR;
  252. G1_ik = CHAN 'INCO' CG1 NOMCOM MOTDEP NOMFOR MOTFOR;
  253. C1_ik = CHAN 'INCO' Ccor1 NOMCOM MOTDEP NOMFOR MOTFOR;
  254. * type masse (seulement pour FLOQUET)
  255. M1_ik = A_ik;
  256. M2_ik = CHAN 'INCO' MASS1 NOMCOM MOTDEP NOMFOR MOTFOR;
  257.  
  258.  
  259. ************ CAS HARMONIQUE ik ************
  260. SINON;
  261.  
  262. * GENERATION DES NOMS DE COMPOSANTES EN FREQUENTIEL
  263. MOTDEPC = MOTS; MOTFORC = MOTS;
  264. MOTDEPS = MOTS; MOTFORS = MOTS;
  265. NOMIU = MOTS; NOMIF = MOTS;
  266. il = 0; ij = 0;
  267. REPE bl ncom; il = &bl ;
  268. MOTCOM = EXTR NOMCOM il;
  269. SI (EGA MOTCOM (CHAI 'LX'));
  270. * cas particulier du multiplicateur de Lagrange : le nom reste
  271. MOTDEPC = MOTDEPC ET (MOTS 'LX');
  272. MOTFORC = MOTFORC ET (MOTS 'FLX');
  273. MOTDEPS = MOTDEPS ET (MOTS 'LX');
  274. MOTFORS = MOTFORS ET (MOTS 'FLX');
  275. MOTIU = MOTIU ET (MOTS 'LX');
  276. NOMIF = NOMIF ET (MOTS 'FLX');
  277. SINON;
  278. ij = ij + 1;
  279. * nouveau nom U### pour cos (ik w t)
  280. motu = chai 'U' (ik * (ncom - ilx) + ij);
  281. motf = chai 'F' (ik * (ncom - ilx) + ij);
  282. MOTDEPC = MOTDEPC ET (MOTS motu) ;
  283. MOTFORC = MOTFORC ET (MOTS motf) ;
  284. * nouveau nom V### pour sin (ik w t)
  285. motv = chai 'V' (ik * (ncom - ilx) + ij);
  286. motg = chai 'G' (ik * (ncom - ilx) + ij);
  287. MOTDEPS = MOTDEPS ET (MOTS motv);
  288. MOTFORS = MOTFORS ET (MOTS motg);
  289. * on a besoin des composantes imaginaires issues de IMPE
  290. SI (ik EGA 1);
  291. MOTIU = chai 'I' (EXTR NOMCOM il) ;
  292. MOTIF = chai 'I' (EXTR NOMFOR il);
  293. NOMIU = NOMIU ET (MOTS MOTIU);
  294. NOMIF = NOMIF ET (MOTS MOTIF);
  295. FINSI;
  296. FINSI;
  297. FIN bl ;
  298. * table des nom d'inconnues frequentielles
  299. NOMU . ik = TABLE; NOMF . ik = TABLE;
  300. NOMU . ik . 'COS' = MOTDEPC; NOMF . ik . 'COS' = MOTFORC;
  301. NOMU . ik . 'SIN' = MOTDEPS; NOMF . ik . 'SIN' = MOTFORS;
  302. MOTDEP = MOTDEPC ET MOTDEPS; MOTFOR = MOTFORC ET MOTFORS;
  303. MOTDEP0 = MOTDEP0 ET MOTDEP; MOTFOR0 = MOTFOR0 ET MOTFOR;
  304. SI (ik EGA 1);
  305. NOMCOM = NOMCOM ET NOMIU; NOMFOR = NOMFOR ET NOMIF;
  306. FINSI;
  307. si fldebug;
  308. mess 'composantes primales k :'; list MOTDEP;
  309. mess 'composantes duales k :'; list MOTFOR;
  310. finsi;
  311.  
  312. * GENERATION DES MATRICES IMPEDANCES (1 seule fois)
  313. SI (ik EGA 1);
  314. * type raideur [ K 0 ; 0 K ]
  315. RI1_H = IMPE RI1 'RAIDEUR';
  316. KBLO1_H = IMPE KBLO1 'RAIDEUR';
  317. Kcen1_H = IMPE Kcen1 'RAIDEUR';
  318. Ksig1_H = IMPE Ksig1 'RAIDEUR';
  319. * type masse [ -M 0 ; 0 -M ]
  320. MASS1_H = IMPE MASS1 'MASSE';
  321. * type masse pour FLOQUET [ 0 -M ; M 0 ]
  322. MASS1_C = IMPE MASS1 'AMORTISSEMENT';
  323. * type amortissement [ 0 -C ; C 0 ]
  324. AMOR1_H = IMPE AMOR1 'AMORTISSEMENT';
  325. CG1_H = IMPE CG1 'AMORTISSEMENT';
  326. Ccor1_H = IMPE Ccor1 'AMORTISSEMENT';
  327. * type amortissement pour FLOQUET [ C 0 ; 0 C ]
  328. AMOR1_C = IMPE AMOR1 'RAIDEUR';
  329. CG1_C = IMPE CG1 'RAIDEUR';
  330. Ccor1_C = IMPE Ccor1 'RAIDEUR';
  331. FINSI;
  332.  
  333. * GENERATION DES MATRICES FREQUENTIELLES pour ik
  334. * DDL : U* IU* --> U### V###
  335. mik = -1.* ik ;
  336. m2ik = -2.* ik ;
  337. ik2 = ik**2;
  338. * type raideur
  339. K_ik = CHAN 'INCO' RI1_H NOMCOM MOTDEP NOMFOR MOTFOR;
  340. KB_ik = CHAN 'INCO' KBLO1_H NOMCOM MOTDEP NOMFOR MOTFOR 'DUPL';
  341. KC_ik = CHAN 'INCO' Kcen1_H NOMCOM MOTDEP NOMFOR MOTFOR;
  342. KS_ik = CHAN 'INCO' Ksig1_H NOMCOM MOTDEP NOMFOR MOTFOR;
  343. * type masse
  344. M_ik = CHAN 'INCO' (ik2 * MASS1_H) NOMCOM MOTDEP NOMFOR MOTFOR;
  345. * type amortissement
  346. A_ik = CHAN 'INCO' (mik * AMOR1_H) NOMCOM MOTDEP NOMFOR MOTFOR;
  347. G_ik = CHAN 'INCO' (mik * CG1_H) NOMCOM MOTDEP NOMFOR MOTFOR;
  348. C_ik = CHAN 'INCO' (mik * Ccor1_H) NOMCOM MOTDEP NOMFOR MOTFOR;
  349. * type masse (pour \Delta_1 de FLOQUET)
  350. M1_ik = CHAN 'INCO' (m2ik * MASS1_C) NOMCOM MOTDEP NOMFOR MOTFOR;
  351. * type amortissement (pour \Delta_1 de FLOQUET)
  352. A1_ik = CHAN 'INCO' AMOR1_C NOMCOM MOTDEP NOMFOR MOTFOR;
  353. G1_ik = CHAN 'INCO' CG1_C NOMCOM MOTDEP NOMFOR MOTFOR;
  354. C1_ik = CHAN 'INCO' Ccor1_C NOMCOM MOTDEP NOMFOR MOTFOR;
  355. * type masse (seulement pour \Delta_2 de FLOQUET)
  356. M2_ik = CHAN 'INCO' (-1.* MASS1_H) NOMCOM MOTDEP NOMFOR MOTFOR;
  357.  
  358. FINSI;
  359. ************ FIN DISTINCTION HARMONIQUE 0 et ik>0 ************
  360. * on somme sur ik
  361. Ktot = Ktot ET K_ik ;
  362. KBtot = KBtot ET KB_ik;
  363. KCtot = KCtot ET KC_ik;
  364. KStot = KStot ET KS_ik;
  365. Mtot = Mtot ET M_ik ;
  366. Atot = Atot ET (A_ik) ;
  367. Gtot = Gtot ET G_ik ;
  368. Ctot = Ctot ET C_ik ;
  369. * + celles necessaires a FLOQUET
  370. Mtot1 = Mtot1 ET (M1_ik);
  371. Mtot2 = Mtot2 ET M2_ik;
  372. Atot1 = Atot1 ET A1_ik;
  373. Gtot1 = Gtot1 ET G1_ik;
  374. Ctot1 = Ctot1 ET C1_ik;
  375.  
  376.  
  377. FIN bk;
  378. * FIN DE BOUCLE SUR LES HARMONIQUES ------------------------------------
  379.  
  380.  
  381.  
  382. ************************************************************************
  383. * *
  384. * STOCKAGE DES RESULTATS *
  385. * *
  386. ************************************************************************
  387.  
  388.  
  389. ************ MATRICES ************
  390.  
  391. * pour l'analyse harmonique :
  392.  
  393. TABHBM . 'RIGIDITE_HBM' = Ktot;
  394. TABHBM . 'BLOCAGES_HBM' = KBtot;
  395. TABHBM . 'AMORTISSEMENT_HBM' = Atot;
  396. TABHBM . 'CORIOLIS_HBM' = Gtot et Ctot;
  397. TABHBM . 'MASSE_HBM' = Mtot;
  398. TABHBM . 'CENTRIFUGE_HBM' = KCtot et KStot;
  399.  
  400. * pour l'analyse de stabilite (methode de Hill de FLOQUET):
  401. TABHBM . 'MASSE_HBM_1' = Mtot1;
  402. TABHBM . 'MASSE_HBM_2' = Mtot2;
  403. TABHBM . 'AMORTISSEMENT_HBM_1' = Atot1;
  404. TABHBM . 'CORIOLIS_HBM_1' = Gtot1 et Ctot1;
  405.  
  406.  
  407. ************ TABLEAU DES NOMS DE COMPOSANTES ************
  408.  
  409. TABHBM . 'COMPOSANTES'. 'DEPLACEMENT_HBM' = MOTDEP0;
  410. TABHBM . 'COMPOSANTES'. 'FORCE_HBM' = MOTFOR0;
  411. TABHBM . 'COMPOSANTES'. 'HARM_DEPLACEMENT' = NOMU;
  412. TABHBM . 'COMPOSANTES'. 'HARM_FORCE' = NOMF;
  413. COMPU = TABLE;
  414. COMPF = TABLE;
  415. REPE Bcomp ncom; in = &Bcomp;
  416. ICOMU = EXTR NOMCOM in;
  417. ICOMF = EXTR NOMFOR in;
  418. COMPU . ICOMU = MOTS (EXTR NOMU . 0 in);
  419. COMPF . ICOMF = MOTS (EXTR NOMF . 0 in);
  420. REPE Bhbm nhbm ; ih = &Bhbm;
  421. COMPU . ICOMU = COMPU . ICOMU
  422. ET (MOTS (EXTR NOMU . ih . 'COS' in))
  423. ET (MOTS (EXTR NOMU . ih . 'SIN' in)) ;
  424. COMPF . ICOMF = COMPF . ICOMF
  425. ET (MOTS (EXTR NOMF . ih . 'COS' in))
  426. ET (MOTS (EXTR NOMF . ih . 'SIN' in)) ;
  427. FIN Bhbm;
  428. FIN Bcomp;
  429. TABHBM . 'COMPOSANTES'. 'HARM_COMP_DEP' = COMPU;
  430. TABHBM . 'COMPOSANTES'. 'HARM_COMP_FOR' = COMPF;
  431.  
  432.  
  433. *********** DEFINITION DES NOMS DES INCONNUES PAR OPTI INCO ************
  434.  
  435. MOPRIM = MOTS ; MODUAL = MOTS;
  436. REPE BNOM (DIME MOTDEP0); in = &BNOM;
  437.  
  438. SI (NEG (EXTR MOTDEP0 in) 'LX ');
  439. MOPRIM = MOPRIM ET (MOTS (EXTR MOTDEP0 in));
  440. MODUAL = MODUAL ET (MOTS (EXTR MOTFOR0 in));
  441. FINSI;
  442. FIN BNOM;
  443.  
  444. OPTI INCO MOPRIM MODUAL;
  445.  
  446.  
  447. *********** CONSTRUCTION DU TABLEAU RESULTATS_HBM ***********
  448.  
  449. SI (EXIS TABHBM 'RESULTATS');
  450.  
  451. * tables des resultats temporels
  452. TRES1 = TABHBM . 'RESULTATS';
  453. nres1 = DIME TRES1;
  454. * tables des resultats frequentiels
  455. TABHBM . 'RESULTATS_HBM' = TABL;
  456. TRES2 = TABHBM . 'RESULTATS_HBM';
  457. * tables des titres pour l operateur DESSIN
  458. TRES1 . 'TITRE' = TABL;
  459.  
  460. ires2 = 0;
  461. ires1 = 0;
  462. REPE BRES1 nres1; ires1 = ires1 + 1;
  463. SI (NON (EXIS TRES1 ires1)); ITER BRES1; FINSI;
  464.  
  465. * - l indice existe : il faut travailler dessus :
  466.  
  467. * -titre :
  468. si (exis TRES1 . ires1 'TITRE');
  469. motit1 = TRES1 . ires1 . 'TITRE';
  470. sinon;
  471. motit1 = chai 'Resultat' ires1*4;;
  472. finsi;
  473. TRES1 . 'TITRE' . ires1 = motit1 ;
  474.  
  475. * -composante :
  476. si (non (exis TRES1 . ires1 'COMPOSANTE'));
  477. mess 'RESULTATS . 'ires1' . COMPOSANTE absente !!!'; erre 21;
  478. finsi;
  479. comp1 = TRES1 . ires1 . 'COMPOSANTE';
  480.  
  481. * -cas particulier FREQuence w inconnue :
  482. si (ega comp1 'FREQ');
  483. ires2 = ires2 + 1;
  484. TRES2 . ires2 = tabl;
  485. TRES2 . ires2 . 'COMPOSANTE' = comp1;
  486. si (exis TRES1 . ires1 'COULEUR');
  487. TRES2 . ires2 . 'COULEUR' = TRES1 . ires1 . 'COULEUR';
  488. finsi;
  489. iter BRES1;
  490. finsi;
  491.  
  492. * -cas "standard" :
  493. si (non (exis TRES1 . ires1 'POINT_MESURE'));
  494. mess 'RESULTATS . 'ires1' . POINT_MESURE absent !!!'; erre 21;
  495. finsi;
  496. pmes1 = TRES1 . ires1 . 'POINT_MESURE';
  497.  
  498. * il faut les harmoniques correspondantes
  499. si (non (exis COMPU comp1));
  500. mess 'RESULTATS . 'ires1' . COMPOSANTE inconnue !!!'; erre 21;
  501. finsi;
  502. U_HBM = COMPU . comp1;
  503. nU_HBM = dime U_HBM;
  504. si (neg nU_HBM (2*nhbm + 1));
  505. mess 'pb avec nombre de composantes'; erre 21;
  506. finsi;
  507.  
  508. * on va traiter toutes les composantes frequentielles relatives a
  509. * cette inconnue temporelle
  510. TRES1 . ires1 . 'INDICES_HBM' = lect;
  511. repe BU_HBM nU_HBM;
  512. ui = EXTR U_HBM &BU_HBM;
  513. ires2 = ires2 + 1;
  514. TRES2 . ires2 = tabl;
  515. TRES2 . ires2 . 'POINT_MESURE' = pmes1 ;
  516. TRES2 . ires2 . 'COMPOSANTE' = ui;
  517. si (exis TRES1 . ires1 'COULEUR_HBM');
  518. TRES2 . ires2 . 'COULEUR'
  519. = extr TRES1 . ires1 . 'COULEUR_HBM' &BU_HBM;
  520. sinon;
  521. si (exis TRES1 . ires1 'COULEUR');
  522. TRES2 . ires2 . 'COULEUR' = TRES1 . ires1 . 'COULEUR';
  523. finsi;
  524. finsi;
  525. si (EGA &BU_HBM 1);
  526. motit2 = chai comp1'_{k=0}';
  527. sinon;
  528. k = &BU_HBM / 2 ;
  529. si (MULT &BU_HBM 2);
  530. motit2 = chai comp1'^{cos}_{k='k'}';
  531. sinon;
  532. motit2 = chai comp1'^{sin}_{k='k'}';
  533. finsi;
  534. finsi;
  535. TRES2 . ires2 . 'TITRE' = motit2 ;
  536. MESS ires1 ': ' motit2 ' <--> ' ui;
  537. * pour + de facilite dans le post-traitement, on enregistre les
  538. * indices ires2 des harmoniques dans la table TRES1
  539. TRES1 . ires1 . 'INDICES_HBM'
  540. = TRES1 . ires1 . 'INDICES_HBM' et ires2;
  541. fin BU_HBM;
  542.  
  543. FIN BRES1;
  544.  
  545. FINSI;
  546.  
  547.  
  548. *********** PETIT FLAG POUR MARQUER LE PASSAGE DANS HBM ***********
  549.  
  550. TABHBM . 'HBM' = VRAI;
  551.  
  552.  
  553. FINPROC ;
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  

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