fenvel

tugas 3a

Apr 8th, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.69 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. #Data soal
  5. Nb=4e4
  6. rhos=2
  7. Nr=11
  8. Rspan=np.linspace(0.1,0.6,Nr)
  9. W=1e5
  10. lamda=100
  11. Cp=1
  12. kx=0.01
  13. theta=200
  14. n=40
  15. tol=1e-6
  16. T0guess=330
  17. eps=0.1
  18.  
  19. #Sub-Routine 1
  20. def fun(To,ri,mo):
  21.     m=4/3*np.pi*ri**3*rhos*Nb
  22.     T=To+lamda*(mo-m)/(W+mo)*Cp
  23.     x=(mo-m)/W
  24.     xs=np.exp(8.8053-3333/T)
  25.     return 1/(xs-x)
  26.  
  27. #Sub-routine 2
  28. def funfun(To,Ro):
  29.     mo=4/3*np.pi*Ro**3*rhos*Nb
  30.     Rispan=np.linspace(0,Ro,n+1)
  31.     dr=Rispan[1]-Rispan[0]
  32.     f=np.zeros(n+1)
  33.     fsim=np.zeros(n+1)
  34.     for i in range(n+1):
  35.         f[i]=fun(To,Rispan[i],mo)
  36.         if i==1 or i==n:
  37.             fsim[i]=f[i]
  38.         elif (-1)**i<0:
  39.             fsim[i]=4*f[i]
  40.         else:
  41.             fsim[i]=2*f[i]
  42.     thetacalc=rhos*dr/3/kx*sum(fsim)
  43.     return (theta-thetacalc)
  44.  
  45.  
  46. #Sub-routine 3
  47. def funfunfun(Ro):
  48.     Told=T0guess
  49.     eror=1
  50.     while eror>tol:
  51.         fold=funfun(Told,Ro)
  52.         dfold=(funfun(Told+eps,Ro)-funfun(Told-eps,Ro))/2/eps
  53.         Tnew=Told-fold/dfold
  54.         eror=np.abs((Told-Tnew)/Told)
  55.         Told=Tnew
  56.     return Tnew
  57.  
  58. #Main Program
  59. Tstore=np.zeros(Nr)
  60. Fx=np.zeros(Nr)
  61. for i in range(Nr):
  62.     Tstore[i]=funfunfun(Rspan[i])
  63.     Fx[i]=funfun(Tstore[i],Rspan[i])
  64.    
  65. #Tabel
  66. tabel=np.zeros([Nr,3])
  67. tabel[:,0],tabel[:,1],tabel[:,2]=Rspan,Tstore,Fx
  68. garis='='*40
  69. print(garis)
  70. header=(['R0 (cm)','T0 opt (K)','Nilai F(x)'])
  71. print('{:^12s}{:^15s}{:^15s}'.format(*header))
  72. print(garis)
  73. for baris in tabel:
  74.     print('{:^12.2f}{:^15.2f}{:^15.2e}'.format(*baris))
  75. print(garis)
  76.  
  77. #plotting
  78. plt.plot(Rspan,Tstore,'-or')
  79. plt.grid()
  80. plt.ylabel('Nilai T0 optimum (K)')
  81. plt.xlabel('jejari awal partikel (cm)')
  82. plt.show()
Add Comment
Please, Sign In to add comment