* HBM_POST PROCEDUR BP208322 16/09/01 21:15:04 9010 * ************************************************************************ * CREATION : 09/07/2015 * * OBJET : - Traduit la table de resultats frequentiels fournis par * CONTINU en resultats temporels * * ENTREE : * * TABHBM = TABLE * * . 'N_HARMONIQUE' = nombre d'harmoniques * . 'RESULTATS' . i . 'POINT_MESURE' = resultats attendus * . 'COMPOSANTES' exprimé sur ddl temporel * . 'COULEUR' * . 'TITRE' * . 'INDICES_HBM' = liste des indices j associé au * i^eme resultat * . 'RESULTATS_HBM' . j . 'POINT_MESURE' = resultats attendus * . 'COMPOSANTES' exprimé sur ddl frequentiel * . 'COULEUR' * . 'TITRE' * * * SORTIE : * * TABHBM * . 'RESULTATS' . i . 'RESULTATS' = evolution X(w) * * TABHBM * . 'RESULTATS' . i . 'RESULTATS_TEMPORELS' . iw = evolution x(t/T) * . 'RESULTATS' . i . 'RESULTATS_TEMPORELS' . -iw = evolution 1/w * dx/dt(t/T * * *********************************************************************** ************************************************************************ * * * RECUPERATION DES DONNEES D'ENTREE + VALEURS PAR DEFAUT * * * ************************************************************************ * table des resultats temporels SINON; TRES1 = TABHBM . 'RESULTATS'; FINSI; * table des resultats frequentiels SINON; TRES2 = TABHBM . 'RESULTATS_HBM'; FINSI; * type des resultats temporels a calculer FINSI; * si recuperation des resultats temporels, lesquels ? SI FLTEMP; ISAUV = TABHBM . 'PAS_SAUVES'; SINON; si (ega TABHBM . 'PAS_SAUVES' 'TOUS'); ISAUV = 1; finsi; si (ega TABHBM . 'PAS_SAUVES' 'AUCUN'); ISAUV = NPAS; finsi; FINSI; SINON; ISAUV = 10; FINSI; FINSI; SINON; nhbm = TABHBM . 'N_HARMONIQUE'; FINSI; SINON; wprog = TABHBM . 'TEMPS_PROG'; FINSI; * discretisation temporelle a adopter * on considère qu'il faut nbp=2**7=128 pour la plus petite harmonique ! nbp = 2**7; n_pt = nbp * nhbm; TABHBM . 'N_PT_POST' = n_pt; SINON; n_pt = TABHBM . 'N_PT_POST'; FINSI; ************************************************************************ * * * PREPARATION DES FONCTIONS DU TEMPS * * * ************************************************************************ * discretisation temporelle : tadim = (1./360.) * tamp; * creation d'une table des fonctions temporelles : TTPROG . 't/T' = tadim; * harmonique 0 : { ... 1 ... } ihbm = 1; repe BHBM nhbm; * harmonique k : ktamp = &BHBM * tamp; * harmonique k : { ... cos kwt_i ... } ihbm = ihbm + 1; TTPROG . ihbm = cos ktamp; * harmonique k : { ... sin kwt_i ... } ihbm = ihbm + 1; TTPROG . ihbm = sin ktamp; fin BHBM; * on ainsi construit : * TTPROG . 1 = { ... 1 ...} * . 2*k = { ... cos kwt ...} * . 2*k+1 = { ... sin kwt ...} * pour k = 1 ... nhbm * creation d'une table des derivees des fonctions temporelles : si FLVITE; TTVITE . 't/T' = tadim; * harmonique 0 : ihbm = 1; repe BHBM nhbm; * harmonique k : ktamp = &BHBM * tamp; ihbm = ihbm + 1; TTVITE . ihbm = -1.* &BHBM * (sin ktamp); ihbm = ihbm + 1; TTVITE . ihbm = &BHBM * (cos ktamp); fin BHBM; * on ainsi construit : * TTVITE . 1 = { ... 0 ...} * . 2*k = { ... -k sin kwt ...} * . 2*k+1 = { ... k cos kwt ...} * pour k = 1 ... nhbm * rem : on n'a pas multiplié par kw mais seulement par k * --> ce qui signifie qu'on sort 1/w dx/dt finsi; * preparation des resultats ************************************************************************ * * * BOUCLE SUR LES RESULTATS * * * ************************************************************************ ires1 = 0; REPE BRES1 nres1; ires1 = ires1 + 1; * Le resultat existe t'il ? coul1 = TRES1 . ires1 . 'COULEUR'; tit1 = TRES1 . ires1 . 'TITRE'; * BOUCLE sur les frequences d'excitation ******************************* ifreq = 0; REPE BFFREQ nfreq; ifreq = ifreq + 1; * BOUCLE sur les indices de la table frequentielle ******************* MESS 'INDICES_HBM absent pour le 'ires1'ème résultat demandé !'; FINSI; * harmonique 0 : ihbm = 1; * on cree la listreel * harmonique k : repe BHBM nhbm; * cos kwt ihbm = ihbm + 1; * sin kwt ihbm = ihbm + 1; * on met dans la listreel uval1p = uval1p et uval1c et uval1s; fin BHBM; * COmbinaison LIneaire de : * + TTPROG . 1 = { ... 1 ...} * . 2*k = { ... cos kwt ...} * . 2*k+1 = { ... sin kwt ...} * * uval1p = { U0 U^cos_k=1 U^sin_k=1 ... U^cos_k=nhbm U^sin_k=nhbm } * Sauvegarde des resultats temporels ? SI FLTEMP; TRES1 . ires1 . 'RESULTATS_TEMPORELS' . ifreq SI FLVITE; TRES1 . ires1 . 'RESULTATS_TEMPORELS' . (-1 * ifreq) FINSI; FINSI; FINSI; FIN BFFREQ; *********************** fin de boucle sur les pas de frequences calcules SI FLMAXI; TRES1 . 'RESULTATS' . ires1 = umaxp; evtot = evtot et FINSI; FIN BRES1; ******************** fin de boucle sur les resultats temporels a traiter SI FLMAXI; TRES1 . 'RESULTATS_EVOL' = evtot; FINSI; FINPROC ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales