Télécharger campbell.procedur

Retour à la liste

Numérotation des lignes :

  1. * CAMPBELL PROCEDUR JC220346 12/09/12 21:15:00 7501
  2. *************************************************************************
  3. *
  4. *
  5. * Procédure CAMPBELL
  6. *
  7. * Calcule le diagramme de Campbell d'une machine tournante
  8. * Le diagramme peut être calculé dans le repère fixe
  9. * (diagramme classique pour des modélisation de type poutre avec couplage gyrosc
  10. * ou dans le repère tournant (évolution des fréquences en tenant compte
  11. * des raideurs centrifuges, de précontrainte et du couplage de Coriolis)
  12. *
  13. *************************************************************************
  14. *
  15. * INPUT
  16. *=========
  17. *
  18. *
  19. * PRFREQ: LISTREEL contenant les fréquences de rotation pour lesquelles
  20. * on calcule le diagramme de Campbell
  21. *
  22. * TAB1 Table contenant:
  23. *
  24. * TAB1.'BASE_MODALE': Table contenant la base de modes réels utilisées
  25. * (table générée par VIBR avec l'option TBAS)
  26. *
  27. * Les matrices de masse, de raideur, d'amortissement et de couplage
  28. * peuvent être données déjà projetées sur la base de modes réels ou non:
  29. *
  30. * TAB1.'MASS_PROJ': Matrice de masse projetée sur les modes réels utilisés
  31. * TAB1.'MASSE': Matrice de masse
  32. *
  33. * TAB1.'RIGI_PROJ': Matrice de rigidité projetée sur les modes réels utilisés
  34. * TAB1.'RIGIDITE': Matrice de rigidité
  35. *
  36. * TAB1.'AMOR_PROJ': Matrice d'amortissement projetée sur les modes réels utili
  37. * TAB1.'AMORTISSEMENT': Matrice d'amortissement
  38. *
  39. * Pour les diagrammes de Campbell classique (dans le repère fixe)
  40. *
  41. * TAB1.'KROT_PROJ': Matrice de raideur antisymétrique due à l'amortissement co
  42. * projetée sur les modes réels utilisés
  43. * TAB1.'KROTATIF': Matrice de raideur antisymétrique due à l'amortissement cor
  44. *
  45. * TAB1.'GYRO_PROJ': Matrice de couplage gyroscopique projetée sur les modes ré
  46. * TAB1.'GYROSCOPIQUE': Matrice de couplage gyroscopique pour une vitesse de ro
  47. *
  48. * Pour les diagrammes de Campbell dans le repère tournant
  49. *
  50. * TAB1.'CORI_PROJ': Matrice de couplage de Coriolis projetée sur les modes rée
  51. * TAB1.'CORIOLIS': Matrice de couplage de Coriolis pour une vitesse de rotatio
  52. *
  53. * TAB1.'KSIG_PROJ': Matrice de raideur de précontrainte projetée sur les modes
  54. * TAB1.'KSIGMA': Matrice de raideur de précontrainte pour une vitesse de rotat
  55. *
  56. * TAB1.'KCEN_PROJ': Matrice de raideur centrifuge projetée sur les modes réels
  57. * TAB1.'KCENT': Matrice de raideur centrifuge pour une vitesse de rotation uni
  58. *
  59. * Les matrices de couplage gyroscopique, de raideur de précontrainte et de r
  60. * doivent être données pour une vitesse de rotation unité
  61. * (1 Hz, 1 rad/s ou 1 tour/min selon le choix de l'utilisateur)
  62. *
  63. * TAB1.'AFFICHAGE': VRAI si on veut afficher les fréquences de rotation au cou
  64. * TAB1.'CLASSEMENT': VRAI si on veut classer les modes directs (pulsation reel
  65. * et les modes rétrogrades (pulsation
  66. *
  67. * TAB1.'AXE_DIRECT': Vecteur parallèle à la vitesse de rotation nécessaire pou
  68. * les sens direct et rétrograde
  69. *
  70. * OUTPUT
  71. *==========
  72. *
  73. * TAB1. i Table contenant les résultats pour le mode complexe i
  74. * (N modes réels donnant 2N modes complexes)
  75. * (TAB1. i). 'FREQUENCE_REELLE' : Evolution donnant la fréquence réelle
  76. * en fonction de la fréquence de rotation
  77. * (TAB1. i). 'FREQUENCE_IMAGINAIRE': Evolution donnant la fréquence imaginair
  78. * en fonction de la fréquence de rotation
  79. * (TAB1. i). 'FREQUENCE_MODULE' : Evolution donnant le module de la fréquence
  80. * en fonction de la fréquence de rotation
  81. * (TAB1. i). 'AMORTISSEMENT' : Evolution donnant l'amortissement en fonction
  82. * de la fréquence de rotation
  83. *
  84. * Remarque: Pour chaque fréquence de rotation, les fréquences et amortissement
  85. * sont classés par ordre croissant. La ligne i correspond donc
  86. * à la fréquence ième par ordre croissant (pas de suivi de mode).
  87. *
  88. ************************************************************************
  89. *
  90. DEBPROC CAMPBELL TAB1*TABLE PRFREQ*LISTREEL;
  91. *
  92. *
  93. ERR = VRAI;
  94. *
  95. 'SI' (EXISTE TAB1 'AFFICHAGE');
  96. SI ((TAB1.'AFFICHAGE') EGA VRAI);
  97. TESTAF = TAB1.'AFFICHAGE';
  98. SINON;
  99. TESTAF = FAUX;
  100. FINSI;
  101. 'SINON';
  102. TESTAF = FAUX;
  103. 'FINSI';
  104. *
  105. Nfreq = dime PRFREQ;
  106. *
  107. 'SI' (EXISTE TAB1 'FOURIER');
  108. FLFOUR = TAB1.'FOURIER';
  109. 'SINON';
  110. FLFOUR = FAUX;
  111. 'FINSI';
  112. *
  113. TESTCL = FAUX;
  114. 'SI' (EXISTE TAB1 'CLASSEMENT');
  115. 'SI' (EGA (TAB1.'CLASSEMENT') VRAI);
  116. TESTCL = TAB1.'CLASSEMENT';
  117. 'SINON';
  118. TESTCL = FAUX;
  119. 'FINSI';
  120. 'SI' (EXISTE TAB1 'AXE_DIRECT');
  121. ppdirect = TAB1.'AXE_DIRECT';
  122. 'SINON';
  123. 'SI' (NON FLFOUR);
  124. ppdirect = 0. 0. 1.;
  125. 'FINSI';
  126. 'FINSI';
  127. 'FINSI';
  128. *
  129. *
  130. 'SI' (EXISTE TAB1 'BASE_MODALE');
  131. TBasR = TAB1.'BASE_MODALE';
  132. TMod1 = (TAB1.'BASE_MODALE') . 'MODES' ;
  133. NbModR = (DIME TMod1) - 2 ;
  134. FLAMODE= FAUX;
  135. mess 'Je lis la base modale';
  136. 'SINON';
  137. 'SI' (EXISTE TAB1 'NMODES');
  138. FLAMODE= VRAI;
  139. nmodes = TAB1.'NMODES';
  140. NbModR = nmodes;
  141. 'SI' (EXISTE TAB1 'FREQ_PROCHE');
  142. fproche = TAB1.'FREQ_PROCHE';
  143. 'SINON';
  144. fproche = 0;
  145. 'FINSI';
  146. 'SINON';
  147. MESS 'Il manque la base de modes réels dans TAB1';
  148. MESS 'Veuillez specifier le nombre de modes reels a calculer';
  149. ERR = FAUX;
  150. 'FINSI';
  151. 'FINSI';
  152. NbModC = 2*NbModR;
  153. *
  154. 'SI' (EXISTE TAB1 'RIGIDITE');
  155. MRig = TAB1.'RIGIDITE';
  156. mess 'Je lis la rigidite';
  157. SI (NON FLAMODE);
  158. MRigP = PJBA TBasR MRig ;
  159. FINSI;
  160. 'SINON';
  161. 'SI' (EXISTE TAB1 'RIGI_PROJ');
  162. MRigP = TAB1.'RIGI_PROJ';
  163. 'SINON';
  164. MESS 'Il manque la matrice de rigidité dans TAB1';
  165. ERR = FAUX;
  166. 'FINSI';
  167. 'FINSI';
  168. *
  169. *
  170. 'SI' (EXISTE TAB1 'MASSE');
  171. Mmas = TAB1.'MASSE';
  172. mess 'Je lis la masse';
  173. SI (NON FLAMODE);
  174. MMasP = PJBA TBasR MMas ;
  175. FINSI;
  176. 'SINON';
  177. 'SI' (EXISTE TAB1 'MASS_PROJ');
  178. MMasP = TAB1.'MASS_PROJ';
  179. 'SINON';
  180. MESS 'Il manque la matrice de masse dans TAB1';
  181. ERR = FAUX;
  182. 'FINSI';
  183. 'FINSI';
  184. *
  185. 'SI' (EXISTE TAB1 'AMORTISSEMENT');
  186. MCam = TAB1.'AMORTISSEMENT';
  187. mess 'Je lis l amortissement';
  188. SI (NON FLAMODE);
  189. MCamP = PJBA TBasR MCam ;
  190. FINSI;
  191. 'SINON';
  192. 'SI' (EXISTE TAB1 'AMOR_PROJ');
  193. MCamP = TAB1.'AMOR_PROJ';
  194. 'SINON';
  195. MESS 'La matrice d amortissement est prise nulle';
  196. SI FLAMODE;
  197. MCam = 0.*MRig;
  198. SINON;
  199. MCamP = 0.*MRigP;
  200. FINSI;
  201. 'FINSI';
  202. 'FINSI';
  203. *
  204. 'SI' (EXISTE TAB1 'KROTATIF');
  205. MCah = TAB1.'KROTATIF';
  206. SI (NON FLAMODE);
  207. MCahP = PJBA TBasR MCah ;
  208. FINSI;
  209. 'SINON';
  210. 'SI' (EXISTE TAB1 'KROT_PROJ');
  211. MCahP = TAB1.'KROT_PROJ';
  212. 'SINON';
  213. MESS 'Absence d amortissement corotatif';
  214. SI FLAMODE;
  215. MCah = 0.*MRig;
  216. SINON;
  217. MCahP = 0.*MRigP;
  218. FINSI;
  219. 'FINSI';
  220. 'FINSI';
  221. *
  222. 'SI' (EXISTE TAB1 'GYROSCOPIQUE');
  223. MCG = TAB1.'GYROSCOPIQUE';
  224. SI (NON FLAMODE);
  225. MCGP = PJBA TBasR MCG ;
  226. FINSI;
  227. 'SINON';
  228. 'SI' (EXISTE TAB1 'GYRO_PROJ');
  229. MCGP = TAB1.'GYRO_PROJ';
  230. 'SINON';
  231. MESS 'La matrice de couplage gyroscopique est prise nulle';
  232. SI FLAMODE;
  233. MCG = 0.*MRig;
  234. SINON;
  235. MCGP = 0.*MRigP;
  236. FINSI;
  237. 'FINSI';
  238. 'FINSI';
  239. *
  240. 'SI' (EXISTE TAB1 'CORIOLIS');
  241. MCCOR = TAB1.'CORIOLIS';
  242. mess 'Je lis Coriolis';
  243. SI (NON FLAMODE);
  244. MCCORP = PJBA TBasR MCCOR ;
  245. FINSI;
  246. 'SINON';
  247. 'SI' (EXISTE TAB1 'CORI_PROJ');
  248. MCCORP = TAB1.'CORI_PROJ';
  249. 'SINON';
  250. MESS 'La matrice de couplage de Coriolis est prise nulle';
  251. SI FLAMODE;
  252. MCCOR = 0.*MRig;
  253. SINON;
  254. MCCORP = 0.*MRigP;
  255. FINSI;
  256. 'FINSI';
  257. 'FINSI';
  258. *
  259. 'SI' (EXISTE TAB1 'KSIGMA');
  260. MKSIG = TAB1.'KSIGMA';
  261. mess 'Je lis Ksigma';
  262. SI (NON FLAMODE);
  263. MKSIP = PJBA TBasR MKSIG ;
  264. FINSI;
  265. 'SINON';
  266. 'SI' (EXISTE TAB1 'KSIG_PROJ');
  267. MKSIP = TAB1.'KSIG_PROJ';
  268. 'SINON';
  269. MESS 'La matrice de raideur de precontrainte est prise nulle';
  270. SI FLAMODE;
  271. MKSIG = 0.*MRig;
  272. SINON;
  273. MKSIP = 0.*MRigP;
  274. FINSI;
  275. 'FINSI';
  276. 'FINSI';
  277. *
  278. 'SI' (EXISTE TAB1 'KCENT');
  279. MKCEN = TAB1.'KCENT';
  280. mess 'Je lis Kcent';
  281. SI (NON FLAMODE);
  282. MKCEP = PJBA TBasR MKCEN ;
  283. FINSI;
  284. 'SINON';
  285. 'SI' (EXISTE TAB1 'KCEN_PROJ');
  286. MKCEP = TAB1.'KCEN_PROJ';
  287. 'SINON';
  288. MESS 'La matrice de raideur centrifuge est prise nulle';
  289. SI FLAMODE;
  290. MKCEN = 0.*MRig;
  291. SINON;
  292. MKCEP = 0.*MRigP;
  293. FINSI;
  294. 'FINSI';
  295. 'FINSI';
  296. *
  297. 'SI' ERR;
  298. *
  299. TFrqRe = TABLE;
  300. TFrqIm = TABLE;
  301. TFrqMo = TABLE;
  302. TAmor = TABLE;
  303. *
  304. Repeter LAB1 Nfreq;
  305. omega1 = extr PRFREQ &lab1;
  306. i1 = &lab1 ;
  307. SI TESTAF;
  308. MESS 'Frequence N°' i1;
  309. FINSI;
  310. *
  311. SI FLAMODE;
  312. TBASR = VIBR 'PROCHE' (prog FPROCHE) (lect nmodes)
  313. (MRig et ((Omega1**2)*MKSIG) et ((Omega1**2)*MKCEN))
  314. Mmas 'TBAS';
  315. MRigP = PJBA TBasR MRig;
  316. MCahP = PJBA TBasR MCah;
  317. MCCORP = PJBA TBasR MCCOR ;
  318. MKSIP = PJBA TBasR MKSIG ;
  319. MKCEP = PJBA TBasR MKCEN ;
  320. MCamP = PJBA TBasR MCam ;
  321. MMasP = PJBA TBasR Mmas;
  322. MCGP = PJBA TBasR MCG ;
  323. FINSI;
  324.  
  325. *
  326. *+DC Test classement des modes
  327. *
  328. SI (EGA TESTCL VRAI);
  329. *
  330. BasCiB = VIBC MMasP (MRigP et (Omega1*MCahP) et
  331. ((Omega1**2)*MKSIP) et ((Omega1**2)*MKCEP))
  332. ((Omega1*(MCgP et MCCORP)) et MCamP) TBASR;
  333. Imode = 1;
  334. *
  335. Repeter Lab5 NbModC;
  336. Frq1 = BasCiB.'MODES'. &lab5 . 'FREQUENCE_REELLE';
  337. Frq1I = BasCiB.'MODES'. &lab5 . 'FREQUENCE_IMAGINAIRE';
  338. DEFR1 =BasCiB.'MODES'. &lab5 . 'DEFORMEE_MODALE_REELLE';
  339. DEFI1 =BasCiB.'MODES'. &lab5 . 'DEFORMEE_MODALE_IMAGINAIRE';
  340. *
  341. 'SI' FLFOUR;
  342. DEFR1 = (CHAN ATTRIBUT DEFR1 NATURE DISCRET)
  343. + (MANU CHPO (extr DEFR1 mail) 8 UR 0. UT 0. UZ 0.
  344. RT 0. IUR 0. IUT 0. IUZ 0. IRT 0. NATURE 'DISCRET');
  345. DEFI1 = (CHAN ATTRIBUT DEFI1 NATURE DISCRET)
  346. + (MANU CHPO (extr DEFI1 mail) 8 UR 0. UT 0. UZ 0.
  347. RT 0. IUR 0. IUT 0. IUZ 0. IRT 0. NATURE 'DISCRET');
  348. *
  349. DEFR1R = EXCO DEFR1 UR SCAL;
  350. DEFR1T = EXCO DEFR1 UT SCAL;
  351. DEFR1Z = EXCO DEFR1 UZ SCAL;
  352. DEFR1RI = EXCO DEFR1 IUR SCAL;
  353. DEFR1TI = EXCO DEFR1 IUT SCAL;
  354. DEFR1ZI = EXCO DEFR1 IUZ SCAL;
  355. DEFI1R = EXCO DEFI1 UR SCAL;
  356. DEFI1T = EXCO DEFI1 UT SCAL;
  357. DEFI1Z = EXCO DEFI1 UZ SCAL;
  358. DEFI1RI = EXCO DEFI1 IUR SCAL;
  359. DEFI1TI = EXCO DEFI1 IUT SCAL;
  360. DEFI1ZI = EXCO DEFI1 IUZ SCAL;
  361. *
  362. DEFR1RT = EXCO DEFR1 RT SCAL;
  363. DEFI1RT = EXCO DEFI1 RT SCAL;
  364. DEFR1RTI = EXCO DEFR1 IRT SCAL;
  365. DEFI1RTI = EXCO DEFI1 IRT SCAL;
  366. *
  367. TESTDIRE = (-1.)*Frq1I*(maxi (resu (
  368. ((DEFR1R*DEFI1RI) - (DEFR1T*DEFI1TI) +
  369. (DEFR1Z*DEFI1ZI) - (DEFR1RI*DEFI1R) +
  370. (DEFR1TI*DEFI1T) - (DEFR1ZI*DEFI1Z)) )));
  371. *
  372. SI ((abs TESTDIRE) > 1.D-20);
  373. TESTDIRE =TESTDIRE /(abs TESTDIRE);
  374. SINON;
  375. TESTDIRE = 2.;
  376. FINSI;
  377. *
  378. BasCiB.'MODES'. &lab5 . 'FREQUENCE_REELLE' =
  379. (SIGNE Frq1I)*(SIGNE TESTDIRE)* Frq1;
  380. BasCiB.'MODES'. &lab5 . 'FREQUENCE_IMAGINAIRE' = Frq1I;
  381. BasCiB.'MODES'. &lab5 . 'DEFORMEE_MODALE_IMAGINAIRE' =
  382. (SIGNE TESTDIRE)*DEFI1;
  383. *
  384. 'SINON';
  385. DEFR1 = (CHAN ATTRIBUT DEFR1 NATURE DISCRET)
  386. + (MANU CHPO (extr DEFR1 mail) 3 RX 0. RY 0. RZ 0.
  387. NATURE 'DISCRET');
  388. DEFI1 = (CHAN ATTRIBUT DEFI1 NATURE DISCRET)
  389. + (MANU CHPO (extr DEFI1 mail) 3 RX 0. RY 0. RZ 0.
  390. NATURE 'DISCRET');
  391. *
  392. DEFR1X = EXCO DEFR1 UX SCAL;
  393. DEFR1Y = EXCO DEFR1 UY SCAL;
  394. DEFR1Z = EXCO DEFR1 UZ SCAL;
  395. DEFI1X = EXCO DEFI1 UX SCAL;
  396. DEFI1Y = EXCO DEFI1 UY SCAL;
  397. DEFI1Z = EXCO DEFI1 UZ SCAL;
  398. *
  399. DEFR1RX = EXCO DEFR1 RX SCAL;
  400. DEFR1RY = EXCO DEFR1 RY SCAL;
  401. DEFR1RZ = EXCO DEFR1 RZ SCAL;
  402. DEFI1RX = EXCO DEFI1 RX SCAL;
  403. DEFI1RY = EXCO DEFI1 RY SCAL;
  404. DEFI1RZ = EXCO DEFI1 RZ SCAL;
  405. *
  406. TESTDIRE = (-1.)*Frq1*(maxi (resu (
  407. ((((DEFR1Y*DEFI1Z) - (DEFI1Y*DEFR1Z)))
  408. *(coor 1 ppdirect))
  409. + ((((DEFR1Z*DEFI1X) - (DEFI1Z*DEFR1X)))
  410. *(coor 2 ppdirect))
  411. + ((((DEFR1X*DEFI1Y) - (DEFI1X*DEFR1Y)))
  412. *(coor 3 ppdirect)))));
  413. *
  414. * Si le mode est complexe...
  415. * Sinon il est réel et on ne change rien
  416. *
  417. SI ((abs TESTDIRE) > 1.D-13);
  418. SI (TESTDIRE > 0.D0);
  419. BasCiB.'MODES'. &lab5 . 'FREQUENCE_REELLE' = abs Frq1;
  420. BasCiB.'MODES'. &lab5 . 'FREQUENCE_IMAGINAIRE' = Frq1I;
  421. BasCiB.'MODES'. &lab5 . 'DEFORMEE_MODALE_IMAGINAIRE' =
  422. (SIGNE Frq1)*DEFI1;
  423. SINON;
  424. BasCiB.'MODES'. &lab5 . 'FREQUENCE_REELLE' =
  425. (-1.)*(abs Frq1);
  426. BasCiB.'MODES'. &lab5 . 'FREQUENCE_IMAGINAIRE' = Frq1I;
  427. BasCiB.'MODES'. &lab5 . 'DEFORMEE_MODALE_IMAGINAIRE' =
  428. (SIGNE Frq1)*DEFI1;
  429. FINSI;
  430. FINSI;
  431. *
  432. 'FINSI';
  433. *
  434. * TESTDIRE = TESTDIRE +
  435. * ((-1.)*Frq1*(maxi (resu (
  436. * ((((DEFR1RY*DEFI1RZ) - (DEFI1RY*DEFR1RZ)))
  437. * *(coor 1 ppdirect))
  438. * + ((((DEFR1RZ*DEFI1RX) - (DEFI1RZ*DEFR1RX)))
  439. * *(coor 2 ppdirect))
  440. * + ((((DEFR1RX*DEFI1RY) - (DEFI1RX*DEFR1RY)))
  441. * *(coor 3 ppdirect))))));
  442. *
  443. *
  444. FIN LAB5;
  445. *
  446. *
  447. SINON;
  448. BasCiB = VIBC MMasP (MRigP et (Omega1*MCahP) et
  449. ((Omega1**2)*MKSIP) et ((Omega1**2)*MKCEP))
  450. ((Omega1*(MCgP et MCCORP)) et MCamP) ;
  451. FINSI;
  452. *
  453. *+DC Test classement des modes
  454. *
  455. Repeter Lab2 NbModC;
  456. i2 = &lab2;
  457. si (i2 ega 1);
  458. FrqReel = PROG (BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE');
  459. FrqImag = PROG (BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE');
  460. FrqModul = PROG
  461. ((((BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE')**2) +
  462. ((BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE')**2))**0.5);
  463. AmorVal = PROG ((extr FrqImag 1)/(extr FrqModul 1));
  464. sinon;
  465. FrqReel = FrqReel et
  466. (prog (BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE'));
  467. FrqImag = FrqImag et
  468. (prog (BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE'));
  469. FrqModul = FrqModul et (PROG
  470. ((((BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE')**2) +
  471. ((BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE')**2))**0.5));
  472. AmorVal = AmorVal et
  473. (PROG ((extr FrqImag i2)/(extr FrqModul i2)));
  474. finsi;
  475. FIN lab2;
  476. FrqReel = ORDONNER CROISSANT FrqReel;
  477. FrqImag = ORDONNER CROISSANT FrqImag;
  478. FrqModul = ORDONNER CROISSANT FrqModul;
  479. AmorVal = ORDONNER CROISSANT AmorVal;
  480. *
  481. Repeter Lab3 NbModC;
  482. i3 = &lab3;
  483. si (i1 ega 1);
  484. TFrqRe.i3 = (prog (extr FrqReel i3));
  485. TFrqIm.i3 = (prog (extr FrqImag i3));
  486. TFrqMo.i3 = (prog (extr FrqModul i3));
  487. TAmor.i3 = (prog (extr AmorVal i3));
  488. sinon;
  489. TFrqRe.i3 = (TFrqRe.i3) et
  490. (prog (extr FrqReel i3));
  491. TFrqIm.i3 = (TFrqIm.i3) et
  492. (prog (extr FrqImag i3));
  493. TFrqMo.i3 = (TFrqMo.i3)et
  494. (prog (extr FrqModul i3));
  495. TAmor.i3 = (TAmor.i3) et
  496. (prog (extr AmorVal i3));
  497. finsi;
  498. FIN lab3;
  499. FIN lab1;
  500. *
  501. Repeter Lab4 NbModC;
  502. i4 = &lab4;
  503. TAB1.i4 = TABLE;
  504. (TAB1.i4). 'FREQUENCE_REELLE' = evol manu
  505. PRFREQ (TFrqRe.i4);
  506. (TAB1.i4). 'FREQUENCE_IMAGINAIRE' = evol manu
  507. PRFREQ (TFrqIm.i4);
  508. (TAB1.i4). 'FREQUENCE_MODULE' = evol manu
  509. PRFREQ (TFrqMo.i4);
  510. (TAB1.i4). 'AMORTISSEMENT' = evol manu
  511. PRFREQ (TAmor.i4);
  512. FIN lab4;
  513. *
  514. 'FINSI';
  515. *
  516. 'FINPROC';
  517. *
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  

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