Télécharger rotor_laval_poutre.dgibi
* fichier : rotor_laval_poutre.dgibi ******************************************************************************* * * * Rotor de Laval * * Etude dans le repere inertiel (ou fixe) avec elements poutre de TIMO * * * * p2 kpal * * z=L +--/\/\/\--| * * | * * | * * | * * p1a| * * =======+======= Mdisc, Ixyz * * p1b| * * | * * | * * | * * z=0 +--/\/\/\--| * * p0 * * * * * * Réf : * * [1] Vollan, Arne, and Louis Komzsik. "Computational techniques of rotor * * dynamics with the finite element method". CRC Press, 2012.] * * * * Mots-clés : Vibrations, calcul modal, machines tournantes, * * poutre, modes complexes, reponse frequentielle * * * * Auteur: Benoit Prabel, Mars 2020 * * * ******************************************************************************* ******************************************************************************* * OPTIONS ******************************************************************************* * dimension, type d'elements geometriques, ... * visualisation (sortie postscript) GRAPH = FAUX; ******************************************************************************* * DONNEES ******************************************************************************* * arbre (shaft) L = 1.0 ; Dshaft = 64.E-3; * Disque (disc) zdisc = 0.5*L; Mdisc = 40.; Izdisc = 5. ; * Materiau E1 = 2.1E11 ; nu1 = 0.3 ; rho1 = 7800. ; Visc1= 0.00001*E1; * Palier kpal_x = 3.9E6; kpal_y = kpal_x; cpal_x = 1000.; cpal_y = cpal_x; * Calculs preliminaires pour completer les donnees * formule des caracteristiques des poutres a section circulaire creuse : * Section = pi * ((Rext**2) - (Rint**2)); * Itorsion = pi * ((Rext**4) - (Rint**4)) / 2.; * Iflexion = pi * ((Rext**4) - (Rint**4)) / 4.; * on a un disque plein ==> Rint = 0 * on a les donnees (Mdisc et Idisc) integrees sur h et multipliee par rho1 : * rho1 * h * pi * (R**2) = Mdisc * rho1 * h * pi/2. * (R**4) = Izdisc * (2)/(1) ==> 0.5*(R**2) = Izdisc/Mdisc ==> Rdisc = (2*Izdisc/Mdisc)**0.5 Rdisc = (2*Izdisc/Mdisc)**0.5; hdisc = Mdisc / (rho1 * pi * (Rdisc**2)); * ==> caracteristiques geometriques de la poutre definissant le disque : Sdisc = pi * (Rdisc**2); Iz = pi/2. * (Rdisc**4); Ix = pi/4. * (Rdisc**4); * caracteristique de l'arbre Rshaft = Dshaft /2.; Sshaft = pi * (Rshaft**2); Izshaft = pi/2. * (Rshaft**4); Ixshaft = pi/4. * (Rshaft**4); ******************************************************************************* * MAILLAGE ******************************************************************************* * PARAMETRES nL = 80; nVect = nL/16; * POINTS p0 = 0. 0. 0.; p1a = 0. 0. (zdisc - hdisc); p1b = 0. 0. (zdisc + hdisc); p2 = 0. 0. L; * points du palier ppal = p0 et p2; * DROITES d1 = d1a et d1b; dtot= d1 et d2; * TRACE si GRAPH; TRAC dtot 'TITRE' 'maillage'; finsi; * ON VEUT QUELQUES POINTS POUR LE TRACE DE VECTEUR DANS POSTVIBR ******************************************************************************* * MODELE, MATERIAU, MATRICES ******************************************************************************* * * 1 : arbre mat1 = MATE mod1 'YOUNG' E1 'NU' Nu1 'RHO' Rho1 'SECT' Sshaft 'INRY' Ixshaft 'INRZ' Ixshaft 'TORS' Izshaft 'OMEG' 1. 'VISQ' Visc1; * * 2 : disque mat2 = MATE mod2 'YOUNG' E1 'NU' Nu1 'RHO' Rho1 'SECT' Sdisc 'INRY' Ix 'INRZ' Ix 'TORS' Iz 'OMEG' 1. 'VISQ' Visc1; * mod12 = mod1 et mod2; mat12 = mat1 et mat2; * raideur, masse, couplage gyroscopique * amortissement + amortissement corotatif * 3 : paliers * appuis = raideurs discretes K3 = Kx3 et Ky3; C3 = Cx3 et Cy3; * autres conditions aux limites ? * assemblage Ktot = K12 et K3 et bloZ; Ctot = C12 et C3; ******************************************************************************* * MODES REELS ******************************************************************************* * PARAMETRES : on souhaite NbModR modes NbModR = 4; * CALCUL * POST-TRAITEMENT si GRAPH; * tableau + deformees modale automatise via la procedure postvibr * on peux customiser avec table d'options Toptions .'MAILLAGE_VECTEUR' = pVect; POSTVIBR TBasR1 Toptions; * quel est ce mode 3 ? phi3 = TBasR1 . 'MODES' . 3 . 'DEFORMEE_MODALE'; * c'est de la torsion ! * si on souhaite le supprimer, il faudrait bloquer plus de ddls RZ sinon; finsi; * VIBR 'SIMUL' a detecte des modes doubles et il a donc ajoute un mode en plus * retrouvons le vrai nombre avec une mini-boucle... NbModR = NbModR - 1 ; REPE bb; NbModR = NbModR + 1; ITER bb; SINON; QUIT bb; FINSI; FIN bb; ******************************************************************************* * CALCUL DU DIAGRAMME DE CAMPBELL * (= EVOLUTION DES FREQUENCES COMPLEXES AVEC LA VITESSE DE ROTATION) ******************************************************************************* * OMEGA en RoundPerMinute * on choisit l'unite pour OMEGA : RoundPerMinute, rad/s ou Hz(=tr/s) * G est calcule pour 1 rad/s --> multiplier par FAC_G * UNIT_OMEG = mot 'rad/s'; FAC_G = 1.; PROMEG = (2.*pi/60.) * PR_RPM ; * UNIT_OMEG = mot 'Hz' ; FAC_G = 2.*pi; PROMEG = PR_RPM / 60.; * PROJECTION DES MATRICES ASSEMBLEES SUR LA BASE REELLE * G est calcule pour 1 rad/s -> on mutliplie par FAC_G * REM : il serait possible d'utiliser directement la procedure campbell, * mais il semble plus pedagogique de reecrire ici la boucle et le calcul * CREATION DE 2*NbModC LISTREELS DE TAILLE NOMEG NbModC = 2*NbModR; REPE BmodC NbModC; FIN BmodC; * + 2 LISTREELS TEMPORAIRES DE TRAVAIL * ON BOUCLE SUR LES FREQUENCES DE ROTATION Omega_j --------------------- REPE BOMEG NOMEG; * on va resoudre : [ [K + W*C'] + iw [C + W*G] - w^2 [M] ] * \psi = 0 * G est calcule pour 1 rad/s -> on mutliplie par FAC_G K_j = K1P ET (Omega_j * KROT1P); C_j = C1P ET (Omega_j * FAC_G * G1P); M_j = M1P; * extraction des frequences et tri par ordre croissant SI (&BOMEG EGA 1); ORDOVIBC TbasC_j; * puis en minimisant la distance au resultat precedent SINON; ORDOVIBC TbasC_j TbasC_jm1; FINSI; prwR_j = TbasC_j . 'LISTE_FREQUENCES_REELLES' ; prwI_j = TbasC_j . 'LISTE_FREQUENCES_IMAGINAIRES' ; * pour le prochain pas TbasC_jm1 = TbasC_j; * on stocke dans les listreels finaux REPE BmodC NbModC; FIN BmodC; FIN BOMEG ; * FIN DE LA BOUCLE SUR LES FREQUENCES DE ROTATION ---------------------- * POST-TRAITEMENT GRAPHIQUE * on ne trace que les modes tq wR>0 -> i ={NbModC/2+1 ... NbModC} IFhalf = VRAI; si IFhalf; NC = NbModC/2; ideb = NC; sinon; NC = NbModC; ideb = 0; finsi; REPE BmodC NC; i = ideb + &BmodC; evfreqR = evfreqR evfreqI = evfreqI FIN BmodC; si GRAPH; TITRE 'Campbell diagram'; DESS evfreqR ; DESS evfreqI ; finsi; * POST-TRAITEMENT GRAPHIQUE * On recombine les deformees Complexes issues de VIBC RECOVIBC TbasC_j TBasR1; * Listing + trace des deformees Complexes issues de VIBC Topt . 'MAILLAGE_VECTEUR' = ppal; POSTVIBR TbasC_j Topt; * opti donn 5 trac X; ******************************************************************************* * TEST DE NON REGRESSION ******************************************************************************* * ON TESTE JUSTE LE SUIVI * preparation au calcul de la derivee * abscisse NdOMEG = NOMEG - 1; * message * les courbes etant asse lineaire xtol = 10 est largement suffisant xtol = 10.; * boucle sur les modes Complexes (i.e. sur les courbes) REPE BmodC NbModC; * --- PARTIE REELLE --- wR = TfreqR . &BmodC; * calcul de la derivee * moyenne et valeur max * --- PARTIE IMAGINAIRE --- wI = TfreqR . &BmodC; * calcul de la derivee * moyenne et valeur max * --- MESSAGE + TEST --- * message * test sur la derivee pour verifier la continuite FIN BmodC; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales