Anda di halaman 1dari 4

PENUGASAN ALGORITMA 6

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

Cps = 0.5 #kcal/kg/K

Cpw = 1 #kcal/kg/K

lamda = 488 #kcal/kg

h = 900 #kcal/jam/ m2/K

A = 60 #m2/kg cairan

R = 0.082 #m2.atm/ kgmol/K

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)

Ts2 = Tsat - lamda/Cps*((s-s0)/s) + s0/s*(Ts0-Tsat) -


w0*Cpw/(s0*Cps)*(Tsat-Tw0)

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

TsRK[i+1] = Ts0 - w0*Cpw/(s0*Cps)*(dstore[i+1,0]-Tw0)

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])

TsRK[i+1] = Tsat - lamda/Cps*((s-s0)/s) + s0/s*(Ts0-Tsat) - w0*Cpw/(s0*Cps)*(Tsat-Tw0)

return dstore

N =5

IC = np.zeros([len(w0),N]) Membuat main program


for i in range(len(w0)): Dibuat wadah untuk suhu air, suhu
steam, dan massa air untuk
IC[i,0] = Tw0
menyediakan tempat hasil.
IC[i,1] = Ts0
Untuk mendapatkan hasil dari nilai –
IC[i,2] = w0[i] nilai di atas, diperlukan pemanggilan
fungsi dengan range sebesar N = 5.
Twstore = np.zeros([n,N])

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

Line='-'*50 Membuat tabel


Header=['z(m)','Ts(K)','Tw(K)','Water(kg/hr)']

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)

for hasil in tabel:

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.plot(zspan,Tsstore,'-o') Membuat grafik

plt.title('jarak vs Ts')

plt.xlabel('Panjang Reaktor, cm')

plt.ylabel('Suhu , K')

plt.legend(leg)

plt.grid()

Anda mungkin juga menyukai