Download dy_devo3.dgibi

Back to the list

* fichier :  dy_devo3.dgibi
*         Test Dy_devo3.dgibi: Jeux de donn�es        *
*         ------------------------------------        *
*                                                     *
* si GRAPH = N, les graphiques ne sont pas affich�s                             
* si GRAPH diff�rent de N, tous les graphiques 
* sont affich�s                    
*                                                                               
GRAPH = 'N' ;        
d_pasa = vrai ;                                                           
*                                                                               
SAUT PAGE ;                                                                     
*-----------------------------------------------------*          
*                    DY_DEVO3                         *          
*-----------------------------------------------------*          
*                                                     *          
*    Tests de l'op{rateur DYNE option DE_VOGELAERE    *          
*    __________________________________________       *          
*                                                     *          
*                                                     *          
*   Une roue de diam�tre 1 m�tre bloqu�e par 2 plans  *          
*   On applique � la roue un moment Mz                *          
*   2 liaisons CERCLE_PLAN_FROTTEMENT                 *          
*                                                     *          
*-----------------------------------------------------*          
*                                                                               
OPTION ECHO 0 ;                                                                 
TEMPS ;                                                                         
OPTION ELEM SEG2 DIME 3 ;                                                       
*                                                                               
*     D�finition g�om�trie                                                      
*                                                                               
P1 = 0. 0. 0. ;                                                                 
*                                                                               
*     Base modale                                                               
*                                                                               
CHP_M1 = 
       MANU CHPO 6 P1  'UX'  1.0  'UY'  0.0  'UZ'  0.0                        
                       'RX'  0.0  'RY'  0.0  'RZ'  0.0;                     
CHP_M2 = 
       MANU CHPO 6 P1  'UX'  0.0  'UY'  1.0  'UZ'  0.0                        
                       'RX'  0.0  'RY'  0.0  'RZ'  0.0;                     
CHP_M3 = 
       MANU CHPO 6 P1  'UX'  0.0  'UY'  0.0  'UZ'  0.0                        
                       'RX'  0.0  'RY'  0.0  'RZ'  1.0;                     
*                                                                               
TBAS = TABLE 'BASE_MODALE' ;                                                    
TBAS . 'MODES' = TABLE 'BASE_DE_MODES' ;                                        
TBAS . 'MODES' . 'MAILLAGE' = P1  ;                                             
TBAS . 'MODES' . 1 = TABLE 'MODE' ;                                             
TBAS . 'MODES' . 1 . 'POINT_REPERE'      = ( 0 0 0 ) ;                          
TBAS . 'MODES' . 1 . 'FREQUENCE'         =   0.0     ;                          
TBAS . 'MODES' . 1 . 'MASSE_GENERALISEE' =   1.0     ;                          
TBAS . 'MODES' . 1 . 'DEFORMEE_MODALE'   =   CHP_M1  ;  
 ma1 = manu poi1 (0. 0. 0.) ;
 mo1 = mode ma1 mecanique elastique modal ;
 ca1 = mate mo1 freq 0. mass 1.0 defo chp_m1 ;
                        
TBAS . 'MODES' . 2 = TABLE 'MODE' ;                                             
TBAS . 'MODES' . 2 . 'POINT_REPERE'      = ( 0 0 0 ) ;                          
TBAS . 'MODES' . 2 . 'FREQUENCE'         =   0.0     ;                          
TBAS . 'MODES' . 2 . 'MASSE_GENERALISEE' =   1.0     ;                          
TBAS . 'MODES' . 2 . 'DEFORMEE_MODALE'   =   CHP_M2  ;                          
 ma2 = manu poi1 (0. 0. 0.) ;
 mo2 = mode ma2 mecanique elastique modal ;
 ca2 = mate mo2 freq 0. mass 1.0 defo chp_m2 ;

