Télécharger balourd.procedur

Retour à la liste

Numérotation des lignes :

  1. * BALOURD PROCEDUR BP208322 15/09/10 21:15:01 8622
  2. *************************************************************************
  3. *
  4. *
  5. * Procédure BALOURD
  6. *
  7. * Calcule la réponse à un balourd
  8. *
  9. *
  10. *************************************************************************
  11. *
  12. * INPUT
  13. *
  14. *
  15. * PRFREQ: LISTREEL contenant les fréquences de rotation pour lesquelles
  16. * on calcule la réponse au balourd
  17. *
  18. * TAB1 Table contenant:
  19. *
  20. * TAB1.'BASE_MODALE': Table contenant la base de modes réels utilisées
  21. * (table générée par VIBR avec l'option TBAS)
  22. *
  23. * Les matrices de masse, de raideur,d'amortissement et de couplage gyroscopiqu
  24. * peuvent être données déjà projetées sur la base de modes réels ou non:
  25. *
  26. * TAB1.'MASS_PROJ': Matrice de masse projetée sur les modes réels utilisés
  27. * TAB1.'MASSE': Matrice de masse
  28. *
  29. * TAB1.'RIGI_PROJ': Matrice de rigidité projetée sur les modes réels utilisés
  30. * TAB1.'RIGIDITE': Matrice de rigidité
  31. *
  32. * TAB1.'BLOC_PROJ': Conditions aux limites projetée sur les modes réels utilis
  33. * TAB1.'BLOCAGE': Conditions aux limites
  34. *
  35. *
  36. * TAB1.'AMOR_PROJ': Matrice d'amortissement projetée sur les modes réels utili
  37. * TAB1.'AMORTISSEMENT': Matrice d'amortissement
  38. *
  39. * TAB1.'KROT_PROJ': Matrice de raideur antisymétrique due à l'amortissement co
  40. * projetée sur les modes réels utilisés
  41. * TAB1.'KROTATIF': Matrice de raideur antisymétrique due à l'amortissement cor
  42. *
  43. * TAB1.'GYRO_PROJ': Matrice de couplage gyrsocopique projetée sur les modes ré
  44. * TAB1.'GYROSCOPIQUE': Matrice de couplage gyrsocopique pour une vitesse de ro
  45. * La matrice de couplage gyroscopique doit être donnée
  46. * pour une vitesse de rotation de 1 rad/s
  47. *
  48. * La force de balourd peut être définie de plusieurs façon
  49. *
  50. * 1- La force de balourd réelle est donnée
  51. * et la procédure calcule automatiquement la partie imaginaire nécessaire au
  52. * en supposant l'axe de l'arbre tournant orienté suivant l'axe Ox et tournan
  53. * une vitesse positive
  54. *
  55. * TAB1.'FBALOURD': Force de balourd pour une vitesse de rotation unité
  56. * La force de balourd doit être donnée pour une vitesse de rotation de 1 rad
  57. *
  58. * TAB1.'VROTATION': CHPO défini sur les mêmes points que la force de balourd
  59. * et donnant la direction du vecteur rotation (composante du CHPO: RX RY RZ)
  60. * Par défaut, vecteur Ox. Ce vecteur permet de calculer la partie imaginaire
  61. * du vecteur force de balourd.
  62. *
  63. * 2- L'utilisateur donne directement la partie réelle et la partie imaginaire
  64. * utilisés pour la calcul (projetée ou non sur la base modale utilisée)
  65. *
  66. * TAB1.'FBAR_PROJ': Force de balourd réelle projetée sur les modes réels utili
  67. * TAB1.'FBAI_PROJ': Force de balourd imaginaire projetée sur les modes réels u
  68. *
  69. * TAB1.'FBALREEL': Force de balourd réelle pour une vitesse de rotation unité
  70. * La force de balourd doit être donnée pour une vitesse de rotation de 1 rad
  71. * TAB1.'FBALIMAG': Force de balourd imaginaire pour une vitesse de rotation un
  72. * La force de balourd doit être donnée pour une vitesse de rotation de 1 rad
  73. *
  74. * TAB1.'REPONSE' : Table contenant les i points où sont calculés les réponses
  75. * (TAB1.'REPONSE').i.'POINT':
  76. *
  77. * TAB1.'SAUVDEFO': Vrai si on veut sauver les déformées pour chaque réponse i
  78. *
  79. *
  80. * TAB1.'AFFICHAGE': VRAI si on veut afficher les fréquences de rotation au cou
  81. *
  82. *
  83. * OUTPUT
  84. *
  85. *
  86. * TAB1.'REPONSE' : Table contenant i indices
  87. * (TAB1.'REPONSE'). i . 'POINT': Points où sont calculés les réponses
  88. * Grandeurs données directement par l'inversion du système (pas de sens physi
  89. * (TAB1.'REPONSE'). i . 'UXREEL': Déplacement UX réel
  90. * (TAB1.'REPONSE'). i . 'UYREEL': Déplacement UY réel
  91. * (TAB1.'REPONSE'). i . 'UZREEL': Déplacement UZ réel
  92. * (TAB1.'REPONSE'). i . 'RXREEL': Rotation RX réel
  93. * (TAB1.'REPONSE'). i . 'RYREEL': Rotation RY réel
  94. * (TAB1.'REPONSE'). i . 'RZREEL': Rotation RZ réel
  95. * (TAB1.'REPONSE'). i . 'UXIMAG': Déplacement UX imaginaire
  96. * (TAB1.'REPONSE'). i . 'UYIMAG': Déplacement UY imaginaire
  97. * (TAB1.'REPONSE'). i . 'UZIMAG': Déplacement UZ imaginaire
  98. * (TAB1.'REPONSE'). i . 'RXIMAG': Rotation RX imaginaire
  99. * (TAB1.'REPONSE'). i . 'RYIMAG': Rotation RY imaginaire
  100. * (TAB1.'REPONSE'). i . 'RZIMAG': Rotation RZ imaginaire
  101. *
  102. *
  103. *
  104. * Grandeurs dans le repère de calcul
  105. * (TAB1.'REPONSE'). i . 'UX': Déplacement UX
  106. * (TAB1.'REPONSE'). i . 'UY': Déplacement UY
  107. * (TAB1.'REPONSE'). i . 'UZ': Déplacement UZ
  108. * (TAB1.'REPONSE'). i . 'RX': Rotation RX
  109. * (TAB1.'REPONSE'). i . 'RY': Rotation RY
  110. * (TAB1.'REPONSE'). i . 'RZ': Rotation RZ
  111. * (TAB1.'REPONSE'). i . 'GAXE': Déplacement maximum correspondant au gran
  112. * l'ellipse (trajectoire décrite)
  113. * (TAB1.'REPONSE'). i . 'PAXE': Déplacement maximum correspondant au pet
  114. * l'ellipse (trajectoire décrite)
  115. *
  116. * Déformées rélles et imaginaires pour chacune des fréquences
  117. * TAB1.'SAUVDEFO': Table qui contiendra les déformées pour chaque réponse i
  118. * (TAB1.'SAUVDEFO'). i.'FREQROTA' : Fréquence de rotation
  119. * (TAB1.'SAUVDEFO'). i. 'DEFORMEE_REELLE' : Déformée réelle
  120. * (TAB1.'SAUVDEFO'). i. 'DEFORMEE_IMAGINAIRE' : Déformée imaginaire
  121. *
  122. ************************************************************************
  123. *
  124. DEBPROC BALOURD TAB1*TABLE PRFREQ*LISTREEL;
  125.  
  126.  
  127. *---------------- Recuperation des donnees d'entree --------------------
  128.  
  129. Nfreq = dime PRFREQ;
  130. *
  131. 'SI' (EXISTE TAB1 'AFFICHAGE');
  132. SI ((TAB1.'AFFICHAGE') EGA VRAI);
  133. TESTAF = TAB1.'AFFICHAGE';
  134. SINON;
  135. TESTAF = FAUX;
  136. FINSI;
  137. 'SINON';
  138. TESTAF = FAUX;
  139. 'FINSI';
  140. *
  141. 'SI' (EXISTE TAB1 'PLAN_ELLIPSE');
  142. 'SI' (EGA (TAB1.'PLAN_ELLIPSE') 'OXY');
  143. PLANELLI = 'OXY';
  144. 'SINON';
  145. 'SI' (EGA (TAB1.'PLAN_ELLIPSE') 'OYZ');
  146. PLANELLI = 'OYZ';
  147. 'SINON';
  148. 'SI' (EGA (TAB1.'PLAN_ELLIPSE') 'OXZ');
  149. PLANELLI = 'OXZ';
  150. 'SINON';
  151. PLANELLI = 'OYZ';
  152. 'FINSI';
  153. 'FINSI';
  154. 'FINSI';
  155. 'SINON';
  156. PLANELLI = 'OYZ';
  157. 'FINSI';
  158. *
  159. 'SI' (EXISTE TAB1 'SAUVDEFO');
  160. SI ((TAB1.'SAUVDEFO') EGA VRAI);
  161. TESTDEFO = VRAI;
  162. TAB1.'SAUVDEFO' = TABLE;
  163. SINON;
  164. TESTDEFO = FAUX;
  165. FINSI;
  166. SINON;
  167. TESTDEFO = FAUX;
  168. FINSI;
  169. *
  170. 'SI' (EXISTE TAB1 'BASE_MODALE');
  171. TESTMODE = VRAI;
  172. TBasR = TAB1.'BASE_MODALE';
  173. 'SINON';
  174. TESTMODE = FAUX;
  175. MESS 'Les calculs sont effectués sans projeter sur la base modale';
  176. 'FINSI';
  177. *
  178. 'SI' (EXISTE TAB1 'REPONSE');
  179. TabRep = TAB1.'REPONSE';
  180. NPoiRep = DIME TabRep;
  181. 'SINON';
  182. MESS 'Il manque la table TAB1.REPONSE';
  183. ERRE 21;
  184. 'FINSI';
  185. *
  186. 'SI' (EXISTE TAB1 'MASSE');
  187. Mmas = TAB1.'MASSE';
  188. SI TESTMODE;
  189. MMasP = PJBA TBasR MMas ;
  190. SINON;
  191. MMasP = MMas ;
  192. FINSI;
  193. 'SINON';
  194. 'SI' (EXISTE TAB1 'MASS_PROJ');
  195. MMasP = TAB1.'MASS_PROJ';
  196. SI (NON TESTMODE);
  197. MESS 'Attention vous ne travaillez pas sur base modale';
  198. ERRE 21;
  199. 'FINSI';
  200. 'SINON';
  201. MESS 'Il manque la matrice de masse dans TAB1';
  202. ERRE 21;
  203. 'FINSI';
  204. 'FINSI';
  205. *
  206. 'SI' (EXISTE TAB1 'RIGIDITE');
  207. MRig = TAB1.'RIGIDITE';
  208. SI TESTMODE;
  209. MRigP = PJBA TBasR MRig ;
  210. SINON;
  211. MRigP = MRig ;
  212. FINSI;
  213. 'SINON';
  214. 'SI' ((EXISTE TAB1 'RIGI_PROJ'));
  215. MRigP = TAB1.'RIGI_PROJ';
  216. MRig = MRigP ;
  217. SI (NON TESTMODE);
  218. MESS 'Attention vous ne travaillez pas sur base modale';
  219. ERRE 21;
  220. 'FINSI';
  221. 'SINON';
  222. MESS 'Il manque la matrice de rigidité dans TAB1';
  223. ERRE 21;
  224. 'FINSI';
  225. 'FINSI';
  226. *
  227. 'SI' (EXISTE TAB1 'BLOCAGE');
  228. BL0 = TAB1.'BLOCAGE';
  229. SI TESTMODE;
  230. BL0P = PJBA TBasR BL0 ;
  231. SINON;
  232. BL0P = BL0 ;
  233. FINSI;
  234. 'SINON';
  235. 'SI' ((EXISTE TAB1 'BLOC_PROJ'));
  236. BL0P = TAB1.'BLO_PROJ';
  237. BL0 = BL0P ;
  238. SI (NON TESTMODE);
  239. MESS 'Attention vous ne travaillez pas sur base modale';
  240. ERRE 21;
  241. 'FINSI';
  242. 'SINON';
  243. MESS 'Les blocages sont inclus dans la matrice de rigidite';
  244. BL0P = 0.*MRigP;
  245. BL0 = 0.*MRig;
  246. 'FINSI';
  247. 'FINSI';
  248. *
  249. 'SI' (EXISTE TAB1 'AMORTISSEMENT');
  250. MCam = TAB1.'AMORTISSEMENT';
  251. SI TESTMODE;
  252. MCamP = PJBA TBasR MCam ;
  253. SINON;
  254. MCamP = MCam ;
  255. FINSI;
  256. 'SINON';
  257. 'SI' ((EXISTE TAB1 'AMOR_PROJ'));
  258. MCamP = TAB1.'AMOR_PROJ';
  259. SI (NON TESTMODE);
  260. MESS 'Attention vous ne travaillez pas sur base modale';
  261. ERRE 21;
  262. 'FINSI';
  263. 'SINON';
  264. MESS 'La matrice d amortissement est prise nulle';
  265. MCamP = 0.*MRigP;
  266. MCam = 0.*MRig;
  267. 'FINSI';
  268. 'FINSI';
  269. *
  270. 'SI' (EXISTE TAB1 'KROTATIF');
  271. MCah = TAB1.'KROTATIF';
  272. SI TESTMODE;
  273. MCahP = PJBA TBasR MCah ;
  274. SINON;
  275. MCahP = MCah ;
  276. FINSI;
  277. 'SINON';
  278. 'SI' (EXISTE TAB1 'KROT_PROJ');
  279. MCahP = TAB1.'KROT_PROJ';
  280. 'SINON';
  281. MESS 'Absence d amortissement corotatif';
  282. MCahP = 0.* MRigP ;
  283. MCah = 0.* MRig ;
  284. 'FINSI';
  285. 'FINSI';
  286. *
  287. *
  288. 'SI' (EXISTE TAB1 'GYROSCOPIQUE');
  289. MCG = TAB1.'GYROSCOPIQUE';
  290. SI TESTMODE;
  291. MCGP = PJBA TBasR MCG ;
  292. SINON;
  293. MCGP = MCG ;
  294. FINSI;
  295. 'SINON';
  296. 'SI' (EXISTE TAB1 'GYRO_PROJ');
  297. MCGP = TAB1.'GYRO_PROJ';
  298. SI (NON TESTMODE);
  299. MESS 'Attention vous ne travaillez pas sur base modale';
  300. ERRE 21;
  301. 'FINSI';
  302. 'SINON';
  303. MESS 'La matrice de couplage gyroscopique est prise nulle';
  304. MCGP = 0.*MRigP;
  305. MCG = 0.*MRig;
  306. 'FINSI';
  307. 'FINSI';
  308. *
  309. 'SI' (EXISTE TAB1 'FBALOURD');
  310. FbalR = TAB1.'FBALOURD';
  311. 'SI' (EXISTE TAB1 'VROTATION');
  312. VecRotb = (TAB1.'VROTATION');
  313. NVecrb = (((EXCO VecRotb RX SCAL)**2)
  314. + ((EXCO VecRotb RY SCAL)**2)
  315. + ((EXCO VecRotb RZ SCAL)**2))**0.5;
  316. VecRot = (1./NVecrb)*VecRotb;
  317. 'SINON';
  318. Vecrot = MANU CHPO (extr FbalR mail) 3
  319. RX 1. RY 0. RZ 0.;
  320. 'FINSI';
  321. FbalI = (FbalR '*'VecRot ('MOTS' FY FZ FX)
  322. ('MOTS' RZ RX RY) ('MOTS' FX FY FZ))
  323. - (FbalR '*'VecRot ('MOTS' FZ FX FY)
  324. ('MOTS' RY RZ RX) ('MOTS' FX FY FZ));
  325. FbalI = CHAN ATTRIBUT FbalI NATURE DISCRET;
  326. SI TESTMODE;
  327. FbalRP = PJBA TBasR FbalR ;
  328. FbalIP = PJBA TBasR FbalI ;
  329. SINON;
  330. FbalRP = FbalR ;
  331. FbalIP = FbalI ;
  332. FINSI;
  333. 'SINON';
  334. 'SI' ((EXISTE TAB1 'FBALREEL') ET (EXISTE TAB1 'FBALIMAG'));
  335. mess 'On donne les forces de balourd réelles et imaginaires';
  336. FbalR = TAB1.'FBALREEL';
  337. FbalI = TAB1.'FBALIMAG';
  338. SI TESTMODE;
  339. FbalRP = PJBA TBasR FbalR ;
  340. FbalIP = PJBA TBasR FbalI ;
  341. SINON;
  342. FbalRP = FbalR ;
  343. FbalIP = FbalI ;
  344. FINSI;
  345. 'SINON';
  346. 'SI' ((EXISTE TAB1 'FBAR_PROJ') ET (EXISTE TAB1 'FBAI_PROJ')) ;
  347. FbalRP = TAB1.'FBAR_PROJ';
  348. FbalIP = TAB1.'FBAI_PROJ';
  349. SI (NON TESTMODE);
  350. MESS 'Attention vous ne travaillez pas sur base modale';
  351. ERRE 21;
  352. 'FINSI';
  353. 'SINON';
  354. MESS 'Aucun chargement balourd n est pris en compte';
  355. 'FINSI';
  356. 'FINSI';
  357. 'FINSI';
  358. *
  359. *
  360.  
  361. *----------------- Boucle sur les vitesses de rotation -----------------
  362.  
  363. REPETER LAB1 NFREQ; i1 = &lab1;
  364.  
  365. * Vitesse de Rotation -----------------------------
  366. VALFREQ = EXTR PRFREQ i1;
  367. SI TESTAF;
  368. MESS 'Frequence N° ' i1 ' : ' VALFREQ 'rad/s';
  369. FINSI;
  370.  
  371. * On résout sur une base de modes propres ---------
  372. SI TESTMODE;
  373. *
  374. * Ancienne syntaxe utilisant VIBC BALOU :
  375.  
  376. * GEOx1 = EXTR FbalRP 'MAIL' ;
  377. * GEOx2 = GEOx1 ;
  378. *
  379. * XVal1 = PROG ;
  380. * XVal2 = PROG ;
  381. * REPE bbb2 (NBEL GEOx1) ;
  382. * i2 = &bbb2 ;
  383. * XP1 = 0. 0. 0. ;
  384. * GEOx2 = GEOx2 ET XP1 ;
  385. * Px1 = POIN GEOx1 i2 ;
  386. * XVal1 = XVal1 ET (PROG (EXTR FbalRP 'FALF' Px1)) ;
  387. * XVal2 = XVal2 ET (PROG (EXTR FbalIP 'FALF' Px1)) ;
  388. * FIN bbb2 ;
  389. * XVal2 = XVal1 ET XVal2 ;
  390. * PjFBalo = MANU CHPO GEOx2 1 'FALF' XVal2 ;
  391.  
  392. * Depreel DepImag = VIBC MMasP 'BALOURD'
  393. * (MRigP et BL0P et (VALFREQ*MCahP))
  394. * ((VALFREQ*MCGP) et MCamp) TBasR
  395. * ((VALFREQ**2)*PjFBalo) VALFREQ;
  396.  
  397. * Nouvelle syntaxe :
  398.  
  399. HMas = IMPE MMasP 'MASSE';
  400. HRig = IMPE MRigP 'RAIDEUR';
  401. * HBL0 = IMPE BL0P 'RAIDEUR'; pas de blocage sur base modale
  402. HCah = IMPE MCahP 'RAIDEUR';
  403. HCG = IMPE MCGP 'AMORTISSEMENT';
  404. HCam = IMPE MCamp 'AMORTISSEMENT';
  405.  
  406. Kdyn = ((VALFREQ**2)*HMas)
  407. et (HRig et (VALFREQ*HCah))
  408. et (VALFREQ * (HCam et (VALFREQ*HCG)));
  409. *
  410. PjFBalo = FbalRP et (FbalIP EXCO 'FALF' 'IFAL');
  411.  
  412. Depdyn = RESO Kdyn ((VALFREQ**2)*PjFBalo);
  413.  
  414. Depreel = RECO (EXCO Depdyn 'ALFA' 'ALFA') TBasR;
  415. DepImag = RECO (EXCO Depdyn 'IALF' 'ALFA') TBasR;
  416.  
  417. * On résout sur base "physique" ---------------
  418. SINON;
  419. *
  420. * MMasI = CHAN INCO COMPLEXE MMas;
  421. * MRigI = CHAN INCO COMPLEXE MRig;
  422. * MCahI = CHAN INCO COMPLEXE MCah;
  423. * MCGI = ((-1.)* (CHAN INCO MCG
  424. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  425. * ('MOTS' 'IUX ' 'IUY ' 'IUZ ' 'IRX ' 'IRY ' 'IRZ ')
  426. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  427. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  428. * QUEL ));
  429. * MCGI = MCGI et
  430. * ((1.)*(CHAN INCO MCG
  431. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  432. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  433. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  434. * ('MOTS' 'IFX ' 'IFY ' 'IFZ ' 'IMX ' 'IMY ' 'IMZ ')
  435. * QUEL ));
  436. * MCamI = ((-1.)* (CHAN INCO MCam
  437. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  438. * ('MOTS' 'IUX ' 'IUY ' 'IUZ ' 'IRX ' 'IRY ' 'IRZ ')
  439. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  440. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  441. * QUEL ));
  442. * MCamI = MCamI et
  443. * ((1.)*(CHAN INCO MCam
  444. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  445. * ('MOTS' 'UX ' 'UY ' 'UZ ' 'RX ' 'RY ' 'RZ ')
  446. * ('MOTS' 'FX ' 'FY ' 'FZ ' 'MX ' 'MY ' 'MZ ')
  447. * ('MOTS' 'IFX ' 'IFY ' 'IFZ ' 'IMX ' 'IMY ' 'IMZ ')
  448. * QUEL ));
  449. * *
  450. * Kdyn = ((-1.)*(VALFREQ**2)*(MMas et MMasI)) et
  451. * MRig et MRigI et BL0 et (VALFREQ*MCamI) et
  452. * (VALFREQ*(MCahI et MCah))
  453. * et ((VALFREQ**2)*MCGI);
  454.  
  455. HMas = IMPE MMas 'MASSE';
  456. HRig = IMPE MRig 'RAIDEUR';
  457. HBL0 = IMPE BL0 'RAIDEUR';
  458. HCah = IMPE MCah 'RAIDEUR';
  459. HCG = IMPE MCG 'AMORTISSEMENT';
  460. HCam = IMPE MCam 'AMORTISSEMENT';
  461. *
  462. Kdyn = ((VALFREQ**2)*HMas)
  463. et (HRig et HBL0 et (VALFREQ * HCah))
  464. et (VALFREQ * (HCam et (VALFREQ*HCG)));
  465.  
  466. FbalI = FbalI et (manu chpo (extr FbalI mail) 6
  467. FX 0. FY 0. FZ 0. MX 0. MY 0. MZ 0. NATURE DISCRET);
  468. fbaldyn=(VALFREQ**2)*(FbalR et
  469. (exco FbalI (mots FX FY FZ MX MY MZ)
  470. (mots IFX IFY IFZ IMX IMY IMZ)));
  471.  
  472. Depdyn = RESO Kdyn fbaldyn;
  473.  
  474. Depreel = EXCO Depdyn (mots UX UY UZ RX RY RZ)
  475. (mots UX UY UZ RX RY RZ);
  476. Depimag = EXCO Depdyn (mots IUX IUY IUZ IRX IRY IRZ)
  477. (mots UX UY UZ IRX IRY IRZ);
  478. *
  479. FINSI;
  480.  
  481. * Extraction des resultats demandes -----------
  482. REPETER LAB2 NPoiRep; i2 = &lab2;
  483.  
  484. POIREP = (TabRep. i2).'POINT';
  485. *
  486. UXPbalR = EXTR Depreel POIREP UX;
  487. UYPbalR = EXTR Depreel POIREP UY;
  488. UZPbalR = EXTR Depreel POIREP UZ;
  489. UXPbalI = EXTR Depimag POIREP UX;
  490. UYPbalI = EXTR Depimag POIREP UY;
  491. UZPbalI = EXTR Depimag POIREP UZ;
  492. *
  493. SI (EGA PLANELLI 'OXY');
  494. U1PbalR = UXPbalR;
  495. U1PbalI = UXPbalI;
  496. U2PbalR = UYPbalR;
  497. U2PbalI = UYPbalI;
  498. SINON;
  499. SI (EGA PLANELLI 'OXZ');
  500. U1PbalR = UXPbalR;
  501. U1PbalI = UXPbalI;
  502. U2PbalR = UZPbalR;
  503. U2PbalI = UZPbalI;
  504. SINON;
  505. U1PbalR = UYPbalR;
  506. U1PbalI = UYPbalI;
  507. U2PbalR = UZPbalR;
  508. U2PbalI = UZPbalI;
  509. FINSI;
  510. FINSI;
  511. *
  512. U2max = (U1PbalR*U1PbalR)+(U1PbalI*U1PbalI)+
  513. (U2PbalR*U2PbalR)+(U2PbalI*U2PbalI);
  514. * criteres pour mises a 0 : discutable
  515. CritU2 = U2max*1.D-10;
  516. CritU = (U2max**0.5)*1.D-5;
  517. *
  518. EE = 2.*((U1PbalR*U1PbalI)+(U2PbalR*U2PbalI));
  519. FF = (U1PbalI*U1PbalI)+(U2PbalI*U2PbalI) -
  520. (U1PbalR*U1PbalR)-(U2PbalR*U2PbalR);
  521. *
  522. SI ((ABS(EE) < CritU2 ) ET (ABS(FF) < CritU2 ));
  523. th = 0.;
  524. SINON;
  525. th = 0.5*(atg EE FF);
  526. FINSI;
  527. Yy = (U1PbalR*(cos th)) - (U1PbalI*(sin th));
  528. Zz = (U2PbalR*(cos th)) - (U2PbalI*(sin th));
  529. SI ((ABS(Zz) < CritU) ET (ABS(Yy) < CritU));
  530. phip = 0.;
  531. SINON;
  532. phip = (atg Zz Yy);
  533. FINSI;
  534. paxe = ((Yy**2)+(Zz**2))**0.5;
  535. th = th + 90.;
  536. Yy = (U1PbalR*(cos th)) - (U1PbalI*(sin th));
  537. Zz = (U2PbalR*(cos th)) - (U2PbalI*(sin th));
  538. SI ((ABS(Zz) < CritU ) ET (ABS(Yy) < CritU ));
  539. phig = 0.;
  540. SINON;
  541. phig = (atg Zz Yy);
  542. FINSI;
  543. gaxe = ((Yy**2)+(Zz**2))**0.5;
  544. *
  545. * stockage des listreels
  546. SI (i1 EGA 1) ;
  547. TabRep . i2 . 'UXREEL' = PROG (EXTR Depreel POIREP UX);
  548. TabRep . i2 . 'UYREEL' = PROG (EXTR Depreel POIREP UY);
  549. TabRep . i2 . 'UZREEL' = PROG (EXTR Depreel POIREP UZ);
  550. TabRep . i2 . 'RXREEL' = PROG (EXTR Depreel POIREP RX);
  551. TabRep . i2 . 'RYREEL' = PROG (EXTR Depreel POIREP RY);
  552. TabRep . i2 . 'RZREEL' = PROG (EXTR Depreel POIREP RZ);
  553. TabRep . i2 . 'UXIMAG' = PROG (EXTR Depimag POIREP UX);
  554. TabRep . i2 . 'UYIMAG' = PROG (EXTR Depimag POIREP UY);
  555. TabRep . i2 . 'UZIMAG' = PROG (EXTR Depimag POIREP UZ);
  556. TabRep . i2 . 'RXIMAG' = PROG (EXTR Depimag POIREP RX);
  557. TabRep . i2 . 'RYIMAG' = PROG (EXTR Depimag POIREP RY);
  558. TabRep . i2 . 'RZIMAG' = PROG (EXTR Depimag POIREP RZ);
  559. TabRep . i2 . 'GAXE' = PROG gaxe;
  560. TabRep . i2 . 'PAXE' = PROG paxe;
  561. TabRep . i2 . 'ANGLEGAXE' = PROG phiG;
  562.  
  563. SINON;
  564. TabRep . i2 . 'UXREEL' = (TabRep . i2 . 'UXREEL' ) ET
  565. (PROG (EXTR Depreel POIREP UX));
  566. TabRep . i2 . 'UYREEL' = (TabRep . i2 . 'UYREEL') ET
  567. (PROG (EXTR Depreel POIREP UY));
  568. TabRep . i2 . 'UZREEL' = (TabRep . i2 . 'UZREEL') et
  569. (PROG (EXTR Depreel POIREP UZ));
  570. TabRep . i2 . 'RXREEL' = (TabRep . i2 . 'RXREEL') ET
  571. (PROG (EXTR Depreel POIREP RX));
  572. TabRep . i2 . 'RYREEL' = ( TabRep . i2 . 'RYREEL' ) ET
  573. (PROG (EXTR Depreel POIREP RY));
  574. TabRep . i2 . 'RZREEL' = (TabRep . i2 . 'RZREEL') ET
  575. (PROG (EXTR Depreel POIREP RZ));
  576. TabRep . i2 . 'UXIMAG' = (TabRep . i2 . 'UXIMAG') ET
  577. (PROG (EXTR Depimag POIREP UX));
  578. TabRep . i2 . 'UYIMAG' = (TabRep . i2 . 'UYIMAG') ET
  579. (PROG (EXTR Depimag POIREP UY));
  580. TabRep . i2 . 'UZIMAG' =(TabRep . i2 . 'UZIMAG') ET
  581. (PROG (EXTR Depimag POIREP UZ));
  582. TabRep . i2 . 'RXIMAG' = (TabRep . i2 . 'RXIMAG') ET
  583. (PROG (EXTR Depimag POIREP RX));
  584. TabRep . i2 . 'RYIMAG' = ( TabRep . i2 . 'RYIMAG') ET
  585. (PROG (EXTR Depimag POIREP RY));
  586. TabRep . i2 . 'RZIMAG' = (TabRep . i2 . 'RZIMAG') ET
  587. (PROG (EXTR Depimag POIREP RZ));
  588. TabRep . i2 . 'GAXE' = ( TabRep . i2 . 'GAXE')
  589. et (PROG gaxe);
  590. TabRep . i2 . 'PAXE' = ( TabRep . i2 . 'PAXE') et
  591. (PROG paxe);
  592. TabRep . i2 . 'ANGLEGAXE' = ( TabRep . i2 . 'ANGLEGAXE')
  593. et (PROG phiG);
  594. *
  595. FINSI;
  596.  
  597. * stockage des deformees dans une table
  598. SI TESTDEFO;
  599. TAB1 . 'SAUVDEFO' . i1 = TABLE;
  600. TAB1 . 'SAUVDEFO' . i1 . 'FREQROTA' = VALFREQ;
  601. TAB1 . 'SAUVDEFO' . i1 . 'DEFORMEE_REELLE' = Depreel;
  602. TAB1 . 'SAUVDEFO' . i1 . 'DEFORMEE_IMAGINAIRE' = Depimag;
  603. FINSI;
  604. *
  605. TabRep . i2 . 'UX' = ( ((TabRep . i2 . 'UXREEL' )**2)
  606. + ((TabRep . i2 . 'UXIMAG' )**2))**0.5;
  607. TabRep . i2 . 'UY' = ( ((TabRep . i2 . 'UYREEL' )**2)
  608. + ((TabRep . i2 . 'UYIMAG' )**2))**0.5;
  609. TabRep . i2 . 'UZ' = ( ((TabRep . i2 . 'UZREEL' )**2)
  610. + ((TabRep . i2 . 'UZIMAG' )**2))**0.5;
  611. TabRep . i2 . 'RX' = ( ((TabRep . i2 . 'RXREEL' )**2)
  612. + ((TabRep . i2 . 'RXIMAG' )**2))**0.5;
  613. TabRep . i2 . 'RY' = ( ((TabRep . i2 . 'RYREEL' )**2)
  614. + ((TabRep . i2 . 'RYIMAG' )**2))**0.5;
  615. TabRep . i2 . 'RZ' = ( ((TabRep . i2 . 'RZREEL' )**2)
  616. + ((TabRep . i2 . 'RZIMAG' )**2))**0.5;
  617. *
  618. FIN LAB2;
  619. * fin d'extraction des resultats demandes -----------
  620.  
  621. FIN lab1;
  622. *-------------- Fin de Boucle sur les vitesses de rotation -------------
  623.  
  624.  
  625. *------------------------ Ecriture d'EVOLUTIOns ------------------------
  626.  
  627. REPETER LAB3 NPoiRep; i2 =&lab3;
  628. TabRep . i2 . 'UXREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'UXREEL' );
  629. TabRep . i2 . 'UYREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'UYREEL' );
  630. TabRep . i2 . 'UZREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'UZREEL' );
  631. TabRep . i2 . 'UXIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'UXIMAG' );
  632. TabRep . i2 . 'UYIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'UYIMAG' );
  633. TabRep . i2 . 'UZIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'UZIMAG' );
  634. TabRep . i2 . 'UX' = EVOL MANU PRFREQ (TabRep . i2 . 'UX' );
  635. TabRep . i2 . 'UY' = EVOL MANU PRFREQ (TabRep . i2 . 'UY' );
  636. TabRep . i2 . 'UZ' = EVOL MANU PRFREQ (TabRep . i2 . 'UZ' );
  637. TabRep . i2 . 'RXREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'RXREEL' );
  638. TabRep . i2 . 'RYREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'RYREEL' );
  639. TabRep . i2 . 'RZREEL' = EVOL MANU PRFREQ (TabRep . i2 . 'RZREEL' );
  640. TabRep . i2 . 'RXIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'RXIMAG' );
  641. TabRep . i2 . 'RYIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'RYIMAG' );
  642. TabRep . i2 . 'RZIMAG' = EVOL MANU PRFREQ (TabRep . i2 . 'RZIMAG' );
  643. TabRep . i2 . 'RX' = EVOL MANU PRFREQ (TabRep . i2 . 'RX' );
  644. TabRep . i2 . 'RY' = EVOL MANU PRFREQ (TabRep . i2 . 'RY' );
  645. TabRep . i2 . 'RZ' = EVOL MANU PRFREQ (TabRep . i2 . 'RZ' );
  646. TabRep . i2 . 'GAXE' = EVOL MANU PRFREQ (TabRep . i2 . 'GAXE' );
  647. TabRep . i2 . 'PAXE' = EVOL MANU PRFREQ (TabRep . i2 . 'PAXE' );
  648. TabRep . i2 . 'ANGLEGAXE'
  649. = EVOL MANU PRFREQ(TabRep . i2 . 'ANGLEGAXE');
  650. FIN lab3;
  651.  
  652.  
  653. 'FINPROC';
  654. *
  655.  

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