Aplikasi Matlab pada Teknologi Proses
Aplikasi Matlab pada Teknologi Proses
Disampaikan pada coaching Matlab STTN-BATAN Yogyakarta
Disampaikan pada coaching Matlab STTN-BATAN Yogyakarta
Oleh
Oleh
Gde Pandhe Wisnu Suyantara
Gde Pandhe Wisnu Suyantara
visnhu.suyantara@gmail.com visnhu.suyantara@gmail.com
Sekolah Tinggi Teknologi Nuklir
Sekolah Tinggi Teknologi Nuklir
Badan Tenaga Nuklir Nasional
Badan Tenaga Nuklir Nasional
Yogyakarta
Yogyakarta
2011
2011
Daftar Isi
Daftar Isi
DaftarDaftar Isi Isi ... ... ii 1.
1. Review Tools Review Tools Box Box pada pada Matlab Matlab ... ... 11 2.
2. Aplikasi Matlab Aplikasi Matlab pada pada Teknologi Teknologi Proses Proses ... 3... 3
2.1.
2.1. Waktu untuk mencapai ketinggian tertentu pada tangki bocor (integrasi numeris) Waktu untuk mencapai ketinggian tertentu pada tangki bocor (integrasi numeris) ... 3... 3 2.2.
2.2. Waktu steady state tangki bocor (mencari nilai nol Waktu steady state tangki bocor (mencari nilai nol fungsi/root finding problems dan integrasi numeris)fungsi/root finding problems dan integrasi numeris) ... 7 ... 7 2.3.
2.3. Kecepatan dan debit aliran cairan diantara Kecepatan dan debit aliran cairan diantara dua tangki (root finding problems) ...dua tangki (root finding problems) ... ... 10... 10 2.4.
2.4. Pencampuran di dalam tanPencampuran di dalam tan gki dengan pemanas (penyelesaian persamaan diferensial ordiner simultan)gki dengan pemanas (penyelesaian persamaan diferensial ordiner simultan) ... 14 ... 14 2.5.
2.5. Distribusi suhu pada batang Distribusi suhu pada batang logam diantara dua dinding panas logam diantara dua dinding panas (penyelesaian persamaan diferens(penyelesaian persamaan diferensialial ordiner dengan permasalahan nilai batas, boundary value proble
ordiner dengan permasalahan nilai batas, boundary value problem)...m)... ... 20... 20 2.6.
2.6. Pengeringan padatan silinder-penyelesaian persamaan diferensial parsial (PDP) ...Pengeringan padatan silinder-penyelesaian persamaan diferensial parsial (PDP) ... ... 25... 25 2.7.
2.7. Penentuan order reaksPenentuan order reaksi dan konstanta kecepatan reaksi...i dan konstanta kecepatan reaksi... ... 32... 32
3.
3. Latihan ...Latihan ... ... 3636
3.1.
3.1. Penentuan dew point campuran ... 36Penentuan dew point campuran ... 36 3.2.
3.2. Adsorpsi se Adsorpsi senyawa limbah nyawa limbah ... ... ... ... 37 ... 37 3.3.
3.3. Reaktor tabung non-adiabatis dan Reaktor tabung non-adiabatis dan non-isotermal (penyelesaian persamaan diferensial ordinernon-isotermal (penyelesaian persamaan diferensial ordiner
simultan) ... 37 simultan) ... 37
1.
1. Review Tools Box pada Matlab
Review Tools Box pada Matlab
FungsiFungsi DeskripsiDeskripsi Optimasi dan
Optimasi dan root finding problemroot finding problem
Fminbnd
Fminbnd Minimasi fungsi nonlinear skalar pada batas-batas tertentuMinimasi fungsi nonlinear skalar pada batas-batas tertentu Fminsearch
Fminsearch Minimasi fungsi nonlinear multidimensi tak berbatas denganMinimasi fungsi nonlinear multidimensi tak berbatas dengan
menggunakan metode pencarian langsung Nelder-Mead menggunakan metode pencarian langsung Nelder-Mead
Fzero
Fzero Pencarian nilai-nilai pembuat nol fungsiPencarian nilai-nilai pembuat nol fungsi
Integrasi Numerik Integrasi Numerik
Quad
Quad Integrasi numerik dengan metode berderajat rendahIntegrasi numerik dengan metode berderajat rendah Quadl
Quadl Integrasi numerik dengan metode berderajat lebih tinggiIntegrasi numerik dengan metode berderajat lebih tinggi Dblquad
Dblquad Integrasi numerik untuk integral gandaIntegrasi numerik untuk integral ganda Triplequad
Triplequad Integrasi numerik untuk integral tingkat tigaIntegrasi numerik untuk integral tingkat tiga Trapz
Trapz Integrasi numerik dengan metode trapezoidalIntegrasi numerik dengan metode trapezoidal
Plotting & Grafik Plotting & Grafik
Ezplot
Ezplot Menggambar grafik fungsi 2DMenggambar grafik fungsi 2D ezplot3
ezplot3 Menggambar grafik fungsi parametrik 3DMenggambar grafik fungsi parametrik 3D Ezpolar
Ezpolar Menggambar grafik fungsi polarMenggambar grafik fungsi polar Ezcountour
Ezcountour Menggambar konturMenggambar kontur Ezcountourf
Ezcountourf Menggambar kontur berisiMenggambar kontur berisi Ezmesh
Ezmesh Menggambar kurva permukaan 3DMenggambar kurva permukaan 3D Ezmeshc
Ezmeshc Menggambar kurva permukaan dengan konturMenggambar kurva permukaan dengan kontur Ezsurf
Ezsurf Menggambar permukaan 3D berwarnaMenggambar permukaan 3D berwarna Ezsurfc
Ezsurfc Menggmabar permukaan 3D dengan konturMenggmabar permukaan 3D dengan kontur Fplot
Fplot Menggambar fungsi 2DMenggambar fungsi 2D
Solver untuk Persamaan Differensial (PD) Solver untuk Persamaan Differensial (PD)
PD Ordiner dengan masalah
PD Ordiner dengan masalah initial valueinitial value (nilai awal) (nilai awal)
ode45
ode45 Menyelesaikan PDO non-stiff dengan metode berderajat menengahMenyelesaikan PDO non-stiff dengan metode berderajat menengah ode23
ode23 Menyelesaikan PDO non-stiff dengan metode berderajat rendahMenyelesaikan PDO non-stiff dengan metode berderajat rendah ode113
ode113 Menyelesaikan PDO non-stiff dengan metode berderajat yangMenyelesaikan PDO non-stiff dengan metode berderajat yang
ditentukan ditentukan
ode23t
ode23t Menyelesaikan PDO stiff dan persamaan aljabar diferensialMenyelesaikan PDO stiff dan persamaan aljabar diferensial
berindeks 1 dengan metode trapezoidal berindeks 1 dengan metode trapezoidal
ode15s
bvp4c
bvp4c Menyelesaikan PDO dengan BVP dua titik denganMenyelesaikan PDO dengan BVP dua titik dengan collocationcollocation
PD Parsial 1D PD Parsial 1D
pdepe
pdepe Menyelesaikan PD Parsial parabolic-eliptik dengan masalah nilaiMenyelesaikan PD Parsial parabolic-eliptik dengan masalah nilai
awal awal
Fungsi-fungsi dasar Fungsi-fungsi dasar
abs
abs Nilai absolut Nilai absolut cumprod
cumprod Produk kumulatif dari elemen-elemenProduk kumulatif dari elemen-elemen cumsum
cumsum Produk kumulatif dari penjumlahan elemenProduk kumulatif dari penjumlahan elemen cumtrapz
cumtrapz Kumulatif integrasi numerik dengan metode trapezoidalKumulatif integrasi numerik dengan metode trapezoidal max
max Komponen terbesarKomponen terbesar mean
mean Nilai rerata Nilai rerata median
median Nilai tengah Nilai tengah min
min Komponen terkecilKomponen terkecil prod
prod Produk dari elemen-elemenProduk dari elemen-elemen sort
sort Menyusun elemen-elemen array dengan urutan semakin naik atauMenyusun elemen-elemen array dengan urutan semakin naik atau
turun turun
std
std Standar deviasiStandar deviasi sum
sum Jumlah dari elemen-elemenJumlah dari elemen-elemen
Lebih lengkap lihat pada ketik
2. Aplikasi Matlab pada Teknologi Proses
2.1.
Waktu untuk mencapai ketinggian tertentu pada tangki bocor (integrasi
numeris)
Suatu tangki kosong kemudian disi cairan A dengan debit Fin m3/jam. Pada saat yang bersamaan bagian dasar tangki mengalami kebocoran sebesar d cm dengan kecepatan cairan
keluar sebesar v m/s yang merupakan fungsi dari tinggi cairan di dalam tangki (h). v sebagai fungsi h dapat didekati dengan persamaan berikut :
(1.1)
Dengan g adalah percepatan gravitasi bumi yang besarnya 10 m/s2. Ingin diketahui berapa lama waktu yang diperlukan agar tinggi cairan di dalam tangki mencapai 0,5 m ? Asumsikan bahwa densitas cairan tidak mengalami perubahan.
Fin=15 m3/jam
Fout m3/jam D= 3 m
d= 3 cm
Gambar 1. Sistem untuk kasus 1 dan kasus 2
Diketahui:
Dari neraca massa di dalam tangki diperoleh persamaan sebagai berikut :
(1.2) dengan
; ;
Penyelesaian
Pada saat t=0 maka h=0 Pada saat t=t maka h=0,5
Menghasilkan persamaan sebagai berikut :
(1.4) Algoritma pemrogramannya adalah sebagai berikut:
Input Data Fin, g, D, d,
h
Subroutine function t=integ_fun(h) Hitung A, A0, v, Fout, dan t
Perhitungan Selesai Mulai Perhitungan integrasi integ_fun t=quadl(@integ_fun,0,h) t h
Gambar 2. Algoritma program untuk kasus 1
Main program run_integ_fun % Kasus 1
% Menghitung waktu pengisian tangki % ================================== clc
clear all
% definisi global variabel
% ================================== global Fin D d g % Input Data % ================================== Fin=15/3600; % m3/jam to m3/s D=3; % m d=3/100; % cm to m g=10; % m/s2
% Batas integrasi % ================================== h=0.5; % Integrasi numeris % ================================== t=quadl(@integ_fun,0,h)
% Tampilan dalam bentuk grafik
% ================================== run_fun_ode Subroutine integ_fun function t=integ_fun(h) global Fin D d g A=pi*D^2/4; A0=pi*d^2/4; v=sqrt(2*g.*h); Fout=A0*v; t=A./(Fin-Fout);
Program menampilkan grafik run_fun_ode % Kasus 1 & 2
% Menampilkan grafik h versus t
% ================================== % Input Data % ================================== tf=12*3600; % jam to s [ts,hs]=ode45(@fun_ode,[0,tf],[0]); plot(t/3600,h,'o',ts/3600,hs) xlabel('waktu, jam') ylabel('tinggi cairan, m') legend('hasil hitungan','Location','Best')
A=pi*D^2/4; A0=pi*d^2/4; v=sqrt(2*g.*h); Fout=A0*v; dhdt=(Fin-Fout)/A; Hasil
Waktu yang diperlukan hingga tinggi cairan = 0,50 m adalah 0,38 jam
2.2.
Waktu steady state tangki bocor (mencari nilai nol fungsi/root finding
problems dan integrasi numeris)
Sama seperti pada Kasus 1, hanya saja ingin dicari berapa lama waktu yang diperlukan agar kondisi di dalam tangki mencapai steady state (tinggi cairan didalam tangki tetap)?
Penyelesaian
Steady state digambarkan sebagai kondisi dimana tinggi cairan di dalam tangki tetap. Pada gambar 3, kondisi steady tercapai pada saat dh/dt=0 sehingga dari persamaan (1.2)
(2.1) Terlebih dahulu dicari berapa nilai h yang memenuhi persamaan (2.1). Kemudian nilai h yang diperoleh digunakan sebagai kondisi batas atas persamaan (1.4) untuk mencari waktu yang diperlukan mencapai ketinggian h steady state dengan cara yang sama seperti pada kasus 1.
Input Data Fin, g, D, d
Hitung h pada saat dh/dt=0 sebagai nilai batas integrasi
h=fzero(@steady_state,h0)
Subroutine function t=integ_fun(h) Hitung A, A0, v, Fout, dan t
Perhitungan Selesai Mulai Perhitungan integrasi integ_fun t=quadl(@integ_fun,0,h) t h h f Subroutine function f=steady_state(h) Hitung A, A0, v, Fout, dan f
Main program run_integ_fun_2 % Kasus 2
% Menghitung waktu steady state
% ================================== clc
clear all
% definisi global variabel
% ================================== global Fin D d g % Input Data % ================================== Fin=15/3600; % m3/jam to m3/s D=3; % m d=3/100; % cm to m g=10; % m/s2
% Menghitung batas integrasi
% ================================== h=fzero(@steady_state,1);
% Integrasi numeris
% ================================== t=quadl(@integ_fun,0,0.999*h)
% Tampilan dalam bentuk grafik
% ================================== run_fun_ode Subroutine steady_state function f=steady_state(h) global Fin D d g A=pi*D^2/4; A0=pi*d^2/4; v=sqrt(2*g.*h); Fout=A0*v; f=A./(Fin-Fout); Hasil
2.3.
Kecepatan dan debit aliran cairan diantara dua tangki ( root finding
problems)
11
2
z
1z
2v,Q
D, Le
Gambar 6. Sistem untuk kasus 3 : pengaliran cairan antara dua tangki
Suatu cairan akan dialirkan dari tangki 1 menuju tangki 2 melalui pipa dengan diameter D dengan bantuan pompa. Panjang ekuivalen pipa, Le, diketahui. Karakteristik pompa sentrifugal yang dipakai berupa hubungan antara head pompa (Hm, cm) dengan debit (Q, cm3/detik) dapat didekati dengan persamaan :
(3.1) Ingin dihitung kecepatan cairan di dalam pipa (v) dan debit aliran (Q)
Diketahui:
Persamaan Bernoulli
(3.2) P1=P2=1 atm. Asumsi bahwa diameter tangki cukup besar sehingga v1 dan v2 dapat dianggap nol,
maka persamaan tersebut menjadi :
(3.3)
1
W.B. Sediawan dan A. Prasetya, 1997,”Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia”, hal.115-117, Penerbit Andi : Yogyakarta.
Dengan :
(3.4) (3.5) (3.6) (3.7) Sedangkan debit aliran dapat dihitung dengan persamaan berikut:
(3.8) Diketahui harga-harga: ρ=1 g/cm3; µ=0,01 g/cm/s; g=981 cm/s2 ; z1=300 cm; z2=800 cm; D=4 cm; Le=20000 cm. Objective function (3.9) Penyelesaian
Harga v dapat ditentukan melalui prosedur trial and error (coba-coba) dengan memasukkan nilai v ke dalam persamaan f obj diatas hingga diperoleh nilai f obj(v)=0
Algoritma perhitungan dan programnya pada gambar 7
Main programpump1 % Kasus 3
% Menghitung v dan Q pada pengaliran cairan
% ================================================ clc
clear
% Definisi global variabel
% ================================================ global g Z1 Z2 Le rho miu D
Z2=800; % cm rho=1; % g/cm3 miu=0.01; % g/cm/s
D=4; % cm
%Nilai v trial awal
% ================================================ v0=200;
% Mencari nilai nol dari fungsi tujuan % (objective function)
% ================================================ v=fzero(@obj_fun,v0);
% Hitung debit aliran
% ================================================ Q=pi/4*D^2*v;
% Tampilkan hasil
% ================================================ fprintf(' kecepatan cairan (v) = %6.4f cm/s \n',v) fprintf(' debit cairan (Q) = %6.4f cm3/s \n',Q)
Subroutine obj_fun
function fobj=obj_fun(v) global g Z1 Z2 Le rho miu D Q=pi/4*D^2*v; Hm=3718.5-2.3496*Q+7.8474e-4*Q^2-9.5812e-8*Q^3; Re=rho*v*D/miu; f=0.0596./Re.^0.215; F=f*Le*v^2/2/g/D; W=-Hm; fobj=Z1-Z2-F-W; Hasil kecepatan cairan (v) = 227.6735 cm/s debit cairan (Q) = 2861.0300 cm3/s
Mulai perhitungan Input data µ, ρ, g, z1, z2, D, Le Masukkan nilai vtrial Hitung Q=f(vtrial) Hitung Hm=f(Q) Hitung Re=f(v) Hitung f=f(Re) Hitung vhitung=f(Hm,f,vtrial)
vhitung=vtrial?
Perhitungan selesai
Ya
Tidak
coba nilai v baru
Mulai perhitungan Input data µ, ρ, g, z1, z2, D, Le, vtrial Hitung v v=fzero(@obj_fun,vtrial) Hitung Q=f(v) Perhitungan selesai Subroutine function fobj=obj_fun(v) Hitung Q=f(vtrial) Hitung Hm=f(Q) Hitung Re=f(v) Hitung f=f(Re) Hitung fobj(v)
Langkah Perhitungan Manual Algoritma Program
2.4.
Pencampuran di dalam tangki dengan pemanas (penyelesaian
persamaan diferensial ordiner simultan)
C1,kg/m3 Fv1, m3/jam T1, oC Cp1, J/kg/oC Fs, kg/jam Ts,oC C2,kg/m3 Fv2, m3/jam T2, oC Cp2, J/kg/oC C,kg/m3 Fv, m3/jam T,oC Cp,J/kg/oC Fs, kg/jam Ts, oC U, watt/m2/oC A, m2 C, kg/m3 V, m3 T,oC
Gambar 8. Sistem tangki pencampuran dengan pemanas
Sebuah tangki dilengkapi dengan pengaduk dan pemanas akan digunakan untuk mencampur cairan B berkonsentrasi C1 dan bersuhu T1 dengan cairan B berkonsentrasi C2 dan bersuhu T2.
Campuran keluar tangki dengan konsentrasi C dan suhu T. Untuk mencapai suhu T, fluida pemanas sebanyak Fs dengan suhu Ts, dialirkan melalui koil pemanas yang sepenuhnya
terendam di dalam cairan B. Ingin diketahui bagaimanakah profil suhu dan konsentrasi terhadap waktu jika tangki dioperasikan selama 3 jam. Diketahui mula-mula di dalam tangki ada sebanyak V cairan A dengan suhu T0 dan konsentrasi C0. Nilai kapasitas panas cairan dapat dianggap
tetap. Diketahui:
C1= 10 kg/m3; C2= 2 kg/m3; C0 = 8 kg/m3; T1 = 35oC; T2 = 95oC; Ts = 120oC; T0 = 35oC; Fv1
= 5 m3/jam; Fv2 = 3 m3/jam; Fv= 5 m3/jam; Fs = 60 kg/jam; V =1 m3 ; U=15 watt/m2/oC ; A=25 m2; Cp=Cp1=Cp2= 3 J/kg/ oC
Neraca massa total
kecepatan massa masuk- kecepatan massa keluar = kecepatan massa terakumulasi
(4.1) Jika densitas cairan dapat dianggap konstan maka persamaan tersebut menjadi:
(4.2) Kondisi awal:
Pada t=0 maka V=V (4.3)
Neraca massa komponen
kecepatan B masuk- kecepatan B keluar = kecepatan B terakumulasi
(4.4)
(4.5) Kondisi awal:
Pada t=0 maka C=C0 (4.6)
Neraca panas
Kondisi batas:
Pada t=0 maka T=T0 (4.8)
Penyelesaian
Diperoleh persamaan diferensial ordiner simultan dengan permasalahan kondisi awal sebagai berikut:
Kondisi awal
Pada t=0 maka V=V;C=C0,T=T0
Untuk menyelesaikan ketiga persamaan tersebut secara simultan maka dapat digunakan metode Runge-Kutta. Di dalam toolbox Matlab, metode ini digunakan dalamode45. Sintaks ode45 adalah sebagai berikut :
[t,Y] = ode45(odefun,tspan,y0)
[t,Y] = ode45(odefun,tspan,y0,options)
[t,Y,TE,YE,IE] = ode45(odefun,tspan,y0,options) sol = ode45(odefun,[t0 tf],y0...)
Algoritma pemrograman penyelesaian permasalahan ini diberikan pada gambar 9.
Main programmix_heat
% Kasus 4
% Pencampuran cairan dalam tangki berpengaduk dengan koil pemanas % ===============================================================
% definisi global variabel
% =============================================================== global Fv1 Fv2 Fv C1 C2
global T1 T2 Ts Tref U A Cp
% input data
C1 = 10; % kg/m3 C2 = 2; % kg/m3 C0 = 8; % kg/m3 T1 = 35+273; % C T2 = 95+273; % C Ts = 120+273; % C T0 = 35+273; % C Fv1 = 5; % m3/jam Fv2 = 3; % m3/jam Fv= 5; % m3/jam Fs = 60; % kg/jam V = 1; % m3 U = 15; % watt/m2/C A = 25; % m2 Cp = 3; % J/kg/C tf=3; % jam Tref=298; % K
% menyelesaian ode simultan dengan ode45
% =============================================================== [t,Y]=ode45(@mix_heat_ode_fun,[0,tf],[V,C0,T0]);
% menampilkan hasil perhitungan dalam bentuk grafik
% =============================================================== figure(1) % menampilkan volum & konsentrasi cairan terhadap waktu [AX,H1,H2]=plotyy(t,Y(:,1),t,Y(:,2))
set(get(AX(1),'Ylabel'),'String','volum cairan di dalam tangki, m3')
set(get(AX(2),'Ylabel'),'String','konsentrasi cairan di dalam tangki, kg/m3') xlabel('waktu, jam')
figure(2) % menampilkan profil suhu sepanjang waktu plot(t,Y(:,3),'r') xlabel('waktu, jam') ylabel('Suhu, K') legend('T','Location','Best') subroutine mix_heat_ode_fun function dYdt=mix_heat_ode_fun(t,Y) global Fv1 Fv2 Fv C1 C2
dYdt=zeros(3,1); dYdt(1)=(Fv1+Fv2-Fv); dYdt(2)=(Fv1.*C1+Fv2.*C2-Fv.*C-C.*dYdt(1))./V; dYdt(3)=(Fv1.*C1.*(T1-Tref)+Fv2.*C2.*(T2-Tref)+U.*A.*(Ts-T)./Cp... -Fv.*C.*(T-Tref)-T.*(C.*dYdt(1)+V.*dYdt(2)))./V./C; Input data C1; C2; C0 ; T1 ; T2 ; Ts ; T0 ; Fv1 ; Fv2 ; Fv ; Fs ; V ; U; A ; Cp ; Cp1; Cp2; tf ; Tref Subroutine function dYdt=mix_heat_ode_fun(t,Y) dVdt=f(V) dCdt=f(V,C) dTdt=f(V,C,T) dYdt=[dVdt;dCdt;dTdt] Perhitungan ode simultan
[t,Y]=ode45(@mix_heat_ode_fun,[0,tf],[V,C0,T0]) Tampilkan hasil perhitungan dalam bentuk grafik Mulai perhitungan Perhitungan selesai t Y=V,C0,T0 dYdt
hasil
2.5.
Distribusi suhu pada batang logam diantara dua dinding panas
(penyelesaian persamaan diferensial ordiner dengan permasalahan
nilai batas, boundary value problem)
Suatu batang dengan panjang L dan diameter D, kedua ujungnya ditempelkan pada dinding panas dengan suhu yang dijaga konstan masing-masing Ta dan Tb (gambar 12). Ingin diketahui
distribusi suhu pada batang logam sebagai fungsi panjang logam pada saat steady state. Diketahui :
Konduktifitas panas logam (k) =0,2 cal/s/cm/oC
Koefisien perpindahan panas secara konveksi (h) =0,0 02 cal/s/cm2/oC L=15 cm; D=1.5 cm Ta=500oC Tb=100oC x x+ Δx x=0 x=L Tu=35oC qkonveksi qkonveksi qkonduksi qkonduksi
Gambar 12. Batang logam diantara dua dinding bersuhu tetap Neraca panas pada elemen volum = A.Δx
Kecepatan panas masuk – kecepatan panas keluar = kecepatan panas terakumulasi
qkonduksi pada x- (qkonduksi pada x+Δx + qkonveksi) = 0
=0
Dengan: ;dan
A = luas perpindahan panas secara konduksi; A= A’ = luas perpindahan panas secara konveksi
—
Persamaan tersebut diatur ulang dan dibagi dengan elemen volum serta diambil limit Δx
Karena nilai k tetap maka diperoleh PD ordiner order dua sebagai berikut:
(5.1) dengan batas-batas:
pada x=0, T=Ta pada x=L, T=Tb Penyelesaian
Persamaan matematis yang diperoleh merupakan permasalahan PD ordiner dengan permasalahan nilai batas. Matlab menyediakan tools berupa bvp4c untuk menyelesaikan permasalahan jenis ini. Akan tetapi,bvp4c hanya dapat digunakan untuk menyelesaikan PD ordiner order satu sehingga terlebih dahulu persamaan (5.1) dimanipulasi sedemikian sehingga menjadi PD ordiner order 1 simultan.
Misalkan :
maka
Substitusi persamaan tersebut ke persamaan (5.1) me nghasilkan PD ordiner simultan sebagai berikut :
Sintaks dari bvp4c adalah sebagai berikut:
sol = bvp4c(odefun,bcfun,solinit)
sol = bvp4c(odefun,bcfun,solinit,options)
sol = bvp4c(odefun,bcfun,solinit,options,p1,p2...)
Algoritma pemrograman dengan Matlab diperlihatkan pada gambar 13.
Input data Ta,Tb, Tu, h, k, L, D
Tentukan jumlah inkremen panjang (xint) serta nilai tebakan penyelesaian PDO dengan permasalahan
nilai batas dalam solinit=bvpinit(xint,Y0)
Tampilkan hasil perhitungan dalam bentuk grafik Mulai perhitungan Perhitungan selesai Subroutine function dy=ode_fun(x,y) dTdx=f(y) dydx=f(T) dy=[dTdx;dydx] Perhitungan numeris dengan bvp4c
sol = bvp4c(@ode_fun,@bc_fun,solinit) x,y dy Subroutine function bc_res=bc_fun(Ya,Yb) Pada x=0, T=Ta Pada x=L, T=Tb Ya,Yb bc_res
Ekstrak hasil hitungan sol dengan : Yxint=deval(sol,xint)
Main programrun_ode_bvp
% Kasus 5
% Distribusi suhu pada batang logam % =================================
% definisi global variabel
% ================================= global Tu k D h global Ta Tb % Input data % ================================= Ta=400; % deg C Tb=100; % deg C Tu=35; % deg C k=0.2; % cal/s/cm/deg C D=1.5; % cm L=15; % cm h=0.002; % cal/s/cm2/deg C
% Menentukan jumlah inkremen
% ================================= xint = linspace(0,L,20);
% Menentukan tebakan awal penyelesaian % ===================================== solinit=bvpinit(xint,[0 1]);
% Penyelesaian PDO dengan BVP
% ================================= sol = bvp4c(@ode_fun,@bc_fun,solinit);
% Mengekstrak hasil penyelesaian % ================================= Yint = deval(sol,xint);
% Menampilkan hasil perhitungan % ================================= plot(xint,Yint(1,:))
xlabel('x, cm')
dy(1)=Y(2); dy(2)=4*h/k/D*(Y(1)-Tu); subroutine bc_fun function bc_res=bc_fun(Ya,Yb) global Ta Tb bc_res=[Ya(1)-Ta Yb(1)-Tb]; Hasil
2.6.
Pengeringan padatan silinder-penyelesaian persamaan diferensial
parsial (PDP)
2Suatu padatan berbentuk silinder panjang, berjari-jari R, dengan kadar air mula-mula C0
(g/cm3) dikeringkan dengan udara yang mengandung uap air sebesar yud ( g air/g udara).
Kesetimbangan H2O di fasa padat dan di udara dapat didekati dengan hokum Henry berbentuk
y=H.C (6.1)
Kecepatan perpindahan massa uap air dari permukaan padatan ke udara mengikuti persamaan
(6.2) Dengan y* adalah kadar H2O di udara setimbang dengan kadar H2O pada permukaan
silinder. Karena kadar air dalam silinder sudah cukup rendah, maka kecepatan difusi H2O dari
dalam silinder ke permukaan berpengaruh dan karena silinder sangat panjang (R<<L), maka difusi H2O dianggap hanya kea rah radial. Ingin dicari kadar air dalam silinder (C) pada berbagai
posisi (r) dan waktu (t).
L r r+ Δr R Δr D
(6.3)3 dengan batas-batas sebagai berikut :
C(r,0)=C0
C(0,t)=finite atau
C(R,t)=NAA=k GA(H.C-yud)
A merupakan luas perpindahan transfer massa, A=
Nilai-nilai tetapan yang diketahui adalah sebagai berikut :
De=0,04 cm2/jam; k G=0,08 g/cm2/jam; H=0,2; R=0,2 cm; C0=0,2 g/cm3; yud=0,002 g/g udara;
waktu pengeringan=25 jam ;L=10 cm; Penyelesaian
Penyelesaian persamaan differensial parsial (PDP) tersebut secara numeris dapat dilakukan dengan menggunakan metode implisit, eksplisit atau dengan metode Crank-Nicolson. Khusus untuk penyelesaian numeris PDP parabolik dan elliptik dengan satu variabel bebas ruang (x) dan satu variabel bebas waktu (t), Matlab menyediakan tools yang bernama pdepe untuk menyelesaikan PDP tersebut. Secara umum untuk permasalahan nilai awal, sintaks yang dapat digunakan adalah sebagai berikut :
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options)
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options,p1,p2...)
Algoritma penyelesaiannya disajikan pada gambar 16.
3
Penurunan persamaan dapat dilihat pada buku Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia, hal.147, karyaW.B. Sediawan dan A. Prasetya
Input data De; k G; H; R; C0; yud; t0;
tf; L
Tentukan jumlah inkremen radius (xmesh) serta nilai kisaran untuk waktu (tspan). Masukan faktor
geometri (m) Tampilkan hasil perhitungan dalam bentuk grafik Mulai perhitungan Perhitungan selesai Subroutine function u0=icfun(x) Perhitungan numeris dengan pdepe
sol=pdepe(m,@pdefun,@icfun,@bcfun,xmesh,tspan)
Subroutine
function [c,f,s]=pdefun(x,t,u,DuDx)
Subroutine
function [pl,ql,pr,qr]=bcfun(xl,ul,xr,ur,t)
Gambar 16. Algoritma pemrograman kasus 6
Untuk menggunakan pdepe, persamaan matematis yang diperoleh harus menyesuaikan dengan kehendak dari bentuk umum persamaan yang digunakan padapdepe yaitu:
Dengan kondisi batas yang berlaku : dan maka bentuk penulisan IC adalah sebagai berikut
Sehingga untuk menyelesaikan permasalahan pengeringan padatan silinder tersebut terlebih dahulu PDP yang diperoleh dimodifikasi sedemikian rupa sehingga memenuhi format yang diinginkan Matlab.
Modifikasi persamaan
PDP dari kasus:
Modifikasi persamaan tersebut adalah:
Bentuk Matlab:
Jika u=C, x=r maka nilai-nilai dari variable c, m, f dan s sebagai berikut:
m=1
Bentuk Matlab untuk kondisi awal (IC)
IC kasus : C(r,0)=C0
jika t0=0 maka persamaan untuk IC adalah:
Bentuk Matlab untuk kondisi batas (BC)
BC pada r=0 kasus : C(0,t)=finite atau Modifikasi BC
sehingga : Maka persamaan BC untuk batas kiri (r = 0):
BC pada r=R kasus : C(R,t)=NAA=k GA(H.C-yud)
Modifikasi BC
sehingga : Maka persamaan BC untuk batas kanan (r=R):
Pemrograman dengan pdepe menggunakan sintaks berikut :
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
Untuk melengkapi sintaks tersebut diperlukan pdefun,icfun,bcfun,xmesh,tspan.
pdefun function [c,f,s]=pdefun(x,t,u,DuDx) global De c=1/De; f=DuDx; s=0;
bcfun function [pl,ql,pr,qr]=bcfun(xl,ul,xr,ur,t) global kG H yud R L NA=kG*(H*ur-yud) A=2*pi*R*L pl=0; ql=1; pr=ur-NA*A; qr=0;
Sementara itu pada program padamain program adalah sebagai berikut
% Kasus 6
% Pengeringan padatan silinder % =============================== % Definisi variabel global
% =============================== global De global C0 global kG H yud R L % Input data % =============================== De=0.04; % cm2/jam KG=0.08; % g/cm2/jam H=0.2; % tanpa satuan Yud=0.002; % g/g udara R=2; % cm C0=0.2; % g/cm3 L=10; % cm t0=0; % jam tf=25; % jam
% Menentukan mesh dan tspan
% ===============================
xmesh=[0:0.2:R] % inkremen arah r
tspan=linspace(t0,tf,10); % jangkauan waktu % definisi geometri
% =============================== m=1;
% Menyelesikan pdepe % =============================== sol=pdepe(m,@pdefun1,@icfun1,@bcfun1,xmesh,tspan) % Menampilkan hasil % =============================== surf(rmesh,tspan,sol) xlabel('Radius batang, cm') ylabel('waktu, jam') zlabel('konsentrasi air, g/cm3') Hasil
2.7.
Penentuan order reaksi dan konstanta kecepatan reaksi
4Reaksi isomerisasi tak dapat balik
Dijalankan dalam sebuah reactor batch dan diperoleh data konsentrasi tiap waktu sebagai berikut:
t (men) 0 3 5 8 10 12 15 17.5
CA(mol/l) 4,0 2,89 2,25 1,45 1,0 0,65 0,25 0,07
Tentukan order reaksi terhadap A,α dan konstanta kecepatan reaksi, k! Penyelesaian
C A
Gambar 18. Skema reaktor batch
Asumsi bahwa data diperoleh pada kondisi isotermal dan volum cairan di dalam reactor tetap. Dicoba model reaksi elementer sebagai berikut:
-r A = k.CAα (7.1)
Neraca massa pada reactor batch:
kec. A masuk- kec.A keluar+ kec. A tergenerasi = kec. A terakumulasi
4
karena volum reaktor tetap maka persamaan tersebut menjadi :
(7.2) Untuk menentukan nilai k dan α digunakan metode minimasi sum of squared errors (SSE) yang didefinisikan sebagai:
(7.3) Semakin kecil nilai SSE maka, semakin baik model tersebut mewakili data percobaan. Cmodel
diperoleh dari hasil penyelesaian persamaan (7.2) dengan mencoba-coba nilai k dan α agar memberikan nilai Cmodel yang sedekat mungkin dengan Cdata atau dengan kata lain nilai SSE
seminimum mungkin.
Karena fungsi yang akan diminimasi merupakan fungsi nonlinier maka pilihan tools pada Matlab yang tersedia adalah fminbnd atau fminsearch. Oleh karena tidak ada indikasi nilai batas k dan α yang memberikan nilai SSE minimum, maka fminsearch akan lebih tepat untuk digunakan.
Algoritma program disajikan pada gambar 19.
Main Programdata_reaktor
% Kasus 7 Penentuan order reaksi dan konstanta kecepatan reaksi % ============================================================= clear
clc clf
% Definisi global variabel % ========================= global t C C_hit
% Input data percobaan
% =========================
t=[0 3 5 8 10 12 15 17.5]; C=[4.0 2.89 2.25 1.45 1.0 0.65 0.25 0.07];
% Nilai trial k dan alfa % =========================
k0=[0.2,0.5]; % urutan nilai uji coba : k alfa
% Minimasi fungsi tujuan sse % ===========================
xlabel('Waktu reaksi, menit') ylabel('Konsentrasi A, mol/l') legend('Data','Model')
% Tampilkan hasil pada command window % ==================================== fprintf('Nilai k =%6.4f \n',kons(1)) fprintf('Nilai a =%6.4f \n',kons(2))
Input data percobaan
Tentukan nilai trial awal untuk k danα
Tampilkan hasil perhitungan dalam bentuk grafik Mulai perhitungan Perhitungan selesai Subroutine function dCdt=ode_reaktor(t,C,kons) dCdt=f(C)
Minimasi fungsi objektif SSE kons_hit=fminsearch(@hit_sse,k0)
Subroutine
function fsse=hit_sse(kons) Penyelesaian ode_reaktor
Hitung fsse
Gambar 19. Algoritma program untuk kasus 7
Subroutine hit_sse
function fsse=hit_sse(kons) global t C C_hit residual
% Menyelesaikan PD ordiner untuk memperoleh nilai C model dengan ode45: [thit,C_hit]=ode45(@ode_reaktor,t,C(1,1),[],kons);
% Hitung nilai residual: residual=C_hit-C';
% Hitung fungsi tujuan:
Subroutine ode_reaktor function dCdt=ode_reaktor(t,C,kons) dCdt=-kons(1).*C^kons(2); Hasil Nilai k =0.1991 Nilai α =0.5027
3. Latihan
3.1.
Penentuan dew point campuran
5Sistem campuran uap benzen (1) /toluen (2) dengan fraksi mol A (y1) = 0.33 didinginkan pada
tekanan tetap 120 kPa. Ingin dicari pada suhu berapa (oC) pengembunan terjadi dan komposisi embunan yang terbentuk (xi) jika diketahui bahwa tekanan uap murni mengikuti persamaan
sebagai berikut:
(1.1)
Komponen6 A B C
Benzen 13,8594 2773,78 220,07 Toluen 14,0098 3103,01 219,79
Petunjuk : kesetimbangan uap-cair mengikuti hokum Roult-Dalton
(1.2) dengan xi adalah fraksi mol cairan i, Pio adalah tekanan uap murni komponeni, yi adalah fraksi
mol uap i, dan PT adalah tekanan total system.
Persamaan yang diketahui :
Pada saat kesetimbangan terjadi maka x1+x2=1 dan y1+y2=1
karena yang diamati adalah cairan maka digunakan persamaan:
f(T)=x1+x2-1 (1.3)
substitusi x1 dan x2 dari persamaan Roult-Dalton maka:
(1.4)
5
Smith,J.M., Van Ness, H.C., dan Abbott, M.M., 2001, “Introduction to Chemical Engineering Thermodynamics”, edisi ke-6, hal. 361, McGraw-Hill : Singapore.
6
Tabel 10.2 pada “Introduction to Chemical Engineering Thermodynamics” karya Smith, J.M., Van Ness, H.C., dan Abbott, M.M.
3.2. Adsorpsi senyawa limbah
7Udara buang pabrik mengandung senyawa A yang akan dihilangkan A-nya sebelum dibuang ke udara dengan cara menggelembungkan udara tersebut dalam larutan penyerap yang tidak volatile sehingga sebagian besar A terserap dalam larutan. Jumlah udara G dengan kadar A adalah yAF. Kandungan A dalam gas keluar larutan dianggap dalam keadaan setimbang dengan A dalam larutan. Hubungan kesetimbangan uap-cair mengikuti hokum Henry: yA=HxA dimana xA dalam gmol A/ gmol pelarut bebas A. Suhu sistem dianggap tetap sehingga harga H tetap. Larutan penyerap berjumlah V dan mula-mula tidak mengandung A. Dengan berjalannya waktu,
kandungan A dalam larutan semakin tinggi sehingga kadar A dalam udara keluar menjadi yAB. Hitunglah berapa lama proses penggelembungan bisa berlangsung sebelum larutan penyerap harus diganti dengan larutan segar. Neraca massa A pada peristiwa tersebut dapat diturunkan menjadi persamaan berikut:
(2.1)
G=0,2 gmol udara bebas A/detik; yAF=0,1 gmol A/gmol udara bebas A; yAB=0,05 gmol A/gmol udara bebas A; H=0,1 gmol larutan bebas A/gmol udara bebas A; dan V=10 gmol bebas A.
3.3.
Reaktor tabung non-adiabatis dan non-isotermal (penyelesaian
persamaan diferensial ordiner simultan)
8Reaksi fasa gas bolak-balik, eksotermis
Dijalankan dalam sebuah reaktor tabung plug-flow, berdiameter dalam D dan panjang L. Kecepatan reaksi dapat didekati dengan persamaan
Perubahan entalpi reaksi mengikuti persaaan
Dengan adalah perubahan entalpi reaksi pada suhu Tref . Umpan reaktor berjumlah F0
(mol/detik) bersuhu T0 dengan komposisi 90% A dan 10% inert (I). Tekanan sepanjang reaktor dianggap tetap. Untuk menjaga agar suhu reaktor tidak terlalu tinggi, pendingin berupa cairan jenuh bersuhu Ts dialirkan diluar tabung (dalam anulus). Pendingin meninggalkan annulus dalam
keadaan uap jenuh pada suhu Ts (sehingga suhu pendingin tetap). Koefisien perpindahan panas antara gas dan pendingin dihitung berdasarkan luas permukaan dalam tabung=U. Kapasitas panas gas-gas dianggap tetap dan gas dapat dianggap ideal. Ingin dicari konversi A (X) dan suhu
gas (T) pada berbagai posisi (z), pada keadaan steady. Diketahui:
U = 0,0085 cal/cm2/det/K; F0 = 10 gmol/detik; x0 = 0; P=7,0 atm; D=35 cm; L=1000 cm; CpA,CpB,CpC,CpI masing-masing 20,10,15, dan 10 cal/gmol/K; ΔHR o= -35000 cal/gmol; R=82
cm3.atm/gmol/K; A=10000 detik -1; E/R =6500 K; α = -12.3; β = 4400 K; Tref=273 K; T0=470 K; Ts=421 K F0,T0,P 90% A 10% I Ts z=0 D z z+ Δz z=L xout Ts
Gambar 21. Skema reaktor alir pipa non-adiabatis dan non-isotermal
Ringkasan Persamaan Diferensial Ordiner Simultan9:
(3.1)
(3.2)
9
Penurunan persamaan dapat dilihat pada buku Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia, hal.135-139, karyaW.B. Sediawan dan A. Prasetya