* @USURE PROCEDUR MB234859 22/03/23 21:15:04 11320 *********************************************************************** * PROCEDURE @USURE * * Procedure principale pour les calculs d'usure qui determine si : * - les grandeurs necessaires au calcul de la profoondeur usee * - le profil d'usure doit etre applique (AppUsure = VRAI) * * Entrees : * T1 : Table de PASAPAS * * Sortie : * T1 : Table de PASAPAS avec les resultats propres a l'usure * * Appelee par PERSO1 * ************************************************************************ * BOITE_US = T1.'BOITES_USURE' ; * *----------------------------------------------------------------------* * - PREMIER APPEL - INITIALISATIONS TABLE ET PAS DE TEMPS * *----------------------------------------------------------------------* 'SI' ('EGA' T1.'PERSO1_APPEL' 1) ; * 'REPE' BU (BOITE_US.'DONNEES'.'N_BOITES') ; 'FIN' BU ; * 'SI' (BOITE_US.'INFOS'.'CALCUL_PAS') ; @USTMPS T1 ; 'FINSI' ; * 'FINSI' ; * *----------------------------------------------------------------------* * - DOIT-ON CALCULER OU APPLIQUER L'USURE * *----------------------------------------------------------------------* T_inc = T1.'ESTIMATION'.'TEMPS' ; DELTT = T_inc - BOITE_US.'DONNEES'.'T_DEBUT_USURE' ; 'SI' (DELTT '<EG' 1.E-15) ; 'FINSI' ; * CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ; IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ; NbIncCy = BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' ; NCycle = BOITE_US.'DONNEES'.'NB_CYCLES' ; NbCycRe = BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' ; * AppUsure = 'EGA' IncActu NbIncCy ; BOITE_US.'INFOS'.'FINCYCLE' = AppUsure ; * * Affichage 'MESS' ' ' ; * *----------------------------------------------------------------------* * - GLISSEMENT, CISAILLEMENT, PRESSION DE CONTACT ET ENERGIE DISSIPEE * *----------------------------------------------------------------------* 'REPE' BU (BOITE_US.'DONNEES'.'N_BOITES') ; 'FIN' BU ; * *----------------------------------------------------------------------* * - APPLICATION DU PROFIL D'USURE * *----------------------------------------------------------------------* 'SI' AppUsure ; 'REPE' BU (BOITE_US.'DONNEES'.'N_BOITES') ; * * Post-traitement supplementaire * Application du profil d'usure au maillage * * Nombre de cycle restants maintenant a calculer NbResMaj = BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' ; 'SI' ('EGA' &BU BOITE_US.'DONNEES'.'N_BOITES') ; 'MESS' ' ' ; 'MESS' 'Apres application du profil d usure ' ; 'FINSI' ; * 'SI' ('NEG' NbResMaj 0) ; 'SI' ('EGA' &BU BOITE_US.'DONNEES'.'N_BOITES') ; * Liste des pas de temps pour le prochain cycle 'SI' (BOITE_US.'INFOS'.'CALCUL_PAS') ; @USTMPS T1 ; 'FINSI' ; BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = 1 ; BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' + 1 ; 'FINSI' ; * Reinitialisation de certains indices de table 'SINON' ; * Menage de fin de calcul - Suppression d'indices 'SI' (BOITE_US.'INFOS'.'ITRID') ; 'SINON' ; 'FINSI' ; 'FINSI' ; * 'FIN' BU ; * * Affichage du temps de calcul RunTimeE = 'TEMPS' 'HORL' ; CyclTime = 'FLOT' RunTimeE / 1000. ; RunTimeF = RunTimeP + CyclTime ; T1.'RUN_TIME' = T1.'RUN_TIME' 'ET' RunTimeF ; T1.'CYCLE_TIME' = T1.'CYCLE_TIME' 'ET' CyclTime; 'SINON' ; RunTimeF = CyclTime ; 'FINSI' ; MESS ' ' ; * 'SINON' ; BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' + 1 ; 'FINSI' ; * *----------------------------------------------------------------------* * - Indices de debut et fin de cycle - Fin de calcul * *----------------------------------------------------------------------* IndPas = T1.'WTABLE'.'NSOR' ; 'SI' (('EGA' CycActu 1) 'ET' ('EGA' IncActu 1)) ; BOITE_US.'POST'.'INDICES_CYCLE'. CycActu = LIndCyc ; 'SINON' ; * NSOR+1 car la sauvegarde s'effectue apres (on anticipe le numero) IProc = IndPas + 1 ; 'SI' ISAUV ; BOITE_US.'POST'.'INDICES_CYCLE'. CycActu = BOITE_US.'POST'.'INDICES_CYCLE'. CycActu 'ET' IProc ; 'SI' ('EGA' NbResMaj 0) ; T1.'ARRET' = VRAI ; 'SINON' ; * T_inc est le dernier instant de CycActu et le premier de CycSuiv 'SI' AppUsure ; CycSuiv = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ; BOITE_US.'POST'.'INDICES_CYCLE'. CycSuiv = LIndCyc ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * 'FINP' T1;
© Cast3M 2003 - Tous droits réservés.
Mentions légales