KENNARD ARFIAN W
19/443845/TK/49041
Memasukkan script numpy dan
matplotlib.pyplot. Numpy
import numpy as np digunakan untuk melakukan operasi
matematika dan membuat vector –
import matplotlib.pyplot as plt
vector. Matplotlib.pyplot digunakan
untuk membuat grafik hasil.
# Data
w0 = np.linspace(2100,2500,5)
Memasukkan data – data yang
s0 = 14000 #kg/jam
diketahui
Ts0 = 640 #K
Data yang diketahui dapat langsung
Tw0 = 300 #K dicopy dan paste dari lembar soal
untuk menghindari kesalahan.
D = 0.305 #m
Tsat = 443 #K
Cpw = 1 #kcal/kg/K
A = 60 #m2/kg cairan
P = 8#atm
Mr = 18 #kg/kgmol
n =21
L =4
zspan = np.linspace(0,L,n)
dz = zspan[1] - zspan[0]
def func(zi,Tw,w0):
Mendefinisikan fungsi – fungsi yang
Ts = Ts0 - w0*Cpw/(s0*Cps)*(Tw-Tw0)
diperlukan
dTwdz = (np.pi*h*A*D**2*P*Mr)*(Ts-Tw)/(4*Cpw*R*s0*Ts)
Persamaan yang ada pada soal
return dTwdz ditulis ulang. Persamaan di zona 1
dan zona 2 ditulis secara terpisah
dan direturn sesuai dengan fungsi
def func2(zi,w,w0): masing – masing (dTwdz untuk func
dan dwdz untuk func2).
s = s0 + (w0-w)
dwdz = -np.pi*h*A*D**2*P*Mr*w*(Ts2-Tsat)/(4*R*s*Ts2*(lamda+Cps*(Ts2-Tsat)))
return dwdz
def myRK(IC,w0):
Membuat fungsi Runge Kutta
dstore = np.zeros([n,3])
Jumlah n sudah ditentukan dari soal,
TwRK = dstore[:,0]
yaitu 21. Perlu dibuat matriks untuk
TsRK = dstore[:,1] suhu air, suhu steam, dan juga
massa air. Runge Kutta dijalankan 2
wRK = dstore[:,2]
kali untuk menghitung di zona 1 lalu
TwRK[0] = IC[0] untuk zona 2.
TsRK[0] = IC[1]
wRK[0] = IC[2]
for i in range(n-1):
d = TwRK[i]
z = zspan[i]
k1 = func(z,d,w0)
k2 = func(z+0.5*dz,d+0.5*k1*dz,w0)
k3 = func(z+0.5*dz,d+0.5*k2*dz,w0)
k4 = func(z+dz,d+k3*dz,w0)
TwRK[i+1] = d+(k1+2*k2+2*k3+k4)*dz/6
wRK[i+1] = w0
if TwRK[i+1] >= Tsat:
d2 = wRK[i]
z = zspan[i]
TwRK[i+1] = Tsat
k1 = func2(z,d2,w0)
k2 = func2(z+0.5*dz,d2+0.5*k1*dz,w0)
k3 = func2(z+0.5*dz,d2+0.5*k2*dz,w0)
k4 = func2(z+dz,d2+k3*dz,w0)
wRK[i+1] = d2+(k1+2*k2+2*k3+k4)*dz/6
s = s0 + (w0-wRK[i+1])
return dstore
N =5
Tsstore = np.zeros([n,N])
Wstore = np.zeros([n,N])
for i in range(N):
Twstore[:,i] = myRK(IC[i,:],w0[i])[:,0]
Tsstore[:,i] = myRK(IC[i,:],w0[i])[:,1]
Wstore[:,i] = myRK(IC[i,:],w0[i])[:,2]
#Pembuatan Tabel
tabel = np.zeros([n,4])
tabel[:,0]=zspan
tabel[:,1]=Tsstore[:,0]
tabel[:,2]=Twstore[:,0]
tabel[:,3]=Wstore[:,0]
print(Line)
print('{:^16s}{:^18s}{:^13s}{:^13s}'.format(*Header))
print(Line)
print('{:^16.2f}{:^16.2f}{:^18.2f}{:^13.2f}'.format(*hasil))
print(Line)
leg=[]
for i in range(len(w0)):
leg=np.append(leg,['w ='+str(int(w0[i]))])
#Pembuatan grafik
plt.figure(0)
plt.title('jarak vs Ts')
plt.ylabel('Suhu , K')
plt.legend(leg)
plt.grid()