Download newmod.dgibi

Back to the list

* fichier : newmod.dgibi
* chute d'une barre dans un conduit uniforme
* comparaison liaison point_plan_frottement et calcul analytique ;
* ==> exploitation nombre de  choc et temps de chute
opti dime 3  mode trid elem seg2 trac x ;

graph = 'N' ;
complet = 'N' ;
*geometrie * ;
p1= 0. 0. 0. ; 
p2= 0.5 0. 0. ; 
P3 = 1. 0. 0. ; 

barre = p1 droi 1 p2 droi 1 p3 ;  

* modele *
al1 = modl barre mecanique tuya ;
car1 = carb al1 epai 33.75e-3 rayo 33.75e-3;


* calcul des masses volumiques equivalentes *
ro1 = 1400. ;
mat1 = matr al1 youn 2e11 nu 0.3 rho ro1 ;
rig1 = rigi al1 ( car1 et mat1);

* conditions aux limites
blox = bloq uy uz rx ry rz barre ;
bloy = bloq ux uz rx ry rz barre ;
blorz = bloq ux uz rx ry  barre ;
blop2 = bloq depla p2 ;
**************************************
rigx = rig1 et blox  ;
**************************************
*
**************************************
rigy = rig1 et bloy  ;
**************************************
*
**************************************
rigrz = rig1 et blorz et blop2  ;
**************************************
*
**************************************
* matrice de masse ;
**************************************
mas1 = mass al1 ( car1 et mat1);
*
**************************************
* vibration suivant x ;
tmx=vibr inter 0. 1. basse 1 rigx mas1 tbas ;
nnor (tmx . modes) ( mots ux ) ;
*
* vibration suivant y ;
tmy=vibr inter 0. 1. basse 1 rigy mas1 tbas ;
nnor (tmy . modes) ( mots uy ) ;
*
* vibration suivant rz ;
tmrz=vibr inter 0. 1. basse 1 rigrz mas1 tbas ;
*tmrz=vibr simul 0.001 1  rigrz mas1 tbas ;
nnor (tmrz . modes) ( mots uy ) ;

*******************************************
* assemblage des bases modales
*******************************************
tbas_m = table base_modale ;
tb1 = table base_de_modes ;
tbas_m . modes = tb1 ;
tb1 . maillage = barre ;
tb1 . 1 = tmx . modes . 1 ;
tb1 . 2 = tmy . modes . 1 ;
tb1 . 3 = tmrz . modes . 1 ;

**************************************************************************
*  etape 0
* calcul PASAPAS en utilisant modele NEWMARK MODAL
*
ma1ux = manu poi1 tb1 . 1 . point_repere ;
mo1ux = mode ma1ux mecanique elastique modal ;
ca1ux = mate mo1ux freq tb1 . 1 . frequence 
  mass tb1 . 1 . masse_generalisee defo tb1 . 1 . deformee_modale ;
ma1uy = manu poi1 tb1 . 2 . point_repere ;
mo1uy = mode ma1uy mecanique elastique modal ;
ca1uy = mate mo1uy freq tb1 . 2 . frequence 
  mass tb1 . 2 . masse_generalisee defo tb1 . 2 . deformee_modale ;
ma1rz = manu poi1 tb1 . 3 . point_repere ;
mo1rz = mode ma1rz mecanique elastique modal ;
ca1rz = mate mo1rz freq tb1 . 3 . frequence 
  mass tb1 . 3 . masse_generalisee defo tb1 . 3 . deformee_modale ;
mo_mod = mo1ux et mo1uy et mo1rz;
ca_mod = ca1ux et ca1uy et ca1rz ;
**************************************************
* suppression des multiplicateurs de lagrange
* trace des deformeees
**************************************************
i = 0 ;
repeter enlagr 3 ;
i = i + 1 ;
def1 = tb1 . i .'DEFORMEE_MODALE' ;
tb1 . i .'DEFORMEE_MODALE' = enleve def1 lx ;
fin enlagr ;

I = 0 ; 
tev_def = table ;
REPETER Bmod 3 ;
I=I+1;

def_mod = tbas_m . modes . i .'DEFORMEE_MODALE' ;
* DEF11 = DEFO barre DEF1 1.2  ;
* DEF10 = DEFO barre DEF1 0.   ;
tev_def.i = evol rose chpo def_mod uy barre ;
 TREQ1 = tbas_m . modes . i .'FREQUENCE' ;
 mg = tbas_m . modes . i .'MASSE_GENERALISEE' ;
LIST MG ;

FIN Bmod ;
*
tabsymb = table ;
tabsymb.1 = 'MARQ TRIA TITR M1' ;
tabsymb.2 = 'MARQ CROI TITR M2' ;
tabsymb.3 = 'MARQ ETOI TITR M3' ;
tabsymb.4 = 'MARQ ROND TITR M4' ;
titre ' modes de corps rigides ' ;
* 
*dess (tev_def.1 et tev_def.2 et tev_def.3) lege tabsymb ;
*********************************************************
*                      calcul
* 1ere etape : avec les liaisons POINT_PLAN_FROTTEMENT
**********************************************************
*
* calcul parametre par : impulsion initiale
t_qp30 = table ;
t_qp30 . 1 = 0.05 ;
t_qp30 . 2 = 0.01 ;
t_qp30 . 3 = 0.1 ;
*                  ...       et coefficient de frottement
t_mu = table ;
t_mu . 1 = 0.5 ;
t_mu . 2 = 0.1 ;
t_mu . 3 = 1. ;
* sorties : chute
t_ux = table ;
*       ...   force normale
t_fn = table ;
*                ...    deplacement
t_uy = table ;
*                           ...    frottement
t_ft = table ;
*****************************
* chargement
*****************************
tchar = table chargement;

chp1 = manu chpo barre 1 ux 9.81 ;
f1 = mas1 * chp1 ;
pjf = pjba f1 tbas_m ;

ltt=prog 0. 6.;
evt1 = evol manu ltt ( prog 1. 1. ) ;