TBAS . 'MODES' . 3 = TABLE 'MODE' ;                                             
TBAS . 'MODES' . 3 . 'POINT_REPERE'      = ( 0 0 0 ) ;                          
TBAS . 'MODES' . 3 . 'FREQUENCE'         =   0.0     ;                          
TBAS . 'MODES' . 3 . 'MASSE_GENERALISEE' =   1.0     ;                          
TBAS . 'MODES' . 3 . 'DEFORMEE_MODALE'   =   CHP_M3  ;                          
 ma3 = manu poi1 (0. 0. 0.) ;
 mo3 = mode ma3 mecanique elastique modal ;
 ca3 = mate mo3 freq 0. mass 1.0 defo chp_m3 ;

mo_moda = mo1 et mo2 et mo3 ;
ca_moda = ca1 et ca2 et ca3 ;

*                                                                               
*     Champ de force                                                            
*                                                                               
XFOR   =  1000.0  ;                                                             
CHP_F1 = MANU CHPO 3 P1  'MX'  0.0                                              
                         'MY'  0.0                                              
                         'MZ'  XFOR ;                                           
EVO_F1 = EVOL MANU ( PROG -1. 10. ) ( PROG 1. 1. ) ;                            
CHA_F1 = CHARGE 'FORC' CHP_F1 EVO_F1 ;                                                 
TCHARG = TABLE 'CHARGEMENT' ;                                                   
TCHARG . 'BASE_A' = PJBA TBAS CHA_F1 ;        
cha1 =  PJBA TBAS CHA_F1 ;   
cha2 = pjba cha_f1 mo_moda ca_moda ;                              
*                                                                               
*---  D�finition des liaisons                                                   
*                                                                               
TLIA1 = TABLE 'LIAISON' ;                                                       
TLB1  = TABLE 'LIAISON_B' ;                                                     
TLIA1 . 'LIAISON_B' = TLB1 ;                                                    
*                                                                               
*   Liaison CERCLE_PLAN_FROTTEMENT avec amortissement                           
*                                                                               
RAY_SUP = 1.0   ;                                                               
XNU    =  0.4   ;                                                               
XRAID  =  4.0E6 ;                                                               
RAID_T =  ( 10.0 * XRAID ) / ( RAY_SUP ** 2 )  ;                                
AMOR_T =  ( RAID_T * 1.0 ) ** 0.5 ;                                             
TL1  =  TABLE  'LIAISON_ELEMENTAIRE'      ;                                     
TL1.'TYPE_LIAISON'             =  
     MOT 'CERCLE_PLAN_FROTTEMENT'                    ;                
TL1.'SUPPORT'                  =  P1                 ;                          
TL1.'JEU'                      =  -0.00025           ;                          
TL1.'NORMALE'                  =  ( 0 -1  0 )        ;                          
TL1.'RAIDEUR'                  =  XRAID              ;                          
TL1.'RAYON_SUPPORT'            =  RAY_SUP            ;                          
TL1.'COEFFICIENT_GLISSEMENT'   =  XNU                ;                          
TL1.'COEFFICIENT_ADHERENCE'    =  XNU                ;                          
TL1.'RAIDEUR_TANGENTIELLE'     =  RAID_T             ;                          
TL1.'AMORTISSEMENT_TANGENTIEL' =  AMOR_T             ;                          
TL1.'AMORTISSEMENT'            =  0.0                ;                          
 macepl1 = manu poi1 p1 ;
 mocepl1 = mode macepl1 liaison cercle_plan frottement ;
    tcepl1= table ; tcepl1 . mocepl1 = vrai ;
 cacepl1 = mate mocepl1 NORM (0. -1. 0.) JEU -0.00025
   RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
   ATAN amor_t AMOR 0. SORT tcepl1 ;

TL2  =  TABLE  'LIAISON_ELEMENTAIRE'                 ;                                     
TL2.'TYPE_LIAISON'             =  
     MOT 'CERCLE_PLAN_FROTTEMENT'                    ;                
TL2.'SUPPORT'                  =  P1                 ;                          
TL2.'JEU'                      =  -0.00025           ;                          
TL2.'NORMALE'                  =  ( 0  1  0 )        ;                          
TL2.'RAIDEUR'                  =  XRAID              ;                          
TL2.'RAYON_SUPPORT'            =  RAY_SUP            ;                          
TL2.'COEFFICIENT_GLISSEMENT'   =  XNU                ;                          
TL2.'COEFFICIENT_ADHERENCE'    =  XNU                ;                          
TL2.'RAIDEUR_TANGENTIELLE'     =  RAID_T             ;                          
TL2.'AMORTISSEMENT_TANGENTIEL' =  AMOR_T             ;                          
TL2.'AMORTISSEMENT'            =  0.0                ;                          
 macepl2 = manu poi1 p1 ;
 mocepl2 = mode macepl2 liaison cercle_plan frottement ;
 cacepl2 = mate mocepl2 NORM (0. 1. 0.) JEU -0.00025 
   RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
   ATAN amor_t AMOR 0. ; 

*                                                                               
TLB1 . 1  = TL1  ;                                                              
TLB1 . 2  = TL2  ;                                                              
*                                                                               
*---  D�finition des r�sultats en sortie                                        
*                                                                               
TSORT = TABLE 'SORTIE' ;                                                        
TSOR1 = TABLE 'SORTIE' ;                                                        
TSORT . 'VARIABLE'    = TSOR1 ;                                                 
TSOR1 . 'DEPLACEMENT' =  FAUX ;                                                 
TSOR1 . 'VITESSE'     =  FAUX ;                                                 
*                                                                               
TSOR2 = TABLE 'SORTIE' ;                                                        
TSORT . 'LIAISON_B' = TSOR2 ;                                                   
TSOR2 . TL1  = VRAI ;                                                           
*                                                                               
*     Temps                                                                     
*                                                                               
PDT  = 4.0E-5 ;                                                                 
NP1  =  5000  ;                                                  
NP2  =  5000  ;                                                        
NINS =    20  ;                                        
*                                                                               
*------  Op�rateur DYNE  ------                                                 
* 
tabdyn = table 'PASAPAS' ;
tabdyn . modele = mo_moda et mocepl1 et mocepl2 ;
tabdyn . caracteristiques = ca_moda et cacepl1 et cacepl2 ;
tabdyn . chargement = cha2 ;

si d_pasa ;
 tabdyn . dynamique = vrai ;
 tabdyn . temps_calcules = prog 0. pas (pdt*10) (np1*pdt) ;
 tabdyn . temps_sauves = prog 0. pas (nins*pdt) (np1*pdt) ;
  pasapas tabdyn ;

 t_inter = np1*pdt ;
 tabdyn . temps_calcules =
         prog t_inter pas (pdt*10) (t_inter +(np2*pdt));
 tabdyn . temps_sauves =
         prog t_inter pas (nins*pdt) (t_inter +(np2*pdt)) ;
  pasapas tabdyn ;

o_fn = prog ; o_ft = prog ; o_pu = prog ; o_vx = prog ; o_mz = prog ;
o_rz = prog ; a_t = prog ;

 repeter b_p ((dime tabdyn . temps) - 1) ;
 tuu1 = 'EXTR' ('REDU' tabdyn . variables_internes . &b_p mocepl1) 
            'SLIA' 1 1 1 ;

     a_t = a_t et (prog tabdyn.temps.&b_p) ;
     o_fn = o_fn et tuu1.'FORCE_DE_CHOC_NORMALE' ;
     o_ft = o_ft et tuu1.'FORCE_DE_CHOC_TANGENTIELLE' ;           
     o_pu = o_pu et tuu1.'PUISSANCE_USURE_INSTANTANEE' ;          
     o_vx = o_vx et tuu1.'VX_POINT_CONTACT' ;                     
     o_mz = o_mz et tuu1.'MZ_POINT_FIBRE_NEUTRE' ;                
     o_rz = o_rz et tuu1.'RZ_POINT_FIBRE_NEUTRE' ;                


 fin b_p ;

 ev_fn = evol vert manu a_t o_fn ;
 ev_ft = evol vert manu a_t o_ft ;
 ev_pu = evol vert manu a_t o_pu ;
 ev_vx = evol vert manu a_t o_vx ;
 ev_mz = evol vert manu a_t o_mz ;
 ev_rz = evol vert manu a_t o_rz ;

