Télécharger devfb8.eso

Retour à la liste

Numérotation des lignes :

devfb8
  1. C DEVFB8 SOURCE BP208322 20/09/18 21:15:33 10718
  2. C DEVFB7 SOURCE PITO1 97/05/15 13:42:00 2237
  3. SUBROUTINE DEVFB8(ITYP,FTOTB,XPTB,IPALB,IPLIB,XPALB,XVALB,NLIAB,
  4. c & NPLB,IND,PDT,NUML,IERREU)
  5. & NPLB,IND,IND2,PDTS2,NUML,IERREU)
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8 (A-H,O-Z)
  8.  
  9. -INC PPARAM
  10. -INC CCOPTIO
  11. -INC CCREEL
  12. -INC SMLREEL
  13. *--------------------------------------------------------------------*
  14. * *
  15. * Opérateur DYNE : algorithme de Fu - de Vogelaere *
  16. * ________________________________________________ *
  17. * *
  18. * Calcul sur la base B des forces hydrodynamiques engendrées *
  19. * dans un palier par le film fluide sur l'arbre *
  20. * (liaisons de type PALIER) *
  21. * *
  22. * Paramètres: *
  23. * *
  24. * e ITYP type de la liaison (=60 ici). *
  25. * es FTOTB Forces extérieures totalisées sur la base B. *
  26. * e XPTB Tableau des déplacements des points. *
  27. * e IPALB Renseigne sur la liaison. *
  28. * e IPLIB Tableau contenant les numéros "DYNE" de la liaison. *
  29. * e XPALB Tableau contenant les paramètres de la liaison. *
  30. * es XVALB Tableau contenant les variables internes de liaisons. *
  31. * e NLIAB Nombre de liaisons sur la base B. *
  32. * e NPLB Nombre total de points intervenant dans les liaisons. *
  33. * e IND Indice du pas *
  34. * e IND2 Indice du pas precedent *
  35. * e PDTS2 Durée du pas de temps. *
  36. * e NUML Numéro de la liaison. *
  37. * s IERREU Indicateur d'erreur *
  38. * *
  39. * Auteur, date de création: *
  40. * *
  41. * Valérie BOISSON : le 15 mai 1997 : Création (Rhode et Li) *
  42. * Benoit PRABEL : janvier 2015 : correction *
  43. * + ajout palier court *
  44. * *
  45. *--------------------------------------------------------------------*
  46. *
  47. C On fixe localement les nombres maximum de lobes pour un palier
  48. C et de mailles pour un lobe afin de dimensionner les tableaux
  49. C locaux. Ce choix est arbitraire mais doit permettre la resolution
  50. C de la majorite des problemes reels (on trouve rarement des paliers
  51. C de plus de cinq lobes a ce jour). En cas de modification ulterieure,
  52. C il sera obligatoire de mettre a jour les nouvelles valeurs dans la
  53. C procedure RHODELI.
  54. C
  55. INTEGER IPALB(NLIAB,*),IPLIB(NLIAB,*)
  56. REAL*8 XPALB(NLIAB,*),XPTB(NPLB,2,*),FTOTB(NPLB,*)
  57. REAL*8 XVALB(NLIAB,4,*)
  58. LOGICAL ARCPAR
  59. REAL*8 PDT
  60. *
  61. * ----- Récupération des paramètres généraux
  62. *
  63.  
  64. VISCDY = XPALB(NUML,1)
  65. XMASVO = XPALB(NUML,2)
  66. PALM = XPALB(NUML,3)
  67. XLONG = XPALB(NUML,4)
  68. RARBRE = XPALB(NUML,6)
  69. VITROT = XPALB(NUML,7)
  70. EPS1 = XPALB(NUML,8)
  71. PHI1 = XPALB(NUML,9)
  72. c IMOD renseigne sur le type de palier (rodeli ou court ...)
  73. IMOD = IPALB(NUML,5)
  74. C NUMP designe le numero "local" du point support de la liaison
  75. NUMP = IPLIB(NUML,1)
  76. C NUMO designe le numero "local" du point origine de la liaison
  77. * =0 si il n existe pas
  78. NUMO = IPLIB(NUML,2)
  79. *
  80. * ----- Initialisations
  81. *
  82. FNLX=0.D0
  83. FNLY=0.D0
  84. PDT=0.D0
  85.  
  86. ************************************************************************
  87. * CAS DES PALIERS CYLINDRIQUES OU A LOBES
  88. * RESOLU AVEC LE MODELE DE RHODE ET LI
  89. ************************************************************************
  90. IF (IMOD.EQ.1) THEN
  91.  
  92. NLOBES = IPALB(NUML,6)
  93. NPARRE = IPALB(NUML,7)
  94. PRECIS = XPALB(NUML,10)
  95.  
  96. C Soit (R,TETA) le decalage initial du centre du coussinet par rapport
  97. C a l'axe de reference de la structure, exprime en coordonnees polaires :
  98. C R et TETA sont stockees respectivement dans XPALB(NUML,8) et
  99. C XPALB(NUML,9)
  100. *
  101. * ----- Calcul du deplacement et de la vitesse dans le repere local du palier
  102. C
  103. C -------------------> ------------------> -------------------->
  104. C DEPLACEMENT_LOCAL(m) = DECALAGE_COUSSINET + DEPLACEMENT_BASE_B(m)
  105. C
  106. X = EPS1*COS(PHI1)-XPTB(NUMP,1,3)
  107. Y = EPS1*SIN(PHI1)+XPTB(NUMP,1,2)
  108. c
  109. C --------------> -------------->
  110. C VITESSE_LOCALE = VITESSE_BASE_B
  111. C
  112. C DEPL(t) - DEPL(t-1)
  113. C = ---------------------
  114. C PDT
  115. cbp,2020-09 VX = (XPTB(NUMP,IND2,3)-XPTB(NUMP,IND,3))/PDTS2
  116. cbp,2020-09 VY = (XPTB(NUMP,IND,2)-XPTB(NUMP,IND2,2))/PDTS2
  117. VX = -XPTB(NUMP,2,3)
  118. VY = XPTB(NUMP,2,2)
  119. *
  120. * ----- Calcul successif des efforts engendrés par chacun des lobes
  121. *
  122. DO 1 I=1,NLOBES
  123. *
  124. * -- Récupération des paramètres propres aux lobes
  125. *
  126. XJEU = XPALB(NUML,11+NPARRE*(I-1))
  127. RAYLOB = RARBRE+XPALB(NUML,11+NPARRE*(I-1))
  128. cbp ASYM = -XPALB(NUML,14+NPARRE*(I-1))
  129. ASYM = XPALB(NUML,12+NPARRE*(I-1))
  130. PRECHA = XPALB(NUML,13+NPARRE*(I-1))
  131. cbp ANGDEB = XPALB(NUML,12+NPARRE*(I-1))-ASYM
  132. ANGDEB = XPALB(NUML,14+NPARRE*(I-1))
  133. AMPLIT = XPALB(NUML,15+NPARRE*(I-1))
  134. SURREL = XPALB(NUML,16+NPARRE*(I-1))
  135. MLREEL = IPALB(NUML,7+I)
  136. NMAIL = PROG(/1)/2
  137. *
  138. * -- Calcul de la position et la vitesse du centre de la section
  139. * dans le repère local
  140. *
  141. XAD=(X-PRECHA*COS(ASYM))/XJEU
  142. YAD=(Y-PRECHA*SIN(ASYM))/XJEU
  143. VXAD=VX/XJEU
  144. VYAD=VY/XJEU
  145. IERREU=0
  146. ARCPAR = AMPLIT.LT.(2.D0*XPI)
  147. E=XAD*XAD+YAD*YAD
  148. IF(E.GT.1.D0)GOTO 999
  149. * rem : il faudrait mieux limiter XAD YAD (cf. palier court)
  150. *
  151. * -- Calcul des efforts hydrodynamiques engendres par le film fluide
  152. * -- pour le lobe I
  153. *
  154. CALL RHODLI(XAD,YAD,VXAD,VYAD,FX,FY,AMPLIT,ANGDEB,I,XLONG,
  155. & VISCDY,RAYLOB,XJEU,VITROT,PRECIS,NMAIL,PALM,XMASVO,
  156. & ARCPAR,SURREL,PROG)
  157. *
  158. * -- Totalisation des efforts pour le palier dans sa globalite
  159. *
  160. FNLX=FNLX+FX
  161. FNLY=FNLY+FY
  162. *
  163. 1 CONTINUE
  164.  
  165. ************************************************************************
  166. * CAS PALIER COURT
  167. ************************************************************************
  168. c ELSEIF (IMOD.EQ.2.OR.IMOD.EQ.3) THEN
  169. ELSEIF (IMOD.EQ.2) THEN
  170.  
  171. * deplacement X,Y du rotor dans le repere OXY du palier
  172. * X = -z_global
  173. * Y = +y_global
  174. X = -XPTB(NUMP,1,3)
  175. Y = XPTB(NUMP,1,2)
  176. * deplacement X,Y du rotor relatif au stator mobile (dans OXY)
  177. * X = X^rot - X^sta
  178. IF(NUMO.GT.0) THEN
  179. XSTA = -XPTB(NUMO,1,3)
  180. YSTA = XPTB(NUMO,1,2)
  181. X = X+XPTB(NUMO,1,3)
  182. Y = Y-XPTB(NUMO,1,2)
  183. ENDIF
  184. XJEU = XPALB(NUML,10)
  185. c WRITE(ioimp,*) ' x,y^rot=',X,Y,' Jeu=',XJEU
  186. c WRITE(ioimp,*)' x,y^sta=',XSTA,YSTA
  187.  
  188. * vitesse dans le repere OXY : on recupere la position passee
  189. cbp,2020-09 XPAST = -XPTB(NUMP,IND2,3)
  190. cbp,2020-09 YPAST = XPTB(NUMP,IND2,2)
  191. VX = -XPTB(NUMP,2,3)
  192. VY = XPTB(NUMP,2,2)
  193. IF(NUMO.GT.0) THEN
  194. cbp,2020-09 XPAST = XPAST+XPTB(NUMO,IND2,3)
  195. cbp,2020-09 YPAST = YPAST-XPTB(NUMO,IND2,2)
  196. VX = VX+XPTB(NUMO,2,3)
  197. VY = VY-XPTB(NUMO,2,2)
  198. ENDIF
  199. cbp,2020-09 VX = (X-XPAST)/PDTS2
  200. cbp,2020-09 VY = (Y-YPAST)/PDTS2
  201.  
  202. c * prise en compte d'un eventuel defaut d'alignement du coussinet :
  203. c * X = [P]U^global + decalage(defaut)
  204. c IF(ABS(EPS1).GT.EMIN*XJEU) THEN
  205. c X = X + EPS1*COS(PHI1)
  206. c Y = Y + EPS1*SIN(PHI1)
  207. c ENDIF
  208.  
  209. * coordonnees adimensionnees
  210. XAD = X/XJEU
  211. YAD = Y/XJEU
  212. VXAD=VX/XJEU
  213. VYAD=VY/XJEU
  214.  
  215. * Récupération du reste des paramètres du palier
  216. XJEU = XPALB(NUML,10)
  217. ICAVIT = IPALB(NUML,6)
  218. MLREEL = IPALB(NUML,7)
  219. NMAIL = PROG(/1)/2
  220.  
  221. * Appel a la subroutine PALIER
  222. CALL PALIER(X,Y,VX,VY,XAD,YAD,VXAD,VYAD,FX,FY,PDT,ICAVIT,
  223. & XLONG,VISCDY,RARBRE,XJEU,VITROT,NMAIL,PALM,PROG)
  224.  
  225. c IF(NUMO.GT.0) THEN
  226. c FNLX = 0.5D0*FX
  227. c FNLY = 0.5D0*FY
  228. c ELSE
  229. FNLX = FX
  230. FNLY = FY
  231. c ENDIF
  232.  
  233.  
  234. ********************************************************************************
  235. * *
  236. * Pour d'autres types de paliers fluides non definis a ce jour ...
  237. * *
  238. ********************************************************************************
  239. C ELSE IF (IMOD.EQ...) THEN
  240. C
  241. ELSE
  242. WRITE(IOIMP,*) 'MODELE NON RECONNU ',IMOD
  243. CALL ERREUR(21)
  244. RETURN
  245.  
  246. ENDIF
  247. *
  248. * ----- Stockage des variables locales a sortir
  249. *
  250. XVALB(NUML,IND,1) = FNLY
  251. XVALB(NUML,IND,2) = -FNLX
  252. XVALB(NUML,IND,3) = Y
  253. XVALB(NUML,IND,4) = -X
  254. XVALB(NUML,IND,5) = VY
  255. XVALB(NUML,IND,6) = -VX
  256. XVALB(NUML,IND,7) = ((FNLY*VY)+(FNLX*VX))*PDT
  257. IF (XPALB(NUML,5).NE.0) THEN
  258. XPALB(NUML,5) = XPALB(NUML,5) + 0.5D0
  259. IF (IND.EQ.2) WRITE (IOIMP,*) NINT(XPALB(NUML,5)-1)
  260. ENDIF
  261. *
  262. * ----- Totalisation des forces sur la base B
  263. *
  264. FTOTB(NUMP,2) = FTOTB(NUMP,2)+FNLY
  265. FTOTB(NUMP,3) = FTOTB(NUMP,3)-FNLX
  266. IF(NUMO.GT.0) THEN
  267. FTOTB(NUMO,2) = FTOTB(NUMO,2)-FNLY
  268. FTOTB(NUMO,3) = FTOTB(NUMO,3)+FNLX
  269. ENDIF
  270. IF(iimpi.eq.333)
  271. & WRITE(ioimp,*)'X,Y,VX,VY=',X,Y,VX,VY,' --> FX,FY=',FNLX,FNLY
  272.  
  273. GOTO 9999
  274.  
  275. C --> Cas ou l'arbre touche le coussinet
  276. 999 IERREU=1
  277. WRITE (IOIMP,*)'EXCENTRICITE > 1 =',E,X,Y,XJEU,PRECHA,ASYM
  278. write(ioimp,*) 'on met les forces de paliers a 0 !'
  279. XVALB(NUML,IND,1) = 0.D0
  280. XVALB(NUML,IND,2) = 0.D0
  281. *
  282. * ----- Fin !!!
  283. *
  284. 9999 CONTINUE
  285. RETURN
  286. END
  287. *
  288. **********************************************************************
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales