Download balourd.procedur

Back to the list

   1 : * BALOURD   PROCEDUR  DC        04/07/09    21:15:09     4841           
   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 : ERR = VRAI;  
 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 : *    MESS 'Il manque la base de modes réels dans TAB1';
 177 : *     ERR = FAUX;   
 178 : 'FINSI';
 179 : *
 180 : 'SI' (EXISTE TAB1 'REPONSE');
 181 :     TabRep = TAB1.'REPONSE';
 182 :     NPoiRep = DIME TabRep;
 183 : 'SINON';
 184 :      MESS 'Il manque la table TAB1.REPONSE';
 185 :      ERR = FAUX;   
 186 : 'FINSI';
 187 : *
 188 : 'SI' (EXISTE TAB1 'MASSE');
 189 :     Mmas = TAB1.'MASSE';
 190 :     SI TESTMODE;    
 191 :       MMasP = PJBA TBasR MMas ;
 192 :     SINON;
 193 :       MMasP = MMas ;
 194 :     FINSI;
 195 : 'SINON';
 196 :   'SI'  (EXISTE TAB1 'MASS_PROJ');
 197 :      MMasP = TAB1.'MASS_PROJ';
 198 :      SI (NON TESTMODE);
 199 :        MESS 'Attention vous ne travaillez pas sur base modale';
 200 :        ERR = FAUX;   
 201 :     'FINSI';     
 202 :   'SINON';
 203 :      MESS 'Il manque la matrice de masse dans TAB1';
 204 :      ERR = FAUX;   
 205 :   'FINSI';
 206 : 'FINSI';
 207 : *
 208 : 'SI' (EXISTE TAB1 'RIGIDITE');
 209 :     MRig = TAB1.'RIGIDITE';
 210 :     SI TESTMODE;    
 211 :       MRigP = PJBA TBasR MRig ;
 212 :     SINON;
 213 :       MRigP = MRig ;
 214 :      FINSI;
 215 : 'SINON';
 216 :   'SI'  ((EXISTE TAB1 'RIGI_PROJ'));
 217 :      MRigP = TAB1.'RIGI_PROJ';
 218 :      MRig = MRigP ;
 219 :      SI (NON TESTMODE);
 220 :        MESS 'Attention vous ne travaillez pas sur base modale';
 221 :        ERR = FAUX;   
 222 :     'FINSI';     
 223 :   'SINON';
 224 :      MESS 'Il manque la matrice de rigidité dans TAB1';
 225 :      ERR = FAUX;   
 226 :   'FINSI';
 227 : 'FINSI';
 228 : *
 229 : 'SI' (EXISTE TAB1 'BLOCAGE');
 230 :     BL0 = TAB1.'BLOCAGE';
 231 :     SI TESTMODE;    
 232 :       BL0P = PJBA TBasR BL0 ;
 233 :     SINON;
 234 :       BL0P = BL0 ;
 235 :      FINSI;
 236 : 'SINON';
 237 :   'SI'  ((EXISTE TAB1 'BLOC_PROJ'));
 238 :      BL0P = TAB1.'BLO_PROJ';
 239 :      BL0 = BL0P ;
 240 :      SI (NON TESTMODE);
 241 :        MESS 'Attention vous ne travaillez pas sur base modale';
 242 :        ERR = FAUX;   
 243 :     'FINSI';     
 244 :   'SINON';
 245 :      MESS 'Les blocages sont inclus dans la matrice de rigidite';
 246 :      BL0P =  0.*MRigP;
 247 :      BL0 =   0.*MRig;
 248 :   'FINSI';
 249 : 'FINSI';
 250 : *
 251 : 'SI' (EXISTE TAB1 'AMORTISSEMENT');
 252 :     MCam = TAB1.'AMORTISSEMENT';
 253 :     SI TESTMODE;    
 254 :       MCamP = PJBA TBasR MCam ;
 255 :     SINON;
 256 :       MCamP = MCam ;
 257 :     FINSI;
 258 : 'SINON';
 259 :   'SI'  ((EXISTE TAB1 'AMOR_PROJ'));
 260 :      MCamP = TAB1.'AMOR_PROJ';
 261 :      SI (NON TESTMODE);
 262 :        MESS 'Attention vous ne travaillez pas sur base modale';
 263 :        ERR = FAUX;   
 264 :     'FINSI';     
 265 :   'SINON';
 266 :      MESS 'La matrice d amortissement est prise nulle';
 267 :      MCamP = 0.*MRigP;
 268 :      MCam = 0.*MRig;
 269 :   'FINSI';
 270 : 'FINSI';
 271 : *
 272 : 'SI' (EXISTE TAB1 'KROTATIF');
 273 :     MCah = TAB1.'KROTATIF';
 274 :     SI TESTMODE;    
 275 :       MCahP = PJBA TBasR MCah ;
 276 :     SINON;
 277 :       MCahP = MCah ; 
 278 :     FINSI;  
 279 : 'SINON';
 280 :   'SI'  (EXISTE TAB1 'KROT_PROJ');
 281 :      MCahP = TAB1.'KROT_PROJ';
 282 :   'SINON';
 283 :      MESS 'Absence d amortissement corotatif';
 284 :      MCahP = 0.* MRigP ;
 285 :      MCah = 0.* MRig ;
 286 :   'FINSI';
 287 : 'FINSI';
 288 : *
 289 : *
 290 : 'SI' (EXISTE TAB1 'GYROSCOPIQUE');
 291 :     MCG = TAB1.'GYROSCOPIQUE';
 292 :     SI TESTMODE; 
 293 :       MCGP = PJBA TBasR MCG ;
 294 :     SINON;
 295 :       MCGP = MCG ;
 296 :     FINSI;
 297 : 'SINON';
 298 :   'SI'  (EXISTE TAB1 'GYRO_PROJ');
 299 :      MCGP = TAB1.'GYRO_PROJ';
 300 :      SI (NON TESTMODE);
 301 :        MESS 'Attention vous ne travaillez pas sur base modale';
 302 :        ERR = FAUX;   
 303 :     'FINSI';     
 304 :   'SINON';
 305 :      MESS 'La matrice de couplage gyroscopique est prise nulle';
 306 :      MCGP = 0.*MRigP;
 307 :      MCG = 0.*MRig;
 308 :   'FINSI';
 309 : 'FINSI';
 310 : *
 311 : 'SI' (EXISTE TAB1 'FBALOURD');
 312 :     FbalR = TAB1.'FBALOURD';
 313 :     'SI' (EXISTE TAB1 'VROTATION');
 314 :        VecRotb =  (TAB1.'VROTATION');
 315 :        NVecrb = (((EXCO VecRotb RX SCAL)**2)
 316 :              +  ((EXCO VecRotb RY SCAL)**2)
 317 :              +  ((EXCO VecRotb RZ SCAL)**2))**0.5;
 318 :        VecRot = (1./NVecrb)*VecRotb;
 319 :      'SINON';
 320 :        Vecrot = MANU CHPO (extr FbalR mail) 3 
 321 :                 RX 1. RY 0. RZ 0.;
 322 :      'FINSI';
 323 :     FbalI = (FbalR '*'VecRot ('MOTS' FY FZ FX) 
 324 :                 ('MOTS' RZ RX RY) ('MOTS' FX FY FZ)) 
 325 :          -  (FbalR '*'VecRot ('MOTS' FZ FX FY) 
 326 :                 ('MOTS' RY RZ RX) ('MOTS' FX FY FZ));
 327 :     FbalI = CHAN ATTRIBUT FbalI NATURE DISCRET;
 328 :     SI TESTMODE;
 329 :       FbalRP = PJBA TBasR FbalR ;
 330 :       FbalIP = PJBA TBasR FbalI ;
 331 :     SINON;
 332 :       FbalRP = FbalR ;
 333 :       FbalIP = FbalI ;
 334 :      FINSI;    
 335 : 'SINON';
 336 :   'SI'  ((EXISTE TAB1 'FBALREEL') ET (EXISTE TAB1 'FBALIMAG'));
 337 :       mess 'On donne les forces de balourd réelles et imaginaires';
 338 :      FbalR = TAB1.'FBALREEL';
 339 :      FbalI = TAB1.'FBALIMAG';
 340 :     SI TESTMODE;
 341 :       FbalRP = PJBA TBasR FbalR ;
 342 :       FbalIP = PJBA TBasR FbalI ; 
 343 :     SINON;
 344 :       FbalRP = FbalR ;
 345 :       FbalIP = FbalI ;
 346 :      FINSI;    
 347 :   'SINON';
 348 :     'SI'  ((EXISTE TAB1 'FBAR_PROJ') ET (EXISTE TAB1 'FBAI_PROJ')) ;
 349 :        FbalRP = TAB1.'FBAR_PROJ';
 350 :        FbalIP = TAB1.'FBAI_PROJ';
 351 :        SI (NON TESTMODE);
 352 :          MESS 'Attention vous ne travaillez pas sur base modale';
 353 :          ERR = FAUX;   
 354 :       'FINSI';    
 355 :     'SINON';
 356 :        MESS 'Aucun chargement balourd n est pris en compte';
 357 :     'FINSI';
 358 :   'FINSI';
 359 : 'FINSI';
 360 : *
 361 : * Dernier test avant la boucle finale ...
 362 : *
 363 : 'SI' ERR;
 364 : *
 365 : * Préparation du second membre de l'équation
 366 : *
 367 :   GEOx1 = EXTR FbalRP 'MAIL' ;
 368 :   GEOx2 = GEOx1 ;
 369 : *
 370 :   XVal1 = PROG ;
 371 :   XVal2 = PROG ;
 372 :   REPE bbb2 (NBEL GEOx1) ;
 373 :    i2 = &bbb2 ;
 374 :    XP1 = 0. 0. 0. ; 
 375 :    GEOx2 = GEOx2 ET XP1 ;
 376 :    Px1 = POIN GEOx1 i2 ;
 377 :    XVal1 = XVal1 ET (PROG (EXTR FbalRP 'FALF' Px1)) ;
 378 :    XVal2 = XVal2 ET (PROG (EXTR FbalIP 'FALF' Px1)) ;
 379 :   FIN bbb2 ;
 380 :   XVal2 = XVal1 ET XVal2 ;
 381 :   PjFBalo = MANU CHPO GEOx2 1 'FALF' XVal2 ; 
 382 : *
 383 : *
 384 : REPETER LAB1 NFREQ;
 385 :   i1 = &lab1;
 386 :   VALFREQ = EXTR PRFREQ i1;
 387 :   SI TESTAF;
 388 :      MESS 'Frequence N° ' i1;
 389 :   FINSI;
 390 :   SI TESTMODE;
 391 : *
 392 : * On résout sur une base de modes propres
 393 : *
 394 :      Depreel DepImag = VIBC MMasP 'BALOURD'
 395 :      (MRigP et BL0P et (VALFREQ*MCahP)) 
 396 :      ((VALFREQ*MCGP) et MCamp) TBasR
 397 :      ((VALFREQ**2)*PjFBalo) VALFREQ;
 398 :   SINON;
 399 : *
 400 : * On résout directement dans le domaine fréquentiel
 401 : *
 402 :       MMasI = CHAN INCO COMPLEXE MMas;
 403 :       MRigI = CHAN INCO COMPLEXE MRig;
 404 :       MCahI = CHAN INCO COMPLEXE MCah;
 405 :       MCGI = ((-1.)* (CHAN INCO  MCG
 406 :    ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 407 :    ('MOTS' 'IUX ' 'IUY ' 'IUZ ' 'IRX ' 'IRY ' 'IRZ ') 
 408 :    ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 409 :    ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 410 :          QUEL ));
 411 :        MCGI = MCGI et 
 412 :    ((1.)*(CHAN INCO  MCG
 413 :     ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 414 :     ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 415 :     ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 416 :     ('MOTS' 'IFX ' 'IFY ' 'IFZ ' 'IMX ' 'IMY ' 'IMZ ') 
 417 :          QUEL ));
 418 :        MCamI =  ((-1.)* (CHAN INCO  MCam
 419 :     ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 420 :     ('MOTS' 'IUX ' 'IUY ' 'IUZ ' 'IRX ' 'IRY ' 'IRZ ') 
 421 :     ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 422 :     ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 423 :          QUEL ));
 424 :        MCamI = MCamI et 
 425 :      ((1.)*(CHAN INCO  MCam
 426 :     ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 427 :     ('MOTS' 'UX  ' 'UY  ' 'UZ  ' 'RX  ' 'RY  ' 'RZ  ') 
 428 :     ('MOTS' 'FX  ' 'FY  ' 'FZ  ' 'MX  ' 'MY  ' 'MZ  ') 
 429 :     ('MOTS' 'IFX ' 'IFY ' 'IFZ ' 'IMX ' 'IMY ' 'IMZ ') 
 430 :          QUEL ));
 431 : *
 432 :        Kdyn = ((-1.)*(VALFREQ**2)*(MMas et MMasI)) et
 433 :              MRig et MRigI et BL0 et (VALFREQ*MCamI) et
 434 :              (VALFREQ*(MCahI et MCah)) 
 435 :           et ((VALFREQ**2)*MCGI);
 436 :        FbalI = FbalI et (manu chpo (extr FbalI mail) 6
 437 :                FX 0. FY 0. FZ 0.  MX 0. MY 0. MZ 0.  NATURE DISCRET);
 438 :        fbaldyn=(VALFREQ**2)*(FbalR et
 439 :               (exco FbalI (mots FX FY FZ MX MY MZ) 
 440 :                           (mots IFX IFY IFZ IMX IMY IMZ)));
 441 :        Depdyn = reso Kdyn fbaldyn;
 442 :        Depreel = exco Depdyn (mots UX UY UZ RX RY RZ) 
 443 :                              (mots UX UY UZ RX RY RZ);
 444 :        Depimag = exco Depdyn (mots IUX IUY IUZ IRX IRY IRZ)
 445 :                              (mots UX UY UZ IRX IRY IRZ);
 446 : *
 447 :   FINSI;
 448 :   REPETER LAB2 NPoiRep;
 449 :     i2 = &lab2;
 450 :     POIREP = (TabRep. i2).'POINT';
 451 : *
 452 :     UXPbalR = EXTR Depreel POIREP UX;
 453 :     UYPbalR = EXTR Depreel POIREP UY;
 454 :     UZPbalR = EXTR Depreel POIREP UZ;
 455 :     UXPbalI = EXTR Depimag POIREP UX;
 456 :     UYPbalI = EXTR Depimag POIREP UY;
 457 :     UZPbalI = EXTR Depimag POIREP UZ;
 458 : *
 459 :     SI (EGA PLANELLI 'OXY');
 460 :       U1PbalR = UXPbalR;
 461 :       U1PbalI = UXPbalI;
 462 :       U2PbalR = UYPbalR;
 463 :       U2PbalI = UYPbalI;
 464 :     SINON;
 465 :       SI (EGA PLANELLI 'OXZ');
 466 :        U1PbalR = UXPbalR;
 467 :        U1PbalI = UXPbalI;
 468 :        U2PbalR = UZPbalR;
 469 :        U2PbalI = UZPbalI;
 470 :       SINON;
 471 :          U1PbalR = UYPbalR;
 472 :          U1PbalI = UYPbalI;
 473 :          U2PbalR = UZPbalR;
 474 :          U2PbalI = UZPbalI;
 475 :        FINSI;
 476 :      FINSI;            
 477 : *
 478 :     U2max = (U1PbalR*U1PbalR)+(U1PbalI*U1PbalI)+
 479 :            (U2PbalR*U2PbalR)+(U2PbalI*U2PbalI);
 480 :     CritU2 = U2max*1.D-10;
 481 :     CritU = (U2max**0.5)*1.D-5;
 482 : *
 483 :     EE = 2.*((U1PbalR*U1PbalI)+(U2PbalR*U2PbalI));
 484 :     FF = (U1PbalI*U1PbalI)+(U2PbalI*U2PbalI) -
 485 :             (U1PbalR*U1PbalR)-(U2PbalR*U2PbalR);
 486 : *
 487 :     SI ((ABS(EE) < CritU2 ) ET (ABS(FF) < CritU2 ));
 488 :       th = 0.;
 489 :      SINON;
 490 :       th = 0.5*(atg EE FF); 
 491 :      FINSI;      
 492 :      Yy = (U1PbalR*(cos th)) - (U1PbalI*(sin th));
 493 :      Zz = (U2PbalR*(cos th)) - (U2PbalI*(sin th));
 494 :      SI ((ABS(Zz) < CritU) ET (ABS(Yy) < CritU));
 495 :       phip = 0.;
 496 :      SINON;
 497 :       phip = (atg Zz Yy);   
 498 :      FINSI;      
 499 :      paxe = ((Yy**2)+(Zz**2))**0.5;
 500 :      th = th + 90.;
 501 :      Yy = (U1PbalR*(cos th)) - (U1PbalI*(sin th));
 502 :      Zz = (U2PbalR*(cos th)) - (U2PbalI*(sin th));
 503 :      SI ((ABS(Zz) < CritU ) ET (ABS(Yy) < CritU ));
 504 :       phig = 0.;
 505 :      SINON;
 506 :       phig = (atg Zz Yy);   
 507 :      FINSI;          
 508 :      gaxe = ((Yy**2)+(Zz**2))**0.5;  
 509 : *
 510 :     SI (i1 EGA 1) ;
 511 :       (TabRep. i2). 'UXREEL' = PROG (EXTR Depreel POIREP UX);
 512 :       (TabRep. i2). 'UYREEL' = PROG (EXTR Depreel POIREP UY);
 513 :       (TabRep. i2). 'UZREEL' = PROG (EXTR Depreel POIREP UZ);
 514 :       (TabRep. i2). 'RXREEL' = PROG (EXTR Depreel POIREP RX);
 515 :       (TabRep. i2). 'RYREEL' = PROG (EXTR Depreel POIREP RY);
 516 :       (TabRep. i2). 'RZREEL' = PROG (EXTR Depreel POIREP RZ);
 517 :       (TabRep. i2). 'UXIMAG' = PROG (EXTR Depimag POIREP UX);
 518 :       (TabRep. i2). 'UYIMAG' = PROG (EXTR Depimag POIREP UY);
 519 :       (TabRep. i2). 'UZIMAG' = PROG (EXTR Depimag POIREP UZ);
 520 :       (TabRep. i2). 'RXIMAG' = PROG (EXTR Depimag POIREP RX);
 521 :       (TabRep. i2). 'RYIMAG' = PROG (EXTR Depimag POIREP RY);
 522 :       (TabRep. i2). 'RZIMAG' = PROG (EXTR Depimag POIREP RZ);
 523 :       (TabRep. i2). 'GAXE' =   PROG gaxe;
 524 :       (TabRep. i2). 'PAXE' =   PROG paxe;
 525 :       (TabRep. i2). 'ANGLEGAXE' =   PROG phiG;
 526 : *
 527 :       SI TESTDEFO;
 528 :         (TAB1.'SAUVDEFO'). i1 = TABLE;
 529 :         ((TAB1.'SAUVDEFO'). i1).'FREQROTA'=VALFREQ;
 530 :         ((TAB1.'SAUVDEFO'). i1).'DEFORMEE_REELLE'= Depreel;
 531 :         ((TAB1.'SAUVDEFO'). i1).'DEFORMEE_IMAGINAIRE' = Depimag;
 532 :       FINSI;
 533 :     SINON;
 534 :       (TabRep. i2). 'UXREEL' =  ((TabRep. i2). 'UXREEL' ) ET 
 535 :                              (PROG (EXTR Depreel POIREP UX));
 536 :       (TabRep. i2). 'UYREEL' = ((TabRep. i2). 'UYREEL') ET
 537 :                              (PROG (EXTR Depreel POIREP UY));
 538 :       (TabRep. i2). 'UZREEL' = ((TabRep. i2). 'UZREEL') et
 539 :                              (PROG (EXTR Depreel POIREP UZ));
 540 :       (TabRep. i2). 'RXREEL' = ((TabRep. i2). 'RXREEL') ET
 541 :                             (PROG (EXTR Depreel POIREP RX));
 542 :       (TabRep. i2). 'RYREEL' = ( (TabRep. i2). 'RYREEL' ) ET 
 543 :                             (PROG (EXTR Depreel POIREP RY));
 544 :       (TabRep. i2). 'RZREEL' = ((TabRep. i2). 'RZREEL') ET
 545 :                             (PROG (EXTR Depreel POIREP RZ));
 546 :       (TabRep. i2). 'UXIMAG' = ((TabRep. i2). 'UXIMAG') ET 
 547 :                             (PROG (EXTR Depimag POIREP UX));
 548 :       (TabRep. i2). 'UYIMAG' = ((TabRep. i2). 'UYIMAG') ET 
 549 :                            (PROG (EXTR Depimag POIREP UY));
 550 :       (TabRep. i2). 'UZIMAG' =((TabRep. i2). 'UZIMAG') ET 
 551 :                           (PROG (EXTR Depimag POIREP UZ));
 552 :       (TabRep. i2). 'RXIMAG' = ((TabRep. i2). 'RXIMAG') ET 
 553 :                           (PROG (EXTR Depimag POIREP RX));
 554 :       (TabRep. i2). 'RYIMAG' = ( (TabRep. i2). 'RYIMAG') ET 
 555 :                           (PROG (EXTR Depimag POIREP RY));
 556 :       (TabRep. i2). 'RZIMAG' = ((TabRep. i2). 'RZIMAG') ET
 557 :                           (PROG (EXTR Depimag POIREP RZ));
 558 : *
 559 : *
 560 :       (TabRep. i2). 'GAXE' = ( (TabRep. i2). 'GAXE')
 561 :                           et   (PROG gaxe);
 562 :       (TabRep. i2). 'PAXE' = ( (TabRep. i2). 'PAXE') et 
 563 :                                (PROG paxe);
 564 :       (TabRep. i2). 'ANGLEGAXE' =   ( (TabRep. i2). 'ANGLEGAXE')
 565 :                              et (PROG phiG);
 566 : *
 567 : *
 568 :       SI TESTDEFO;
 569 :         (TAB1.'SAUVDEFO'). i1 = TABLE;  
 570 :         ((TAB1.'SAUVDEFO'). i1). 'FREQROTA'
 571 :                       = VALFREQ;
 572 :         ((TAB1.'SAUVDEFO'). i1). 'DEFORMEE_REELLE'
 573 :                       = Depreel;
 574 :         ((TAB1.'SAUVDEFO'). i1). 'DEFORMEE_IMAGINAIRE'
 575 :                      = Depimag;
 576 :       FINSI;
 577 : *
 578 :     FINSI;
 579 : *
 580 :       (TabRep. i2). 'UX' = ( (((TabRep. i2). 'UXREEL' )**2)
 581 :                          +  (((TabRep. i2). 'UXIMAG' )**2))**0.5;
 582 :       (TabRep. i2). 'UY' = ( (((TabRep. i2). 'UYREEL' )**2)
 583 :                          +   (((TabRep. i2). 'UYIMAG' )**2))**0.5;
 584 :       (TabRep. i2). 'UZ' = ( (((TabRep. i2). 'UZREEL' )**2)
 585 :                          +   (((TabRep. i2). 'UZIMAG' )**2))**0.5;
 586 :       (TabRep. i2). 'RX' = ( (((TabRep. i2). 'RXREEL' )**2)
 587 :                          +   (((TabRep. i2). 'RXIMAG' )**2))**0.5;
 588 :       (TabRep. i2). 'RY' = ( (((TabRep. i2). 'RYREEL' )**2)
 589 :                          +   (((TabRep. i2). 'RYIMAG' )**2))**0.5;
 590 :       (TabRep. i2). 'RZ' = ( (((TabRep. i2). 'RZREEL' )**2)
 591 :                          +   (((TabRep. i2). 'RZIMAG' )**2))**0.5;
 592 : *
 593 :   FIN LAB2;
 594 : FIN lab1;
 595 : *
 596 : REPETER LAB3 NPoiRep;
 597 : i2 =&lab3;
 598 : (TabRep. i2). 'UXREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'UXREEL' );
 599 : (TabRep. i2). 'UYREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'UYREEL' );
 600 : (TabRep. i2). 'UZREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'UZREEL' );
 601 : (TabRep. i2). 'UXIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'UXIMAG' );
 602 : (TabRep. i2). 'UYIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'UYIMAG' );
 603 : (TabRep. i2). 'UZIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'UZIMAG' );
 604 : (TabRep. i2). 'UX' = EVOL MANU PRFREQ ((TabRep. i2). 'UX' );
 605 : (TabRep. i2). 'UY' = EVOL MANU PRFREQ ((TabRep. i2). 'UY' );
 606 : (TabRep. i2). 'UZ' = EVOL MANU PRFREQ ((TabRep. i2). 'UZ' );
 607 : (TabRep. i2). 'RXREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'RXREEL' );
 608 : (TabRep. i2). 'RYREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'RYREEL' );
 609 : (TabRep. i2). 'RZREEL' = EVOL MANU PRFREQ ((TabRep. i2). 'RZREEL' );
 610 : (TabRep. i2). 'RXIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'RXIMAG' );
 611 : (TabRep. i2). 'RYIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'RYIMAG' );
 612 : (TabRep. i2). 'RZIMAG' = EVOL MANU PRFREQ ((TabRep. i2). 'RZIMAG' );
 613 : (TabRep. i2). 'RX' = EVOL MANU PRFREQ ((TabRep. i2). 'RX' );
 614 : (TabRep. i2). 'RY' = EVOL MANU PRFREQ ((TabRep. i2). 'RY' );
 615 : (TabRep. i2). 'RZ' = EVOL MANU PRFREQ ((TabRep. i2). 'RZ' );
 616 : (TabRep. i2). 'GAXE' =  EVOL MANU PRFREQ ((TabRep. i2). 'GAXE' );
 617 : (TabRep. i2). 'PAXE' =  EVOL MANU PRFREQ ((TabRep. i2). 'PAXE' );
 618 : (TabRep. i2). 'ANGLEGAXE' =   EVOL MANU PRFREQ 
 619 :                                        ((TabRep. i2). 'ANGLEGAXE');
 620 : FIN lab3;
 621 : *
 622 : *
 623 : FINSI;
 624 : *
 625 : 'FINPROC';
 626 : *
 627 :  
 628 :  
 629 :  
 630 :  

© Cast3M 2003 - All rights reserved.
Disclaimer