sinon ;
tabdyn . sortie = table ;
tabdyn . sortie . vitesses = faux ;
tabdyn . sortie . deplacements = faux ;
tabdyn . sortie . mocepl1 = vrai ;
tabdyn . nombre_pas = np1 ;
tabdyn . pas_de_temps = pdt ;
tabdyn . pas_de_sortie = nins ;
dyne de_vogelaere tabdyn ;
       
ll1 = prog tabdyn . temps . 0 ;
repeter bso (dime tabdyn . temps - 1) ;
 ll1 = ll1 et (prog tabdyn . temps . &bso) ;
fin bso ;
tabd = tabdyn . liaisons ;
EV_FN1 = 
EVOL MANU LL1 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE'  ;               
EV_FT1 = EVOL MANU ll1 
         tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;           
EV_PU1 = EVOL MANU ll1  
         tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;          
EV_VX1 = EVOL MANU ll1  
         tabd.mocepl1.'VX_POINT_CONTACT' ;                     
EV_MZ1 = EVOL MANU ll1  
         tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;                
EV_RZ1 = EVOL MANU ll1  
         tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;                
*
tabdyn . init_dyne = tabdyn . reprise_dyne ;
dyne de_vogelaere tabdyn ;  
ll2 = prog tabdyn . temps . 0 ;
repeter bso (dime tabdyn . temps - 1) ;
 ll2 = ll2 et (prog tabdyn . temps . &bso) ;
fin bso ;

EV_FN = EVOL MANU LL2 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;               
EV_FT = EVOL MANU ll2  
         tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;           
EV_PU = EVOL MANU ll2  
         tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;          
EV_VX = EVOL MANU ll2  
          tabd.mocepl1.'VX_POINT_CONTACT' ;                     
EV_MZ = EVOL MANU ll2  
          tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;                
EV_RZ = EVOL MANU ll2  
        tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;                
finsi ;  

TRESU1 = DYNE 'DIFFERENCES_CENTREES' TBAS TCHARG TSORT 
*TRESU1 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT 
                                   TLIA1 NP1 PDT NINS ;      
TINIT = TABLE 'INITIAL' ;                                                       
TINIT.'REPRISE' = TRESU1.'REPRISE' ;                                            
TRESU2 = DYNE 'DE_VOGELAERE' TBAS  TCHARG  TSORT  TLIA1                   
                                   TINIT NP2 PDT NINS ;                                     
*                                                                               
*     Trac� des courbes                                                         
*                                                                               
LISTE1 = TRESU1.'TEMPS_DE_SORTIE' ;                                             
LISTE2 = TRESU2.'TEMPS_DE_SORTIE' ;                                             
*                                                                               
EVO_FN1 = 
EVOL MANU LISTE1  TRESU1.TL1.'FORCE_DE_CHOC_NORMALE'  ;               
EVO_FN2 = 
EVOL MANU LISTE2  TRESU2.TL1.'FORCE_DE_CHOC_NORMALE'  ;               
EVO_FN = CONCAT EVO_FN1 EVO_FN2 ;                                               

*                                                                               
EVO_FT1 = EVOL MANU LISTE1  
          TRESU1.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;           
EVO_FT2 = EVOL MANU LISTE2  
          TRESU2.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ;           
EVO_FT = CONCAT EVO_FT1 EVO_FT2 ;                                               
*                                                                               
EVO_PU1 = EVOL MANU LISTE1  
          TRESU1.TL1.'PUISSANCE_USURE_INSTANTANEE' ;          
EVO_PU2 = EVOL MANU LISTE2  
          TRESU2.TL1.'PUISSANCE_USURE_INSTANTANEE' ;          
EVO_PU = CONCAT EVO_PU1 EVO_PU2 ;                                               
*                                                                               
EVO_VX1 = EVOL MANU LISTE1  
          TRESU1.TL1.'VX_POINT_CONTACT' ;                     
EVO_VX2 = EVOL MANU LISTE2  
          TRESU2.TL1.'VX_POINT_CONTACT' ;                     
EVO_VX = CONCAT EVO_VX1 EVO_VX2 ;                                               
*                                                                               
EVO_MZ1 = EVOL MANU LISTE1  
          TRESU1.TL1.'MZ_POINT_FIBRE_NEUTRE' ;                
EVO_MZ2 = EVOL MANU LISTE2  
          TRESU2.TL1.'MZ_POINT_FIBRE_NEUTRE' ;                
EVO_MZ = CONCAT EVO_MZ1 EVO_MZ2 ;                                               
*                                                                               
EVO_RZ1 = EVOL MANU LISTE1  
          TRESU1.TL1.'RZ_POINT_FIBRE_NEUTRE' ;                
EVO_RZ2 = EVOL MANU LISTE2  
          TRESU2.TL1.'RZ_POINT_FIBRE_NEUTRE' ;                
EVO_RZ = CONCAT EVO_RZ1 EVO_RZ2 ;                                               
*       
*
SI ( NEG GRAPH 'N' ) ;                                                          
TITRE '***** - TL1-  FORCE DE CHOC NORMALE  *****' ;                            
   DESS (EVO_FN et ev_fn) 'MIMA' ;                                                         
TITRE 
'***** - TL1-  FORCE DE CHOC TANGENTIELLE  *****' ;                       
   DESS (EVO_FT et ev_ft) 'MIMA' ;                                                         
TITRE '***** - TL1-  PUISSANCE USURE *****' ;                                   
   DESS (EVO_PU et ev_pu) 'MIMA' ;                                                         
TITRE '***** - TL1-  VX POINT DE CONTACT  *****' ;                              
   DESS (EVO_VX et ev_vx) 'MIMA' ;                                                         
TITRE '***** - TL1-  MZ POINT FIBRE NEUTRE  *****' ;                            
   DESS (EVO_MZ et ev_mz) 'MIMA' ;                                                         
TITRE '***** - TL1-  RZ POINT FIBRE NEUTRE  *****' ;                            
   DESS (EVO_RZ et ev_rz) 'MIMA' ;                                                         
FINSI ;                                                                         
*       
si d_pasa ;
  indi2 = 500 ;
sinon ;
  indi2 = 501 ;
finsi ;                                                                        
LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ;   
li_rz = extraire ev_rz ordo ;                                            
LISTEM = EXTRAIRE EVO_RZ 'ABSC' ; 
li_tem = extraire ev_rz absc ;                                              
D = EXTRAIRE  LIS_RZ  501 ;   
dd = extraire li_rz indi2 ;                                                  
T = EXTRAIRE  LISTEM  501 ; 
tt = extraire li_tem indi2 ;                                                    
SAUT PAGE ;                                                                     
MESS                   'valeur du temps :' T tt ;                                  
MESS 'valeur de la rotation autour de Z :' D dd ;                                  
SAUT 2 LIGNES ;                                                                 
*                                                                               
TEMPS ;    
*                                                                               
*     Code de bon fonctionnement                                                
*                                                                               
DEPREF = 100. * T * T ;  
DDPREF = 100. * tt * tt ;                                                       
RESI = ABS ( ( D - DEPREF ) / DEPREF ) ;                                        
RESII = ABS ( ( DD - DDPREF ) / DDPREF ) ;                                        
SI (( RESI <EG 1E-2 ) ET ( RESII <EG 1E-2 )) ;
   ERRE 0 ;                                                                     
SINON ;                                                                         
   ERRE 5 ;                                                                     
FINSI ;          
                                                               
*                                                                               
FIN ;                                                                           


 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer