* HBM PROCEDUR FANDEUR 22/01/19 21:15:07 11256 * ************************************************************************ * CREATION : 22/05/2014 Lihan XIE * MODIF : 06/01/2016 BP * * OBJET : * * - Construire les matrices caracteristiques (Matrice de MASSE, * RIGIDITE, AMORTISSEMENT, ...) pour toutes les harmoniques * sans modele * - Traduit la table de resultats demandés à CONTINU * (inconnues temporelles -> inconnues frequentielles) * * * ENTREE : * * TABHBM = TABLE * * . 'RIGIDITE_CONSTANTE' = K * . 'AMORTISSEMENT_CONSTANT' = C * . 'MASSE_CONSTANTE' = M * . 'BLOCAGES_MECANIQUES' = Kblocages * . 'RIGIDITE_CENTRIFUGE' * . 'CORIOLIS_CONSTANT' * . 'N_HARMONIQUE' = nombre d'harmoniques H * . 'RESULTATS' = table des resultats attendus * . i . 'POINT_MESURE' exprimés sur ddl temporel * . 'COMPOSANTES' * . 'COULEUR' * . 'TITRE' * * * Sortie : * _______ * * TABHBM * . 'RIGIDITE_HBM' = K developpe en H harmoniques * . 'AMORTISSEMENT_HBM' = C developpe en H harmoniques * . 'MASSE_HBM' = M developpe en H harmoniques * . 'BLOCAGES_HBM' = Kblocages en H harmoniques * . 'CENTRIFUGE_HBM' * . 'CORIOLIS_HBM' * * . 'RESULTATS_HBM' = table des resultats attendus * . j . 'POINT_MESURE' exprimés sur ddl frequentiels * . 'COMPOSANTES' * . 'COULEUR' * . 'TITRE' * . 'RESULTATS' * . i . 'INDICES_HBM' = liste des indices j associe * au i^eme resultat * * . 'COMPOSANTES' * . 'DEPLACEMENT' = composantes dep temporelles (max.6) * . 'FORCE' = composantes for temporelles (max.6) * . 'DEPLACEMENT_HBM' = comp dep frequentielles * . 'FORCE_HBM' = comp for frequentielles * . 'HARM_DEPLACEMENT' = comp dep par ordre d'harmonique * . 'HARM_FORCE' = comp for par ordre d'harmonique * * Correspondance entre inconnues temporelles et frequentielles : * +-----------+--------------------------------------+ * | domaine | domaine fréquentiel | * | temporel | k=0 k=1(cos) k=1(sin) ... | * +-----------+--------------------------------------+ * | UX | U1 U4 V4 ... | * | UY | U2 U5 V5 ... | * | UZ | U3 U6 V6 ... | * +-----------+--------------------------------------+ * * *********************************************************************** * fldebug = vrai; fldebug = faux; ************************************************************************ * * * VERIFICATION DES DONNEES D'ENTREE + VALEURS PAR DEFAUT * * * ************************************************************************ * lecture des matrices definies dans le domaine temporel *************** RI1 = TABHBM . 'RIGIDITE_CONSTANTE'; SINON; FINSI; AMOR1 = TABHBM . 'AMORTISSEMENT_CONSTANT'; SINON; MESS 'IL MANQUE L AMORTISSEMENT : on poursuit malgré tout...'; FINSI; MASS1 = TABHBM . 'MASSE_CONSTANTE'; SINON; MESS 'IL MANQUE LA MASSE: on poursuit malgré tout...'; FINSI; KBLO1 = TABHBM . 'BLOCAGES_MECANIQUES'; SINON; MESS 'IL MANQUE LES BLOCAGES_MECANIQUES : on poursuit malgré tout...'; TABHBM . 'BLOCAGES_MECANIQUES' = KBLO1 ; FINSI; CG1 = TABHBM . 'GYRO_CONSTANT'; SINON; FINSI; Kcen1 = TABHBM . 'RIGIDITE_CENTRIFUGE'; SINON; FINSI; Ksig1 = TABHBM . 'PRECONTRAINTE_CENTRIFUGE'; SINON; FINSI; Ccor1 = TABHBM . 'CORIOLIS_CONSTANT'; SINON; FINSI; * lecture du nombre d'harmoniques ************************************** nhbm = TABHBM . 'N_HARMONIQUE'; SINON; FINSI; ************************************************************************ * * * INITIALISATIONS * * * ************************************************************************ *composantes primales et duales temporelles **************************** rigtemp = RI1 'ET' KBLO1 ; rigtemp = 1 ; TABHBM . 'COMPOSANTES' = TABLE; TABHBM . 'COMPOSANTES'. 'DEPLACEMENT' = NOMCOM; TABHBM . 'COMPOSANTES'. 'FORCE' = NOMFOR; *ncom = nombre de composantes par noeud si fldebug; finsi; * des matrices etendues aux inconnues frequentielles ******************* * type raideur * type masse * type amortissement * + celles necessaires a l'analyse de stabilite par method de Hill * (procedure FLOQUET) * type masse * type amortissement ************************************************************************ * * * CONSTRUCTION DES MATRICES * * * ************************************************************************ NOMU = TABLE; NOMF = TABLE; * BOUCLE SUR LES HARMONIQUES ------------------------------------------- ik = -1; REPE bk (NHBM + 1); ik = ik + 1 ; ************ CAS HARMONIQUE 0 ************ SI (ik EGA 0); * GENERATION DES NOMS DE COMPOSANTES EN FREQUENTIEL il = 0; ij = 0; ilx = 0; REPE bl ncom; il = il + 1 ; ilx = 1; SINON; ij = ij + 1; FINSI; FIN bl ; NOMU . ik = MOTDEP; NOMF . ik = MOTFOR; MOTDEP0 = MOTDEP0 ET MOTDEP; MOTFOR0 = MOTFOR0 ET MOTFOR; si fldebug; finsi; * GENERATION DES MATRICES FREQUENTIELLES pour ik=0 * type raideur G_ik = A_ik; C_ik = A_ik; M_ik = A_ik; * type amortissement (seulement pour FLOQUET) * type masse (seulement pour FLOQUET) M1_ik = A_ik; ************ CAS HARMONIQUE ik ************ SINON; * GENERATION DES NOMS DE COMPOSANTES EN FREQUENTIEL il = 0; ij = 0; REPE bl ncom; il = &bl ; * cas particulier du multiplicateur de Lagrange : le nom reste SINON; ij = ij + 1; * nouveau nom U### pour cos (ik w t) * nouveau nom V### pour sin (ik w t) * on a besoin des composantes imaginaires issues de IMPE SI (ik EGA 1); FINSI; FINSI; FIN bl ; * table des nom d'inconnues frequentielles NOMU . ik = TABLE; NOMF . ik = TABLE; NOMU . ik . 'COS' = MOTDEPC; NOMF . ik . 'COS' = MOTFORC; NOMU . ik . 'SIN' = MOTDEPS; NOMF . ik . 'SIN' = MOTFORS; MOTDEP = MOTDEPC ET MOTDEPS; MOTFOR = MOTFORC ET MOTFORS; MOTDEP0 = MOTDEP0 ET MOTDEP; MOTFOR0 = MOTFOR0 ET MOTFOR; SI (ik EGA 1); NOMCOM = NOMCOM ET NOMIU; NOMFOR = NOMFOR ET NOMIF; FINSI; si fldebug; finsi; * GENERATION DES MATRICES IMPEDANCES (1 seule fois) SI (ik EGA 1); * type raideur [ K 0 ; 0 K ] * type masse [ -M 0 ; 0 -M ] * type masse pour FLOQUET [ 0 -M ; M 0 ] * type amortissement [ 0 -C ; C 0 ] * type amortissement pour FLOQUET [ C 0 ; 0 C ] FINSI; * GENERATION DES MATRICES FREQUENTIELLES pour ik * DDL : U* IU* --> U### V### mik = -1.* ik ; m2ik = -2.* ik ; ik2 = ik**2; * type raideur * type masse * type amortissement * type masse (pour \Delta_1 de FLOQUET) * type amortissement (pour \Delta_1 de FLOQUET) * type masse (seulement pour \Delta_2 de FLOQUET) FINSI; ************ FIN DISTINCTION HARMONIQUE 0 et ik>0 ************ * on somme sur ik Ktot = Ktot ET K_ik ; KBtot = KBtot ET KB_ik; KCtot = KCtot ET KC_ik; KStot = KStot ET KS_ik; Mtot = Mtot ET M_ik ; Atot = Atot ET (A_ik) ; Gtot = Gtot ET G_ik ; Ctot = Ctot ET C_ik ; * + celles necessaires a FLOQUET Mtot1 = Mtot1 ET (M1_ik); Mtot2 = Mtot2 ET M2_ik; Atot1 = Atot1 ET A1_ik; Gtot1 = Gtot1 ET G1_ik; Ctot1 = Ctot1 ET C1_ik; FIN bk; * FIN DE BOUCLE SUR LES HARMONIQUES ------------------------------------ ************************************************************************ * * * STOCKAGE DES RESULTATS * * * ************************************************************************ ************ MATRICES ************ * pour l'analyse harmonique : TABHBM . 'RIGIDITE_HBM' = Ktot; TABHBM . 'BLOCAGES_HBM' = KBtot; TABHBM . 'AMORTISSEMENT_HBM' = Atot; TABHBM . 'CORIOLIS_HBM' = Gtot et Ctot; TABHBM . 'MASSE_HBM' = Mtot; TABHBM . 'CENTRIFUGE_HBM' = KCtot et KStot; * pour l'analyse de stabilite (methode de Hill de FLOQUET): TABHBM . 'MASSE_HBM_1' = Mtot1; TABHBM . 'MASSE_HBM_2' = Mtot2; TABHBM . 'AMORTISSEMENT_HBM_1' = Atot1; TABHBM . 'CORIOLIS_HBM_1' = Gtot1 et Ctot1; ************ TABLEAU DES NOMS DE COMPOSANTES ************ TABHBM . 'COMPOSANTES'. 'DEPLACEMENT_HBM' = MOTDEP0; TABHBM . 'COMPOSANTES'. 'FORCE_HBM' = MOTFOR0; TABHBM . 'COMPOSANTES'. 'HARM_DEPLACEMENT' = NOMU; TABHBM . 'COMPOSANTES'. 'HARM_FORCE' = NOMF; COMPU = TABLE; COMPF = TABLE; REPE Bcomp ncom; in = &Bcomp; REPE Bhbm nhbm ; ih = &Bhbm; COMPU . ICOMU = COMPU . ICOMU COMPF . ICOMF = COMPF . ICOMF FIN Bhbm; FIN Bcomp; TABHBM . 'COMPOSANTES'. 'HARM_COMP_DEP' = COMPU; TABHBM . 'COMPOSANTES'. 'HARM_COMP_FOR' = COMPF; *********** DEFINITION DES NOMS DES INCONNUES PAR OPTI INCO ************ FINSI; FIN BNOM; OPTI INCO MOPRIM MODUAL; *********** CONSTRUCTION DU TABLEAU RESULTATS_HBM *********** * tables des resultats temporels TRES1 = TABHBM . 'RESULTATS'; * tables des resultats frequentiels TRES2 = TABHBM . 'RESULTATS_HBM'; * tables des titres pour l operateur DESSIN ires2 = 0; ires1 = 0; REPE BRES1 nres1; ires1 = ires1 + 1; * - l indice existe : il faut travailler dessus : * -titre : motit1 = TRES1 . ires1 . 'TITRE'; sinon; finsi; TRES1 . 'TITRE' . ires1 = motit1 ; * -composante : finsi; comp1 = TRES1 . ires1 . 'COMPOSANTE'; * -cas particulier FREQuence w inconnue : si (ega comp1 'FREQ'); ires2 = ires2 + 1; TRES2 . ires2 . 'COMPOSANTE' = comp1; TRES2 . ires2 . 'COULEUR' = TRES1 . ires1 . 'COULEUR'; finsi; iter BRES1; finsi; * -cas "standard" : finsi; pmes1 = TRES1 . ires1 . 'POINT_MESURE'; * il faut les harmoniques correspondantes finsi; U_HBM = COMPU . comp1; si (neg nU_HBM (2*nhbm + 1)); finsi; * on va traiter toutes les composantes frequentielles relatives a * cette inconnue temporelle repe BU_HBM nU_HBM; ires2 = ires2 + 1; TRES2 . ires2 . 'POINT_MESURE' = pmes1 ; TRES2 . ires2 . 'COMPOSANTE' = ui; TRES2 . ires2 . 'COULEUR' sinon; TRES2 . ires2 . 'COULEUR' = TRES1 . ires1 . 'COULEUR'; finsi; finsi; si (EGA &BU_HBM 1); sinon; k = &BU_HBM / 2 ; sinon; finsi; finsi; TRES2 . ires2 . 'TITRE' = motit2 ; * pour + de facilite dans le post-traitement, on enregistre les * indices ires2 des harmoniques dans la table TRES1 TRES1 . ires1 . 'INDICES_HBM' = TRES1 . ires1 . 'INDICES_HBM' et ires2; fin BU_HBM; FIN BRES1; FINSI; *********** PETIT FLAG POUR MARQUER LE PASSAGE DANS HBM *********** FINPROC ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales