Télécharger devfb8.eso

Retour à la liste

Numérotation des lignes :

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

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