Télécharger devfb8.eso

Retour à la liste

Numérotation des lignes :

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

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