ch1 = char meca pjf evt1; 
tchar.base_a = ch1 ;
*
*********************************************
*    Donn{es des constantes
*********************************************
*   Nombre de pas     Dur{e du pas de temps   Temps d'{tude
*npc=1;
*nt2= 200 ;dt2 = 0.01 ;
dt1 = 0.1 ; 
l_cal = prog 0. pas dt1 (dt1*55) ;

* vue de la barre 
p_photo = (prog 0.9 1.7) ;
*********************************************
* amortissement
*********************************************
    lam  = prog  3 * 0. ;

  MATAMOR = AMOR TBAS_M LAM  ;
  TAMOR = TABLE 'AMORTISSEMENT' ;
        TAMOR.'AMORTISSEMENT' = MATAMOR ;
**
**debproc chuchoc qp30*flottant c_mu*flottant ;
****
 qp30 = t_qp30 . 3 ; c_mu =t_mu . 1;

*********************************************
* conditions initiales 
*********************************************
pk = tbas_m . modes . 3 . point_repere ;
pkx = tbas_m . modes . 1 . point_repere ;

CPID = manu chpo barre 1 alfa 0. ;
CPIV = manu chpo pk 1 alfa qp30 ;

tinit = table initial;
       tinit . 'DEPLACEMENT' = CPID ;
       tinit . 'VITESSE' = CPIV ;
*---------------------------------------------
y_gui = 0.083 ; c_mu = 0.7 ;


* on essaye en modal
*
gui_gau = rela mini 1. alfa pk ;
     jeu_gau = depi gui_gau (-1.*y_gui) ;
gui_dro = rela maxi 1. alfa pk ; jeu_dro = depi gui_dro y_gui ;
ev2al = evol manu (prog 0. 1.) (prog 1. 1.) ; 
ch2 = char dimp (jeu_gau et jeu_dro) ev2al ;

mo_gau = mode ma1rz liaison newmark modal ;
ca_gau = mate mo_gau jeu (-1.*y_gui) frot c_mu mofr mo1ux ;
mo_dro = mode ma1rz liaison newmark modal ;
ca_dro = mate mo_dro jeu y_gui frot c_mu mofr mo1ux; 

tbar2 = table 'PASAPAS' ;
tbar2. dynamique = vrai ;
tbar2 . modele = mo_mod et mo_gau et mo_dro ;
tbar2 . caracteristiques = ca_mod et ca_gau et ca_dro ; 
tbar2 . chargement = ch1  ;
*tbar2 . chargement = ch1 et ch2 ;
*tbar2 . blocages_mecaniques = gui_gau et gui_dro ;
tbar2 . vitesses = table ; 
tbar2 . vitesses . 0 = cpiv ;
tbar2 . temps_calcules = l_cal ;
pasapas tbar2 ;

abc2 = prog ; ord2 = prog ; odf2 = prog ; ordy2 = prog ;
ofn2 = prog 0. ;oft2 = prog 0.;
repeter bdbar2 (dime tbar2 . temps) ;
  ii2 = &bdbar2 - 1;
 abc2 = abc2 et (prog tbar2 . temps . ii2) ;
 ord2 = ord2 et (prog (extr tbar2 . deplacements . ii2 pk alfa));
 odf2 = odf2 et (prog (extr tbar2 . deplacements . ii2 pkx alfa));
 dlig11 = reco tbar2 . deplacements . ii2 mo_mod ca_mod ;
 ordy2 = ordy2 et (prog (extr dlig11 uy p1)) ;
 si (ii2 > 0 ) ;
  chlia_2 = exco tbar2 . variables_internes . ii2 flia noid ;
  nch_2 = extr chlia_2 nbzo ;
si (nch_2 > 0 ) ;
  xfn2 = 0. ; xft2 = 0. ;
  repeter bli_2 nch_2 ;
   xfn2 = xfn2 + (extr (extr chlia_2 flia &bli_2 1 1) pk falf) ;
   xft2 = xft2 + (extr (extr chlia_2 flia &bli_2 1 1) pkx falf) ;
  fin bli_2 ;  
 ofn2 = ofn2 et (prog  xfn2) ; oft2 = oft2 et (prog xft2) ; 
sinon ; 
 ofn2 = ofn2 et (prog 0.) ; oft2 = oft2 et (prog 0.) ; 
finsi ;
 finsi ; 
 si (ega ii2 0 ) ;
  deflig11 = defo dlig11 barre 2. vert ;
 sinon ; 
  deflig11 = deflig11 et (defo dlig11 barre 2. vert) ;
 finsi ;
fin bdbar2 ;
 deflig0 = defo dlig11 barre 0. rouge ;
si (neg graph 'N') ;
 trac (-5. 0. 10.) (deflig11 et deflig0) anim ;
finsi ;
ev2dep = evol manu abc2 ord2 ;
ev2dex = evol manu abc2 odf2 ;
ev2yp1 = evol manu abc2 ordy2 ;
ev2fn = evol manu abc2 ofn2 ; ev2ft = evol manu abc2 oft2 ;
si (neg graph 'N') ;
dess (ev2dep et ev2yp1 ) titre ' deplacement mode rotation ' ;  
dess ev2dex titre ' deplacement mode translation ' ; 
 dess (ev2fn) 
 titre ' reaction normale mode rotation ' ;
finsi ;
t_ux . 1 = ev2dex ;
t_fn . 1 = ev2fn;
t_uy . 1 = ev2yp1 ;
t_ft . 1 = ev2ft ;
*----------------------------------------------
* mixons
*----------------------------------------------
DT3 = 0.001 ;
si (ega complet 'O') ; 
l_cal3 = prog 0. pas dt3 (dt1*55) ;
sinon ;
l_cal3 = prog 0. pas dt3 (dt3*4) ;
finsi ;

maip1 = manu poi1 p1 ;
mopl1 = mode maip1 liaison point_plan frottement ;
capl1 = mate mopl1 jeu y_gui normale (0 1 0) raideur 1.e6 
        glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;

mopl2 = mode maip1 liaison point_plan frottement ;
capl2 = mate mopl2 jeu y_gui normale (0 -1 0) raideur 1.e6 
        glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ; 

maip3 = manu poi1 p3 ;
mopl3 = mode maip3 liaison point_plan frottement ;
capl3 = mate mopl3 jeu y_gui normale (0 1 0) raideur 1.e6 
        glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ;

mopl4 = mode maip3 liaison point_plan frottement ;
capl4 = mate mopl4 jeu y_gui normale (0 -1 0) raideur 1.e6 
        glis c_mu adhe 0. amor 0. rtan 1.e8 atan 7000. ; 
tbar3 = table 'PASAPAS' ;
tbar3 . dynamique = vrai ;
*tbar3 . modele = mo_mod et mopl1 et mopl2 et mopl3 et mopl4;
*tbar3 . caracteristiques = ca_mod et capl1 et capl2 et capl3 et capl4; 
tbar3 . modele = mo_mod et mo_dro et mopl2 et mopl3 ;
tbar3 . caracteristiques = ca_mod et ca_dro et capl2 et capl3 ; 
tbar3 . chargement = ch1  ;
tbar3 . vitesses = table ; 
tbar3 . vitesses . 0 = cpiv ;
tbar3 . temps_calcules = l_cal3 ;
pasapas tbar3 ;

abc3 = prog ; ord3 = prog ; odf3 = prog ;ordy3 = prog; ofn3 = prog 0.;
repeter bdbar3 (dime tbar3 . temps) ;
  ii3 = &bdbar3 - 1;
 abc3 = abc3 et (prog tbar3 . temps . ii3) ;
 ord3 = ord3 et (prog (extr tbar3 . deplacements . ii3 pk alfa));
 odf3 = odf3 et (prog (extr tbar3 . deplacements . ii3 pkx alfa));
 dlig33 = reco tbar3 . deplacements . ii3 mo_mod ca_mod ;
 ordy3 = ordy3 et (prog (extr dlig33 uy p1)) ;
 si (ii3 > 0 ) ;
  chlia_3 = exco tbar3 . variables_internes . ii3 flia noid ;
  nch_3 = extr chlia_3 nbzo ;
  si (nch_3 > 0 ) ;
  xfn3 = 0. ; 
  repeter bli_3 nch_3 ;
   xfn3 = xfn3 + (extr (extr chlia_3 flia &bli_3 1 1) pk falf) ;
  fin bli_3 ;  
  ofn3 = ofn3 et (prog  xfn3) ;
  sinon ; 
   ofn3 = ofn3 et (prog 0.) ; 
  finsi ;
 finsi ; 
fin bdbar3 ;
ev3dep = evol rouge manu abc3 ord3 ;
ev3dex = evol rouge manu abc3 odf3 ;
ev3yp1 = evol rouge manu abc3 ordy3 ;
ev3fn = evol rouge manu abc3 ofn3 ;
si (neg graph 'N') ;
dess (ev3dep et ev3yp1 ) titre ' deplacement mode rotation ' ;  
dess ev3dex titre ' deplacement mode translation ' ; 
 dess (ev3fn) 
 titre ' reaction normale mode rotation ' ;
finsi ;
t_ux . 3 = ev3dex;
t_fn . 3 = ev3fn;
t_uy . 3 = ev3yp1 ;
*
**************************************************************************
* 1ere etape
* calcul DYN en utilisant les liaisons POINT_PLAN_FROTTEMENT

*********************************************
*    Table des Liaisons
*********************************************
*
TLIAI = TABLE 'LIAISON' ;
      TLB = TABLE 'LIAISON_B' ;
      TLIAI.'LIAISON_B' = TLB ;
 TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
      TL1.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
      TL1.'SUPPORT' = p1 ;
      TL1.'JEU' = y_gui ;
      TL1.'NORMALE' = (0 1 0) ;
      TL1.'RAIDEUR' = 1.e6   ;
      TL1 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
      TL1 . 'COEFFICIENT_ADHERENCE' = 0. ;
      TL1.'AMORTISSEMENT' = 0.;
      TL1.'RAIDEUR_TANGENTIELLE' = 1.E8   ;
      TL1.'AMORTISSEMENT_TANGENTIEL' = 7000.;
        tlb.1=tl1;

 TL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
      TL2.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
      TL2.'SUPPORT' = p1  ;
      TL2.'JEU' = y_gui ;
      TL2.'NORMALE' = (0 -1 0) ;
      TL2.'RAIDEUR' = 1.e6   ;
      TL2 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
      TL2 . 'COEFFICIENT_ADHERENCE' = 0. ;
      TL2.'AMORTISSEMENT' = 0.;
      TL2.'RAIDEUR_TANGENTIELLE' = 1.E8   ;
      TL2.'AMORTISSEMENT_TANGENTIEL' = 7000.;
        tlb.2=tl2;


 TL3 = TABLE 'LIAISON_ELEMENTAIRE' ;
      TL3.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
      TL3.'SUPPORT' = p3 ;
      TL3.'JEU' = y_gui ;
      TL3.'NORMALE' = (0 1 0) ;
      TL3.'RAIDEUR' = 1.e6   ;
      TL3 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
      TL3 . 'COEFFICIENT_ADHERENCE' = 0. ;
      TL3.'AMORTISSEMENT' = 0.;
      TL3.'RAIDEUR_TANGENTIELLE' = 1.E8   ;
      TL3.'AMORTISSEMENT_TANGENTIEL' = 7000.;
        tlb.3=tl3;

 TL4 = TABLE 'LIAISON_ELEMENTAIRE' ;
      TL4.'TYPE_LIAISON' = MOT 'POINT_PLAN_FROTTEMENT';
      TL4.'SUPPORT' = p3 ;
      TL4.'JEU' = y_gui ;
      TL4.'NORMALE' = (0 -1 0) ;
      TL4.'RAIDEUR' = 1.e6   ;
      TL4 . 'COEFFICIENT_GLISSEMENT' = c_mu ;
      TL4 . 'COEFFICIENT_ADHERENCE' = 0. ;
      TL4.'AMORTISSEMENT' = 0.;
      TL4.'RAIDEUR_TANGENTIELLE' = 1.E8   ;
      TL4.'AMORTISSEMENT_TANGENTIEL' = 7000.;
        tlb.4=tl4;

*********************************************
*    Table des r{sultats demand{s
*********************************************
*
*  Table de sortie des variables g{n{ralis{es
   TSORT = TABLE 'SORTIE' ;
TSORV = TABLE 'VARIABLE' ;
           TSORT.'VARIABLE' = TSORV ;
                   TSORV.'DEPLACEMENT' = vrai ;
                   TSORV.'VITESSE' = faux ;
                   TSORV.'ACCELERATION' = FAUX ;
*
*  Table de sortie des variables de liaison sur base B
   TSORL = TABLE 'LIAISON_B' ;
  tsorl.tl1 = vrai;
  tsorl.tl2 = vrai;
  tsorl.tl3 = vrai;
  tsorl.tl4 = vrai;
  TSORT.'LIAISON_B'= tsorl;
**********************************
* execution DYN
**********************************
DT2 = 0.001 ; nt2 = (2200 - 10)/2 ;nt2 = 5*nt2; NPC = 1 ;
tresu1 = dyne de_vogelaere
           tbas_m tliai tamor
           tchar tinit
           nt2  DT2 Npc
           TSORT ;


*
ttl1 = tresu1 . tl1 ;
ttl2 = tresu1 . tl2 ;
ttl3 = tresu1 . tl3 ;
ttl4 = tresu1 . tl4 ;
lis_temp = tresu1 . temps_de_sortie ;
**************************************
* graphiques
**************************************
tabsymb = table ;
tabsymb.1 = 'MOT' 'MARQ LOSA REGU' ;
tabsymb.2 = 'MOT' 'MARQ PLUS REGU' ;
tabsymb.3 = 'MOT' 'MARQ ETOI REGU' ;
tabsymb . titre = table ;

*
ev1 = evol bleu manu temps lis_temp 'p1 ux' 
( TTL1.'UX' ) ;

ev2 = evol rouge manu temps lis_temp 'p3 ux' 
( TTL3.'UX' ) ;
titre '  deplacement ux points p1 et p3 ' ;
tabsymb . titre . 1 = 'MOT' 'p1' ;
tabsymb . titre . 2 = 'MOT' 'p3' ;
si (neg graph 'N') ;
 dessin (ev1 et ev2) lege tabsymb ;
finsi ;
***
ev11 = evol vert manu temps lis_temp 'p1 uy' 
( TTL1.'UY' ) ;

ev22 = evol bleu manu temps lis_temp 'p3 uy' 
( TTL3.'UY' ) ;
si (neg graph 'N') ;
 titre ' deplacement uy points p1 et p3 ' ;
 dessin (ev11 et ev22) lege tabsymb ;
finsi ;
***
tf1 = TTL1.'FORCE_DE_CHOC_NORMALE' ;
tf2 = TTL2.'FORCE_DE_CHOC_NORMALE' ;
tf3 = TTL3.'FORCE_DE_CHOC_NORMALE' ;
tf4 = TTL4.'FORCE_DE_CHOC_NORMALE' ;
*
ev3 = evol bleu manu temps lis_temp 'p1 f_choc' 
(tf1 - tf2) ;

ev4 = evol rose manu temps lis_temp 'p3 f_choc' 
(tf3 - tf4) ;
si (neg graph 'N') ;
titre ' force de choc points p1 et p3 ' ;
dessin (ev3 et ev4) lege tabsymb ;
finsi ;
***
tff1 = TTL1.'FORCE_DE_CHOC_TANGENTIELLE' ;
tff2 = TTL2.'FORCE_DE_CHOC_TANGENTIELLE' ;
tff3 = TTL3.'FORCE_DE_CHOC_TANGENTIELLE' ;
tff4 = TTL4.'FORCE_DE_CHOC_TANGENTIELLE' ;
ev5 = evol bleu manu temps lis_temp
( tff1 + tff2 ) ;

ev6 = evol rose manu temps lis_temp 
( tff3 + tff4 ) ;
si (neg graph 'N') ;
titre ' FORCE_DE_CHOC_TANGENTIELLE p1 et p3' ;
dessin (ev5 et ev6) lege tabsymb ;
finsi ;
***
ev7 = evol vert reco tresu1 tbas_m depl p2 ux ;
titre ' deplacement ux p2 ' ;
*dess ev7 lege  ;
***
***  tracer le profil a une date donnee
ev8 = evol bleu reco tresu1 tbas_m depl barre uy 
    p_photo ;
***
t_ux . 2 = ev1 ;
t_fn . 2 = (-1.) * ev3 ;
t_uy . 2 = ev11 ;
t_ft . 2 = (-1.) * ev5 ;
***** realisation des calculs ****



**************************************************************************
* 2eme etape
* calcul DYN en utilisant le chargement explicite etabli
* voir aussi : etude de Cerqueira et Metivier, 2eme annee
*                      IUP genie Mecanique Evry 92--93
*            : these Rezkallah, Paris VI 1991
**************************************************************************
****************************************
* etablir l'evolution temporelle
****************************************
qp30 = t_qp30 . 3; mu = t_mu . 1;
xjeu = 1.e-3; longueur = 1. ; masse = 5. ; grav = 9.81 ;
xjeu = y_gui ;
* passage coordonnee angulaire --- inconnue modale
vthet0 = 2.01*qp30 ; 
K_choc = 1.e6 ; 
* discretisation temporelle
pdis_e = 15 ; pdis_c = 35 ;
pdis_e = 15 ; pdis_c = 50 ;
*
t_e = xjeu*2./longueur/vthet0 ; mess 'duree sans choc' t_e ;
abs_e = prog 0. pas (t_e/pdis_e) t_e ; 
ndt_e = dime abs_e ;
ord_e = prog ndt_e*0. ;
omega0 = (6.*K_choc/masse)**0.5 ;
t_c = pi/omega0 ; mess 'duree du choc' t_c ;
*  expression de la force de choc
pdt_c = t_c/pdis_c ;
abs_c = prog 0. pas pdt_c t_c ; 
ndt_c = dime(abs_c) ;
for_y = abs_c * (omega0/pi*180) ;
for_y = (sin(for_y)) *(k_choc*longueur*vthet0/2/omega0) ;
*
*** frottement 
frot_y = for_y*mu ;
*
** cree une histoire de chargement
* force et frottement
k_c = 0 ; k_e = 0 ;
abs_t = prog ; for_t = prog ; frot_t = prog ;
repeter Bhist 2 ;
*   segment droit 
abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et ord_e ;
frot_t = frot_t et ord_e ;
k_e = k_e + 1 ;
*   arche de sinus
abs_t = abs_t et (abs_c + (prog ndt_c*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et for_y ;
frot_t = frot_t et frot_y ;
k_c = k_c + 1 ;
*  segment droit
abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et ord_e ;
frot_t = frot_t et ord_e ;
k_e = k_e + 1 ;
*   segment droit 
abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et ord_e ;
frot_t = frot_t et ord_e ;
k_e = k_e + 1 ;
*   arche de sinus (inverse pour la force de choc)
abs_t = abs_t et (abs_c + (prog ndt_c*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et (for_y*(-1.)) ;
frot_t = frot_t et frot_y ;
k_c = k_c + 1 ;
*  segment droit
abs_t = abs_t et (abs_e + (prog ndt_e*((k_e*t_e) + (k_c*t_c)) )) ;
for_t = for_t et ord_e ;
frot_t = frot_t et ord_e ;
k_e = k_e + 1 ;
*
ev_for = evol manu temps abs_t force for_t ;
ev_for = ev_for * (-1.) ;
ev_frot = evol manu temps abs_t frottement frot_t ;
*
fin Bhist ;
*

tabsymb . titre . 1 = 'MOT' 'p1' ;
tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
si (neg graph 'N') ;
dess ((ev_for * (-1.)) et t_fn . 2 et t_fn . 1 et t_fn . 3) lege tabsymb 
    titre ' force normale choc ' ;
finsi ;
*dess ev_for  lege tabsymb ;
si (neg graph 'N') ;
dess ((ev_frot * (-1.)) et t_ft . 2 et t_ft . 1) lege tabsymb 
    titre ' force frottement choc ' ;
finsi ;
***
****************************************
* creer le champ de force
**************************************** 
tchar_x = table chargement;
* gravite
chp_g = manu chpo barre 1 ux 9.81 ;
f_g = mas1 * chp_g ;
pjf_g = pjba f_g tbas_m ;
nabs_t = dime abs_t ;
evt_g = evol manu abs_t (prog nabs_t*1.) ;
ch_g = char pjf_g evt_g;
* 
* choc -- rappel : frottement et choc sont proportionnels -- *mu
chp_x1 = manu chpo p1 1 fy 1. ;
chp_xf1 = manu chpo p1 1 fx (-1.);
pjf_x1 = pjba chp_x1 tbas_m ;
pjf_xf1 = pjba chp_xf1 tbas_m ;
*
chp_x3 = manu chpo p3 1 fy (-1.) ;
chp_xf3 = manu chpo p3 1 fx (-1.) ;
pjf_x3 = pjba chp_x3 tbas_m ;
pjf_xf3 = pjba chp_xf3 tbas_m ;
*
ch_x = char (pjf_x1 et pjf_x3) ev_for ;
ch_xf = char (pjf_xf1 et pjf_xf3) ev_frot ;
* 
tchar_x.base_a = ch_g et ch_x et ch_xf ;
*
*********************************************
* conditions initiales 
*********************************************

pk = tbas_m . modes . 3 . point_repere ;

CPID = manu chpo barre 1 alfa 0. ;
CPIV = manu chpo pk 1 alfa qp30 ;

tinit_x = table initial;
       tinit_x . 'DEPLACEMENT' = CPID ;
       tinit_x . 'VITESSE' = CPIV ;
*********************************************
*    Table des r{sultats demand{s
*********************************************
*
*  Table de sortie des variables g{n{ralis{es
   tsort_x = TABLE 'SORTIE' ;
tsorv_x = TABLE 'VARIABLE' ;
           tsort_x.'VARIABLE' = tsorv_x ;
                   tsorv_x.'DEPLACEMENT' = vrai ;
                   tsorv_x.'VITESSE' = faux ;
                   tsorv_x.'ACCELERATION' = FAUX ;
*

**********************************
* execution DYN
* pb si dt2 = 0.01 (kich)
**********************************
DT2 = 0.001 ; nt2 = (2200 - 10)/2 ;nt2 = nt2 *5; NPC = 20 ;
tresu_x = dyne de_vogelaere
           tbas_m tamor
           tchar_x tinit_x
           nt2  DT2 Npc
           tsort_x ;
*

lis_temp = tresu_x . temps_de_sortie ;
**************************************
* graphiques
**************************************

tabsymb . titre . 1 = 'MOT' 'p1 analy' ;
tabsymb . titre . 2 = 'MOT' 'p3' ;
evxp1_ux = evol vert reco tresu_x tbas_m depl p1 ux ;
evxp3_ux = evol rose reco tresu_x tbas_m depl p3 ux ;
si (neg graph 'N') ;
titre ' deplacement ux p1 et p3' ;
dess (evxp1_ux et evxp3_ux) lege tabsymb ;
finsi ;
tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
si (neg graph 'N') ;
titre ' deplacement ux p1 analytique et liaisons' ;
dess (evxp1_ux et t_ux . 2 et t_ux . 1 et t_ux . 3 ) lege tabsymb ;
finsi ;
***
evxp1_uy = evol bleu reco tresu_x tbas_m depl p1 uy ;
evxp3_uy = evol rouge reco tresu_x tbas_m depl p3 uy ;
tabsymb . titre . 2 = 'MOT' 'p3' ;
si (neg graph 'N') ;
titre ' deplacement uy p1 et p3' ;
dess (evxp1_uy et evxp3_uy) lege tabsymb ;
tabsymb . titre . 2 = 'MOT' 'p1 ref dyne' ;
tabsymb . titre . 3 = 'MOT' 'p1 newmod' ;
tabsymb . titre . 4 = 'MOT' 'p1 pas+liai' ;
titre ' deplacement uy p1 analytique et liaisons' ;
dess (evxp1_uy et t_uy . 2 et t_uy . 1 et t_uy . 3) lege tabsymb ;
finsi ;
***

yyy1 = ipol 2.1 evxp1_uy ;
yyy2 = ipol 2.1 t_uy . 2 ;
yyy3 = ipol 2.1 t_uy . 1 ;

err1 =  abs ((yyy1 - yyy2)/yyy1) ; err2 = abs ((yyy1 - yyy3)/yyy1) ;
si ((err1 < 0.12) et (err2 < 0.23)) ;
 erre 0 ;
sinon ;
 erre 5 ;
finsi ; 
***************************
*
fin;











 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer