Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Willy Dinata

19/439732/TK/48462
TUGAS MINGGU 6

# -*- coding: utf-8 -*-


"""
Created on Thu Apr 22 15:22:26 2021

@author: Willy Dinata


NIM: 19/439732/TK/48462
"""

import numpy as np #operasi matematika


import matplotlib.pyplot as plt #menampilkan grafik dan hasil

Langkah 1. Memasukkan data yang diketahui pada soal


#Data
w0 = np.linspace(2100,2500,5)
s0 = 14000 #kg/jam
Ts0 = 640 #K
Tw0 = 300 #K
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
Willy Dinata
19/439732/TK/48462
n = 21
L =4
z = np.linspace(0,L,n)
dz = z[1]-z[0]

Langkah 2. Mendefinisikan fungsi yang diketahui pada soal


def fungsi (zi,Tw, w0): #zona 1
Ts = Ts0-((w0*Cpw)/(s0*Cps))*(Tw-Tw0)
dTwdz = (np.pi*h*A*D**2*P*Mr)*(Ts-Tw)/(4*Cpw*R*s0*Ts)
return dTwdz

def fungsi2 (zi,w,w0): #zona 2


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/(4*R*s*Ts2)*(Ts2-Tsat)/(lamda+Cps*(Ts2-Tsat))
return dwdz

Langkah 3. Mendefinisikan fungsi Runge-Kutta untuk zona 1 dan zona 2


#Metode Runge Kutta
def runge(IC,w0):
y = np.zeros([n,3]) #matriks suhu air, suhu steam, dan massa air
Tw_runge = y[:,0]
Ts_runge = y[:,1]
w_runge = y[:,2]
Tw_runge[0] = IC[0]
Ts_runge[0] = IC[1]
w_runge[0] = IC[2]
for i in range(n-1):
k1 = fungsi(z,Tw_runge[i],w0)
Willy Dinata
19/439732/TK/48462
k2 = fungsi(z+0.5*dz,Tw_runge[i]+0.5*k1*dz,w0)
k3 = fungsi(z+0.5*dz,Tw_runge[i]+0.5*k2*dz,w0)
k4 = fungsi(z+dz,Tw_runge[i]+k3*dz,w0)
Tw_runge[i+1] = Tw_runge[i]+(k1+2*k2+2*k3+k4)*dz/6
w_runge[i+1] = w0
Ts_runge[i+1] = Ts0 - w0*Cpw/(s0*Cps)*(y[i+1,0]-Tw0)

if Tw_runge[i+1] >= Tsat:


Tw_runge[i+1] = Tsat
k1 = fungsi2(z,w_runge[i],w0)
k2 = fungsi2(z+0.5*dz,w_runge[i]+0.5*k1*dz,w0)
k3 = fungsi2(z+0.5*dz,w_runge[i]+0.5*k2*dz,w0)
k4 = fungsi2(z+dz,w_runge[i]+k3*dz,w0)
w_runge[i+1] = w_runge[i]+(k1+2*k2+2*k3+k4)*dz/6
s = s0 + (w0-w_runge[i+1])
Ts_runge[i+1] = Tsat - lamda/Cps*((s-s0)/s) + s0/s*(Ts0-Tsat) - w0*Cpw/(s0*Cps)*(Tsat-
Tw0)
return y

Langkah 4. Membuat wadah hasil untuk suhu air, suhu steam, dan massa air

#Membuat wadah hasil


N =5
IC = np.zeros([len(w0),5])

for i in range(len(w0)):
IC[i,0] = Tw0
IC[i,1] = Ts0
IC[i,2] = w0[i]
Willy Dinata
19/439732/TK/48462
Tw_store = np.zeros([n,5])
Ts_store = np.zeros([n,5])
W_store = np.zeros([n,5])

for i in range(N):
Tw_store[:,i] = runge(IC[i,:],w0[i])[:,0]
Ts_store[:,i] = runge(IC[i,:],w0[i])[:,1]
W_store[:,i] = runge(IC[i,:],w0[i])[:,2]

Langkah 5. Membuat tabel (4 kolom, 21 baris)


#Membuat Tabel
garis = '-'*65
header = ['z, m','Ts, K','Tw, K','Water, kg/hr']
tabel = np.zeros([n,4])
tabel[:,0] = z
tabel[:,1] = Ts_store[:,0]
tabel[:,2] = Tw_store[:,0]
tabel[:,3] = W_store[:,0]

print(garis)
print('{:^16s}{:^18s}{:^13s}{:^13s}'.format(*header))
print(garis)
for line in tabel:
print('{:^16.2f}{:^16.2f}{:^18.2f}{:^13.2f}'.format(*line))
print(garis)

Langkah 6. Membuat grafik dan legenda


#Membuat grafik
legend=[] for i in range(len(w0)):
Willy Dinata
19/439732/TK/48462
legend=np.append(legend,['w ='+str(int(w0[i]))])

plt.figure(0)
plt.plot(z,Ts_store,'-o')
plt.title('jarak vs Ts')
plt.xlabel('jarak, m')
plt.ylabel('Ts, K')
plt.legend(legend)
plt.grid()

You might also like