Télécharger devfb8.eso

Retour à la liste

Numérotation des lignes :

  1. C DEVFB8 SOURCE BP208322 15/07/22 21:15:20 8586
  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. *
  57. * ----- Récupération des paramètres généraux
  58. *
  59. VISCDY = XPALB(NUML,1)
  60. XMASVO = XPALB(NUML,2)
  61. PALM = XPALB(NUML,3)
  62. XLONG = XPALB(NUML,4)
  63. RARBRE = XPALB(NUML,6)
  64. VITROT = XPALB(NUML,7)
  65. EPS1 = XPALB(NUML,8)
  66. PHI1 = XPALB(NUML,9)
  67. c IMOD renseigne sur le type de palier (rodeli ou court ...)
  68. IMOD = IPALB(NUML,5)
  69. C NUMP designe le numero "local" du point support de la liaison
  70. NUMP = IPLIB(NUML,1)
  71. C NUMO designe le numero "local" du point origine de la liaison
  72. * =0 si il n existe pas
  73. NUMO = IPLIB(NUML,2)
  74. *
  75. * ----- Initialisations
  76. *
  77. FNLX=0.D0
  78. FNLY=0.D0
  79.  
  80. ************************************************************************
  81. * CAS DES PALIERS CYLINDRIQUES OU A LOBES
  82. * RESOLU AVEC LE MODELE DE RHODE ET LI
  83. ************************************************************************
  84. IF (IMOD.EQ.1) THEN
  85.  
  86. NLOBES = IPALB(NUML,6)
  87. NPARRE = IPALB(NUML,7)
  88. PRECIS = XPALB(NUML,10)
  89.  
  90. C Soit (R,TETA) le decalage initial du centre du coussinet par rapport
  91. C a l'axe de reference de la structure, exprime en coordonnees polaires :
  92. C R et TETA sont stockees respectivement dans XPALB(NUML,8) et
  93. C XPALB(NUML,9)
  94. *
  95. * ----- Calcul du deplacement et de la vitesse dans le repere local du palier
  96. C
  97. C -------------------> ------------------> -------------------->
  98. C DEPLACEMENT_LOCAL(m) = DECALAGE_COUSSINET + DEPLACEMENT_BASE_B(m)
  99. C
  100. X = EPS1*COS(PHI1)-XPTB(NUMP,IND,3)
  101. Y = EPS1*SIN(PHI1)+XPTB(NUMP,IND,2)
  102. C --------------> -------------->
  103. C VITESSE_LOCALE = VITESSE_BASE_B
  104. C
  105. C DEPL(t) - DEPL(t-1)
  106. C = ---------------------
  107. C PDT
  108. C
  109. c IF (IND.EQ.2 .OR. IND.EQ.3) THEN
  110. c VX = (XPTB(NUMP,IND+1,3)-XPTB(NUMP,IND,3))/PDT*2.D0
  111. c VY = (XPTB(NUMP,IND,2)-XPTB(NUMP,IND+1,2))/PDT*2.D0
  112. c ELSE
  113. c VX = (XPTB(NUMP,IND+2,3)-XPTB(NUMP,IND,3))/PDT
  114. c VY = (XPTB(NUMP,IND,2)-XPTB(NUMP,IND+2,2))/PDT
  115. c ENDIF
  116. VX = (XPTB(NUMP,IND2,3)-XPTB(NUMP,IND,3))/PDTS2
  117. VY = (XPTB(NUMP,IND,2)-XPTB(NUMP,IND2,2))/PDTS2
  118. *
  119. * ----- Calcul successif des efforts engendrés par chacun des lobes
  120. *
  121. DO 1 I=1,NLOBES
  122. *
  123. * -- Récupération des paramètres propres aux lobes
  124. *
  125. XJEU = XPALB(NUML,11+NPARRE*(I-1))
  126. RAYLOB = RARBRE+XPALB(NUML,11+NPARRE*(I-1))
  127. cbp ASYM = -XPALB(NUML,14+NPARRE*(I-1))
  128. ASYM = XPALB(NUML,12+NPARRE*(I-1))
  129. PRECHA = XPALB(NUML,13+NPARRE*(I-1))
  130. cbp ANGDEB = XPALB(NUML,12+NPARRE*(I-1))-ASYM
  131. ANGDEB = XPALB(NUML,14+NPARRE*(I-1))
  132. AMPLIT = XPALB(NUML,15+NPARRE*(I-1))
  133. SURREL = XPALB(NUML,16+NPARRE*(I-1))
  134. NMAIL = IPALB(NUML,7+I)
  135. *
  136. * -- Calcul de la position et la vitesse du centre de la section
  137. * dans le repère local
  138. *
  139. XAD=(X-PRECHA*COS(ASYM))/XJEU
  140. YAD=(Y-PRECHA*SIN(ASYM))/XJEU
  141. VXAD=VX/XJEU
  142. VYAD=VY/XJEU
  143. IERREU=0
  144. ARCPAR = AMPLIT.LT.(2.D0*XPI)
  145. E=XAD*XAD+YAD*YAD
  146. IF(E.GT.1.D0)GOTO 999
  147. * rem : il faudrait mieux limiter XAD YAD (cf. palier court)
  148. *
  149. * -- Calcul des efforts hydrodynamiques engendres par le film fluide
  150. * -- pour le lobe I
  151. *
  152. CALL RHODLI(XAD,YAD,VXAD,VYAD,FX,FY,AMPLIT,ANGDEB,I,XLONG,
  153. & VISCDY,RAYLOB,XJEU,VITROT,PRECIS,NMAIL,PALM,XMASVO,
  154. & ARCPAR,SURREL)
  155. *
  156. * -- Totalisation des efforts pour le palier dans sa globalite
  157. *
  158. FNLX=FNLX+FX
  159. FNLY=FNLY+FY
  160. *
  161. 1 CONTINUE
  162.  
  163. ************************************************************************
  164. * CAS PALIER COURT
  165. ************************************************************************
  166. c ELSEIF (IMOD.EQ.2.OR.IMOD.EQ.3) THEN
  167. ELSEIF (IMOD.EQ.2) THEN
  168.  
  169. * deplacement X,Y du rotor dans le repere OXY du palier
  170. * X = -z_global
  171. * Y = +y_global
  172. X = -XPTB(NUMP,IND,3)
  173. Y = XPTB(NUMP,IND,2)
  174. * deplacement X,Y du rotor relatif au stator mobile (dans OXY)
  175. * X = X^rot - X^sta
  176. IF(NUMO.GT.0) THEN
  177. XSTA = -XPTB(NUMO,IND,3)
  178. YSTA = XPTB(NUMO,IND,2)
  179. X = X+XPTB(NUMO,IND,3)
  180. Y = Y-XPTB(NUMO,IND,2)
  181. ENDIF
  182. XJEU = XPALB(NUML,10)
  183. c WRITE(ioimp,*) ' x,y^rot=',X,Y,' Jeu=',XJEU
  184. c WRITE(ioimp,*)' x,y^sta=',XSTA,YSTA
  185.  
  186. * vitesse dans le repere OXY : on recupere la position passee
  187. c IF (IND.EQ.2 .OR. IND.EQ.3) THEN
  188. c INDP1 = IND+1
  189. c PDT1 = 0.5D0*PDT
  190. c ELSE
  191. c INDP1 = IND+2
  192. c PDT1 = PDT
  193. c ENDIF
  194. c XPAST = -XPTB(NUMP,INDP1,3)
  195. c YPAST = XPTB(NUMP,INDP1,2)
  196. c IF(NUMO.GT.0) THEN
  197. c XPAST = XPAST+XPTB(NUMO,INDP1,3)
  198. c YPAST = YPAST-XPTB(NUMO,INDP1,2)
  199. c ENDIF
  200. c VX = (X-XPAST)/PDT1
  201. c VY = (Y-YPAST)/PDT1
  202. XPAST = -XPTB(NUMP,IND2,3)
  203. YPAST = XPTB(NUMP,IND2,2)
  204. IF(NUMO.GT.0) THEN
  205. XPAST = XPAST+XPTB(NUMO,IND2,3)
  206. YPAST = YPAST-XPTB(NUMO,IND2,2)
  207. ENDIF
  208. VX = (X-XPAST)/PDTS2
  209. VY = (Y-YPAST)/PDTS2
  210.  
  211. c * prise en compte d'un eventuel defaut d'alignement du coussinet :
  212. c * X = [P]U^global + decalage(defaut)
  213. c IF(ABS(EPS1).GT.EMIN*XJEU) THEN
  214. c X = X + EPS1*COS(PHI1)
  215. c Y = Y + EPS1*SIN(PHI1)
  216. c ENDIF
  217.  
  218. * coordonnees adimensionnees
  219. XAD = X/XJEU
  220. YAD = Y/XJEU
  221. VXAD=VX/XJEU
  222. VYAD=VY/XJEU
  223.  
  224. * Récupération du reste des paramètres du palier
  225. XJEU = XPALB(NUML,10)
  226. ICAVIT = IPALB(NUML,6)
  227. NMAIL = IPALB(NUML,7)
  228.  
  229. * Appel a la subroutine PALIER
  230. CALL PALIER(X,Y,VX,VY,XAD,YAD,VXAD,VYAD,FX,FY,PDT,ICAVIT,
  231. & XLONG,VISCDY,RARBRE,XJEU,VITROT,NMAIL,PALM)
  232.  
  233. c IF(NUMO.GT.0) THEN
  234. c FNLX = 0.5D0*FX
  235. c FNLY = 0.5D0*FY
  236. c ELSE
  237. FNLX = FX
  238. FNLY = FY
  239. c ENDIF
  240.  
  241.  
  242. ********************************************************************************
  243. * *
  244. * Pour d'autres types de paliers fluides non definis a ce jour ...
  245. * *
  246. ********************************************************************************
  247. C ELSE IF (IMOD.EQ...) THEN
  248. C
  249. ELSE
  250. WRITE(IOIMP,*) 'MODELE NON RECONNU ',IMOD
  251. CALL ERREUR(21)
  252. RETURN
  253.  
  254. ENDIF
  255. *
  256. * ----- Stockage des variables locales a sortir
  257. *
  258. XVALB(NUML,IND,1) = FNLY
  259. XVALB(NUML,IND,2) = -FNLX
  260. XVALB(NUML,IND,3) = Y
  261. XVALB(NUML,IND,4) = -X
  262. XVALB(NUML,IND,5) = VY
  263. XVALB(NUML,IND,6) = -VX
  264. XVALB(NUML,IND,7) = ((FNLY*VY)+(FNLX*VX))*PDT
  265. IF (XPALB(NUML,5).NE.0) THEN
  266. XPALB(NUML,5) = XPALB(NUML,5) + 0.5D0
  267. IF (IND.EQ.2) WRITE (IOIMP,*) NINT(XPALB(NUML,5)-1)
  268. ENDIF
  269. *
  270. * ----- Totalisation des forces sur la base B
  271. *
  272. FTOTB(NUMP,2) = FTOTB(NUMP,2)+FNLY
  273. FTOTB(NUMP,3) = FTOTB(NUMP,3)-FNLX
  274. IF(NUMO.GT.0) THEN
  275. FTOTB(NUMO,2) = FTOTB(NUMO,2)-FNLY
  276. FTOTB(NUMO,3) = FTOTB(NUMO,3)+FNLX
  277. ENDIF
  278. IF(iimpi.eq.333)
  279. & WRITE(ioimp,*)'X,Y,VX,VY=',X,Y,VX,VY,' --> FX,FY=',FNLX,FNLY
  280.  
  281. GOTO 9999
  282.  
  283. C --> Cas ou l'arbre touche le coussinet
  284. 999 IERREU=1
  285. WRITE (IOIMP,*)'EXCENTRICITE > 1 =',E,X,Y,XJEU,PRECHA,ASYM
  286. write(ioimp,*) 'on met les forces de paliers a 0 !'
  287. XVALB(NUML,IND,1) = 0.D0
  288. XVALB(NUML,IND,2) = 0.D0
  289. *
  290. * ----- Fin !!!
  291. *
  292. 9999 CONTINUE
  293. RETURN
  294. END
  295. *
  296. **********************************************************************
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  

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