Buku Pemrograman Komputer

  • Uploaded by: ChristianusDenny
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Buku Pemrograman Komputer as PDF for free.

More details

  • Words: 40,236
  • Pages: 242
Loading documents preview...
Adrian Nur Y.C. Danarto Bregas Siswahjono T.S. Paryanto

Jurusan Teknik Kimia – Fakultas Teknik Universitas Sebelas Maret Surakarta

LEMBAR PENGESAHAN 1. Judul buku ajar

: Penyelesaian Numeris dalam Teknik Kimia dengan Matlab

2. Tim Penyusun

: Adrian Nur, S.T., M.T. Y.C. Danarto, S.T., M.T. Bregas Siswahjono T.S., S.T., M.T. Ir. Paryanto, M.S.

3. Waktu penulisan

: 4 ( empat ) bulan.

4. Biaya

: Rp. 5.000.000,- ( lima juta rupiah ).

Surakarta, 15 November 2005 Mengetahui, Ketua Pelaksana Kegiatan SP4 Jurusan Teknik Kimia UNS

Ketua Tim Penyusun

Fadilah, ST., MT. NIP 132 258 062

Adrian Nur, ST., MT. NIP 132 282 191

Mengetahui/Menyetujui, Pembantu Rektor I UNS

Dekan Fakultas Teknik UNS

Dr. Ravik Karsidi, MS NIP 130 906 766

Ir. Sumaryoto, MT. NIP 131 471 452

Adrian Nur Y.C. Danarto Bregas Siswahjono T.S. Paryanto

Jurusan Teknik Kimia – Fakultas Teknik Universitas Sebelas Maret Surakarta

Penyelesaian Numeris dalam

Teknik Kimia dengan Matlab Oleh :

Adrian Nur Y.C.. Danarto Bregas Siswahjono T.S. Paryanto

vi + 252 hlm. ; 15,5 x 23 cm 10 9 8 7 6 5 4 3 2 1

Hak Cipta @ 2005 pada penulis Dilarang memperbanyak sebagian atau seluruh isi buku ini dalam bentuk apapun, tanpa izin dari penulis

Edisi Pertama Edisi pertama, Cetakan pertama, November 2005

Jurusan Teknik Kimia – Fakultas Teknik Universitas Sebelas Maret Surakarta

KATA PENGANTAR

Penggunaan MATLAB dalam penyelesaian persoalan dalam teknik kimia bukanlah hal yang baru. Namun penggunaan MATLAB tersebut sangat terbatas dan tanpa memperhatikan pengetahuan numeris yang digunakan. Buku ini menyajikan penggunaan bahasa pemrograman MATLAB untuk penyelesaian persoalan-persoalan dalam teknik kimia secara numeris. Bab awal buku berisi pengantar pemrograman dengan menggunakan MATLAB. Babbab selanjutnya diikuti dengan penyelesaian secara numeris berurutan : persamaan aljabar linier, persamaan aljabar non linier, integral, pencocokan kurva, optimasi, persamaan differensial ordiner, dan persamaan differensial parsial. Setiap bab berisi tentang metode-metode numeris yang digunakan, fungsi-fungsi MATLAB, contoh-contoh problem teknik kimia, dan programprogram penyelesaiannya beserta keluaran program. Para mahasiswa sangat diharapkan menambah pengetahuan tentang pemanfaatan MATLAB dari berbagai buku dan internet yang diantaranya tercantum dalam daftar pustaka. Kerajinan dan ketekunan yang disertai do’a akan membawa keberhasilan. Terima kasih tak lupa ditujukan kepada istri dan anak-anak tercinta yang rela kehilangan waktu bersama suami/ayahnya selama penyusunan buku ini. Buku ini tidak dapat tersusun tanpa bantuan teman-teman sejawat yang memberikan kritik dan komentar berguna. Segala kritik dan saran untuk perbaikan buku ini masih sangat kami harapkan.

Tim Penulis

iv

DAFTAR ISI

Kata Pengantar Daftar Isi

I.

PENGANTAR PEMOGRAMAN MATLAB 1.1. 1.2. 1.3.

II.

III.

IV.

Fungsi Umum Matlab Tipe Data M-File

iii v 1 2 9 16

PERSAMAAN ALJABAR LINIER

23

2.1. 2.2. 2.3.

23 31 36

Metode Eliminasi Gauss Metode Inversi Matriks Metode Dekomposisi LU

PERSAMAAN ALJABAR NON LINIER

43

3.1. 3.2. 3.3.

43 48 52

Metode Bagidua (Bisection) Metode Newton-Raphson Fungsi fzero

INTEGRAL NUMERIS

75

4.1. 4.2. 4.3.

76 80 85

Aturan Trapesium Aturan Simpson Kuadratur Gauss

vi

V.

PENCOCOKAN KURVA 5.1.

5.2.

VI.

VII.

100 101 112 119 121 122 127 131

OPTIMASI

133

6.1. 6.2. 6.3.

133 136 146

Pemograman Linier Metode Golden Section Optimasi Multivariabel

PERSAMAAN DIFFERENSIAL ORDINER

169

7.1.

Masalah Harga Awal 7.1.1. Metode Euler 7.1.2. Metode Runge-Kutta 7.1.3. Metode Prediktor-Korektor 7.1.4. Fungsi ode Masalah Harga Batas 7.2.1. Metode Shooting 7.2.2. Metode Beda Hingga (finite difference)

170 170 173 174 176 206 207 212

PERSAMAAN DIFFERENSIAL PARSIAL

227

8.1.

228 228 236 237 237 247

7.2.

VIII.

Regresi Kuadrat Terkecil 5.1.1. Regresi Linier 5.1.2. Regresi Polinomial 5.1.3. Regresi Multivariabel Interpolasi 5.2.1. Interpolasi Satu Dimensi 5.2.2. Interpolasi Spline 5.2.3. Interpolasi Dua Dimensi

99

8.2.

Persamaan Differensial Eliptik 8.1.1. Persamaan Laplace 8.1.2. Persamaan Poisson Persamaan Differensial Parabolik 8.2.1. Metode Eksplisit 8.2.2. Metode Implisit

Daftar Pustaka

251

PENGANTAR

1

PEMROGRAMAN MATLAB

MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik, merupakan suatu bahasa pemrograman matematika tingkat lanjut yang dibuat dengan dasar pemikiran menggunakan sifat dan bentuk matriks. Pada awalnya, program ini merupakan interface untuk koleksi rutinrutin numerik proyek UNPACK dan EISPACK, yang dikembangkan menggunakan bahasa FORTRAN. Namun sekarang, program ini merupakan produk komersial perusahaan Mathworks, Inc. yang dalam perkembangan selanjutnya dikembangkan menggunakan bahasa C++ dan assembler (terutama untuk fungsi-fungsi dasar MATLAB). MATLAB telah berkembang menjadi sebuah lingkungan pemrograman yang canggih dan berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan perhitungan matematis lainnya. MATLAB juga berisi toolbox yang di dalamnya terdapat fungsi-fungsi tambahan untuk aplikasi khusus. MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru untuk ditambahkan di library jika fungsifungsi built-in yang tersedia tidak dapat melakukan tugas tertentu yang diinginkan. Kemampuan pemrograman yang dibutuhkan tidak terIalu sulit bila

2 telah memiliki pengalaman dalam pemrograman bahasa lain seperti bahasa C, PASCAL, atau FORTRAN. MATLAB merupakan perangkat lunak (software) yang dikembangkan oleh Mathworks, Inc. (lihat http://www.mathworks.com) dan merupakan perangkat lunak yang paling efisien untuk perhitungan numerik berbasis matriks. Dengan demikian jika di dalam perhitungan kita dapat memformulasikan masalah ke dalam format matriks, maka MATLAB merupakan pilihan terbaik untuk penyelesaian numeriknya. Dalam penggunaannya MATLAB hanya bersaing dengan MATCAD atau MAPLE. Namun demikian sifatnya yang fleksibel menjadikannya lebih banyak digunakan oleh para praktisi maupun akademisi dari pada yang lain. MATLAB merupakan bahasa pemrograman tingkat tinggi berbasis matriks yang sering digunakan untuk teknik komputasi numerik dalam menyelesaikan masalah-masalah yang melibatkan operasi matematika elemen, matrik, optimasi, aproksimasi, dan lain-lain. Secara umum MATLAB banyak digunakan pada bidang-bidang : ƒ

Matematika dan Komputasi;

ƒ

Pengembangan dan Algoritma;

ƒ

Pernrograman modeling, sn-nulasi, dan pembuatan prototipe;

ƒ

Analisa Data, eksplorasi, dan visualisasi;

ƒ

Analisis numerik dan statistik;

ƒ

Pengembangan aplikasi teknik.

1.1. FUNGSI UMUM MATLAB

JENIS-JENIS JENDELA (WINDOW) MATLAB Beberapa macam jendela (window) yang tersedia dalam MATLAB antara lain sebagai berikut : a. MATLAB Command Window/Editor

3 MATLAB Command Window/Editor merupakan jendela yang dibuka pertama kali setiap kali MATLAB dijalankan. Pada jendela ini dapat dilakukan akses-akses ke perintah-perintah MATLAB dengan mengetikkan ekspresi MATLAB, seperti mengakses help window, helpdesk, demo, dan lain-lainnya. Jika variabel-variabel dan perintah-perintah pada layar command window yang sedang aktif akan disimpan, maka dapat dilakukan dengan menggunakan perintah diary. Sebagai contoh, jika ingin menyimpan output » m = 1 4

2 5

3 6

di direktori c:\coba dengan nama file data1.txt, maka dapat dilakukan dengan mengetik : » m=[1 2 3;4 5 6] m = 1 2 3 4 5 6 » diary 'c:\coba\data1.txt'

Apapun yang tertulis di command window setelah perintah ini akan disimpan sampai kita menutup file ini dengan mengetikkan : » diary off

Command Windows juga digunakan untuk memanggil tool MATLAB seperti editor, debugger, atau fungsi. Window ini dicirikan dengan adanya prompt (>>) yang menyatakan MATLAB siap menerima perintah. Perintah dapat berupa fungsi-fungsi pengaturan file (seperti perintah DOS/UNIX) maupun fungsi-fungsi bawaan (toolbox) MATLAB. Berikut ini beberapa fungsi pengaturan file dalam MATLAB: dir atau ls : cd

digunakan untuk mehhat isi dari sebuah direktori aktif.

: digunakan untuk melakukan perpindahan dari direktori aktif ke direktori lainnya.

pwd

: digunakan untuk melihat direktori yang sedang aktif.

4 mkdir

: digunakan untuk membuat sebuah direktori.

what

: digunakan untuk melihat nama m-file (yang akan dibahas kemudian) dalam direktori aktif.

who

: digunakan untuk mehhat variabel yang sedang aktif.

whos

: digunakan untuk menampilkan nama setiap variabel yang sedang aktif.

delete

: digunakan untuk menghapus file.

clear

: digunakan untuk menghapus variabel.

clc

: digunakan untuk membersihkan layar.

doc

: digunakan untuk melihat dokumentasi The MathWorks, Inc. dalam format html secara online.

demo

: digunakan untuk menampilkan demo yang disediakan oleh MATLAB.

b. MATLAB Editor/Debugger (Editor M-File/Pencarian. Kesalahan) Jendela ini merupakan tool yang disediakan oleh MATLAB versi. 5 ke atas yang berfungsi sebagai editor script MATLAB (M-File). Walaupun sebenarnya script ini dalam pernrograman MATLAB dapat saja menggunakan editor lain seperti Notepad, Wordpad, bahkan Word. Untuk mengakses window M-File ini dapat dilakukan dengan cara: 1. Memilih File kemudian pilih New, 2. Pilih M-File, maka MATLAB akan menampilkan editor window. Selain cara di atas, untuk menampilkan editor M-File ini dapat juga dilakukan dengan mengetik:

>> edit

c. Figure Windows (Jendela gambar) Window ini adalah hasil visualisasi script MATLAB. Namun MATLAB memberi kemudahan bagi pemrogram untuk mengedit window ini sekaligus memberikan program khusus untuk itu sehingga window ini selain berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input yang interaktif.

5 Coba anda ketikkan script berikut ini pada command window dan perhatikan hasilnya tergambar pada figure window. » x=0:2:360; » y=sin(x*pi/180); » plot(x,y)

d. MATLAB Help Window MATLAB menyediakan sistem help yang dapat diakses dengan perintah help. Misalnya, untuk mernperoleh informasi mengenai fungsi sin, coba anda ketikkan » help sin

dan kernudian menekan enter. Di layar akan muncul informasi dalam bentuk teks pada layar MATLAB yaitu: SIN

Sine. SIN(X) is the sine of the elements of X. Overloaded methods help sym/sin.m

Untuk mengetahui penggunaan perintah ‘plot’, cobalah ketikkan: » help plot

Selain help dalam bentuk seperti di atas, MATLAB juga menyediakan demonstrasi kemampuan MATLAB dengan mengetikkan » demo

Untuk memperoleh informasi tentang konsep-konsep dasar bahasa MATLAB, dapat dilakukan dengan perintah » intro

Bentuk help yang lain adalah Help Window yaitu dengan mengetikkan » helpwin

Informasi selengkapnya dapat diperoleh dengan mengklik dua kali salah satu baris yang ada di MATLAB Help Window atau dapat juga dengan mengetikkan informasi yang diinginkan pada kotak di sebelah kiri atas MATLAB Help Window. Help yang lain lagi adalah dalam bentuk Help Desk.

Anda bisa

mencoba sendiri menampilkan Help Desk dengan mengetikkan perintah » helpdesk

dan anda akan dapatkan berbagai kemudahan dalam memperoleh informasi yang diinginkan.

6

OPERATOR MATEMATIKA MATLAB dapat melakukan operasi-operasi aritmatika dasar berikut: No.

OPERASI

1

Pemangkatan

2

Perkalian; Pembagian

3

Penambahan; Pengurangan

SIMBOL ^ * ; / atau \ + ; -

Anda bisa membedakan tanda / dan \ dengan percobaan berikut: » 2/4 » 2\4

Urutan dalam tabel di atas juga menunjukkan urutan prioritas (hirarki) operasi yang dikerjakan dahulu dalam suatu ekspresi. Tanda kurung dapat digunakan untuk mengubah hirarki itu, yaitu bagian yang dikerjakan terlebih dahulu adalah bagian yang berada di bagian kurung paling dalam kemudian berturut-turut sampai yang paling luar.

KOMENTAR DAN TANDA BACA Semua teks sesudah tanda % dianggap sebagai statemen komentar. Pernyataan yang anda tuliskan setelah tanda % berguna untuk dokumentasi apa yang sudah dikerjakan. Tanda titik korna (;) dalam MATLAB berguna untuk mencegah menampilkan hasil, sedangkan tanpa tanda titik koma MATLAB akan menampilkan hasilnya segera setelah ditekan enter.

FUNGSI-FUNGSI MATEMATIKA DASAR MATLAB mempunyai berbagai fungsi matematika umum yang biasa digunakan dalam matematika. Sebagian besar fungsi tersebut hampir sama dengan yang biasa dituliskan. Untuk lebih jelasnya, anda bisa memperoleh informasi ini dengan mengetikkan:

7 » help elfun

MENYIMPAN DAN MEMANGGIL DATA Untuk menyimpan data gunakan menu File lalu pilih Save Workspace As. Untuk memanggil data gunakan pilihan Load WorkSpace As atau Open pada menu File. Sedangkan untuk import data, pada MATLAB versi 6 ke atas pilih Import Data. MATLAB juga menyediakan dua perintah - save dan load - yang jauh lebih fleksibel. Perintah save digunakan untuk menyimpan satu atau lebih variabel dalam file format sesuai dengan yang diinginkan. Contoh: » clear all » x=1:10; y=10:10:10:100; % membuat array baru » save

menyimpan semua varlabel MATLAB dalam format biner di file MATLAB.mat » save data

menyimpan semua variabel MATLAB dalam format biner di file data.mat » save data x

menyimpan variabel x dalam format biner di file data.mat » save data x y /ascii

menyimpan variabel x dan y dalam format biner di file data dalam format ASCII. Untuk membuka data gunakan perintah load. Contoh: » load data.mat

OPERATOR LOGIKA DAN RELASIONAL MATLAB menyediakan operasi logika dan relasional, hal ini diperlukan untuk menjawab pertanyaan benar atau salah. Salah satu manfaat yang penting dari kemampuan ini adalah untuk mengontrolurutan eksekusi sederetan perintah MATLAB (biasanya dalam M-File) berdasarkan hasil pertanyaan benar/salah. Sebagai masukan pada sernua ekspresi relasi dan logika, MATLAB menganggap sernua angka tidak nol sebagai benar dan nol sebagai salah. Hasil

8 sernua ekspresi relasi dan logika adalah satu untuk benar dan nol untuk salah dengan tipe array logika, yaitu hasilnya mernuat bilangan 1 dan 0 yang tidak saja dapat digunakan untuk statemen matematika akan tetapi dapat juga digunakan untuk pengalamatan. Operator relasi MATLAB menunjukkan perbandingan: OPERATOR RELASI <

DISKRIPSI Kurang dari

>

Lebih dari

<=

Kurang dari atau sama dengan

>=

Lebih dari atau sama dengan

=

Sama dengan

~=

Tidak sama dengan

Operator relasi MATLAB dapat digunakan untuk membandingkan dua array yang berukuran sama atau untuk membandingkan array dengan skalar. Operator logika menyediakan cara imtuk menggabung atau menegasi ekspresi relasi. Operator-operator logika dalam MATLAB adalah: OPERATOR LOGIKA

DISKRIPSI

&

AND

|

OR

~

NOT

Untuk lebih jelasnya anda bisa mengetikkan : « help +

kemudian tekan enter.

SUMBER-SUMBER INFORMASI MATLAB DI INTERNET Untuk lebih mendalami MATLAB, di bawah ini terdapat beberapa situs yang bisa dimanfaatkan.

9 1.

http://www.mathworks.com/

pada situs ini bisa didapatkan informasi

tentang produk baru MATLAB seperti buku dan lain-lainnya. 2. Newsgroup MATLAB: news://salukinews.siu.edu/comp.softsys.MATLAB/

3.

http://dir.yahoo.com/science/mathematics/software/matlab/

merupakan sumber informasi tentang MATLAB dan langkah awal untuk memperoleh website MATLAB lainnya. 4.

http://www.cse.uiuc.edu/cse301/matlab.html

situs ini merupakan situs

University of Illinois di Champaign-Urbana yang menyediakan beberapa link untuk MATLAB di Internet 5. http://www.eece.maine.edu/mm

1.2. TIPE DATA MATLAB mengenal 3 tipe data yaitu string, skalar, dan matriks. merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki banyak fungsi bawaan (build in) untuk memanipulasi tipe data tersebut. Berikut ini merupakan beberapa contoh yang menjelaskan ketiga tipe data di atas.

String String dalam MATLAB adalah tipe data yang terdiri dari huruf-huruf dan/atau nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks yang diawali dan diakhiri dengan tanda (‘......’). Contoh: » g='selamat datang' g = selamat datang » size(g) ans = 1 14 » whos Name Size Bytes Class ans 1x2 16 double array g 1x14 28 char array Grand total is 16 elements using 44 bytes

10 Setiap karakter dalam suatu string adalah satu elernen dalam array, dengan setiap elemennya berukuran 2 byte. Untuk melihat representasi ASCII karakter string dapat dilakukan dengan

operasi

aritmetik

terhadap

string

atau

mengkonversikannya

menggunakan fungsi double. Contoh: » double(g) ans = Columns 1 through 12 115 101 108 97 97 Columns 13 through 14 110 103 » abs(g) ans = Columns 1 through 12 115 101 108 97 97 Columns 13 through 14 110 103

109

97

116

32

100

97

116

109

97

116

32

100

97

116

Fungsi char untuk menampilkan karakter dengan nilai ASCII tertentu » char(115) ans = s

Karena string merupakan array numerik dengan atribut khusus, string dapat dimanipulasi menggunakan sernua metode manipulasi array yang tersedia, dalam MATLAB. » t=g(1:5) t = selam

Kata ‘selam’ dapat dibalik dengan cara: » t=g(5:-1:1) t = males

Angka -1 ditengah menunjukkan perhitungan mundur dari 5 sampai 1. Untuk menampilkan dalam format kolom gunakan operator transpose (‘) » t=g(1:5)' t = s e l a m

11 Fungsi-fungsi string yang lain adalah: Fungsi input » nama=input('Nama :','s') Nama : jojon nama = jojon

Fungsi disp Fungsi

disp

memungkinkan

untuk

menampilkan

string

tanpa

menampilkan nama variabelnya. » disp(nama) jojon

atau » disp('jojon') jojon

Syarat menggunakan disp adalah variabelnya harus berupa strings, jadi jika ingin menampilkan sebuah angka, terlebih dahulu. merubahnya ke dalam bentuk strings dengan menggunakan fungsi num2stro. Fungsi

num2stro

menghasilkan string, meskipun terlihat seperti angka (skalar). Perhatikan contoh berikut. » c=234 c = 234 » h=num2str(c) h = 234 » double(h) ans = 50 51 » h+2 ans = 52 53

52 54

Jelas bahwa h+2 bukan 236, karena h mewakili nilai ASCII dari string 2, 3 dan 4 yaitu masing-masing 50, 51 dan 52

Skalar Skalar adalah sebuah bilangan tunggal yang secara matriks berukuran 1x1. Operasi skalar merupakan dasar matematika. Kalkulator biasa melakukan perhitungan skalar. Tentu saja MATLAB bisa melakukan dengan lebih baik.

12 Namun jika dalam sekali waktu kita ingin melakukan operasi yang sama pada beberapa bilangan, perulangan operasi skalar akan menghabiskan waktu dan tidak praktis. Untuk itu MATLAB menyediakan operasi pada tipe data array yang akan dibahas berikutnya.

Array Untuk menghitung nilai, y=sin(x); 0 ≤ x ≤ π. Tidak mungkin menghitung semua nilai pada interval tersebut. Kita bisa mengevaluasi nilainya pada setiap jarak 0,1π. Untuk mudahnya kita membuat tabel: x

0

0.1 π

0..2 π

0.3 π

0.4 π

0.5 π

0.6 π

0.7 π

0.8 π

0.9 π

π

y

0

0.31

0.59

0.81

0.95

1.0

0.95

0.81

0.59

0.31

0

MATLAB menangani array secara intuitif, seperti halnya kita membayangkan membuat tabel di atas. Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah mengetikkan kurung siku, lalu memasukkan elemen-elemen dengan dipisahkan oleh spasi, kemudian menutup array dengan kurung siku penutup. » x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi] x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 » y=sin(x); » disp(y) Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 Columns 8 through 11 0.8090 0.5878 0.3090 0.0000

Kita bisa juga menuliskan array x dengan lebih ringkas. » x=[0:0.1*pi:pi] % mulai dari 0 sampai pi selang 0.1*pi x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416

atau » x=[0:0.1:1]*pi

1.8850

13 atau » x=linspace(0,pi,11)

Fungsi linspace didefinisikan sebagai : linspace(nilai_pertama, nilai_akhir, jumlah_elemen)

Dalam MATLAB elemen-elemen array diakses menggunakan subcript; misaInya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan seterusnya. Tabel berikut menunjukkan operasi-operasi array dasar. Data ilustrasi: a=[a1 a2 ... an], b=[b1 b2 ... bn], c=<skalar> Penambahan skalar

a+c=[a1+c a2+c ... an+c]

Perkalian skalar

a*c=[a1*c a2*c ... an*c]

Penambahan array

a+b=[a1+b1 a2+b2

Perkalian array

a.*b=[a1*b1 a2+b2 ... an+bn]

Pembagian kanan array

a./b=[a1/b1 a2/b2 ... an/bn]

Pembagian kiri array

a.\b=[a1/b1 a2/b2 ... an/bn]

Pemangkatan array

a.^c=[a1^c a2^c ... an^c]

...

an+bn]

c.^a=[c^a1 c^a2 ... c^an] a.^b=[a1^b1 a2^b2 ... an^bn]

Matriks Matriks merupakan bentuk utama MATLAB. Seperti haInya array, matriks juga didefenisikan elemen demi elemen. Untuk memahami operasi matriks dasar, perhatikan contoh-contoh berikut ini. » a=[1 2 3] %penentuan matriks a a = 1 2 3 » b=[1 2 1; 3 2 1; 2 1 3] %penentuan matriks b b = 1 2 1 3 2 1 2 1 3

14 Tanda titik koma memisahkan antar baris matriks, sedangkan antar kolom cukup dengan spasi. » c=a*b %perkalian a dan b c = 13 9 12

Pada perkalian matriks di atas yang perlu diingat adalah jumlah kolom a harus sama dengan jumlah baris b. Jika tidak demikian maka MATLAB akan memberikan pesan kesalahan: » d=b*a ??? Error using ==> * Inner matrix dimensions must agree.

Perhatikan contoh berikut untuk pembagian. » a/b ans = 1.2000 -0.6000 0.8000 » b/a ans = 0.5714 0.7143 0.9286 » b\a ??? Error using ==> \ Matrix dimensions must agree. » det(b) %determinan b, b matriks bujursangkar ans = -10

Jika b bukan matriks bujur sangkar, maka akan ada pesan kesalahan » det(a) ??? Error using ==> det Matrix must be square. » inv(b) %invers b, b harus matriks bujursangkar ans = -0.5000 0.5000 0 0.7000 -0.1000 -0.2000 0.1000 -0.3000 0.4000 » f=a' %transpose matriks a f = 1 2 3

Ukuran matriks dapat diketahui dengan fungsi size() » size(a) ans = 1 » size(b) ans =

3

15 3

3

Elemen pertama pada variabel ans adalah jumlah baris dan kedua adalah jumlah kolom. Terdapat berbagai fungsi matriks yang tersedia dalam MATLAB yang bisa anda pelajari dengan mengetikkan: » help matfun

Juga untuk mengetahui matrik elementer yang tersedia, ketikkan: » help elmat

Tentu saja ini bisa dipahami jika anda sudah memahami matematika matriks. Selain operasi matriks dasar MATLAB juga menyediakan operasi antar elemen yang sangat berguna. Dot atau titik (.) adalah tanda yang digunakan unutk operasi-operasi tersebut. Sebagai contoh operasi matriks X dan matriks Y meliputi X.^Y; X.*Y dan X./Y. Pada operasi ini tiap elemen dioperasikan dengan elemen yang bersesuaian posisinya dalam matriks. Dengan demikian ukuran matriks X dan Y harus sama. Bentuk ini tidak perlu digunakan dalam penjumlahan atau pengurangan karena sudah merupakan operasi antar elemen. » X=[1 2;3 4] X = 1 2 3 4 » Y=[2 3;1 4] Y = 2 3 1 4 » X.*Y % perkalian antar elemen ans = 2 6 3 16 » X*Y % perkalian standar matriks ans = 4 11 10 25 » Z=[2 3] Z = 2 3 » X.*Z ??? Error using ==> .* Matrix dimensions must agree.

1.3. M-FILE

16 Untuk menyelesaikan masalah yang cukup sederhana, mengetikkan beberapa perintah langsung di command window memang cukup cepat dan efektif. Tetapi jika jumlah perintahnya sangat banyak atau jika anda ingin mengubah beberapa variabel dan mengulang kembali perhitungannya, maka mengetikkan perintah langsung di command window akan sangat menjemukan. Untuk itu, MATLAB menyediakan suatu struktur untuk membuat fungsi anda sendiri atau suatu teknik pemrograman dalam bentuk M-File. M-File berasal dari aturan bahwa nama file ini harus dikhiri dengan ekstensi ‘.m’; misalnya gambar1.m M-File juga memudahkan pemakai untuk menyimpan dan memanggil kembali perhitungan yang sering digunakan. Perintah diary yang biasanya digunakan untuk menyimpan file yang berisi barisan perintah dan keluaran pada command window hanya sekedar merekam tetapi tidak bisa langsung digunakan dalam perhitungan jika dipanggil kembali.

Membentuk M-File Untuk membuat M-File, klik File pada menu pull-down di MATLAB command window, lalu pilih New dan klik M-File. Di layar akan muncul MATLAB Editor/Debugger. Selanjutnya di layar ini dapat ditulis argumenargumen yang diinginkan, dapat diedit penulisannya dan sebagainya. Setelah selesai melakukan pengetikan, klik File pada layar MATLAB Editor/Debugger dan pilih Save As... . Beri nama yang Anda inginkan untuk file tersebut, misalnya contoh11.m kemudian klik Save. Pastikan file yang disimpan dalam direktori yang mudah untuk dipanggil. Berikut ini contoh sederhana script file. Contoh 1.1 % Script file contoh11. % Kurva fungsi y=(sin x)/x x = pi/100:pi/100:10*pi; y = sin(x)./x; plot(x,y) grid

17 Untuk mengesekusi script file di atas maka pada Command Window ketikkan nama file yang telah disimpan sebelumnya misal

» contoh11.

Dengan syarat

bahwa sebelumnya directory path-nya sudah ditujukan ke tempat file yang disimpan. Hasil run contoh di atas, di layar akan muncul.: 1

0.8

0.6

0.4

0.2

0

-0.2

-0.4 0

5

10

15

20

25

30

35

Gambar 1.1. Keluaran Program contoh1.1 Fungsi M-File hampir sama dengan script file di mana keduanya merupakan suatu file teks dengan ekstensi m. Fungsi M-File ini tidak dimasukkan dalam command window seperti halnya script file, melainkan diletakkan pada suatu file tersendiri yang dibuat dalam editor teks (MATLAB editor/debugger). Suatu fungsi M-File harus mengikuti beberapa aturan dan mempunyai sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut meliputi: 1.

Narna fungsi dan narna file harus identik. Contoh: fhitung disimpan dalam file yang bernama fhitung.m

2.

Pertama kali MATLAB mengeksekusi suatu. fungsi M-File, MATLAB membuka file fungsi tersebut dan mengkornpilasi perintah-perintah di dalamnya menjadi suatu representasi internal dalam memori yang mempercepat eksekusi sernua pemanggilan berikutnya. Jika fungsi juga

18 melibatkan pemanggilan ke fungsi M-File yang lain, fungsi M-File yang dipanggil itu juga akan dikompilasi ke dalam memori. 3.

Sembilan baris komentar yang pertama merupakan teks help yang ditampilkan. Jika anda meminta help, misalnya >>help fhitung

menampilkan 9 baris komentar pertama fungsi fhitung. Baris komentar yang paling atas disebut baris H1, merupakan baris yang dicari oleh perintah lookfor. 4.

Setiap fungsi memiliki ruang kerja sendiri yang berbeda dengan ruang kerja MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan variabel-variabel dalam fungsi adalah variabel-variabel input dan output fungsi. Jika suatu fungsi mengubah nilai dalam bentuk suatu variabel input, perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi ruang kerja MATLAB.

5.

Jika suatu fungsi dipanggil, jumlah argument input dan output yang digunakan hanya terdapat dalam fungsi tersebut.

6.

Fungsi dapat berbagi variabel dengan fungsi lain, ruang ke.ja MATLAB, dan

pemanggilan

rekursi

untuk

dirinya

sendiri

jika

variabelnya

dideklarasikan sebagal variabel global. 7.

Fungsi M-File berhenti dieksekusi dan kernbali ke prompt jika telah mencapal akhir M-File atau jika menemui perintah return. Perintah return merupakan cara sederhana untuk menghentikan fungsi sebelum mencapai akhir M-File.

8.

Fungsi M-File dapat mernuat lebih dari sebuah fungsi. Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil perintah

serta nama variabelnya akan ditampilkan kembali dalam command window. Supaya tampilannya lebih bagus, untuk menampilkan nama variabel digunakan perintah disp. Perintah echo on membuat perintah-perintah yang dibuat di MFile akan ditampilkan kembali di command window, sedangkan echo off

19 berfungsi sebaliknya. Perintah input memungkinkan untuk meminta input dari pemakai saat M-File dijalankan. Secara umum fungsi M-File didefinisikan menggunakan command function. Sintaks standar untuk command function adalah: function[output1,output2,...]=NamaFunction(inputl,input2,..)

Untuk memberi keterangan mengenai maksud dan tujuan M-File yang kita buat, agar orang lain juga paham dengan M-File tersebut, perlu adanya suatu keterangan (help) dan untuk membuatnya dapat dilakukan dengan menggunakan command % dari MATLAB. Contoh 12 function [x,y]=gerak_parabola(sudut,V0,g,t); %[x,y]=gerak_parabola(sudut,V0,g,t) %Menghitung jarak (x, m) dan tinggi (y, m) %sebagai fungsi sudut lemparan (dalam radian), %kecepatan awal (V0, m/detik), %percepatan gravitasi (g, m/detik^2) %dan waktu (t, detik) x=V0*cos(sudut)*t; y=V0*sin(sudut)*t-g/2*t.^2;

Jika kita menginginkan keterangan tentang M-file tersebut, kita ketikkan pada Command Window: » help gerak_parabola

Setelah ditekan enter muncul: [x,y]=gerak_parabola(sudut,V0,g,t) Menghitung jarak (x, m) dan tinggi (y, m) sebagai fungsi sudut lemparan (dalam radian), kecepatan awal (V0, m/detik), percepatan gravitasi (g, m/detik^2) dan waktu (t, detik)

Menjalankan M-File Untuk memanggil atau mengeksekusi M File, yang perlu dilakukan adalah dengan memindahkan path search dari MATLAB compiler. Pada dasarnya, proses eksekusi compiler MATLAB adalah dengan mencan command atau definisi operator yang ada dan mengeksekusi definisi script atau operator pertama yang ditulis dan ditemui direktori MATLAB (di direkton bin atau toolbox).

20 Set Path dapat dilakukan dengan cara membuka menu pull down di MATLAB command editor, pilih File kemudian pilih Set Path. Dari menu tersebut arahkan current directory ke direktori tempat di mana disimpan script yang ingin dieksekusi dengan cara mengetikkan atau browsing directory ke tempat penyimpanan script yang akan dieksekusi. Ada beberapa cara menjalankan fungsi M-File. Misalkan fungsi gerak_parabola (contoh 12) dapat dijalankan dengan cara, antara lain: » [jarak,tinggi]=gerak_parabola(pi/4,40,9.8,1) x = 28.2843 y = 23.3843

atau bisa juga variabel waktunya bertipe array » [jarak,tinggi]=gerak_parabola(pi/4,40,9.8,[1:3]) jarak = 28.2843 56.5685 84.8528 tinggi = 23.3843 36.9685 40.7528

Hal ini dimungkinkan karena kita menggunakan operator pemangkatan dengan dot (titik) y=V0*sin(sudut)*t-g/2*t.^2;

Bukan y=V0*sin(sudut)*t-g/2*t^2;

atau dengan perintah feval [x,y]=feval('gerak_parabola',pi/4,40,9.8,1) x = 28.2843 y = 23.3843

Bentuk umum perintah feval adalah feval('namafungsi', input1,input2,...)

Perlu diketahui, MATLAB juga mempunyai command inline yang digunakan untuk mendefinisikan atau menuliskan suatu fungsi pada command window.

21 Contoh 13 » g=inline('6-x^2') g = Inline function: g(x) = 6-x^2 » g(2) ans = 2

Contoh 14 » radius=inline('sqrt(x^2+y^2)','x','y') radius = Inline function: radius(x,y) = sqrt(x^2+y^2) » radius(2,3) ans = 3.6056

PERSAMAAN ALJABAR

2

LINIER

Persamaan umum persamaan aljabar linier simultan adalah: a11x1 + a12x2 + . . . + a1nxn = b1 a21x1 + a22x2 + . . . + a2nxn = b2 . . . an1x1 + an2x2 + . . . + annxn = bn dengan a adalah koefisien konstanta dan b adalah konstanta.

2.1. METODE ELIMINASI GAUSS Teknik yang dilakukan dalam metode ini meliputi kombinasi persamaan agar mengeliminasi yang tidak diketahui dan solusi melalui substitusi balik. Langkah-langkah penyelesaian dengan eliminasi Gauss secara umum adalah :

24 ⎛ a 11 ⎜ ⎜ a 21 ⎜a ⎝ 31 ⎛ a 11 ⎜ ⎜ ⎜ ⎝

x3 = x2 =

x1 =

a 12 a 22 a 32

a 13 | b1 ⎞ ⎟ a '23 | b '2 ⎟ '' a 33 | b 3'' ⎟⎠

a 12 a '22

b 3'' '' a 33

(b

' 2

a 13 | b 1 ⎞ ⎟ a 23 | b 2 ⎟ a 33 | b 3 ⎟⎠

, − a '23 x 3 a '22

(b

1

),

)

− a 12 x 2 − a 13 x 3 . a 11

Persamaan dasar a11x1 + a12x2 + a13x3 = b1

.... (2.1)

a21x1 + a22x2 + a23x3 = b2

.... (2.2)

a31x1 + a32x2 + a33x3 = b3

.... (2.3)

Normalisasi pers. (2.1) dengan cara membagi a11 x1 +

1 1 1 a12x2 + a13x3 = b1 a 11 a 11 a 11

.... (2.4)

Eliminasi a21 pers. (2.2) dengan cara : [Pers.(2.2) - a21 x Pers.(2.4)] ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ a a a ⎜⎜ a 22 − 21 a 12 ⎟⎟ x 2 + ⎜⎜ a 23 − 21 a 13 ⎟⎟ x 3 = ⎜⎜ b 2 − 21 b1 ⎟⎟ a 11 a 11 a 11 ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ a '22 x 2 + a '23 x 3 = b '2

Eliminasi a31 pers. (2.3) dengan cara : [Pers.(2.3) - a31 x Pers.(2.4)] ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ a a a ⎜⎜ a 32 − 31 a 12 ⎟⎟ x 2 + ⎜⎜ a 33 − 31 a 13 ⎟⎟ x 3 = ⎜⎜ b 3 − 31 b1 ⎟⎟ a 11 a 11 a 11 ⎠ ⎝ ⎠ ⎝ ⎠ ⎝

.... (2.5)

25 ' ' a 32 x 2 + a 33 x 3 = b 3'

.... (2.6)

Normalisasi pers. (2.5) dengan cara membagi a '22 1

x2 +

a '22

a '23 x 3 =

1 a '22

b '2

.... (2.7)

Eliminasi a'32 pers. (2.6) dengan cara : '

[Pers.(2.6) - a 32 x Pers.(2.7)] ' ' ⎛ ' ⎞ ⎛ ⎞ ⎜ a 33 − a 32 a '23 ⎟ x 3 = ⎜ b 3' − a 32 b '2 ⎟ ⎜ ⎟ ⎜ ⎟ a '22 a '22 ⎝ ⎠ ⎝ ⎠ '' a 33 x 3 = b 3''

.... (2.8)

Solusi dengan cara substitusi. Solusi x3 dari pers. (2.8) x3 =

b 3'' '' a 33

Solusi x2 dari pers. (2.5) x2 =

(b

' 2

− a '23 x 3

)

a '22

Solusi x1 dari pers. (2.1) x1 =

(b

1

− a 12 x 2 − a 13 x 3

)

a 11

Bentuk pemograman dengan Matlab dapat disusun sebagai berikut : function [x] = elimgauss(A,B,n) % Program ini bertujuan menyelesaikan Pers Aljabar Linier % dengan metode Eliminasi Gauss untuk sistem n x n % n adalah orde matriks % A adalah matriks n x n % B adalah matriks n x 1 % x adalah output matriks n x 1 untuk penyelesaian A x = B % % % % %

Nama File : elimgauss.m Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ---------------------------------------------------------------

26 % Eliminasi Gauss for k=1:n for i=k+1:n m(i,k)=A(i,k)/A(k,k); for j=k:n A(i,j)=A(i,j)-m(i,k)*A(k,j); end B(i)=B(i)-m(i,k)*B(k); end end % Substitusi Balik x(n)=B(n)/A(n,n); for i=n-1:-1:1 sum=B(i); for k=i+1:n sum=sum-A(i,k)*x(k); end x(i)=sum/A(i,i); end

Contoh 2.1. Campuran Batubara Unit utilitas penyediaan energi membutuhkan batubara dengan kadar sulfur 0,61 %, phospor 0,043 % dan abu 1,8 %. Ada 4 tipe batubara yang tersedia dengan komposisi yang dapat dilihat di tabel. Tentukan campuran ke empat tipe batubara tersebut ! Tipe

%S

%P

% abu

1

0,2

0,05

2

2

1,0

0,06

3

3

0,5

0,03

1

4

0,7

0,03

1

Basis untuk 1 kg batubara campuran x1 +

x2 +

x3 +

x4

=

1

0,2x1 +

x2 +

0,5x3 +

0,7x4

=

0,61

0,05x1 +

0,06x2 +

0,03x3 +

0,03x4

=

0,043

2x1 +

3x2 +

x3 +

x4

=

1,8

x1 +

x2 +

x3 +

x4

=

1

2x1 +

10x2 +

5x3 +

7x4

=

6,1

5x1 +

6x2 +

3x3 +

3x4

=

4,3

Proses penskalaan

27 2x1 +

3x2 +

x3 +

x4

=

1,8

Program penyelesaian dengan eliminasi Gauss % % % % % % % % % % % % %

Campuran Batubara Hasil Penyusunan Persamaan Aljabar Linier x1 + x2 + x3 + x4 = 1 2x1 + 10x2 + 5x3 + 7x4 = 6.1 5x1 + 6x2 + 3x3 + 3x4 = 4.3 2x1 + 3x2 + x3 + x4 = 1.8 Penyelesaian dilakukan dengan Eliminasi Gauss -------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ********************************************************

clear all clc % Penyusunan Matriks A A = [1 1 1 1 2 10 5 7 5 6 3 3 2 3 1 1]; % Penyusunan Matriks B B = [1 6.1 4.3 1.8]'; n = 4;

%

Orde matriks

x = elimgauss(A,B,n); disp(' ') disp('Fraksi masing-masing type batubara') disp('----------------------------------') x1 = x(1) x2 = x(2) x3 = x(3) x4 = x(4)

Keluaran program Fraksi masing-masing type batubara ---------------------------------x1 = 0.2000 x2 = 0.3000 x3 = 0.4000 x4 = 0.1000

Sehingga batubara

type 1 = 20 % type 2 = 30 % type 3 = 40 % type 4 = 10 %

28

Contoh 2.2. Komposisi Fraksi Mol Senyawa Hidrokarbon Tiga senyawa hidrokarbon berada dalam suatu tabung, dengan tekanan 2 atm dan berada dalam keadaan kesetimbangan fase cair-gas. Hitunglah komposisi fraksi mol cairan ketiga gas tersebut, dengan data-data dan rumus di bawah ini. ∑ xi = 1

…(2.2.1)

∑ yi = 1

…(2.2.2)

yi PT =

xi Pio

H1 x1 + H2 x2 + H3 x3 = H

…(2.2.3) …(2.2.4)

dengan xi = fraksi mol cairan komponen i yi = fraksi mol gas komponen i Pio = tekanan uap murni komponen i PT = tekanan total Hi = panas pencampuran komponen i H = panas pencampuran total Data-data

P10 = 5/2 atm, P20 = 5/3 atm, P30 = 5/4 atm H1 = 20 kcal, H2 = 30 kcal, H3 = 55 kcal PT = 2 atm, H = 30 kcal

Susunlah menjadi persamaan aljabar linier terlebih dahulu dan selesaikan!

Penyelesaian : Persamaan (2.2.1) x 1 + x2 + x3 = 1 Substitusi persamaan (2.2.3) ke persamaan (2.2.2) PO P1O PO x1 + 2 x2 + 3 x3 = 1 PT PT PT

5/4 x1 + 5/6 x2 + 5/8 x3 =1 30 x1 + 20 x2 + 15 x1 = 24

…(2.2.5)

Persamaan (2.2.4) 20 x1 + 30 x2 + 55 x3 = 30 Persamaan aljabar simultan

…(2.2.6)

29 x 1 + x2 + x3 = 1

…(2.2.1)

30 x1 + 20 x2 + 15 x1 = 24

…(2.2.5)

20 x1 + 30 x2 + 55 x3 = 30

…(2.2.6)

Selanjutnya diselesaikan dengan Matlab % % % % % % % % % % % %

Komposisi Fraksi Mol Senyawa Hidrokarbon Tekanan uap murni komponen 5/2 atm, 5/3 atm, 5/4 atm Entaphi panas pencampuran 20 kcal, 30 kcal, 55 kcal Tekanan total = 2 atm; Entalphi total 30 kcal; Penyelesaian dilakukan dengan Eliminasi Gauss --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all clc % Data-data P = [5/2 5/3 5/4]; H = [20 30 55]; Pt = 2; Ht = 30;

% % % %

atm kcal atm kcal

% Penyusunan Matriks A A = [1 1 1 P(1)/Pt P(2)/Pt P(3)/Pt H(1) H(2) H(3)]; % Penyusunan Matriks B B = [1 1 Ht]'; n = 3;

%

Orde matriks

x = elimgauss(A,B,n); disp(' ') disp('Fraksi Mol masing-masing komponen') disp('---------------------------------') x1 = x(1) x2 = x(2) x3 = x(3)

Keluaran program tersebut adalah Fraksi Mol masing-masing komponen --------------------------------x1 = 0.5000 x2 = 0.3000 x3 = 0.2000

30

2.2. METODE INVERSI MATRIKS Persamaan umum persamaan aljabar linier simultan dapat dituliskan dalam bentuk matriks sebagai berikut ⎡ a 11 ⎢a ⎢ 21 ⎢ a 31 ⎢ ⎢ . ⎢ a n1 ⎣

a 12 a 22

a 13 a 23

... ...

a 32

a 33

...

a n2

a n3

...

a 1n ⎤ a 2 n ⎥⎥ a 3n ⎥ ⎥ ⎥ a nn ⎥⎦

⎡ x 1 ⎤ ⎡ b1 ⎤ ⎢x ⎥ ⎢b ⎥ ⎢ 2⎥ ⎢ 2⎥ ⎢x 3 ⎥ = ⎢b3 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ . ⎥ ⎢ . ⎥ ⎢ x n ⎥ ⎢b n ⎥ ⎣ ⎦ ⎣ ⎦

A

…. (2.9)

x = B

Suatu matriks jika dikalikan dengan “matriks identitas” maka akan dihasilkan matriks itu sendiri. Matriks identitas adalah matriks bujursangkar yang terdiri dari bilangan 0 pada setiap elemennya kecuali pada diagonal matriks yang mempunyai bilangan 1. Contoh matriks identitas 3 x 3 ⎡1 0 0 ⎤ ⎢0 1 0⎥ = I ⎥ ⎢ ⎢⎣0 0 1⎥⎦

Jika matriks identitas tersebut dikalikan dengan matriks lain maka akan dihasilkan matriks itu sendiri. Contohnya jika matriks tersebut dikalikan dengan B yaitu suatu matriks yang berukuran 1 x 3. ⎡1 0 0 ⎤ ⎡ b 1 ⎤ ⎡ b1 ⎤ ⎢0 1 0⎥ ⎢ b ⎥ = ⎢ b ⎥ ⎢ ⎥ ⎢ 2⎥ ⎢ 2⎥ ⎢⎣0 0 1⎥⎦ ⎢⎣ b 3 ⎥⎦ ⎢⎣ b 3 ⎥⎦

I

B

= B

Inversi matriks A adalah jika inversi matriks A tersebut dikalikan dengan A maka akan diperoleh matriks identitas. A-1 A = I

Penyelesaian persamaan linier simultan dengan inversi matriks adalah

31 A x

= B

-1

= A-1 B

A A x

I x = A-1 B = A-1 B

x

… (2.10)

⎡a Inversi matriks A ukuran 2 x 2 ⎢ 11 ⎣a 21

A-1 =

a 11a 22

a 12 ⎤ dapat ditentukan dengan cara a 22 ⎥⎦

⎡ a 22 1 ⎢ − a 12 a 21 ⎣− a 21

− a 12 ⎤ a 11 ⎥⎦

Matlab dengan mudah dapat menentukan inversi suatu matriks dengan menggunakan fungsi

inv.

Contoh 2.3. Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dengan Oksigen Data konstanta kecepatan reaksi phase gas nitrit oksida dengan oksigen T, K

10-9 k , cc/ (mol det)

300

7,1

413

4,0

564

2,8

Jika k sesuai dengan persamaan

m

k = A T exp (-E/T)

Tentukan A, m, dan E

Penyelesaian k = A Tm exp (-E/T) ln k = ln A + m ln T – E/T Dari data-data di atas 22,68336 = ln A + 5,70378 m – 0,00333 E 22,10956 = ln A + 6,02345 m – 0,00242 E 21,75289 = ln A + 6,33505 m – 0,00177 E untuk

ln A

= x1

m

= x2

32 E

= x3

x1 + 5,70378 x2 – 0,00333 x3 = 22,68336 x1 + 6,02345 x2 – 0,00242 x3 = 22,10956 x1 + 6,33505 x2 – 0,00177 x3 = 21,75289 Dalam bentuk matriks ⎡1 5,70378 − 0,00333⎤ ⎡ x 1 ⎤ ⎡22,68336⎤ ⎢1 6,02345 − 0,00242 ⎥ ⎢ x ⎥ = ⎢ 22,10956 ⎥ ⎥ ⎥⎢ 2 ⎥ ⎢ ⎢ ⎢⎣1 6,33505 − 0,00177 ⎥⎦ ⎢⎣ x 3 ⎥⎦ ⎢⎣ 21,75289 ⎥⎦

Program penyelesaian dengan Matlab % % % % % % % % % %

Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dg Oksigen k = A T^m exp(-E/T) ln k = ln A + m ln T + (-E)/T Penyelesaian dilakukan dengan Inversi Matriks ------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret *************************************************************

clear all clc % Data-data T = [ 300 413 564]; k = [ 7.1 4.0 2.8]*10^9;

% K % cc/(mol.det)

% Penyusunan Matriks AA AA = [ 1 log(T(1)) 1/T(1) 1 log(T(2)) 1/T(2) 1 log(T(3)) 1/T(3)]; % Penyusunan Matriks BB BB = log(k); CC = inv(AA)*BB'; disp(' ') disp('Parameter konstanta kecepatan reaksi') disp('------------------------------------') A = exp(CC(1)) m = CC(2) E = -CC(3)

Keluaran program di atas adalah Parameter konstata kecepatan reaksi -----------------------------------

33 A = 1.3509e+007 m = 0.6064 E = -841.6950

sehingga persamaan konstanta kecepatan reaksinya adalah k = 1,3509.107 T0,6064 exp(841,6950/T)

Contoh 2.4. Parameter Transfer Massa Hubungan parameter-parameter transfer massa dapat dinyatakan sebagai kelompok tak berdimensi (KTD) sebagai berikut: ⎛ d p VS ρ ⎞ ⎟ = K 1 ⎜⎜ ⎟ µ ⎝ ⎠

kf a dp De

K2

⎛ µ ⎜ ⎜ρ D e ⎝

⎞ ⎟ ⎟ ⎠

K3

Sh = K1 (Re)K2 (Sc)K3 Tentukan K1, K2, dan K3 dengan data-data berikut: Sh

Re

Sc

(Sherwood)

(Reynold)

(Schmidt)

1

43,7

10800

0,6

2

21,5

5290

0,6

3

24,2

3120

1,8

Penyelesaian Sh = K1 (Re)K2 (Sc)K3 log (Sh) = log (K1) + K2 log (Re) + K3 log (Sc) Dari tabel-tabel di atas, diperoleh 1,64048 = x1 + 4,03342 x2 – 0,22185 x3 1,33244 = x1 + 3,72346 x2 – 0,22185 x3 1,38382 = x1 + 3,49415 x2 + 0,25527 x3 disusun dalam bentuk matriks

34 ⎡1 4,03342 − 0,22185⎤ ⎡ x 1 ⎤ ⎡1,64048⎤ ⎢1 3,72346 − 0,22185⎥ ⎢ x ⎥ = ⎢1,33244⎥ ⎥ ⎢ ⎥⎢ 2 ⎥ ⎢ ⎢⎣1 3,49415 0,25527 ⎥⎦ ⎢⎣ x 3 ⎥⎦ ⎢⎣1,38382⎥⎦

Program Penyelesaian % % % % % % % % % %

Parameter Transfer Massa Sh=k1*(Re)^k2*(Sc)^k3 log(Sh) = log(k1) + k2*log(Re) + k3*log(Sc) Penyelesaian dilakukan dengan Inversi Matriks --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all clc % Data-data Sh = [43.7 21.5 24.2]; Re = [10800 5290 3120]; Sc = [0.6 0.6 1.8]; % Penyusunan Matriks A A = [1 log10(Re(1)) log10(Sc(1)) 1 log10(Re(2)) log10(Sc(2)) 1 log10(Re(3)) log10(Sc(3))]; % Penyusunan Matriks B B = [log10(Sh(1)) log10(Sh(2)) log10(Sh(3))] k = A\B; disp(' ') disp('Konstanta Parameter Transfer Massa ') disp('-----------------------------------') k1 = 10^k(1) k2 = k(2) k3 = k(3)

Keluaran Program Konstanta Parameter Transfer Massa ----------------------------------k1 = 0.0058 k2 = 0.9938 k3 = 0.5853

Persamaan hubungan parameter-parameter transfer massa menjadi : Sh = 0,0058 (Re)0,9938 (Sc)0,5853

35

2.3. METODE DEKOMPOSISI LU Modifikasi metode eliminasi yang lain adalah metode dekomposisi LU. Metode ini similar dengan metode eliminasi Gauss. Matriks koefisien konstanta diubah menjadi 2 matriks lain, yaitu L dan U; dengan L adalah matriks triangular bawah dengan diagonal 1 dan U adalah matriks triangular atas. A = LU

… (2.11)

Konsep dasar metode dekomposisi LU adalah Ax=b L U x = L b* U x = b*

… (2.12)

Matriks A didekomposisi menjadi matriks L dan U. Matriks L hasil dekomposisi A digunakan untuk mendekomposisikan matriks b, sehingga diperoleh matriks b*. Jika matriks U dikalikan dengan matriks x akan diperoleh matriks b*. Selanjutnya x diperoleh dengan substitusi balik karena U adalah matriks triangular bawah.

Contoh 2.5. Neraca Massa Steady State pada Kolom Distilasi Bertingkat Xylena, styrena, toluena, dan benzena dipisahkan dengan kolom distilasi seperti ditunjukkan pada gambar 2.1. Tentukan kecepatan alir D1, D2, B1, B2, D, dan B.

36 D1

7 % Xylena 4 % Styrena 54 % Toluena 35 % Benzena

D #2

B1 F = 70 mol/menit

18 % Xylena 24 % Styrena 42 % Toluena 16 % Benzena

#1 D2

15 % Xylena 25 % Styrena 40 % Toluena 20 % Benzena

15 % Xylena 10 % Styrena 54 % Toluena 21 % Benzena

B #3

B2

24 % Xylena 65 % Styrena 10 % Toluena 1 % Benzena

Gambar 2.1. Distilasi Bertingkat Program Matlab % % % % % % % % % % %

Neraca Massa Steady State pada Kolom Distilasi Bertingkat Xylena, styrena, toluena, dan benzena dipisahkan dengan kolom distilasi bertingkat Penyelesaian dilakukan dengan Dekomposisi LU --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all clc

37 % Penyusunan Matriks A A = [0.07 0.18 0.15 0.24 0.04 0.24 0.10 0.65 0.54 0.42 0.54 0.1 0.35 0.16 0.21 0.01]; % Penyusunan Matriks B B = [0.15*70 0.25*70 0.40*70 0.20*70]'; disp(' ') disp('Penyelesaian untuk D1 B1 D2 B2 adalah : ') % Dekomposisi Matriks A [L,U] = lu(A); % Membentuk Matriks B* Bstar = inv(L)*B; % Menentukan Matriks x X = inv(U)*Bstar disp('Umpan kolom 2') D1 = X(1); B1 = X(2); D = D1 + B1 X_Dx = (A(1,1)*D1+A(1,2)*B1)/D X_Ds = (A(2,1)*D1+A(2,2)*B1)/D X_Dt = (A(3,1)*D1+A(3,2)*B1)/D X_Db = (A(4,1)*D1+A(4,2)*B1)/D disp('Umpan kolom 3') D2 = X(3); B2 = X(4); B = D2 + B2 X_Dx = (A(1,3)*D2+A(1,4)*B2)/B X_Ds = (A(2,3)*D2+A(2,4)*B2)/B X_Dt = (A(3,3)*D2+A(3,4)*B2)/B X_Db = (A(4,3)*D2+A(4,4)*B2)/B

Keluaran program : Penyelesaian untuk D1 B1 D2 B2 adalah : X = 26.2500 17.5000 8.7500 17.5000 Umpan kolom 2 D = 43.7500 X_Dx = 0.1140 X_Ds = 0.1200 X_Dt = 0.4920 X_Db = 0.2740 Umpan kolom 3

38 B = 26.2500 X_Dx = 0.2100 X_Ds = 0.4667 X_Dt = 0.2467 X_Db = 0.0767

Contoh 2.6. Persamaan Virial Selain hubungan gas ideal yang telah dikenal, ada banyak persamaan lain yang menghubungkan volume dan tekanan gas. Salah satunya adalah persamaan virial PV = a + bP + cP2 Untuk mengevaluasi konstanta-konstanta a, b, dan c, telah dilakukan percobaan dengan data sebagai berikut : P (atm)

V (L/mol)

1

4

2

9/2

3

16/3

Susunlah data-data di atas menjadi persamaan aljabar linier simultan dan selesaikan.

Program Matlab % % % % % % % % % %

Persamaan Virial PV = a + bP + cP^2 Untuk mengevaluasi konstanta-konstanta a, b, dan c, telah dilakukan percobaan dengan data-data di bawah ini --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all clc % Data-data P = [1 2 3]; V = [4 9/2 16/3]; % Matriks A A = [1 P(1) (P(1))^2 1 P(2) (P(2))^2 1 P(3) (P(3))^2]; % Matriks B B = [P(1)*V(1)

% atm % L/mol

39 P(2)*V(2) P(3)*V(3)]; C = A\B; disp(' ') disp('Konstanta persamaan virial adalah : ') disp('------------------------------------') a = C(1) b = C(2) c = C(3)

Keluaran Program Konstanta persamaan virial adalah : -----------------------------------a = 1 b = 2 c = 1

Contoh 2.7. Persamaan Kecepatan Reaksi Untuk kecepatan reaksi, ra

= k C aα C βb , dengan data ditunjukkan pada

tabel. Tentukan persamaan kecepatan reaksi tersebut ! Ca

Cb

r

0,7

0,2

0,4567

0,9

0,3

1,0707

1,6

0,2

2,5917

Penyelesaian dengan Program Matlab clear all clc echo on % Persamaan Virial % ra=k*(Ca)^a*(Cb)^b % log(ra) = log(k) + a*log(Ca) + b*log(Cb) % Untuk mengevaluasi konstanta-konstanta a, b, dan k, % telah dilakukan percobaan dengan data-data di bawah ini % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** echo off

40 % Data-data Ca = [0.7 0.9 1.6]; Cb = [0.2 0.3 0.2]; ra = [0.4567 1.0707 2.5917]; % Matriks A A = [1 log10(Ca(1)) log10(Cb(1)) 1 log10(Ca(2)) log10(Cb(2)) 1 log10(Ca(3)) log10(Cb(3))]; % Matriks B B = [log10(ra(1)) log10(ra(2)) log10(ra(3))]; konst = A\B; disp(' ') disp('Konstanta adalah : ') disp('-------------------') k = 10^konst(1) a = konst(2) b = konst(3)

Keluaran Program % Persamaan Virial % ra=k*(Ca)^a*(Cb)^b % log(ra) = log(k) + a*log(Ca) + b*log(Cb) % Untuk mengevaluasi konstanta-konstanta a, b, dan k, % telah dilakukan percobaan dengan data-data di bawah ini % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** echo off Konstanta adalah : ------------------k = 3.4990 a = 2.1000 b = 0.7998

PERSAMAAN ALJABAR

3

NON LINIER

Suatu penyelesaian persamaan aljabar non linier adalah menentukan nilai x, sehingga suatu fungsi x, f(x) akan sama dengan nol. Contoh, f(x) = e-x – x, maka yang ingin diketahui adalah berapakah nilai x, sehingga f(x) = 0. Secara umum ada 2 metode yang digunakan, yaitu metode akolade dan metode terbuka. Metode akolade adalah metode yang menggunakan 2 titik awal tebakan, yang kedua titik tersebut harus mengapit jawaban yang dimaksud. Termasuk metode ini adalah metode Bisection (bagi dua). Berbeda dengan metode akolade, metode terbuka hanya menggunakan satu tebakan awal. Termasuk metode ini adalah metode Newton-Raphson.

3.1. METODE BISECTION (BAGIDUA) Pada metode Bisection, mula-mula diperkirakan suatu interval sehingga akar persamaan yang akan diperoleh berada pada interval tersebut. Selanjutnya

44 dicari nilai f(x) dari kedua titik dan dari titik tengah interval. Dengan menganalisa nilai f(x) ketiga titik maka kita dapat membuang setengah interval dalam setiap langkahnya. Langkah penyelesaian : 1.

Tentukan interval perkiraan awal, misalkan antara xA dan xB

2.

Hitung f(xA) dan f(xB)

3.

Interval yang benar akan menghasilkan f(xA) dan f(xB) pada daerah yang berbeda (sebelah kanan dan kiri akar persamaan yang dicari)

Akar persamaan

xA

xB

Gambar 3.1. Kurva Akar-akar Persamaan Uji apakah [f(xA)]x[f(xB)] < 0. Jika salah, maka ulangi langkah (1) dan (2). 4.

Hitung xM, yaitu titik tengah interval xM =

5.

xA + xB 2

Hitung f(xM) a.

Jika [f(xA)]x[f(xM)] > 0, maka xA baru = xM dan xB tetap

…. (3.1)

45

xA =

xM xA

xB baru

Gambar 3.2. Penentuan xA dan xB baru jika [f(xA)]x[f(xM)] > 0 b.

Jika [f(xA)]x[f(xM)] < 0, maka xA tetap dan xB baru = xM

x M = xA

Baru

xA

xB

Gambar 3.3. Penentuan xA dan xB baru jika [f(xA)]x[f(xM)] < 0 6.

Uji apakah f(xm) < Toleransi. Jika tidak, ulangi langkah (4) untuk menentukan xm yang baru.

Contoh 3.1. Konversi untuk disosiasi H2O Uap air didisosiasikan (dipecah) menjadi H2 dan O2 pada tekanan 0,2 atm sebagai berikut: H2O ↔ H2 + ½ O2 Fraksi molekul (x) dari H2O dapat dinyatakan sebagai berikut: kp =

x

2p

(1 − x ) (2 + x )

Jika kp = 0,4568 tentukanlah x yang memenuhi persamaan di atas.

46 Program matlab untuk metode bagidua : % Persamaan aljabar non linier % % Penyelesaian dilakukan dengan Metode Bagidua (bisection) % % -------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % ************************************************************** clc clear all disp 'Masukkan Perkiraan Batas Bawah dan Batas Atas ' xa=input('batas bawah = '); xb=input('batas atas = '); fa = contoh31(xa); fb = contoh31(xb); x=[xa:(xb-xa)/50:xb]; plot(x,contoh31(x)); xlabel('x') ylabel('f(x)') grid on while fa*fb > 0 disp 'Tebakan salah, ganti batas atas dan/atau batas bawah' disp 'Perhatikan grafik!! Perkirakan nilai x untuk f(x) mendekati nol' xa=input('batas bawah = '); xb=input('batas atas = '); fa=contoh31(xa); fb=contoh31(xb); end tol=0.000001; xm=(xa+xb)/2; fm=contoh31(xm); while abs(xa-xb)>tol xm=(xa+xb)/2; fm=contoh31(xm); if fa*fm<0 xb=xm; fb=contoh31(xb); else xa=xm; fa=contoh31(xa); end end t =['f(x)=0 untuk x = 'num2str(xm)]; disp (t)

Program dalam bentuk M-function untuk persoalan di atas function f_x = contoh31(x) % Program penyelesaian utk reaksi disosiasi H2O % H2O --> H2 + 1/2 O2 % x / 2p % kp = ------/ ----% (1 - x) \/ (2 + x) % p = 0,2 atm % kp = 0,4568 % % %

Nama File : contoh31.m Surakarta, Oktober 2005 ---------------------------------------------------------------

47 p = 0.2; kp = 0.4568; f_x = x./(1-x).*sqrt(2*p./(2+x))-kp;

%atm

Dalam memberikan masukan untuk batas bawah dan atas, secara teori nilai konversi berkisar antara 0 – 0,99. Untuk x = 1, nilai kp akan tak terdefinisi. Keluaran program : Masukkan Perkiraan Batas Bawah dan Batas Atas batas bawah = 0 batas atas = 0.99 f(x)=0 untuk x = 0.53487

Contoh 3.2. Faktor Kompresibilitas Gas Ideal Hubungan faktor kompresibilitas gas ideal dalam bentuk z=

1 − y + y 2 − y3 1 − y3

dengan y = b/4v, untuk b adalah koreksi van der Waals dan v adalah volum molar. Jika z = 0,892 berapakah y ? Penyelesaian dilakukan dengan program bisection yaitu dengan mengganti fungsi disosiasi H2O dengan fungsi untuk persoalan faktor kompresibilitas gas ideal. function f_y = contoh32(y) % Faktor Kompresibilitas Gas Ideal % 1 - y + y^2 - y^3 % z = ------------------% 1 - y^3 % z = 0,896 % % %

Nama File : contoh32.m Surakarta, Oktober 2005 --------------------------------------------------------------

z = 0.892; f_y = (1-y+y.^2-y.^3)-z.*(1-y.^3);

Secara umum ada 3 nilai yang memenuhi persamaan di atas karena f(y) merupakan persamaan orde 3. Tetapi nilai untuk y yang tepat adalah antara 0 – 1. Masukkan Perkiraan Batas Bawah dan Batas Atas

48 batas bawah = 0 batas atas = 1 f(x)=0 untuk x = 0.1229

3.2. METODE NEWTON-RAHPSON Metode Newton-Raphson adalah metode yang paling populer untuk mencari akar-akar suatu persamaan aljabar non linier. Metode ini merupakan metode terbuka, yaitu hanya menggunakan satu tebakan awal. Jika suatu tebakan awal adalah xi, maka garis singgung titik xi pada f(xi), dapat diperluas sampai memotong sumbu x. Titik potong garis tersebut pada sumbu x kemudian menjadi perbaikan tebakan awal, xi+1.

f(xi) Akar persamaan Garis singgung

f(xi+1) xi+1

xi

Gambar 3.4. Menentukan Akar-Akar Persamaan dengan Newton Raphson Slope (kemiringan) garis singgung pada titik xi adalah turunan pertama fungsi f(x), didekati dengan f’(x) = f ( x i ) − 0 x i − x i +1

xi+1 = xi - f ( x i )

f ' (x i )

Langkah penyelesaian 1.

Tentukan tebakan awal xi

2.

Hitung f(xi) dan f’(xi)

3.

Hitung xi+1 dengan persamaan (26)

4.

Uji apakah | xi+1 - xi | < toleransi atau

….(3.2)

49 | f(xi) | < toleransi, Jika ya, maka selesai. Jika tidak, xi baru = xi+1, ulangi langkah (2) Adakalanya f’(x) sulit dicari dengan analitis. Untuk itu dapat dilakukan pendekatan secara numeris f’(x)= f ( x 0 + ε) − f ( x 0 − ε)

…. (3.3)



dengan ε adalah bilangan yang kecil. Persamaan di atas banyak digunakan untuk penyelesaian akar-akar persamaan aljabar non linier dengan pemograman komputer. Secara umum metode Newton-Raphson adalah metode yang sangat efisien. Tetapi metode ini mempunyai beberapa kelemahan untuk kasus-kasus tertentu, seperti konvergen yang sangat perlahan, atau bahkan bersifat divergen. Contoh 3.3. Temperatur Dew Point untuk Campuran Benzena dan Toluena Tentukan temperatur dew point (Titik Embun) dan komposisi liquid dari suatu campuran gas benzena dan toluena pada tekanan 1 atm (760 mmHg). Komposisi uap adalah 0,77 fraksi mol benzena dan 0,23 fraksi mol toluena. Campuran gas dan liquid diasumsikan sebagai campuran ideal. Kondisi kesetimbangan sesuai dengan Hukum Roult-Dalton, yiP=xiPiO Tekanan uap murni dihitung dengan persamaan log p O = A −

B untuk pO dalam mmHg T+C

dan T dalam OC Benzena

Toluena

A

6,89745

6,95334

B

1206,35

1343,94

C

220,237

219,377

Program Metode Newton-Raphson

50 % % % % % % % % %

Persamaan aljabar non linier Penyelesaian dilakukan dengan Metode Newton-Raphson --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clc clear all xnew=input(' Nilai untuk tebakan awal = xold=0; tol=0.0001; eps=0.0001;

');

disp ' x-old f(x-old) ' while abs(xnew-xold)>tol xold=xnew; fxold=contoh33(xold); t=[' 'num2str(xold) ' 'num2str(fxold) ]; disp (t) fmin=contoh33(xold-eps); fplus=contoh33(xold+eps); dfx=(fplus-fmin)/2/eps; xnew=xold-fxold/dfx; end t=['akar persamaan, x = 'num2str(xold) ' f(x) = 'num2str(fxold)]; disp(t)

Proram penyelesaian function fT=contoh33(T) % Temperatur Dew Point untuk Campuran Benzena dan Toluena % Komposisi uap y1 = 0,77 dan y2 = 0,33 % Tekanan uap murni % o ( B ) % Pi = 10^( A + ------- ) % ( (T + C) ) % Hukum Roult-Dalton % yi * P % xi = -------% o % Pi % x1 + x2 = 1 % % %

Nama File : contoh33.m Surakarta, Oktober 2005 ---------------------------------------------------------------

P=760; % Konversi dari atm ke mmHg y1=0.77; y2=0.23; p1o=10^(6.89745-1206.35/(T+220.237)); p2o=10^(6.95334-1343.94/(T+219.377)); x1=y1*P/p1o; x2=y2*P/p2o; fT=x1+x2-1;

Keluaran program Nilai untuk tebakan awal = x-old f(x-old)

85

51 85 0.17029 89.639 0.014053 90.0946 0.0001176 90.0985 8.4065e-009 akar persamaan, x = 90.0985

f(x) = 8.4065e-009

Sehingga T = 90,0985 OC Contoh 3.4. Hubungan Faktor Friksi suatu Pelarut dengan Bilangan Reynolds Hubungan faktor friksi untuk aliran suatu pelarut dengan bilangan Reynolds (Re) secara empiris adalah 1 f

(

)

5,6 ⎞ ⎛1⎞ ⎛ = ⎜ ⎟ ln Re f + ⎜14 − ⎟ k ⎠ ⎝k⎠ ⎝

dengan k = konsentrasi larutan dan f adalah faktor friksi. Tentukanlah f, jika Re = 3750 dan k=0,28 Program penyelesaian dengan Metode Newton-Raphson. Karena bekerja pada bilangan yang lebih kecil, toleransi dapat kita turunkan sampai 10-7.

function f_f = contoh34(f) % Hubungan faktor friksi suatu pelarut dengan bil Reynolds % 1 1 5,6 % ------- = --- ln [ Re*sqrt(f) ] + [ 14 - ----- ] % sqrt(f) k k % Re = 3750 % k = 0,28 % % %

Nama File : contoh34.m Surakarta, Oktober 2005 ---------------------------------------------------------------

Re = 3750; k = 0.28; f_f = ((1/k)*log(Re*sqrt(f))+(14-5.6/k))*sqrt(f)-1;

Keluaran program Nilai untuk tebakan awal = 0.01 x-old f(x-old) 0.01 0.51676 0.0044847 -0.080152 0.005105 -0.0020744 0.0051219 -1.4377e-006 akar persamaan, x = 0.0051219 f(x) = -1.4377e-006

52 sehingga f = 0,0051219

3.3. FUNGSI fzero Matlab mempunyai suatu fungsi untuk menyelesaikan persamaan aljabar non linier. Fungsi ini disebut dengan

fzero.

Fungsi ini terdiri dari beberapa

metode yang dipadukan untuk menyelesaikan berbagai persoalan secara cepat dan tepat. Penggunaan fungsi fzero adalah : x

= fzero(‘nama_fungsi’,xo, tol, trace)

dengan : adalah nama suatu fungsi yang berisi persamaan yang akan dicari nilai nol-nya. xo adalah nilai perkiraan awal tol adalah ketepatan penyelesaian jika trace mempunyai nilai lebih dari 1. trace adalah jumlah iterasi yang dilakukan. Dua parameter terdepan harus diisi, sehingga alternatif untuk menggunakan nama_fungsi

fungsi ini adalah x

= fzero(‘nama_fungsi’,xo)

Contoh 3.5. Persamaan Peng-Robinson Untuk menghitung volum CO2 pada tekanan 1.104 kPa dan temperatur 3400K, dapat digunakan persamaan EOS (equation of state) Peng-Robinson P=

RT a − V − b V (V + b ) + b( V − b)

dengan a = 364,61 m6kPa/(kgmol)2 dan b = 0,02664 m3/kgmol R=8,3137 m3kPa/kgmol K. Tentukanlah V dengan tebakan awal V, gunakan EOS gas ideal (PV=RT)

% % % % % % % %

Persamaan Peng-Robinson Penyelesaian dilakukan dengan fungsi fzero --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret

53 %

***************************************************************

% Data-data clear all clc global R T P R=8.3137; T=340; P=10^4;

% % %

m^3.kPa/(kgmol.K) K kPa

% Sebagai nilai tebakan V digunakan pers Gas Ideal Vo=R*T/P; % Penentuan nilai V dengan fungsi fzero V=fzero('F35',Vo)

Fungsi penyelesaian Peng-Robinson function fV=F35(V) % Persamaan Peng-Robinson % % % %

R.T P = -----V - b Parameter utk CO2

-

a ------------------V(V + b) + b(V - b)

% Nama File : F35.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global R T P %Parameter Peng-Robinson untuk CO2 a=364.61; b=0.02664; fV=R*T/(V-b)-a/(V*(V+b)+b*(V-b))-P;

Keluaran program V = 1.6792e-001

Sehingga volum molar CO2 adalah 0,16792 m3/kgmol Contoh 3.6. Penurunan temperatur karena pelepasan panas Suatu campuran gas mempunyai kapasitas panas Cp = 7,053 + 1,2242.10-3 T – 2,6124.10-7 T2 T dalam oF dan Cp dalam Btu/lbmol oF. Jika panas yang dilepaskan untuk menurunkan temperatur campuran gas panas tersebut dari 550 oF adalah 2616 Btu/lbmol gas sampai temperatur berapakah campuran gas tersebut dapat didinginkan.

54 T

q=

∫ Cp

dt

To

Sampai berapakah campuran gas tersebut dapat didinginkan ? function fT=contoh36(T) % Penurunan temperatur karena pelepasan panas % Cp = 7,053 + 1,2242.10(-3) T - 2,6124.10(-7) T^2 % q = integral(cp dT) % Data % q = -2616 BTU/lbmol % To = 550 oF % % %

Nama File : contoh36.m Surakarta, Oktober 2005 ---------------------------------------------------------------

q = -2616; To = 550;

% BTU/lbmol % oF

% Integral secara analitis fT=7.053*(T-To)+1.2242*10^-3/2*(T^2-To^2)... -2.6124*10^-7/3*(T^3-To^3)-q;

Fungsi tersebut dapat dijalankan dari jendela command >> T = fzero('contoh36',150) T = 1.9992e+002

Sehingga temperatur gas adalah 199,92 OF.

Contoh-contoh lain Contoh 3.7. Debit Aliran dengan Pompa pada Pipa Suatu cairan akan dialirkan dari tangki 1 ke tangki 2 melalui pipa berdiameter D, dengan bantuan pompa. Panjang ekuivalen pipa, Le. Dari persamaan Bernoulli antara titik 1 dan titik 2 diperoleh persamaan berikut :

z 2 − z1 +

f.Le.v 2 − Hm = 0 2.g.D

faktor friksi didekati dengan persamaan empiris :

f=

0,0596 Re 0,215

Re =

ρ .v.D µ

dengan

55 Karakteristik pompa sentrifugal yang dapat dipakai berupa hubungan antara head pompa ( Hm, cm) dengan debit ( Q, cm3/dtk) dapat didekati dengan persamaan : Hm = 3718,5 – 2,34967.Q + 7,8474.10-4.Q2 – 9,5812.10-8.Q3 Debit aliran dihitung dengan persamaan :

Q=

π 4

.D 2 .v

Data-data yang diketahui : ρ = 1 g/cm3; µ = 0,01 g/cm.dtk; g = 981 cm/dtk2; z1 = 300 cm; z2 = 800 cm; D = 4 cm; Le = 20.000 cm. Hitung berapa kecepatan aliran dalam pipa (v) dan debitnya (Q). Penyelesaian Program Matlab % Debit Aliran dengan Pompa pada Pipa % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** clear all clc global rho myu g z2 z1 D Le % Data-data rho=1; myu=0.01; g=981; z1=300; z2=800; D=4; Le=20000;

% % % % % % %

Densitas, g/cm^3 Viskositas, g/cm.dtk grafitasi, cm/dtk^2 tinggi titik 1, cm tinggi titik 2, cm diameter pipa, cm panjang ekivalen, cm

% Perhitungan vhit=fzero(@F37,200) Qhit=pi/4*D^2*vhit

Program terkait function fv = F37(v) % Langkah perhitungan % tebak v ---> hitung bil. Reynold ---> hitung faktor friksi % ---> hitung debit ---> hitung head pompa ---> % hitung pers. Bernoulli % f Le v^2 % z2 - z1 + -------- - Hm = 0 % 2 g D % % %

Nama File : F37.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global rho myu g z2 z1 D Le Re=rho*v*D/myu; f=0.0596/Re^0.215;

% Perhitungan Bil. Reynold % Perhitungan faktor friksi

56 Q=pi/4*D^2*v; % Perhitungan Debit Hm=3718.5-2.3496*Q+7.8474e-4*Q^2-9.5812e-8*Q^3; % Perhitungan head pompa fv=z2-z1+f*Le*v^2/(2*g*D)-Hm; % Persamaan Bernoulli

Keluaran program vhit = 227.6735 Qhit = 2.8610e+003

Terhitung kecepatan aliran 227,6735 cm/detik dengan debit 2.861 cm3/detik.

Contoh 3.8. Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas Reaksi eksotermis fasa gas A + 2B ↔ C dijalankan dalam reaktor adiabatik. Umpan berjumlah Fo gmol/j dan bersuhu TF mempunyai komposisi : 25 % A dan 75 % B. Tekanan sepanjang reaktor tetap P atm. Ingin dicari nilai konversi A pada kesetimbangan (z). Konversi kesetimbangan dapat dihitung dengan persamaan : Tkesetimbangan - Tneraca panas = 0 Dari neraca panas diperoleh persamaan :

T = TF -

0,25.(1 - z).C pA

0,25.z. ∆H FR + (0,75 − 0,5.z).C pB + 0,25.C pC

dengan :

∆H FR = ∆H oR + (C pC − C pA − 2.C pB ).(TF − Tref ) Dari kesetimbangan diperoleh : T=

B ⎛K⎞ ln⎜ ⎟ ⎝A⎠

dengan K =

0,25.(1 − z) .P (1 − 0,5.z) (0,75 − 0,5.z) PB = .P (1 − 0,5.z) 0,25.z .P PC = (1 − 0,5.z)

PA =

PC PA .PB

2

57 Data-data yang diketahui : Tref = 298 K; A = 8.10

-6

∆HRo

= - 20.000 cal/gmol; TF = 400 K; P = 20 atm;

atm; B = 4500 K; CpA = 7 cal/mol.K; CpB = 8

cal/gmol.K; CpC = 12 cal/gmol.K Program Matlab % % % % % % % %

Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas Reaksi A + 2B --> C --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

global dHr Tf

P Tref A B Cpa Cpb Cpc

% Data-data dHr=-20000; % Panas reaksi, kal/gmol Tf=400; P=20; % Temperatur umpan, K Tref=298; % Temperatur referensi, K % Parameter temperatur kesetimbangan A=8e-6; % atm B=4500; % K % Kapasitas panas Cpa=7; % kal/mol.K Cpb=8; % kal/mol.K Cpc=12; % kal/mol.K % Perhitungan konversi kesetimbangan konversi=fzero(@F38,0.6)

Program terkait function fz = F38(z) % Langkah perhitungan % tebak konversi kesetimbangan z ---> hitung tekanan parsial % komponen a, b, dan c ---> hitung panas reaksi % ---> hitung temperatur reaktor ---> hitung temperatur % kesetimbangan ---> bandingkan T reaktor dan T ktmbgn % T kesetimbangan - T reaktor = 0 % % % %

Nama File : F38.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global dHr Tf P Tref A B Cpa Cpb Cpc % Perhitungan tekanan parsial komponen Pa=0.25*(1-z)*P/(1-0.5*z); Pb=(0.75-0.5*z)*P/(1-0.5*z); Pc=0.25*z*P/(1-0.5*z); % Panas reaksi dHrf=dHr+(Cpc-Cpa-2*Cpb)*(Tf-Tref); % Temperatur reaktor T=Tf-0.25*z*dHrf/(0.25*(1-z)*Cpa+(0.75-0.5*z)*Cpb+0.25*z*Cpc); % Temperatur kesetimbangan K=Pc/Pa/Pb^2; Tstb=B/log(K/A);

58 fz=Tstb-T;

Keluaran program konversi = 0.4143

Contoh 3.9. Temperatur Titik Embun untuk Campuran Benzena, Toluena, dan Ortho-xylena Campuran uap dengan fraksi mol benzene (A) = 0,4; toluene (B) = 0,3; dan ortho-xylene (C) = 0,3; didinginkan pada tekanan tetap Pt = 76 cmHg. Ingin dicari pada suhu berapa (K) pengembunan terjadi. Sistem mengikuti hukum Roult-Dalton. Harga tekanan uap murni mengikuti persamaan

3764 ⎞ ⎛ PAo = exp⎜14,95 − ⎟ T ⎠ ⎝

4497 ⎞ ⎛ PBo = exp⎜16,07 − ⎟ T ⎠ ⎝

4934 ⎞ ⎛ PCo = exp⎜16,27 − ⎟ T ⎠ ⎝ Pengembunan terjadi jika

y A .Pt y B .Pt y C .Pt + + −1 = 0 PAo PBo PCo Penyelesaian % % % % % % %

Temperatur Titik Embun untuk Campuran Benzena, Toluena, dan Ortho-xylena --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

global ya yb yc Pt % Data-data tekanan parsial ya=0.4; yb=0.3; yc=0.3; % Tekanan total, cmHg Pt=76; % Perhitungan temperatur T=fzero(@F39,300)

Program terkait

59 function fT=F39(T) % Tekanan uap murni % o ( B ) % Pi = 10^( A + --- ) % ( T ) % Hukum Roult-Dalton % yi * P % xi = -------% o % Pi % x1 + x2 + x3 = 1 % % %

Nama File : F39.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global ya yb yc Pt Pao=exp(14.95-3764/T); Pbo=exp(16.07-4497/T); Pco=exp(16.27-4934/T); fT=Pt*(ya/Pao+yb/Pbo+yc/Pco)-1;

Keluaran program T = 390.2252

Temperatur titik embun 390,2252 K

Contoh 3.10. Terminal Velocity untuk Partikel Jatuh dalam Fluida Partikel berbentuk bola yang bergerak dalam suatu fluida mempunyai terminal velocity sebagai berikut :

(

)

⎛ 4g ρ p − ρ D p v t = ⎜⎜ 3C D ρ ⎝

⎞ ⎟ ⎟ ⎠

…(3.10.1)

dengan vt adalah terminal velocity (m/detik), g adalah percepatan grafitasi (= 9,80665 m/detik2), ρp adalah densitas partikel (kg/m3), ρ adalah densitas fluida (kg/m3), Dp adalah diameter partikel bola (m) dan CD adalah koefisien drag (tak berdimensi). Koefisien drag partikel bola untuk terminal velocity bervariasi dengan bilangan Reynolds (Re) sebagai berikut : CD =

CD =

(

24 Re

24 1 + 0,14 Re 0,7 Re

untuk Re < 0,1

)

untuk

0,1 ≤ Re ≤ 1000

60 CD = 0,44

untuk 4

CD = 0,19 – 8.10 /Re

1000< Re ≤ 35000 untuk

35000 ≤ Re

dengan Re = D p v t ρ dan µ adalah viskositas (Pa detik atau kg/mdetik) µ

Tentukan terminal velocity untuk partikel batubara dengan ρP = 1800 kg/m3 dan Dp = 0,208.10-3 m yang jatuh dalam air pada T = 298,15 K dengan ρ = 994,6 kg/m3 dan µ = 8,931.10-4 kg/mdetik. Penyelesaian Tebak vt Æ hitung Re Æ Tentukan CD Æ Cek vt dengan persamaan (3.10.1 ) Program Matlab function fv_t = contoh310(v_t) % Terminal Velocity untuk Partikel Jatuh dalam Fluida % Tebak vt --> hitung Re --> Tentukan CD --> Cek vt % / 4.g.(rhop - rho).Dp % vt = / ------------------% \/ 3.CD.rho % % %

Nama File : contoh310.m Surakarta, Oktober 2005 ---------------------------------------------------------------

% Data-data rho_p = 1800; D_p = 0.208*10^-3; T = 298.15; rho = 994.6; mu = 8.931*10^-4; g = 9.80665;

%kg/m^3 %m %K %kg/m^3 %kg/m/s %m/s^2

% Menghitung bilangan Reynold Re = D_p*v_t*rho/mu; % Menentukan koef. drag (CD) if Re < 0.1 C_D = 24/Re; elseif Re < 1000 C_D = 24*(1+0.14*Re^0.7)/Re; elseif Re < 350000; C_D = 0.44; else C_D = 0.19-80000/Re; end % Membandingkan vt awal dan vt perhitungan fv_t = v_t^2*(3*C_D*rho)-4*g*(rho_p-rho)*D_p;

Perintah dari jendela command dan hasilnya : >> v_t_tebakan = 0.2; >> v_t = fzero('contoh310',v_t_tebakan) v_t =

61 1.5782e-002

Sehingga vt adalah 0,015782 m/detik Contoh 3.11.

Volum Molar dan Faktor Kompressibilitas untuk Persamaan van der Waals

Hukum gas ideal dapat menunjukkan hubungan tekanan, volum, dan temperatur (PVT) hanya pada tekanan gas rendah (mendekati tekanan atmosfer). Untuk tekanan tinggi persamaan yang harus digunakan lebih kompleks daripada hukum gas ideal tersebut. Perhitungan volum molar dan faktor kompressibilitas menggunakan persamaan yang lebih kompleks yang memerlukan penyelesaian secara numeris. Salah satu persamaan yang dapat digunakan adalah persamaan van der Waals a ⎞ ⎛ ⎜ P + 2 ⎟(V − b ) = RT V ⎝ ⎠ dengan

a=

27 ⎛⎜ R 2TC 2 ⎞⎟ 64 ⎜⎝ PC ⎟⎠

b=

RTC 8PC

dengan P

= tekanan (atm)

V

= volum molar (L/gmol)

T

= temperatur (K)

R

= konstanta gas = 0,08206 atmL/gmolK

TC

= temperatur kritis (405,5 K untuk ammonia)

PC

= tekanan kritis (111,3 atm untuk ammonia)

Tekanan tereduksi dinyatakan sebagai Pr =

P PC

Faktor kompressibilitas dinyatakan sebagai Z= a.

PV RT

Tentukan volum molar dan faktor kompressibilitas untuk gas ammonia pada tekanan P = 56 atm dan temperatur T = 450 K menggunakan persamaan van der Waals !

b.

Ulangi perhitungan untuk Pr = 1, 2, 4, 10, dan 20 !

62 c.

Bagaimanakah hubungan faktor kompressibilitas untuk berbagai nilai Pr ?

Penyelesaian % % % % % % % % % % % % % % % %

Volum Molar dan Faktor Kompressibilitas utk Pers van der Waals Varibel berubah P Pr = ----Pr Dari data-data yang ada Hitung P Hitung V dengan terlebih dahulu menebak V, lalu hitung dengan pers. van der Waals Hitung Z P.V Z = -----R.T --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all format short e global P a b R T % Data-data Pc = 111.3; % Tc = 405.5; % R = 0.08206; % T = 450; % P = 56; % Pr = [P/Pc 1 2 4 10 20]; a = 27/64*R^2*Tc^2/Pc; b = R*Tc/(8*Pc);

atm K atm.L/gmol.K K atm

% Perhitungan for j = 1:6 P = Pc*Pr(j); Vtebak = R*T/P; V = fzero('waals',Vtebak); z = P*V/(R*T); hasil(j,1)=Pr(j); hasil(j,2)=V; hasil(j,3)=P*V/(R*T); end % Menampilkan hasil perhitungan disp(' Pr Volum molar faktor Z') disp(hasil) plot(hasil(:,1),hasil(:,3)) title('Faktor Kompresibilitas vs Tekanan Tereduksi') xlabel('Tekanan Tereduksi') ylabel('Faktor Kompresibilitas')

Fungsi van der Waals function f_V = waals(V) % Persamaan van der Waals % [ a ] % [ P + ------ ] ( V - b ) % [ V^2 ] % Parameter utk ammonia

= RT

63 % Nama File : waals.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global P a b R T % Modifikasi persamaan van der Waals f_V = P*V^3-P*b*V^2-R*T*V^2+a*V-a*b;

Faktor kompresibilitas

Hasil perhitungan

Gambar 3.5. Keluaran Program Contoh 3.11 >> Pr 5.0314e-001 1.0000e+000 2.0000e+000 4.0000e+000 1.0000e+001 2.0000e+001

Volum molar 5.7489e-001 2.3351e-001 7.7268e-002 6.0654e-002 5.0875e-002 4.6175e-002

faktor Z 8.7183e-001 7.0381e-001 4.6578e-001 7.3126e-001 1.5334e+000 2.7835e+000

Contoh 3.12. Temperatur Batang Konduktor sebagai Fungsi Arus Suatu batang konduktor berdiameter D dan hambatan elektrik per satuan panjang RL. Batang tersebut mula-mula berada pada kesetimbangan termal dengan udara di sekitarnya. Aliran listrik I dilewatkan melalui batang tersebut. Untuk diameter batang yang kecil, dapat diasumsikan bahwa temperatur sepanjang batang seragam, dengan temperatur sebagai fungsi waktu T(t).

64 Neraca energi pada batang logam Eacc = Eg – Eout Ecc = kecepatan energi tersimpan pada batang logam Eg = kecepatan pembangkitan energi dalam batang karena panas hambatan Eout = kecepatan aliran energi total keluar dari batang karena konveksi dan radiasi

T lingkungan Panas yang dilepaskan

I, kuat arus D, diameter

L, panjang pipa

Gambar 3.6. Batang Konduktor Energi dalam batang sepanjang waktu Ecv = ρcV

dT dt

Eg = I2RLL Dengan RL adalah hambatan per satuan panjang dan satuan persamaan di atas adalah (amp)2ohm. Eout = hA(T - T∞) + εσA(T4 – T4sur) Dengan A adalah luas permukaan perpindahan panas T∞ adalah temperatur fluida Tsur adalah temperatur lingkungan karena perpindahan panas radiasi ε = emisivitas material σ = konstanta Stefan boltzmann = 5,67.108 W/m2-K4 Substitusi ke persamaan ρcV

dT 2 = I RLL - hA(T - T∞) + εσA(T4 – T4sur) dt

65 dengan A = πDL V = πD2L/4 Kondisi awal T(0) = T0 Jika arus mula-mula adalah nol, kemudian temperatur awal T0 maka didapatkan persamaan hA(T - T∞) + εσA(T04 – T4sur) = 0 jika T∞ dan Tsur sama, maka T0 = T∞ = Tsur. D = 1 mm ε = 0,8 RL = 0,4 ohm/m h = 100 W/m2K T∞ = Tsur = 25 oC % % % % % % %

Temperatur Batang Konduktor sebagai Fungsi Arus Listrik --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all global D emiss R_L sig h Tinf Tsur Isq D = 0.001; % Diameter kawat (m) emiss = 0.8; % Emisivitas R_L = 0.4; % Risistansi per satuan panjang (ohm/m) sig = 5.67e-8; % Konstanta Stefan-Bolzmann (W/m^2K^4) h = 100; % Koefisien transfer panas (W/m^2K) Tinf = 25+273.15; % Temperatur fluida (K) Tsur = Tinf; % Temperatur lingkungan untuk radiasi (K) NI = 21; I = linspace(0,10,NI); Tss = zeros(size(I)); Isq = I(1)*I(1); Tg = Tinf; Tss(1) = fzero('neracaenergi',Tg); % Perhitungan Temperatur for n=2:NI Isq = I(n)*I(n); Tss(n) = fzero('neracaenergi',Tss(n-1)); end Tssa = Tinf +I.*I*R_L/(h*pi*D); % Plot hasil perhitungan plot(I,Tss-273.15,'k',I,Tssa-273.15,'k-.','LineWidth',2), grid on rr = axis; rr(3) = 0; axis(rr); title('Temperatur Konduktor Steady State vs Arus')

66 xlabel('Arus (amps)'), ylabel('Temperatur Steady State (C)') legend('T(ss) dengan radiasi','T(ss) tanpa radiasi') % Perhitungan neraca energi A = pi*D; gen = I.*I.*R_L; conv = h*A*(Tss-Tinf); rad = emiss*sig*A*(Tss.^4-Tsur^4); bal = (gen-conv-rad); % Menampilkan hasil fprintf(1,'\n\n') fprintf(1,' HASIL PERHITUNGAN \n') fprintf(1,' Parameter perancangan \n') fprintf(1,' Diameter kawat (m) = %8.3f \n',D) fprintf(1,' Emisivitas = %8.3f \n',emiss) fprintf(1,' Resistansi (ohm/m) = %8.3f \n',R_L) fprintf(1,' Konstanta Stefan-Bolzmann (W/m^2K^4)= %9.2e \n',sig) fprintf(1,' Koefisien Transfer Panas (W/m^2K) = %8.3f \n',h) fprintf(1,' Temperatur Fluida (C) = %8f \n',Tinf-273.15) fprintf(1,' Temperatur Lingkungan (C) = %8f \n',Tsur-273.15) fprintf(1,'\n') fprintf(1,' Komponen Neraca Energi vs Arus \n') fprintf(1,' I Energi yg Muncul Konveksi Radiasi Neraca Temperatur \n') fprintf(1,' (A) (W/m) (W/m) (W/m) (W/m) C \n') for n = 1:NI fprintf(1,' %4.1f %8.2f %8.2f %8.2f %8.4f %8.2f \n',... I(n),gen(n),conv(n),rad(n),bal(n),Tss(n)-273) end

Fungsi neraca energi function F=neracaenergi(T) % Neraca Energi pada Batangan Konduktor % keadaan steady state % input - output = akumulasi % panas arus listrik - panas konveksi - panas radiasi = 0 % % %

Nama File : neracaenergi.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global D emiss R_L sig h Tinf Tsur Isq A = pi*D; % Panas yang dibangkitkan arus listrik gen = Isq*R_L; % Panas konveksi conv = h*A*(T-Tinf); % Panas radiasi rad = emiss*sig*A*(T^4-Tsur^4); % Neraca energi F = (gen-conv-rad);

67 Keluaran program HASIL PERHITUNGAN Parameter perancangan Diameter kawat (m) = 0.001 Emisivitas = 0.800 Resistansi (ohm/m) = 0.400 Konstanta Stefan-Bolzmann (W/m^2K^4)= 5.67e-008 Koefisien Transfer Panas (W/m^2K) = 100.000 Temperatur Fluida (C) = 25.000000 Temperatur Lingkungan (C) = 25.000000 Komponen Neraca Energi vs Arus I Energi yg Muncul Konveksi (A) (W/m) (W/m) 0.0 0.00 0.00 0.5 0.10 0.10 1.0 0.40 0.38 1.5 0.90 0.86 2.0 1.60 1.52 2.5 2.50 2.38 3.0 3.60 3.43 3.5 4.90 4.66 4.0 6.40 6.08 4.5 8.10 7.68 5.0 10.00 9.47 5.5 12.10 11.44 6.0 14.40 13.59 6.5 16.90 15.92 7.0 19.60 18.42 7.5 22.50 21.09 8.0 25.60 23.93 8.5 28.90 26.93 9.0 32.40 30.09 9.5 36.10 33.41 10.0 40.00 36.88

Radiasi (W/m) 0.00 0.00 0.02 0.04 0.08 0.12 0.17 0.24 0.32 0.42 0.53 0.66 0.81 0.98 1.18 1.41 1.67 1.97 2.31 2.69 3.12

Neraca Temperatur (W/m) C 0.0000 25.15 0.0000 25.45 0.0000 26.36 -0.0000 27.88 0.0000 30.00 0.0000 32.73 0.0000 36.06 0.0000 39.98 -0.0000 44.50 -0.0000 49.60 -0.0000 55.30 -0.0000 61.57 -0.0000 68.41 0.0000 75.81 0.0000 83.77 0.0000 92.28 0.0000 101.32 -0.0000 110.88 -0.0000 120.94 -0.0000 131.50 0.0000 142.53

Temperatur Steady State (C)

68

Gambar 3.7. Keluaran Program Contoh 3.12

Contoh 3.13. Pengaruh friksi pada Aliran Pipa Suatu sistem pipa dan tangki ditunjukkan pada gambar 3.8. Tinggi cairan dalam tangki, h, panjang pipa pengeluaran, L, dengan diameter, D. Kecepatan cairan keluar tangki V yang dapat diperkirakan dari neraca energi makroskopik.

h

L

D

V

Gambar 3.8. Sistem Pipa dan Tangki

69 Neraca energi pada sistem pada keadaan steady : p1 v2 p v2 + z1 + 1 + h A − h R − h L = 2 + z1 + 2 2g 2g γ γ

Tidak ada peralatan mekanik, sehingga hA = hR = 0, kecepatan pada permukaan nol, dan p1 = p2. v 22 = z1 − z 2 − h L 2g

untuk kasus di atas, h + L = z1 – z2, dan V = v2. hL ditentukan dengan persamaan hL = f

LV 2 D 2g

Persamaan menjadi V2 LV 2 = h+L−f 2g D 2g

V2 =

2g(h + L ) L⎞ ⎛ ⎜1 + f ⎟ D⎠ ⎝

Konstanta gravitasional 32,2 ft/detik2. Faktor friksi, f, untuk aliran turbulen didekati dengan korelasi Swamee-Jain. f =

0,25 ⎡ ⎛ ε / D 5,74 ⎞⎤ + 0,9 ⎟⎟⎥ ⎢log10 ⎜⎜ ⎝ 3,7 Re ⎠⎦ ⎣

2

ε/D adalah kekasaran relatif dan Re adalah bilangan Reynold, Re = VD/ν Tentukan bagaimana kecepatan bervariasi sebagai fungsi panjang pipa L dan diameter D. Asumsikan fluida adalah air pada 60 OF (ν = 1,21 x 10-5 ft2/detik). Tangki cukup besar dan air keluar melalui pipa besi Sch 40 (ε = 1,5 x 10-4 ft). h = 5 ft. Plotkan V(L) dengan kisaran 1/12 ft < L < 20 ft. Ukuran pipa Sch 40 Pipa 1/2 “ Æ D1 = 0,0518 ft Æ D2 = 0,0874 ft

Pipa 1” ”

Pipa 1 ½ Æ D3 = 0,1342 ft Pemograman Matlab

70 % % % % % % %

Pengaruh Friksi pada Aliran Pipa --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all global DD h LL g visc rough % Data-data, D dan L bervariasi D = [0.0518 0.0874 0.1342]; % h = 5; % g = 32.2; % visc = 1.21e-5; % rough = 1.5e-4; % NL = 50; L = linspace(1/12,20,NL)';

variasi diameter pipa (ft) tinggi fluida dalam tangki (ft) konstanta percepatan (ft/detik^2) viskositas air pada 60 F (ft^2/s) kekasaran pipa besi (ft)

ND = length(D); V = zeros(NL,ND); % Perhitungan for n=1:ND DD = D(n); Vo = sqrt(2*g*h); LL = L(1); V(1,n) = fzero('friksi_pipa',Vo); for i=2:NL LL = L(i); V(i,n) = fzero('friksi_pipa',V(i-1,n)); end end % Menampilkan hasil perhitungan plot(L,V(:,1),'k -',L,V(:,2),'k+',L,V(:,3),'k.','lineWidth',2) title('Friksi Pipa : Velocity vs Panjang Pipa') xlabel('Panjang pipa (ft)') ylabel('Velocity Aliran Keluar (ft/detik)') legend('pipa Sch 40 1/2"','pipa Sch 40 1"','pipa Sch 40 1 1/2"')

Fungsi friksi pada pipa function F=friksi_pipa(V) % Friksi pada pipa % Evaluasi F(V) = V^2 - 2g(h+L)/(1+fL/D) % f adalah faktor friksi sebagai fungsi bilangan Reynold % % %

Nama File : friksi_pipa.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global DD h LL g visc rough % Bilangan Reynolds Re = V*DD/visc; % Kekasaran relatif RR = rough/DD; % Faktor friksi f = 0.25/(log10(RR/3.7+5.74/Re^0.9))^2; F = V^2-2*g*(h+LL)/(1+f*LL/DD);

Keluaran program

Velocity Aliran Keluar (ft/detik)

71

Gambar 3.9. Keluaran Program Contoh 3.13

4

INTEGRAL NUMERIS

Secara matematis integrasi dinyatakan oleh : b

…. (4.1)

I = ∫ f ( x ) dx a

yang dinyatakan sebagai integrasi fungsi f(x) terhadap variabel x, yang dievaluasikan antara batas x = a sampai x = b. Persamaan tersebut adalah jumlah total f(x) dx yang meliputi bentangan dari x = a hingga x = b. Gambar 4.1 menunjukkan sebuah manifestasi grafik konsep tersebut. f (x)

x a

b

Gambar 4.1. Konsep Integrasi Integrasi adalah menentukan luas di bawah kurva f(x) antara x = a dan x = b.

76

4.1. ATURAN TRAPESIUM Aturan trapesium dapat digunakan untuk penyelesaian integral secara numeris . Caranya adalah dengan membagi bentangan x = a sampai x = b menjadi bagianbagian yang lebih kecil yang besarnya masing-masing sebesar ∆x berjumlah n buah. Jumlah interval n semakin besar, hasil integrasi secara numeris akan semakin baik. f (x)

x a

Dx

b

Gambar 4.2. Konsep Dasar Aturan Trapesium Masing-masing bagian dianggap berbentuk trapesium, sehingga luas masingmasing bagian adalah ½ x tinggi x jumlah sisi sejajar. Harga integral diperoleh dari jumlah luasan total dari masing-masing bagian. b

∫ f (x) dx

=

∆x (f (a ) + f ( x 1 ) ) + ∆x (f ( x 1 ) + f ( x 2 ) ) + ...... + ∆x (f ( x n −1 ) + f (b) ) 2 2 2

=

∆x [f (a ) + 2f (x 1 ) + 2f ( x 2 ) + ...... + 2f (x n −1 ) + f (b)] 2

=

(b − a ) [f (a ) + 2f (x 1 ) + 2f (x 2 ) + ...... + 2f (x n −1 ) + f (b)] 2n

a

….(4.2) Dalam Matlab, metode perhitungan integrasi dengan aturan trapesium dapat menggunakan fungsi trapz.

77 Penggunaan fungsi trapz adalah Z = trapz(x,y)

yang menghitung integral y terhadap x menggunakan metode trapesium. x dan y merupakan vektor yang sama panjang.

Contoh 4.1. Distilasi Batch di Laboratorium Sebuah distilasi dijalankan secara batch mula-mula diisi 20 lbmol umpan dengan fraksi mol umpan cair benzena xF = 0,32.Umpan kemudian dialirkan dengan kecepatan 10 lbmol/jam, dan input panas diatur agar isi destilasi tetap 20 lbmol. Tentukan waktu yang dibutuhkan untuk memperoleh destilat dengan fraksi mol fase uap yD = 0,4. Hubungan fraksi mol fase uap y dan fase cair x dianggap sesuai dengan Hukum Roult, dengan α = 2,48.

Gambar 4.3. Distilasi Batch di Laboratorium Penyelesaian Neraca massa total F – D = dM = 0 dt

D = F = 10 lbmol/jam

78 Neraca massa benzena F xF – D yD = M dt =

dx w dt

M dx w F x F − D yD

Hukum Roult untuk kesetimbangan yD =

αx w 1 − (α − 1) x w

pada yD = 0,4 akan diperoleh xw = 0,21 Sehingga penyelesaian persamaan

adalah

xw

t=

M dx w F x − D yD F xwo



dengan yD mengikuti kesetimbangan Roult. Program penyelesaian % Distilasi Batch di laboratorium % Distilasi secara batch % % xwn [ M ] % t = Integral [------------- ] dxw % xwo [ F xf - D yd ] % yd adalah fraksi mol benzena pada destilat % xw adalah fraksi mol benzena pada labu destilasi % Hubungan yd dan xw mengikuti Hukum Roult % alpha xw % yd = -------------------% 1 - (alpha - 1)xw % % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data-data F = 10 ; D = F ; M = 20 ; xf = 0.32; xwo = xf ; alpha = 2.48; ydn = 0.4;

%laju alir umpan, lbmol/jam %laju alir destilat, lbmol/jam %massa labu destilasi, lbmol %fraksi mol benzena pada umpan %fraksi mol benzena pada labu destilasi mula-mula %konstanta Roult %fraksi mol benzena pada destilat akhir

% Perhitungan xwn dr pers. Hukum Roult xwn = ydn/(alpha-(alpha-1)*ydn); % Nilai-nilai xw n = 100; %jumlah interval xw=linspace(xwn,xwo,n);

79 % Nilai t pada berbagai xw yd = alpha.*xw./(1+(alpha-1).*xw); ti=-M./(F.*xf-D.*yd); % Jumlah t pada seluruh bagian t=trapz(xw,ti)

Diperoleh t = 1,5394 jam

Contoh 4.2. Kecepatan accelerometer Accelerometer adalah alat yang digunakan untuk mengukur kecepatan suatu benda. Alat ini mengintegrasikan sinyal percepatan untuk menghasilkan suatu perkiraan jarak tempuh. Hubungan waktu (detik) dengan percepatan (m/detik2) ditunjukkan pada tabel di bawah. Waktu (detik) Percepatan (m/detik2)

0

1

2

3

4

5

6

7

8

9

10

0

2

4

7

11

17

24

32

41

48

51

Perkirakan kecepatan pada 1, 2, …, 10 detik Penyelesaian 10

v(10) =



10

a(t) dt + v(0) =

0



a(t) dt

0

Program Matlab % % % % % % % % % % %

Kecepatan accelerometer Hubungan waktu (t) dengan percepatan a (m^2/detik) ditunjukkan pada tabel Kecepatan secara numeris v = int ( a dt) --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Data-data t=[0:10]; a=[0 2 4 7 11 17 24 32 41 48 51];

% detik % m^2/detik

v(1)=0;

% keadaan awal

% Perhitungan secara numeris

80 for k=[2:11] v(k)=trapz(t(1:k),a(1:k)); end % Cetak Hasil disp(' ') disp(' t(detik) v(m/detik)') disp([t' v' ])

Keluaran Program t(detik) 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000

v(m/detik) 0 1.0000 4.0000 9.5000 18.5000 32.5000 53.0000 81.0000 117.5000 162.0000 211.5000

4.2. ATURAN SIMPSON Aturan Simpson berdasarkan pada penggunaan pendekatan polinomial kuadratik suatu fungsi f(x) pada sepasang sub-interval. Integrasi polinomial kuadratik melalui titik (x0, f0), (x1, f1), dan (x2, f2) dengan f0 = f(x0), f1 = f(x1), dan f2 =f(x2) mengikuti persamaan berikut : x1

h

∫ f (x) dx = 3 (f 0 + 4f1 + f 2 )

x0

….(4.3.)

81 f (x)

f(x0) f(x1) f(x2)

h x x0

x1

x2

Gambar 4.4. Konsep Dasar Aturan Simpson Aplikasi aturan Simpson pada seluruh pasangan interval dalam kisaran x0 sampai xn b

∫ f (x) dx

=

h (f 0 + 4f1 + f 2 ) + h (f 2 + 4f3 + f 4 ) + ...... + h (f 2n − 2 + 4fx 2n −1 + f 2n ) 3 3 3

=

h [f 0 + 4(f1 + f 3 + ...... + f 2n −1 ) + 2(f 2 + f 4 + ...... + f 2n −2 ) + f 2n )] 3

a

….(4.4) Untuk menggambarkan penggunaan aturan Simpson, akan ditampilkan dua alternatif yaitu fungsi simp1 dan simp2. simp1

menggunakan vektor koefisien v dan vektor fungsi nilai y serta

mengalikan kedua vektor. simp2 menggunakan aturan Simpson secara konvensional (menggunakan loop). Alternatif 1 function q = simp1(func,a,b,m) % Integrasi Numeris % % Penyelesaian dilakukan dengan Aturan Simpson % Menggunakan vektor % q = simp1(func,a,b,m) % integrasi fungsi func dr a sampai b dg m pembagian % % Nama File : simp1.m % Surakarta, Oktober 2005

82 %

---------------------------------------------------------------

if (m/2)~= floor(m/2) disp('m harus genap '); break end h = (b-a)/m; x = [a:h:b]; y = feval(func,x); v = 2*ones(m+1,1); v2 = 2*ones(m/2,1); v(2:2:m) = v(2:2:m) + v2; v(1) = 1; v(m+1) = 1; q = y*v; q = q*h/3;

Alternatif 2 function q = simp1(func,a,b,m) % Integrasi Numeris % % Penyelesaian dilakukan dengan Aturan Simpson % Menggunakan loop % q = simp2(func,a,b,m) % integrasi fungsi func dr a sampai b dg m pembagian % % Nama File : simp2.m % Surakarta, Oktober 2005 % --------------------------------------------------------------if (m/2)~= floor(m/2) disp('m harus genap '); break end h = (b-a)/m; s = 0; y1 = feval(func,a); for j = 2:2:m x = a+(j-1)*h; ym = feval(func,x); x = a+j*h; yh = feval(func,x); s = s+y1+4*ym+yh; y1=yh; end q = s*h/3;

Contoh 4.3 Program Penggunaan Aturan Simpson Kedua alternatif aturan Simpson tersebut digunakan untuk menyelesaikan 1

y = ∫ x 7 dx 0

fungsi persamaan tersebut dalam Matlab diberi nama f43

83 function fv = f43(x) % Fungsi pangkat sederhana % f(x) = x^7 % % Nama File : F43.m % Surakarta, Oktober 2005 % --------------------------------------------------------------fv = x.^7;

Berikut program yang digunakan untuk menguji simp1 % % % % % % % % %

Integrasi Numeris dg Aturan Simpson menggunakan vektor integral x^7 dari 0 sampai 1 --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

n = 2; i = 1; t = clock; disp(' n nilai integral') while n<51200 simpval=simp1('f43',0,1,n); fprintf('%3.0f%14.9f\n',n,simpval); n=2*n; i=i+1; end fprintf('\nwaktu = %4.2f detik ',etime(clock,t));

Keluaran program n 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768

nilai integral 0.171875000 0.129150391 0.125278473 0.125017703 0.125001111 0.125000070 0.125000004 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000

waktu = 0.06 detik

Program untuk simp2 % % % % % % % %

Integrasi Numeris dg Aturan Simpson menggunakan loop integral x^7 dari 0 sampai 1 --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret

84 %

***************************************************************

n = 2; i = 1; t = clock; disp(' n nilai integral') while n<51200 simpval=simp2('F43',0,1,n); fprintf('%3.0f%14.9f\n',n,simpval); n=2*n; i=i+1; end fprintf('\nwaktu = %4.2f detik ',etime(clock,t));

Keluaran program n 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768

nilai integral 0.171875000 0.129150391 0.125278473 0.125017703 0.125001111 0.125000070 0.125000004 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000 0.125000000

waktu = 3.46 detik

Terlihat jelas bahwa aturan Simpson yang menggunakan metode konvensional (loop) membutuhkan waktu yang lebih lama daripada menggunakan vektor yang merupakan ciri Matlab.

4.3. KUADRATUR GAUSS Aturan trapesium dan aturan Simpson mempunyai karakteristik perkiraan integral yang didasarkan pada harga-harga fungsi berspasi genap. Konsekuensinya letak titik-titik basis yang dipakai dalam persamaan ini sebelumnya telah ditentukan atau tetap. Misalnya aturan trapesium didasarkan kepada pengambilan luas di bawah garis lurus yang menghubungkan harga-harga fungsi pada kedua ujung interval integrasi. Akibatnya kesalahan yang ditimbulkan cukup besar (Gambar 4.5.a).

85 Misalkan kendala titik-titik basis yang tetap ini diperbaiki dengan menentukan dua titik pada tertentu kurva. Dengan menempatkan titik-titik ini dengan bijaksana, dapat dibuat suatu garis lurus yang mengimbangi kesalahan positif dan negatif, sehingga perkiraan integral dapat diperbaiki (Gambar 4.5.b). Kuadratur Gauss adalah suatu teknik untuk melaksanakan strategi ini. Integral dinyatakan dengan 1

n

−1

i =1

I = ∫ f ( x ) dx = ∑ c i f ( x i )

….(4.5)

untuk n = 2, kita harus menentukan 4 parameter yaitu c1, c2, x1, dan x2. 1

I = ∫ f ( x ) dx = c1f(x1) + c2f(x2) −1

Aturan integrasi akan tepat untuk fungsi polinomial 1, x, x2, dan x3. f(x) = 1

memberikan

1

=2

= c1 + c2

∫ x dx

=0

= c1x1 + c2x2

1

= 2/3

= c1x12 + c2x22

=0

= c1x13 + c2x23

∫ 1 dx

−1

f(x) = x

memberikan

1

−1

f(x) = x2

memberikan

∫x

2

dx

−1

f(x) = x3

memberikan

1

∫x

−1

3

dx

86 f (x)

x (a)

f (x)

x (b)

Gambar 4.5. Konsep Dasar Kuadratur Gauss Penyelesaian 4 persamaan di atas memberikan c1 = c2 = 1

sehingga

x1 = -

1 3

x2 =

1 3

1 ⎛ 1 ⎞ ⎛ 1 ⎞ ⎟⎟ I = ∫ f ( x ) dx = f ⎜⎜ − ⎟⎟ + f ⎜⎜ 3 3 ⎝ ⎠ ⎝ ⎠ −1

Prosedur yang sama dapat dilakukan dengan penggunaan titik yang lebih banyak.

87 Fungsi Matlab

quad

dan

quad8

menggunakan konsep kuadratur

Gauss. Kedua fungsi pengintegralan beroperasi dengan cara yang sama. Keduanya mengevaluasi nilai fungsi yang akan diintegralkan pada interval apapun yang diperlukan untuk memperoleh hasil yang tepat. Bahkan keduanya cenderung untuk membuat perkiraan tingkat tinggi daripada menggunakan trapezoid sederhana. quad8 lebih teliti dari quad. Tabel 4.1. Faktor Bobot c dan Argumen Fungsi x untuk Kuadratur Gauss Titik 2

3

4

5

6

Faktor Bobot

Argumen Fungsi

c1 =

1,000000000 x1 =

c2 =

1,000000000 x2 =

-0,577350269 0,577350269

c1 =

0,555555556 x1 =

-0,774596669

c2 =

0,888888889 x2 =

0

c3 =

0,555555556 x3 =

0,774596669

c1 =

0,347854845 x1 =

-0,861136312

c2 =

0,652145155 x2 =

-0,339981044

c3 =

0,652145155 x3 =

0,339981044

c4 =

0,347854845 x4 =

0,861136312

c1 =

0,236926885 x1 =

-0,906179846

c2 =

0,478628670 x2 =

-0,538469310

c3 =

0,568888889 x3 =

0

c4 =

0,478628670 x4 =

0,538469310

c5 =

0,236926885 x5 =

0,906179846

c1 =

0,171324492 x1 =

-0,932469514

c2 =

0,360761573 x2 =

-0,661209386

c3 =

0,467913935 x3 =

-0,238619186

c4 =

0,467913935 x4 =

0,238619186

c5 =

0,360761573 x5 =

0,661209386

c6 =

0,171324492 x6 =

0,932469514

Contoh 4.4. Program Penggunaan fungsi quad8. % Integrasi Numeris dengan menggunakan fungsi quad8 % Integral x^p dari a sampai b % % Pengunaan fungsi quad8 % integral = quad8('func', a, b) % dengan func ... nama fungsi yang diintegralkan, % harus dalam bentuk fungsi x % a ... batas bawah integrasi (input) % b ... batas atas integrasi (input)

88 % % Variabel lain % p ... exponent/pangkat % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global p disp(' ') disp('Perhitungan integral dari a sampai b (x^p dx)') disp(' ') % Input parameter p=input('Masukan nilai pangkat p: '); a=input('Masukan batas integrasi bawah a : '); b=input('Masukan batas integrasi atas b : '); % integral s = quad8('F44', a, b); % cetak hasil disp(['Hasil perhitungan secara numeris : ', num2str(s)]) disp(['Hasil perhitungan secara analitis : ', num2str(b^(p+1)/(p+1)-a^(p+1)/(p+1))])

Fungsi yang akan diintegralkan function f=F44(x) % Fungsi pangkat sederhana % f(x) = x^p % % Nama File : F44.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global p f = x.^p;

Keluaran program Perhitungan integral dari a sampai b (x^p dx) Masukan nilai pangkat p: 2.5 Masukan batas integrasi bawah a : Masukan batas integrasi atas b : Hasil perhitungan secara numeris Hasil perhitungan secara analitis

0 1 : :

0.28571 0.28571

Contoh-contoh lain Contoh 4.5. Kecepatan Reaksi pada Katalis Porous Suatu proses dengan katalis porous mempunyai kecepatan reaksi

89



dC = 0,7ηC 2 dt

η=

1,0357 + 0,3173φ 1 + 0,4172φ

φ = 12 C

Tentukan waktu yang dibutuhkan untuk menurunkan konsentrasi dari C = 2 mol/gr katalis menjadi 1 mol/g katalis. Program penyelesaian dengan Matlab % Kecepatan Reaksi pada Katalis Porous % Integral Numeris dengan Aturan Trapesium % % phi = 12 * C^0.5 % 1,0357 + 0,3173*phi % eta = --------------------% 1 + 0,4172*phi % [ - dC ] % t = integral [ ----------- ] % [ 0,7*eta*C^2 ] % Co = konsentrasi awal % Cn = konsentrasi akhir % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data batas integral Co = 2; Cn = 1;

% mol/gr katalis % mol/gr katalis

C = linspace(Cn,Co,101) ;

% kondisi batas dibalik

% Perhitungan integral phi = 12*sqrt(C); eta = (1.0357+0.3173*phi)./(1+0.4172*phi); x=1./(0.7.*eta.*C.^2); % karena kondisi batas dibalik, % tanda negatif hilang t = trapz(C,x); % Cetak Hasil disp(['Waktu yang diperlukan menurunkan konsentrasi dari Co = ', num2str(Co), ' mol/gr katalis']) disp([' menjadi Cn = ', num2str(Cn), ' mol/gr katalis']) disp([' adalah ', num2str(t), ' detik'])

Keluaran program Waktu yang diperlukan menurunkan konsentrasi dari Co = 2 mol/gr katalis menjadi Cn = 1 mol/gr katalis adalah 0.89188 detik

Contoh 4.6. Penurunan temperatur karena pelepasan panas Suatu campuran gas mempunyai kapasitas panas Cp = 7,053 + 1,2242.10-3 T – 2,6124.10-7 T2

90 T dalam oF dan Cp dalam Btu/lbmol oF. Jika panas yang dilepaskan untuk menurunkan temperatur campuran gas panas tersebut dari 550 oF adalah 2616 Btu/lbmol gas sampai temperatur berapakah campuran gas tersebut dapat didinginkan. T

q=

∫ Cp

dt

To

Sampai berapakah campuran gas tersebut dapat didinginkan ? Persoalan ini sama dengan contoh 3.6, namun integral untuk menghitung kalor yang dilepaskan diperoleh secara numeris. function fq=contoh46(Tn) % Penurunan temperatur karena pelepasan panas % Cp = 7,053 + 1,2242.10(-3) T - 2,6124.10(-7) T^2 % q = integral(cp dT) % Data % q = -2616 BTU/lbmol % To = 550 oF % % %

Nama File : contoh46.m Surakarta, Oktober 2005 ---------------------------------------------------------------

q = -2616; To = 550;

% BTU/lbmol % oF

% Integral secara numeris aturan trapesium T=linspace(Tn,To,1000); cp=-(7.053+1.2242.*10^-3.*T-2.6124.*10^-7.*T.^2); qtebak=trapz(T,cp); fq=qtebak-q;

Fungsi tersebut dapat dijalankan dari jendela command >> T = fzero('contoh46',150) T = 199.9225

Sehingga temperatur gas adalah 199,9225 OF.

Contoh 4.7. Reaktor Plug Flow Adiabatik Reaktor plug flow beroperasi adiabatik digunakan untuk reaksi fase cair : A Æ produk

91 Fv, Cao, To

A ---> hasil

xout

Gambar 4.6. Reaktor Plug Flow Adiabatik Rekasi orde 2 eksotermis. Perubahan entalpi reaksi, ∆HR konstan. Hubungan tetapan kecepatan reaksi (k) dengan temperatur (T) mengikuti persamaan : k = A.exp ⎛⎜ − E ⎞⎟ ⎝ RT ⎠ Diketahui Fv = 200 L/menit; CAo = 5 gmol/L; ρ = 1,1 kg/L; Cp = 0,8 kcal/kg/K; A = 3,12E+08 L/gmol/menit; E = 18.600 cal/gmol; ∆HR = -15 kal/gmol; R = 1,987 cal/gmol/K; dan volum reaktor, Vol = 8000 L. Ingin dicari temperatur masuk To yang memberikan konversi keluar xout = 0,8. Dari neraca massa V=

Fv C Ao

xout



xin

1 k (1 − x ) 2

dx

k = A.exp ⎛⎜ − E ⎞⎟ ⎝ RT ⎠

Dari neraca panas T = To − CAo∆H R x ρCp

Program penyelesaian dengan Matlab function FV=contoh47(To) % Reaktor plug flow beroperasi adiabatik % digunakan untuk reaksi fase cair : A --> produk % Tentukan To sehingga keluar dg konversi xout % Fv [ xout 1 % V = ----- intg [ ---------- dx % Cao [ xin k*(1-x)^2 % E % k = A exp [- ---- ] % RT % Cao*Hr*x % T = To - -----------% rho*Cp % % Nama File : contoh47.m % Surakarta, Oktober 2005

92 %

---------------------------------------------------------------

% Data-data Fv=200; Cao=5; rho=1.1; Cp=0.8; A=3.12*10^8; E=18600; Hr=-15; R=1.987; Vol=8000; xin=0; xout=0.8;

% % % % % % % % % % %

laju alir volum, L/menit konsentrasi umpan, gmol/L densitas, kg/L kapasitas panas, kcal/kg/K konstanta Arrhenius, L/gmol/menit konstanta Arrhenius, cal/gmol panas reaksi, kcal/gmol konstanta gas ideal, cal/gmol/K volume reaktor, L konversi masuk reaktor konversi keluar reaktor

% Perhitungan Volume x=linspace(xin,xout,1000); T=To-Cao*Hr/rho/Cp*x ; k=A*exp(-E/R./T); eq=1./k./(1-x).^2; V=Fv/Cao*trapz(x,eq); % Dibandingkan dg Volume sesungguhnya FV=Vol-V;

Fungsi tersebut dapat dijalankan dari jendela command >> Totebakan=300; >> To=fzero('contoh47',Totebakan) To = 360.2898

Contoh 4.8. Pelarutan Butiran Padat Butir-butir padatan A dengan densitas ρ = 2 g/mL, jari-jari awal Ro =2 cm, berjumlah Nb = 40.000, dimasukkan dalam W g solven. Padatan A melarut dengan panas pelarutan λ =100 cal/g. Kelarutan A dalam solven sebagai fungsi suhu mengikuti persamaan 3333 ⎞ ⎛ x S = exp ⎜ 8,8053 ⎟ T ⎠ ⎝

Waktu yang diperlukan padatan untuk melarut dinyatakan dengan persamaan

t=

ρ kX

Ro

∫ (x 0

dr S − x)

Persamaan-persamaan lainnya yang diperlukan, x = (mo – m) / W

93 3

m = 4Π r ρ Nb / 3 T = To +

λ (mo - m) x (W + m) Cp

Jika diketahui W = 100.000 g, kx = 0,01 g/(cm2.dtk) dan To = 350 K, Tentukan waktu (t) yang diperlukan padatan A untuk melarut. Program penyelesaian % % % % % % %

Pelarutan Butiran Padat --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

global Ro rho Nb To lamda W Cp kx % Data-data Ro=0.5; rho=2; Nb=40000; To=350; lamda=100; W=100000; Cp=1; kx=0.01;

% % % % % % % %

jari-jari awal, cm densitas, g/mL jumlah padatan Temperatur awal, K panas pelarutan, kal/g gram solvent kapasitas panas solvent konstanta pelarutan, g/(cm2.dtk)

% Perhitungan waktu=quad(@F48,0,Ro)

Program terkait function area = F48(r) % Integral % Hitung berat mula-mula ---> hitung berat pada r % ---> hitung T ---> hitung x ---> hitung t % % rho [Ro dr % t = ----- int [ -------% kx [0 (xs - x) % % %

Nama File : F48.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global Ro rho Nb To lamda W Cp kx mo=4*pi*Ro^3*rho*Nb/3; m=4*pi*r.^3*rho*Nb/3; T=To+lamda*(mo-m)/(W+mo)/Cp; x=(mo-m)/W; xs=exp(8.8053-3333./T); area=rho/kx./(xs-x);

Keluaran program

94 waktu = 180.0717

Contoh 4.9. Temperatur Pelarutan Butiran Padat Butir-butir padatan A dengan densitas ρ = 2 g/mL, jari-jari awal Ro = 2 cm, berjumlah Nb = 40.000, dimasukkan dalam W g solven. Padatan A melarut dengan panas pelarutan λ =100 cal/g. Kelarutan A dalam solven sebagai fungsi suhu mengikuti persamaan

3333 ⎞ ⎛ x S = exp ⎜ 8,8053 ⎟ T ⎠ ⎝ Waktu yang diperlukan padatan untuk melarut dinyatakan dengan persamaan

t=

ρ kX

Ro

∫ (x 0

dr S − x)

Persamaan-persamaan lainnya yang diperlukan, x = (mo – m) / W m = 4Π r3 ρ Nb / 3

T = To +

λ (mo - m) (W + m) Cp

x

Jika diketahui W = 100.000 g, kx = 0,01 g/(cm2.dtk) dan tdata = 200 dtk; tentukan suhu masuk To. Suhu masuk To dapat diketahui dengan persamaan berikut, t – tdata = 0 Program Penyelesaian % % % % % % %

Temperatur Pelarutan Butiran Padat --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

global Ro rho Nb lamda W Cp kx tdat Ro=0.5; % jari-jari awal, cm rho=2; % densitas, g/mL Nb=40000; % jumlah padatan To=350; % Temperatur awal, K lamda=100; % panas pelarutan, kal/g W=100000; % gram solvent Cp=1; % kapasitas panas solvent kx=0.01; % konstanta pelarutan, g/(cm2.dtk)

95 tdat=200; % waktu pelarutan To=fzero(@F49,400)

Program terkait function fTo = F49(To) % tebak To ---> Hitung berat mula-mula % ---> hitung berat pada r ---> hitung T % ---> hitung x ---> hitung t % rho [Ro dr % t = ----- int [ -------% kx [0 (xs - x) % ---> bandingkan dg t data % % %

Nama File : F49.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global Ro rho Nb lamda W Cp kx tdat r=linspace(0,Ro,100); mo=4*pi*Ro^3*rho*Nb/3; m=4*pi*r.^3*rho*Nb/3; T=To+lamda*(mo-m)/(W+mo)/Cp; x=(mo-m)/W; xs=exp(8.8053-3333./T); area=rho/kx./(xs-x); thit=trapz(r,area); fTo=thit-tdat;

Keluaran program To = 347.2318

Contoh 4.10.

Waktu Pengosongan Tangki

Suatu cairan akan dialirkan dari tangki dengan grafitasi melalui pipa berdiameter D. Panjang ekuivalen pipa, Le. Tinggi permukaan cairan pada tangki mula-mula za. Waktu pengosongan tangki dinyatakan dengan persamaan berikut : 2 z

⎛ D ⎞ 2f 1 t = ⎜ t2 ⎟ . ∫ .dz ⎝ D ⎠ z 2i v Persamaan Bernoulli:

z−

f.Le.v 2 v 2 − =0 2.g.D 2g

faktor friksi didekati dengan persamaan empiris :

f=

0,0596 Re 0,215

dengan

96

Re =

ρ .v.D µ

Debit aliran dihitung dengan persamaan : Q=

π 4

.D 2 .v

Data-data yang diketahui : ρ = 1 g/cm3; µ = 0,01 g/cm.dtk; g = 981 cm/dtk2; Dt = 200 cm; za = 600 cm; zf = 200 cm; D = 3 cm; Le = 40.000 cm Program penyelesaian % % % % % % %

Waktu Pengosongan Tangki --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

global rho D Dt miu Le g % Data-data rho=1; % Densitas, g/cm^3 miu=0.01; % Viskositas, g/cm.dtk g=981; % grafitasi, cm/dtk^2 D=3; % diameter pipa, cm Dt=200 % diameter tangki, cm Le=40000; % panjang ekivalen, cm za=200; zf=600; t=quad(@F410,za,zf); waktu=Dt^2*t/D^2

Program terkait function fz=F410(z) % % Nama File : F410.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global rho D Dt miu Le g vo=0.4*sqrt(2*g*z); v=fsolve(@F410F,vo,[],z); fz=1./v;

Program lain function fv=F410F(v,z) % % Nama File : F410F.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global rho D Dt miu Le g Re=rho*v*D/miu;

97 f=0.0596./Re.^0.215; fv=z-f*Le.*v.^2/(2*g*D)-v.^2/(2*g);

Keluaran program waktu = 1.9688e+004

Waktu pengosongan 19.688 detik

5

PENCOCOKAN KURVA

Data–data yang dimiliki sering berupa harga-harga yang diskrit dari suatu garis yang kontinyu. Sering kita membutuhkan data-data yang terletak di antara harga-harga yang diskrit tersebut. Bagian ini akan mempelajari bagaimana cara kita memperkirakan data-data untuk harga-harga yang terletak di antara hargaharga yang diskrit. Ada dua pendekatan yang umum dilakukan, yaitu : 1.

Regresi Kuadrat Terkecil Pendekatan regresi dilakukan jika data-data yang ada menunjukkan tingkat kesalahan yang berarti ( misal data hasil penelitian ). Metode ini berusaha mencari persamaan yang mempunyai kecenderungan melewati titik-titik tersebut.

2.

Interpolasi Pendekatan interpolasi dilakukan jika data-data yang ada telah diketahui dengan teliti dan valid ( misal data dari buku-buku referensi/handbook ). Persamaan yang dibuat harus melalui titik-titik yang telah diketahui tersebut.

100

5.1. REGRESI KUADRAT TERKECIL Tujuan cara akhir regresi kuadrat terkecil adalah mendapatkan konstantakonstanta persamaan sehingga diperoleh jumlah kuadrat kesalahan (SSE = sum of squares of errors) minimum. SSE = ∑ (y data − y pers )2 n

…(5.1)

n =1

Ada beberapa kemungkinan minimasi kesalahan untuk persamaan yang terbaik yaitu : 1.

Minimasi jumlah kesalahan Persamaan dinyatakan dengan n



i =1

n

Ei =



(yi – ao – a1xi)

…(5.2)

i =1

Tetapi kriteria ini kurang baik. Gambar 5.1 yang melukiskan pencocokan kurva terhadap dua titik. Sembarang garis lurus yang melalui titik tengah dari garis penghubung itu akan meminimalkan harga pers (3.2) menjadi nol, karena kesalahan akan saling meniadakan.

o

o

Gambar 5.1. Minimasi Kesalahan dengan Persamaan (5.2)

2.

Minimasi jumlah kesalahan absolut Kriteria yang lain adalah meminimalkan jumlah harga absolut selisih kesalahan, dengan persamaan

101 n



n

Ei =

i =1



|yi – ao – a1xi|

…(5.3)

i =1

Gambar 5.2 memperlihatkan mengapa kriteria ini juga kurang baik.

o

o

o o

Gambar 5.2. Minimasi Kesalahan dengan Persamaan (5.3)

3.

Minimasi jumlah kesalahan kuadrat Kriteria ketiga adalah dengan mencocokan sebuah garis terbaik yang meminimalkan jarak titik-titik dengan garis tersebut. Strategi yang digunakan adalah dengan meminimalkan jumlah kuadrat kesalahan, yaitu n

SSE =



Ei2 = ∑ (y i − a o − a1x i ) n

2

n =1

i=1

…(5.4)

5.1.1. REGRESI LINIER Persamaan garis linier, y = a0 + a1x

… (5.5)

Sehingga SSE adalah n

(

SSE = ∑ y data − y pers n =1

)2

SSE = ∑ E i2 = ∑ (y i − a 0 − a1x i )2 n

n

i =1

n =1

… (5.6) … (5.7)

102 Minimasi SSE, jika ∂SSE = 0 dan ∂SSE = 0. ∂a 0 ∂a 1

∂SSE = -2 ∂a 0

∑ ( yi – ao – a1xi ) = 0 ∑ yi - ∑ ao - ∑ a1xi = 0 ∑ yi - n ao - a1 ∑ xi = 0 n ao + a1 ∑ xi = ∑ yi

∂SSE = -2 ∂a 1

… (5.8)

∑ [( yi – ao – a1xi )xi] = 0 ∑ xiyi - ∑ xiao - ∑ a1xi2 = 0 ∑ xiyi - ao ∑ xi - a1 ∑ xi2 = 0 ao ∑ xi + a1 ∑ xi2 = ∑ xiyi

… (5.9)

Penyelesaian pers. (5.8) dan (5.9) a1 = n ∑ x i y i − ∑ x i ∑ y i

… (5.10)

a0 = y − a 1 x

… (5.11)

n ∑ x i2 − (∑ x i ) 2

dengan y dan x adalah rata-rata yi dan xi

KUANTIFIKASI KESALAHAN Kuantifikasi kesalahan dalam regresi kuadrat terkecil dapat dinyatakan dengan persamaan R2 =

St − Sr St

...(5.12)

dengan R adalah koefisien korelasi, dan R2 adalah koefisien determinasi.

dan

St = ∑

(yi - y )2

...(5.13)

Sr = ∑

(yi – a0 – a1xi)2

...(5.14)

Untuk pencocokan yang sempurna Sr = 0, sehingga R2 = 1.

103 LINIERISASI HUBUNGAN YANG TIDAK LINIER Hubungan variabel bebas dan variabel tak bebas tidak selalu merupakan hubungan yang linier, tetapi dapat juga hubungan yang tidak linier namun dapat dibawa ke bentuk hubungan yang linier. Proses ini disebut linierisasi. Contoh linierisasi hubungan yang tidak linier 1.

y=axb ln (y) = ln (a x b) ln (y) = ln (a) + ln (xb) ln (y) = ln (a) + b ln (x) Hubungan variabel bebas dan variabel tak bebas menjadi linier dengan ln (y) = y ln (x) = x ln (a) = a0 b

= a1

sehingga, y = a1x + a0 2.

y = a ebx ln (y) = ln (a ebx) ln (y) = ln (a) + b x Hubungan linier, dengan ln (y) = y x

=x

ln (a) = a0 b

= a1

sehingga, y = a1x + a0 3.

y=a+

b x

Hubungan linier, dengan y =y

1 =x x a = a0

104 b = a1 sehingga, y = a1x + a0 4.

y=

x a + bx

1 a + bx = y x 1 a = +b y x Hubungan linier, dengan

1 =y y 1 =x x b = a0 a = a1 sehingga, y = a1x + a0 5.

y=

ax b+x

1 b+x = y ax 1 a 1 = + y bx a Hubungan linier, dengan

1 =y y 1 =x x 1 = a0 a

105

a = a1 b sehingga, y = a1x + a0 Contoh 5.1. Persamaan BET untuk proses adsorpsi Dalam proses adsorpsi, hubungan logam yang dijerap, q(mg/g adsorben), dengan konsentrasi kesetimbangan C (mg/L) dapat dihubungkan dengan persamaan BET q=

q maks d C ⎡ ⎤ (CS − C )⎢1 + (d − 1) C ⎥ C S⎦ ⎣

Dari suatu penelitian diperoleh data C

0,8

4,88

8,04

16,1

19,25

q

17,23

32,09

46,75

62,90

64,73

Jika diketahui CS = 49,46 mg/L a.

Linierisasikan persamaan BET di atas

b.

Dengan menggunakan metode kuadrat terkecil, tentukan qmaks dan d.

Penyelesaian

q=

q maks d C ⎡ ⎤ (C S − C )⎢1 + (d − 1) C ⎥ CS ⎦ ⎣ ⎛

1 = q

⎞ ⎟ C S ⎟⎠

(C S − C )⎜⎜1 + (d − 1) C ⎝ q maks dC

⎛ C ⎞ ⎜⎜1 + (d − 1) ⎟⎟ CS ⎠ 1 =⎝ q(C S − C ) q maks dC C 1 (d − 1)C = + q(C S − C ) q maks d q maks dC S

y = a0 + a1x

106 dengan

C q (C S − C )

y

=

x

=C

a0

=

1 q maks d

a1

(d − 1)

=

q maks d C S

Program Matlab % Persamaan BET untuk proses adsorpsi % qmaks d C % q = ------------------------------% (Cs - C)[ 1 + (d - 1)*C/Cs ] % Linierisasi % C 1 (d-1)C % --------- = ------- + ---------% q(Cs - C) qmaks d qmaks d Cs % C % y = --------x = C % q(Cs - C) % 1 (d - 1) % a0 = ------a1 = ---------% qmaks d qmaks d Cs % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data - data C = [0.8 4.88 8.04 16.1 19.25]; q = [17.23 32.09 46.75 62.90 64.73]; adsorben

% Konsentrasi, mg/L % Logam terjerap, mg/g

n=5; Cs=49.46;

% jumlah data % konstanta BET, mg/L

% Linierisasi y = C./(Cs-C)./q; x = C; % Perhitungan regresi linier xkuad=0; xy=0; for i=1:n xkuad=xkuad+(x(i))^2; xy=xy+x(i)*y(i); end % Konstanta regresi linier a1=(n*xy-sum(x)*sum(y))/(n*xkuad-(sum(x))^2); a0=mean(y)-a1*mean(x); % Parameter BET d=a1/a0*Cs+1 qmaks=1/a0/d % Plot hasil q=a0+a1*x; plot(x,y,'k*',x,q,'k-','lineWidth', 2)

107 title('Perbandingan Data Percobaan dan Perhitungan')

Keluaran program d = 32.0593 qmaks = 42.9100

Gambar 5.3. Keluaran Program Contoh 5.1

Dalam Matlab, fungsi

polyfit

menyelesaikan masalah pencocokan kurva untuk

kuadrat terkecil. Penggunaan fungsi

polyfit

akan menghasilkan suatu

persamaan polinomial yang paling mendekati data. Jika derajat fungsi

polyfit

dipilih n = 1, maka akan dihasilkan persamaan garis lurus yaitu regresi linier.

Program Matlab dengan penggunaan fungsi polyfit untuk contoh yang sama % Persamaan BET untuk proses adsorpsi % qmaks d C % q = ------------------------------% (Cs - C)[ 1 + (d - 1)*C/Cs ] % Linierisasi % C 1 (d-1)C % --------- = ------- + ---------% q(Cs - C) qmaks d qmaks d Cs % C % y = --------x = C

108 % % % % % % % % % %

q(Cs - C) 1 (d - 1) a0 = ------a1 = ---------qmaks d qmaks d Cs Penyelesaian dengan fungsi polyfit --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Data - data C = [0.8 4.88 8.04 16.1 19.25]; q = [17.23 32.09 46.75 62.90 64.73]; adsorben

% Konsentrasi, mg/L % Logam terjerap, mg/g

Cs=49.46;

% konstanta BET, mg/L

% Linierisasi y = C./(Cs-C)./q; x = C; % fungsi polyfit p=polyfit(x,y,1); % Parameter BET d=p(1)*Cs/p(2)+1 qmaks=1/p(2)/d

Keluaran program d = 32.0593 qmaks = 42.9100

Contoh 5.2. Tekanan uap toluena pada persamaan Antoine Data tekanan uap toluena dalam OC dan Torr adalah T (OC)

-26,7

-4,4

6,4

18,4

31,8

40,3

p (torr)

1

5

10

20

40

60

Tentukan konstanta-konstanta persamaan Antoine yang menyatakan hubungan T dan p sebagai berikut ⎛ b ⎞ p = exp⎜⎜ a + ⎟⎟ T + 273 , 2 ⎝ ⎠

Penyelesaiannya b ⎛ ⎞ p = exp⎜ a + ⎟ T + 273,2 ⎠ ⎝

ln(p) = a +

b T + 273,2

109 y=a+bx untuk y = ln(p) dan x =

1 T + 273,2

% Tekanan uap toluena pada persamaan Antoine % [ b ] % p = exp [ a + -----------] % [ T + 273,2 ] % Linierisasi % b % ln ( p ) = a + ----------% T + 273,2 % 1 % y = ln ( p ) x = ----------% T + 273,2 % y = b x + a % Penyelesaian dengan fungsi polyfit % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data - data p = [ 1 5 10 20 40 60]; T = [ -26.7 -4.4 6.4 18.4 31.8 40.3];

% dalam C % dalam Torr

% Linierisasi y = log(p); x = 1./(T+273.15); kons = polyfit(x,y,1); a = kons(2) b = kons(1)

Keluaran program a = 19.1905 b = -4.7260e+003

Sehingga

p

⎛ 4726,0 ⎞ = exp⎜⎜19,1905 − ⎟ T + 273,2 ⎟⎠ ⎝

Contoh 5.3. Resistansi Hidrolik Sebanyak 15 L cairan ditempatkan dalam tangki. Ketika katup pengeluaran dibuka cairan akan keluar dengan kecepatan tertentu. Kecepatan ini tergantung pada volum cairan di dalam tangki. Kecepatan pengeluaran dicatat dengan cara mengukur waktu yang diperlukan untuk mengisi penuh suatu gelas ukur. Hasil pengukuran ditunjukkan pada tabel di bawah ini.

110

Gambar 5.4. Resistensi Hidrolik

Volum cairan (L)

Waktu untuk mengisi gelas ukur (detik)

15

6

12

7

9

8

6

9

Jika persamaan Torricelli adalah f = rV1/2 dengan

f

= laju alir cairan melalui katup (L/detik)

V

= volum cairan di dalam tangki (L)

r

= konstanta

Tentukanlah nilai r untuk persamaan Torricelli dari data di atas. Perkirakan waktu yang dibutuhkan untuk memenuhi gelas ukur jika terdapat 36 L di dalam tangki !

Dari persamaan Torricelli terlihat hubungan laju alir dan volume cairan dalam tangki adalah pangkat ½. Sehingga jika diplotkan log10(f) dan log10(V) akan dihasilkan persamaan garis lurus.

111 Program Matlab % % % % % % % % % % %

Resistansi Hidrolik persamaan Torricelli adalah f = r*V^(1/2) f = laju alir cairan melalui katup (L/detik) V = volum cairan di dalam tangki (L) r = konstanta --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Data - data V = [6 9 12 15]; waktu = [9 8 7 6 ]; laju_alir = 1./waktu; % p m r

% volume, L % waktu pengisian, detik % laju alir, 1/detik

Penggunaan polyfit = polyfit(log10(V),log10(laju_alir),1); = p(1); = 10^p(2)

% Evaluasi persamaan polyfit x = [6:0.01:40]; y = r*x.^m; subplot(2,1,1) loglog(x,y,'k-',V,laju_alir,'ko','linewidth',2) xlabel('Volum') ylabel('Laju alir') axis([5 15 0.1 0.3]) % Ekstrapolasi untuk V = 36 subplot(2,1,2) plot(x,1./y,'k-',V,waktu,'ko','linewidth',2) xlabel('Volum') ylabel('Waktu') axis([5 36 0 10])

Keluaran program

waktu

Laju alir

112

Gambar 5.5 Keluaran Program Contoh 5.3

5.1.2. REGRESI POLINOMIAL Jika pada regresi linier, data-data didekati dengan persamaan garis y = a1x + a0, maka pada regresi polinomial, data-data didekati dengan persamaan polinomial, yaitu : y = a0 + a1x + a2x2 + .... + amxm

....(5.15)

sehingga SSE = ∑ (y data − y pers )2 n

....(5.16)

n =1

(

n

n

i =1

n =1

SSE = ∑ E2 = ∑ y i − a 0 − a1x i − a 2 x i2 − .... − a m x im i ∂SSE = -2 ∂a 0

2

)

2

∑ ( yi – ao – a1xi - a2 x i - .... - am x im ) = 0

....(5.17)

113 ∂SSE = -2 ∂a 1

∑xi( yi – ao – a1xi - a2 x i - .... - am x im ) = 0

∂SSE = -2 ∂a 2

∑ x i ( yi – ao – a1xi - a2 x i - .... - am x im ) = 0

2

2

2

m

2

. . . .

∂SSE = -2 ∂a m

∑ xi ( yi – ao – a1xi - a2 x i - .... - am x im ) = 0

2

a0n + a1∑xi + a2∑ xi + .... + am∑ xim = ∑yi a0∑xi + a1∑ xi + a2∑ xi + .... + am∑ xim + 1 = ∑xiyi 2

3

a0∑ xi + a1∑ xi + a3∑ xi + .... + am∑ xim + 2 = ∑ xi yi 2

3

4

2

. . . . 2m = ∑ m y a0∑ xim + a1∑ xim + 1 + a2∑ xim + 2 + .... + am∑ xi xi i

Diperoleh persamaan m aljabar dengan m bilangan yang tidak diketahui. Persamaan-persamaan tersebut dapat diselesaikan dengan metode-metode yang telah dijelaskan pada Bab II. Dalam bentuk matriks

∑ ∑

∑ xi ∑ x i2 ∑ x 3i





⎡ n ⎢ ⎢ xi ⎢ x2 i ⎢ ⎢ .... ⎢ m ⎢⎣ x i

x im +1

∑ x i2 ∑ x 3i ∑ x i4 ∑

x im + 2

....

....

∑ x im ⎤⎥ ⎡⎢ a 0 ⎤⎥ ⎡⎢ ∑ yi ⎤⎥ ∑ x im +1 ⎥ ⎢ a1 ⎥ = ⎢ ∑ x2i yi ⎥ ∑ xim + 2 ⎥⎥ ⎢⎢ a 2 ⎥⎥ ⎢⎢ ∑ x i yi ⎥⎥ ∑

x i2 m

⎥ ⎥ ⎥⎦

⎢ .... ⎥ ⎢a ⎥ ⎣ m⎦

⎢ .... ⎥ ⎢ xmy ⎥ ⎣∑ i i ⎦

114 Fungsi

dari Matlab dapat digunakan untuk derajat n = 2, yang disebut

polyfit

polinomial kuadratis. Hasil fungsi

polyfit

adalah vektor baris yang berisi

koefisien-koefisien polinomial. Selain fungsi

polyfit,

Matlab juga mempunyai fungsi

polyval

untuk

mengevaluasi polinomial pada tiap titik yang ingin diketahui nilainya.

Contoh 5.4. Persamaan Fit untuk Data Tekanan Uap Benzena Data tekanan uap murni benzena pada berbagai temperatur ditunjukkan pada tabel. Temperatur

Tekanan

Temperatur

Tekanan

(OC)

(mmHg)

(OC)

(mmHg)

-36,7

1

15,4

60

-19,6

5

26,1

100

-11,5

10

42,2

200

-2,6

20

60,6

400

7,6

40

80,1

760

Hubungan tekanan sebagai fungsi temperatur dapat dinyatakan sebagai persamaan empiris polinomial sederhana sebagai berikut : P = a0 + a1T + a2T2 + a3T3 + … + anTn dengan a0, a1, …, an adalah parameter yang ditentukan dengan regresi dan n adalah orde polinomial. Persamaan lain yang umum digunakan adalah persamaan Clausius-Clapeyron : log(P) = A −

B T + 273,15

dengan P adalah tekanan uap dalam mmHg dan T adalah temperatur dalam OC. Parameter A dan B ditentukan dengan regresi. Program pertama untuk penyelesaian persamaan empiris polinomial % Persamaan Fit untuk Data Tekanan Uap Benzena % Hubungan tekanan sebagai fungsi temperatur % sebagai persamaan empiris polinomial sederhana % P = a0 + a1*T + a2*T^2 + a3*T^3 + ... + an*T^n % Penyelesaian dengan menggunakan fungsi polyfit % Persamaan polinomial tersebut kemudian dievaluasi

115 % % % % % %

dengan fungsi polyval --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Data - data % tekanan, mmHg vp = [ 1 5 10 20 40 60 100 200 400 760]; % temperatur, oC T =[-36.7 -19.6 -11.5 -2.6 7.6 15.4 26.1 42.2 60.6 80.1]; % Penggunaan fungsi polyfit m = 3; %orde polinomial p = polyfit(T,vp,m); % Evaluasi persamaan polinomial z = polyval(p,T); % nilai vp dengan persamaan polinomial % Cetak hasil plot(T,z,'k-',T,vp,'ko','linewidth',2) xlabel('T(C)') ylabel('vp(mmHg)')

vp(mmHg)

Keluaran program

Gambar 5.6. Keluaran Program Contoh 5.4.a

Program penyelesaian untuk persamaan Clausius-Clapeyron

116 % Persamaan Fit untuk Data Tekanan Uap Benzena % Hubungan tekanan sebagai fungsi temperatur % sebagai persamaan empiris polinomial sederhana % P = a0 + a1*T + a2*T^2 + a3*T^3 + ... + an*T^n % Penyelesaian dengan menggunakan fungsi polyfit % Persamaan polinomial tersebut kemudian dievaluasi % dengan fungsi polyval % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data - data % tekanan, mmHg vp = [ 1 5 10 20 40 60 100 200 400 760]; % temperatur, oC T =[-36.7 -19.6 -11.5 -2.6 7.6 15.4 26.1 42.2 60.6 80.1]; % Linierisasi y = log10(vp); x = 1./(T+273.15); % Penggunaan fungsi polyfit p = polyfit(x,y,1); % Evaluasi persamaan z = 10.^(p(2)+(p(1)./(T+273.15))); % Cetak hasil plot(T,z,'k-',T,vp,'ko','linewidth',2) xlabel('T(C)') ylabel('vp(mmHg)')

Keluaran program

vp(mmHg)

117

Gambar 5.7 Keluaran Program Contoh 5.4.b

Dari kedua grafik terlihat persamaan polinomial memberikan hasil yang lebih baik.

Contoh 5.5 Persamaan Kualitatif Konversi dan Kecepatan Reaksi pada Reaktor Alir Pipa Data hubungan konversi reaksi x dengan kecepatan reaksi pada reaktor alir pipa digambarkan pada tabel. Tentukan persamaan kualitatif hubungan keduanya ! X

0,0

0,1

0,2

0,3

0,4

-ra

0,0053

0,0052

0,0050

0,0045

0,0040

X

0,5

0,6

0,7

0,8

0,85

-ra

0,0033

0,0025

0,0018

0,00125

0,001

Program Matlab %Regresi Polinomial

118 % % % % % % % % % % %

Berikut data-data percobaan Konversi dan Kecepatan Reaksi Persamaan empiris polinomial sederhana ra = a0 + a1*X + a2*X^2 + a3*X^3 + ... + an*X^n Penyelesaian dengan menggunakan fungsi polyfit Persamaan polinomial tersebut kemudian dievaluasi dengan fungsi polyval --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Data-data X=[0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.85]; ra=[0.0053 0.0052 0.005 0.0045 0.004 0.0033 ... 0.0025 0.0018 0.00125 0.001]; % Fungsi polyfit orde 3 p=polyfit(X,ra,3) % Evaluasi persamaan polinomial f=polyval(p,X); % Plot data percobaan dan perhitungan plot(X,ra,'ko',X,f,'k-','linewidth',2) xlabel('x'); ylabel('y'); axis([0 0.85 0 0.006]); title('Regresi Polinomial');

%Xmin Xmaks Ymin Ymaks

Keluaran program

Gambar 5.8 Keluaran Program Contoh 5.5

119

5.1.3. REGRESI LINIER MULTIVARIABEL Suatu pengembangan regresi linier yang berguna adalah kasus untuk y sebagai fungsi linier dari dua atau lebih variabel, yaitu : y = a0 + a1x1 + a2x2 + a3x3 + .... + akxk

....(5.18)

sehingga SSE = ∑ (y data − y pers )2 n

....(5.19)

n =1

SSE =

2 2 ∑ E i = ∑ (yi − a 0 − a1x1,i − a 2 x 2,i − .... − a k x k ,i )

n

n

i =1

n =1

∂SSE ∂SSE ∂SSE ∂SSE = 0, = 0, = 0, ...., = 0. ∂a 0 ∂a 1 ∂a 2 ∂a k a0n + a1∑x1,i + a2∑x2,i + .... + ak∑xk,i

= ∑yi

2

a0∑x1,i + a1∑ x1, i + a2∑x1,ix2,i + .... + ak∑x1,ixk,i = ∑yix1,i 2

a0∑x2,i + a1∑x2,ix1,i + a2∑ x 2, i + .... + ak∑x2,ixk,i = ∑yix2,i . . . 2

a0∑xk,i + a1∑xk,ix1,i + a2∑xk,ix2,i + .... + ak∑ x k , i = ∑yixk,I

Dalam bentuk matriks

∑ ∑

∑ x1,i ∑ x 2, i 2 ∑ x1,i ∑ x1,i x 2,i ∑ x 2,i x1,i ∑ x 22,i





⎡ n ⎢ ⎢ x1,i ⎢ x 2 ,i ⎢ ⎢ .... ⎢ ⎣⎢ x k ,i

x k ,i x1,i



....

x k ,i x 2,i ....

∑ x k,i ⎤⎥ ⎡a 0 ⎤ ⎡ ∑ yi ⎤ ∑ x1,i x k ⎥ ⎢⎢ a 1 ⎥⎥ ⎢⎢ ∑ x1,i yi ⎥⎥ ∑ x 2,i x k ⎥⎥ ⎢⎢a 2 ⎥⎥ = ⎢⎢ ∑ x 2,i yi ⎥⎥ ∑

x 2k ,i

⎥ ⎥ ⎦⎥

⎢ .... ⎥ ⎢a k ⎥ ⎣ ⎦

⎢ .... ⎥ ⎢ x y⎥ ⎣∑ m,i i ⎦

....(5.20)

120 Penyelesaian dapat dilakukan dengan metode-metode yang telah dijelaskan pada Bab II.

Contoh 5.6. Breaking Strength dan Komposisi Logam Gaya tensi y diperlukan untuk mematahkan batang besi yang diberi campuran unsur 1 dan 2 sebagai komposisi persentase x1dan x2. Tabel di bawah menunjukkan data-data y untuk berbagai komposisi campuran unsur 1 dan 2. Hubungan y dengan x1 dan x2 dinyatakan sebagai y = a0 + a1y1 + a2y2. Breaking Strength (kN)

unsur 1 (%)

unsur 2 (%)

Y

x1

x2

7,1

0

5

19,2

1

7

31

2

8

45

3

11

Tentukan a0, a1, dan a2. Program Matlab % Breaking strength dan komposisi logam % Regresi Multivariabel % Gaya tensi y diperlukan untuk mematahkan batang besi % komposisi persentase x1dan x2 % y = a0 + a1*y1 + a2*y2 % Penyelesaian dengan menggunakan matriks % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data-data x1=[0:3]'; x2=[5 7 8 11]'; y=[7.1 19.2 31 45]'; % Matriks X X=[ones(size(x1)) x1 x2]; % Perhitungan konstanta a=X\y % Evaluasi persamaan yp=X*a; max_persen_error = 100*max(abs((yp-y)./y))

Keluaran program

121 a = 0.8000 10.2429 1.2143 max_persen_error = 3.2193

5.2. INTERPOLASI Interpolasi berguna untuk memperkirakan harga-harga antara dari datadata yang telah diketahui dengan tepat. Interpolasi yang paling populer adalah polinomial interpolasi diferensiasi terbagi Newton. Sebelum pembahasan interpolasi polinomial secara umum, akan dibahas interpolasi linier (versi pertama) dan interpolasi kuadratik (versi kedua).

5.2.1. INTERPOLASI SATU DIMENSI INTERPOLASI LINIER Interpolasi linier dilakukan dengan menghubungkan dua titik yang telah diketahui dengan sebuah garis lurus. Secara grafis dapat dilihat pada gambar 5.9.

f(x1) f(x)

f(x0)

x0

x

x1

Gambar. 5.9 Konsep Dasar Interpolasi Linier

122 f (x) − f (x 0 ) = f (x1 ) − f (x 0 ) x1 − x 0 x − x0

f(x) = f(x0) + f ( x 1 ) − f ( x 0 ) (x –x0) (x1 − x 0 )

....(5.21)

INTERPOLASI KUADRATIK Interpolasi kuadratik adalah interpolasi polinomial versi 2, yang membutuhkan 3 titik yang diketahui. Bentuk umum f(x) = b0 + b1(x-x0) + b2(x-x0)(x-x1)

....(5.22)

dengan b0 = f(x0) b1 = f ( x 1 ) − f ( x 0 ) ( x1 − x 0 )

f ( x 2 ) − f ( x1 ) f ( x1 ) − f ( x 0 ) − ( x 2 − x1 ) ( x1 − x 0 ) b2 = (x 2 − x 0 ) INTERPOLASI POLINOMIAL Bentuk umum interpolasi polinomial Newton f(x) = b0 + b1(x-x0) + b2(x-x0)(x-x1) + .... + bn(x-x0)(x-x1)(x-x2)....(x-xn) ....(5.23) dengan b0 = f(x0) b1 = f[x1,x0] b2 = f[x2,x1,x0] . . . bn = f[xn,xn-1, ....,x1,x0] Differensiasi terbagi pertama

123 f[xi,xj] = f ( x i ) − f ( x j ) (x i − x j )

Differensiasi terbagi kedua f[xi,xj,xk] = f[xi, xj] − f[xj, xk] xi − xj

. . . Differensiasi terbagi ke-n f[xn,xn-1,....,x1,x0] = f [ x n , x n −1 ,..., x1 ] − f [ x n −1 , x n − 2 ,..., x 0 ] xn − x0

sehingga f(x) = f(x0)+(x-x0)f[x1,x0]+(x-x0)(x-x1)f[x2,x1,x0]+....+ (x-x0)(x-x1)(x-x2)....(x-xn)f[xn,xn-1,....,x1,x0]

....(5.24)

Interpolasi polinomial order 3

i

xi

f(xi)

0

x0

f(xi)

1

x1

f(x1)

I

II

III

f[x1,x0] f[x2,x1,x0] f[x2,x1] 2 3

x2

f(x2)

x3

f(x3)

f[x3,x2]

f[x3,x2,x1,x0] f[x3,x2,x1]

Contoh 5.7. Densitas asam asetat pada 25 OC Dari data densitas asam asetat pada 25 OC, tentukanlah densitas asam asetat pada konsentrasi 65 % ! Data densitas asam asetat pada 25 OC Konsentrasi Densitas

124 (%)

(g/cm3)

0

0,997

10

1,011

20

1,024

30

1,035

40

1,045

50

1,053

60

1,06

70

1,064

80

1,065

90

1,061

100

1,044

Penyelesaian % Densitas Asam Asetat pada 25 oC % Interpolasi Polinomial Newton % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** format long % Data-data x=[60 70 80 90 100]; rho = [1.06 1.064 1.065 1.061 1.044];

% konsentrasi, % % Densitas, g/cm^3

% Jumlah data yang digunakan n=5; % orde tertinggi adalah n - 1 % orde 1 for i= 1 :n frho(i,1)=rho(i); end % orde selanjutnya for j=1:n-1 k=j+1; for i=1 :n-j frho(i,k)=(frho(i+1,j)-frho(i,j))/(x(i+j)-x(i)); end end % Menampilkan matriks rho=frho xi=65; t=['Hasil interpolasi polinomail Newton untuk x = ' num2str(xi)];

125 disp(t) disp '----------------------------' fa=1; p=0; for j=1:n p=p+frho(1,j)*fa; t=['Nilai densitas dengan Polinomial Newton orde ' num2str(j-1) ' = ' num2str(p)]; disp(t) fa=fa*(xi-x(j)); end disp ' '

Keluaran program rho = 1.0600

0.0004

-0.0000

-0.0000

-0.0000

1.0640

0.0001

-0.0000

-0.0000

0

1.0650

-0.0004

-0.0001

0

0

1.0610

-0.0017

0

0

0

1.0440

0

0

0

0

Hasil interpolasi polinomial Newton untuk x = 65 ---------------------------Nilai densitas dengan Polinomial Newton orde 0 = Nilai densitas dengan Polinomial Newton orde 1 = Nilai densitas dengan Polinomial Newton orde 2 = Nilai densitas dengan Polinomial Newton orde 3 = Nilai densitas dengan Polinomial Newton orde 4 =

1.06 1.062 1.0624 1.0623 1.0625

Dalam matlab dapat digunakan fungsi interp1 untuk interpolasi satu dimensi. YI = interp1 (X,Y,XI,’metode’) adalah interpolasi untuk menentukan nilai YI jika X = X1, dengan menggunakan data-data hubungan Y terhadap X. Metode yang dapat digunakan antara lain : ‘nearest‘ - interpolasi dengan tetangga terdekat ‘linier‘ - interpolasi linier ‘spline‘ - interpolasi spline kubik ‘cubic‘ - interpolasi kubik

Contoh 5.8. Konduktivitas termal aseton Bennett & Meyers memberikan data-data konduktivitas termal aseton. Hubungan ln (k) dan ln (T) mendekati persamaan garis lurus, dengan T dalam R (R = OF + 460). Tentukan nilai k pada 300 OF !

126

k [BTU/jam.ft.OF]

T (OF)

0,0057

32

0,0074

115

0,0099

212

0,0147

363

Program penyelesaian % Konduktivitas termal aseton % Hubungan ln(k) dan ln(T) mendekati garis lurus % Tentukan k pada T = 300 oF % Diselesaikan dengan fungsi interp1 % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data-data k = [0.0057 0.0074 0.0099 0.0147]; T = [32 115 212 363]+460;

% BTU/jam.ft.oF % temperatur, R

% Hubungan k dan T akan linier dalam bentuk ln k dan ln T ln_k = log(k); ln_T = log(T); % Interpolasi Linier Tx = log(300+460); kx = interp1(ln_T,ln_k,Tx,'linier'); % Hasil k_pd_300 = exp(kx)

Keluaran program k_pd_300 = 0.0126

Konduktivitas termal aseton pada 300 OF adalah 0,0126 BTU/jam.ft.OF

5.2.2. INTERPOLASI SPLINE

127 Polinomial orde ke-n telah dapat digunakan untuk interpolasi di antara n + 1 titik data. Misalnya untuk delapan titik dapat diturunkan suatu polinomial orde ke tujuh yang sempurna. Kurva ini akan melalui semua titik-titik data yang ada. Tetapi ada kasus di mana fungsi-fungsi ini dapat membawa hasil yang keliru. Suatu pendekatan alternatif adalah menerapkan polinomial yang lebih rendah terhadap sub kumpulan titik data. Polinomial penyambungan demikian disebut fungsi spline Kurva orde tiga fungsi spline dilaksanakan untuk menyambung setiap pasang titik-titik data yang dinamakan

spline kubik

Fungsi-fungsi ini mempunyai

perilaku tambahan yang menghubungkan antara persamaan-persamaan secara visual tanpa halangan.

SPLINE LINIER Sambungan paling sederhana adalah sebuah garis lurus. Spline orde pertama untuk sekumpulan susunan titik data dapat didefinisikan sebagai sekumpulan fungsi linier yang menghubungkan titik-titik : f(x) = f(x0) + m0(x – x0)

x0 # x # x1

f(x) = f(x1) + m1(x – x1)

x1 # x # x2

… f(x) = f(xn-1) + m0(x – xn-1) dengan mi =

xn-1 # x # xn

f ( x i +1 ) − f ( x i ) x i +1 − x i

Persamaan-persamaan ini dapat dipakai untuk mengevaluasi fungsi tersebut pada sembarang titik di antara x0 dan xn, pertama-tama dengan menaruh interval di dalam tempat titik itu terletak. Metode ini identik dengan interpolasi linier.

128 SPLINE KUADRATIK

a1x2 + b1x + c

interval 1

x0 i=0

a2x2 + b2x + c

interval 2

a3x2 + b3x + c

interval 3

x1 x2 i=1 i=2 Gambar 5.10. Konsep Dasar Spline Kuadratik

x3 i=3

Tujuan spline kuadratik adalah untuk menurunkan sebuah polinomial orde kedua untuk setiap interval di antara titik-titik data. Polinomial untuk setiap interval secara umum dapat dinyatakan sebagai : fi(x) = aix2 + bix + ci SPLINE KUBIK Tujuan spline kubik ialah menurunkan suatu polinomial orde ketiga untuk setiap interval di antara simpul seperti : fi(x) = aix3 + bix2 + cix + di Untuk n + 1 titik data ( i = 0, 1, 2, …, n ) terdapat n interval dan konsekuensinya diperlukan 4n konstanta yang tidak diketahui untuk dievaluasi.

Contoh 5.9. Viskositas larutan MDEA Larutan metil dietanol amin (MDEA) banyak digunakan untuk absorpsi gas seperti H2S dan CO2. Dalam suatu menara absorpsi, perlu diketahui viskositas 43 % larutan metil dietanol amin (MDEA) dalam air pada 45OC. Untuk itu, ingin dipergunakan persamaan berikut: ln µ = B1 +

B2 + B3T T

129 Dengan µ dalam poise, dan T dalam K. Bi adalah parameter dengan ketentuan sebagai berikut: Fraksi berat

B1

B2.10-3

B3.102

0

-19,52

3,913

2,112

0,1

-22,14

4,475

2,470

0,2

-25,16

5,157

2,859

0,3

-28,38

5,908

3,255

0,4

-31,52

6,678

3,634

0,5

-34,51

7,417

MDEA

3,972 O

Tentukan viskositas larutan pada 43 % larutan dan 45 C.

Penyelesaian % Viskositas larutan MDEA % B2 % ln miu = B1 + ----- + B3*T % T % dengan miu = viskositas, poise % T = temperatur, K % Bi = parameter viskositas sebagai fungsi konsentrasi, x % (data dalam bentuk tabel) % viskositas MDE pada konsentrasi x = 0,43 dan T = 45 oC % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data parameter viskositas sebagai fungsi x x = [0 0.1 0.2 0.3 0.4 0.5]; B1 = [-19.52 -22.14 -25.16 -28.38 -31.52 -34.51]; B2 = [3.913 4.475 5.157 5.908 6.678 7.417]*10^3; B3 = [2.112 2.470 2.859 3.255 3.634 3.972]*10^-2; % Data x dan T yang ingin dicari viskositasnya x_i = 0.43; % Konsentrasi T_i = 45+273.15; % Temperatur, K % Konstanta B1, B2, dan B3 pada 0.43 ditentukan terlebih dahulu % Interpolasi nilai B pada konsentrasi 0.43 B1_i = interp1(x,B1,x_i,'spline'); B2_i = interp1(x,B2,x_i,'spline'); B3_i = interp1(x,B3,x_i,'spline'); % Viskositas dihitung viscA = exp(B1_i + B2_i/T_i + B3_i*T_i); % Viscositas pada 45 C ditentukan terlebih dahulu % Viskositas pada 45 C dihitung visc = exp(B1 + B2./T_i + B3.*T_i) % Interpolasi viskositas pada konsentrasi 0.43

130 viscB = interp1(x,visc,x_i,'spline'); % Cetak Hasil disp(' ') disp(['Viskositas MDEA pada x = ',num2str(x_i), ' dan T = ',num2str(T_i)]) disp(['jika parameter viskositas pada x = ',num2str(x_i), ' dihitung dulu']) viskositas = viscA disp(['jika viskositas pada T = ',num2str(T_i),' dihitung dulu']) viskositas = viscB

Keluaran program Viskositas MDEA pada x = 0.43 dan T = 318.15 jika parameter viskositas pada x = 0.43 dihitung dulu viskositas = 3.2302 jika viskositas pada T = 318.15 dihitung dulu viskositas = 3.2093

5.2.3. INTERPOLASI DUA DIMENSI Interpolasi dua dimensi mempunyai prinsip yang sama dengan interpolasi satu dimensi. Perbedaanya adalah interpolasi dua dimensi menginterpolasikan fungsi dua variabel z = f(x,y). ZI = interp2 (X,Y,Z,XI,YI)

adalah interpolasi untuk menentukan nilai

ZI,

dari fungsi Z pada titik XI dan YI dari matriks X dan Y. Metode yang ditampilkan pada interpolasi 1 dimensi dapat juga digunakan pada interpolasi 2 dimensi.

Contoh 5.10. Beda entalpi uap yang didinginkan Tentukan berapakah ∆H (beda entalpi) dari uap yang didinginkan menjadi 480 0F dan 52 psia, jika kondisi mula-mula adalah 640 0F dan 92 psia !

50

Entalphi, H dalam Btu/lb T (0F) 400 500 600 1258,7 1282,6 -

55

1258,2

1282,2

-

-

90

-

-

1328,7

1378,1

p (psia)

700 -

131 95

-

-

1328,4

1377,8

Program penyelesaian % Beda entalpi uap yang didinginkan % uap mula-mula adalah 640 oF dan 92 psia % menjadi 480 oF dan 52 psia % Digunakan interpolasi 2 dimensi % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Kondisi awal To = [600 700]; po = [90 95]; Ho = [1328.7 1378.1 1328.4 1377.8]; H1 = interp2(To,po,Ho,640,92) % Kondisi akhir Tn = [400 500]; pn = [50 55]; Hn = [1258.7 1282.6 1258.2 1282.2]; H2 = interp2(Tn,pn,Hn,480,52) % Perhitungan beda entalpi del_H = H2 - H1

Keluaran program H1 = 1.3483e+003 H2 = 1.2777e+003 del_H = -70.6880

% Temperatur, oF % Tekanan, psia % Entalphi, BTU/lb % Interpolasi 2 dimensi % Temperatur, oF % Tekanan, psia % Entalphi, BTU/lb % Interpolasi 2 dimensi

6

OPTIMASI

Optimasi adalah suatu proses untuk mencari kondisi optimum dalam arti yang paling menguntungkan. Optimasi bisa berupa proses mencari nilai maksimum (maksimasi) atau proses mencari nilai minimum (minimasi). Variabel yang dimaksimumkan atau diminimimkan disebut objective function, sedangkan variabel yang dicari nilainya sehingga objective function menjadi maksimum atau minimum disebut design variabel. Proses optimasi secara analitis dilakukan dengan cara melihat turunan (derivatif) objective function terhadap design variabel. Dalam prakteknya, proses optimasi sangat sulit diselesaikan dengan cara analitis (kalkulus). Jika demikian maka dapat dilakukan proses optimasi dengan cara direct search, yaitu melakukan perhitungan harga objective function untuk berbagai nilai design variabel.

6.1. PEMOGRAMAN LINIER Bentuk umum Minimasi cTx Subyek Ax = b dan x ≥ 0

134 dengan x adalah vektor kolom n komponen yang ingin ditentukan nilainya. Konstanta yang diberikan sistem disediakan oleh vektor kolom b dengan m komponen, matriks A ukuran m x n, dan vektor kolom c dengan n komponen. Seluruh

persamaan

dan

fungsi

berada

dalam

bentuk

linier.

Tujuan

keseluruhannya adalah minimasi suatu fungsi linier cTx yang disebut sebagai objective function. Penyelesaian secara detail tidak dijelaskan disini. Tetapi program berikut dapat digunakan untuk menyelesaikan persoalan pemograman linier. function [xsol,basic]=proglin(A,b,c,tol) % Program ini bertujuan mencari nilai minimum % untuk pemograman linier c'x % subyek Ax = b % % A adalah matriks koefisien untuk batasan-batasan % b adalah vektor kolom sisi kanan % c adalah vektor baris koefisien biaya % xsol adalah vektor hasil penyelesaian % basic adalah urutan variabel dasar (basic) % % %

Nama File : proglin.m Surakarta, Oktober 2005 ---------------------------------------------------------------

% Menyediakan matriks-matriks yang mengosongkannya x2=[ ]; x=[ ]; [m n]=size(A); % Mengeset kondisi awal aplus1=b-sum(A(1:m,:)')'; cplus1=1000000; A=[A aplus1]; c=[c cplus1]; B=[ ]; n=n+1; x0=ones(1,n)'; x=x0; alpha=0.0001; lambda=zeros(1,m)'; iter=0; % Langkah utama while abs(c*x-lambda'*b)>tol x2=x.*x; D=diag(x); D2=diag(x2); AD2=A*D2; lambda=(AD2*A')\(AD2*c'); dualres=c'-A'*lambda; normres=norm(D*dualres); for i=1:n if dualres(i)>0 ratio(i)=normres/(x(i)*(c(i)-A(:,i)'*lambda)); else ratio(i)=inf; end end R=min(ratio)-alpha; x1=x-R*D2*dualres/normres; x=x1; basiscount=0; B=[ ]; basic=[ ]; cb=[ ]; for k=1:n if x(k)>tol basiscount=basiscount+1; basic=[basic k]; end

135 end if basiscount==m for k=basic B=[B A(:,k)]; cb=[cb c(k)]; end primalsol=b'/B'; xsol=primalsol; break end iter=iter+1; end objective=c*x

Contoh 6.1. Produksi Motor Bahan Bakar Padat Pabrik kimia membuat dua tipe kecil motor bahan bakar padat sebagai uji coba. Motor A mempunyai keuntungan $ 3 per motor, dan motor B mempunyai keuntungan $ 4 per motor. Tersedia waktu proses total 80 jam per minggu untuk memproduksi kedua motor. Rata-rata 4 jam per motor untuk memproduksi motor A dan hanya 2 jam per motor untuk memproduksi B. Tetapi karena material B lebih beracun daripada A, waktu penyiapan motor B membutuhkan 5 jam per motor sedangkan motor A hanya 2 jam per motor. Waktu yang tersedia untuk penyiapan adalah 120 jam per minggu. Tentukan jumlah poduksi masing-masing motor untuk menghasilkan keuntungan maksimal. Objective function dan persamaan batas adalah Maksimum keuntungan = 3A + 4B atau

Minimasi - keuntungan = - 3A – 4B Subyek 4A + 2B # 80 2A + 5B # 120 A, B ≥ 0

% Produksi Motor Bahan Bakar % Pemograman linier % Minimasi - keuntungan = - 3A - 4B % Subyek 4A + 2B <= 80 Waktu proses % 2A + 5B <= 120 Waktu persiapan % A, B >= 0 % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data-data c=[-3 -4]; a=[4 2; 2 5];

136 b=[80 120]'; % Perhitungan [xsol,ind]=proglin(a,b,c,1e-10); % Cetak hasil i=1;fprintf('\Penyelesaian adalah : '); for j=ind fprintf('\nx(%1.0f)=%8.4f\',j,xsol(i)); i=i+1; end fprintf('\nNilai variabel lain adalah nol\n')

Keluaran program objective = -110.0000 x(1)= 10.0000 x(2)= 20.0000 Nilai variabel lain adalah nol

Keuntungan maksimal diperoleh adalah $ 110 per minggu dari produksi 10 motor A dan 20 motor B per minggu

6.2. METODE GOLDEN SECTION Golden section adalah salah satu optimasi secara numeris yang dapat digunakan untuk fungsi yang bersifat unimodal (hanya mempunyai 1 nilai maksimum/minimum). Pada metode ini interval awal (XA sampai XB) dievaluasi di dua titik, yaitu XP dan XQ. Maksimasi : YP < YQ maka

XA baru = XP lama XB tetap XP baru = XQ lama XQ dicari

YP > YQ maka XA tetap XB baru = XQ lama XP dicari XQ baru = XP lama Minimasi : YP < YQ maka

XA tetap

137 XB baru = XQ lama XP dicari XQ baru = XP lama YP > YQ maka

XA baru = XP lama XB tetap XP baru = XQ lama XQ dicari

Jarak interval l = (√5 – 1)/2 = 0,618 Program optimasi dengan metode golden section function [f,a]=golden(func,p,tol) % Program ini bertujuan mencari nilai minimum satu variabel % fungsi non linier dg metode golden section % % func adalah nama fungsi non linier % p adalah vektor 2 elemen untuk kisaran yang dicari % tol adalah toleransi % a adalah nilai optimum dari x % f adalah nilai minimum fungsi pada x = a % % %

Nama File : golden.m Surakarta, Oktober 2005 ---------------------------------------------------------------

if p(1)tol x=[a+(1-g)*r a+g*r]; y=feval(func,x); if y(1)
138 l = 0,618

l l

XA

XP

XQ

XB

l

XA

XP

XQ

XB

l

XA

XP XQ

XB

Gambar 6.1. Optimasi dengan Metode Golden Section

Contoh 6.2. Ekstraksi Asam Benzoat dari Limbah Industri Suatu industri menghasilkan 10.000 lb/jam limbah yang mengandung 0,002 lb asam benzoat/lb air. Asam benzoat berharga $ 0,4/lb saat dalam phase benzena & harga benzena $ 0,001/lb. Benzena larut dalam phase air dalam jumlah 0,07 lb/lb air. Limbah industri tidak bernilai baik sebelum dan sesudah ditambah benzena. Distribusi asam benzoat di antara 2 phase sesuai dengan distribusi y = 4x, dengan y dan x didefinisikan dalam gambar 6.2.

=

F xo (4W + 0,79F)

a.

Buktikan bahwa: x

b.

Buktikan bahwa keuntungan (P) = 0,4F(xo – x) –0,001W

c.

Tentukan W hingga diperoleh P maksimum, dengan metode lima titik

139 xo = 0,002 lb as. benzoat/ lb air F = 10.000 lb air/jam

W = lb benzena / jam

Phase benzena y lb as. benzoat/lb benzena

Phase air x lb as.benzoat / (lb air + lb benzena larut) Gambar 6.2. Proses Ekstraksi Asam Benzoat dengan Benzena Penyelesaian a. Fraksi massa Asam Benzoat pada fase air Neraca massa komponen Asam Benzoat input – output = akumulasi As. Benzoat umpan – As. Benzoat fase benzena – As. Benzoat fase air = 0 As. Benzoat umpan – (jumlah benzena x fraksi As. Benzoat pada fase benzena) – (jumlah benzena dan air x fraksi As. Benzoat pada fase air) = 0 F x0 – (W – 0,07 F) y – (F + 0,07 F) x = 0 F x0 – (W – 0,07 F) 4 x – (1,07 F) x = 0 F x0 – 4 W x – 0,79 F x = 0 x=

Fxo

(4W + 0,79F)

b. Keuntungan (P) Keuntungan ( P ) = harga jual As. Benzoat fase benzena – harga beli benzena = As. Benzoat fase benzena x $ 0,4 – Benzena x $0,001

140 = (x0 F – x F) $ 0,4 – (W) $0,001 = 0,4F(xo – x) –0,001W c. Jumlah benzena (W) optimal untuk mendapatkan keuntungan (P) maksimal P

= 0,4F(xo – x) – 0,001W = 0,4F(xo –

Fxo ) – 0,001W (4W + 0,79F)

= 0,4.10000 (0,002 -

=8-

80000

(4W + 7900)

10000.0,002

(4W + 0,79.10000)

) – 0,001.W

- 0,001W

function fw=contoh62(w) % Ekstraksi asam benzoat dari limbah industri % Program bertujuan menentukan jumlah benzena yang ditambahkan % untuk pengambilan asam benzoat dari limbah industri % w adalah benzena yang ditambahkan % % %

Nama File : contoh62.m Surakarta, Oktober 2005 ---------------------------------------------------------------

% Data-data xo=0.002; F=10000;

% Konsentrasi asam benzoat pada limbah % Laju alir limbah

% Perhitungan asam benzoat yang dapat diambil x=F.*xo./(4.*w+0.79.*F); % Perhitungan keuntungan yang diperoleh P=0.4.*F.*(xo-x)-0.001.*w; % Program maksimasi diubah menjadi minimasi fw=1./P;

Langkah untuk menjalankan program dan hasilnya adalah : >> [f,x]=golden('contoh62',[2400 2550],0.00001) iter = 35 f = 0.9702 x = 2.4971e+003

141 Matlab menyediakan fungsi untuk menentukan nilai minimasi satu variabel yaitu fungsi fminbnd. Cara memanggil fungsi ini adalah x = fminbnd(fun,x1,x2)

dari fungsi

fun

pada interval

dimulai pada

x0

dan menentukan nilai minimasi

x1 < x < x2. fun

adalah fungsi dengan input

x x

dan keluaran adalah evaluasi nilai F pada x .

Contoh 6.3. Optimasi Konversi pada Reaktor Batch Reaksi fase cair orde 2, A Æ B dijalankan dalam reaktor batch isotermal. Konstanta kecepatan reaksi, k = 0,025 L/(gmol menit). Umpan A dengan konsentrasi awal, CAO = 2 gmol/L. Waktu bongkar isi reaktor (tp) 45 menit. Waktu siklus (ts) = tr + tp dengan tr adalah waktu reaksi. Waktu reaksi dihitung dari persamaan kecepatan reaksi − dC A = k.C 2 . A dt

xA , dengan CA=CAO(1 - xA). kC AO (1 − x A )

a.

Buktikan waktu reaksi adalah tr =

b.

Dengan persamaan reaksi A Æ B, diketahui jumlah B terbentuk adalah CB = CAO xA, Buktikan jumlah B terbentuk persatuan waktu siklus adalah

CB 0,1.x A (1 − x A ) = ts x A + 2,25(1 − x A ) c.

Tentukan konversi A yang memberikan jumlah B terbentuk persatuan waktu siklus maksimum.

d.

Tentukan waktu reaksi yang memberikan jumlah B terbentuk persatuan waktu siklus maksimum.

Penyelesaian a.



dC A = k.C 2A dt Ca

− ∫

dC A

2 Cao C A

t

= k ∫ dt 0

1 - 1 = kt C A C Ao

142

1 = kt 1 C Ao (1 − x A ) C Ao xA = kt C Ao (1 − x A ) tr = b.

xA kC AO (1 − x A )

CB = ts

C Ao x A 1 kC Ao

⎛ xA ⎜⎜ ⎝1− xA

⎞ ⎟⎟ + tp ⎠

= C Ao x A kC Ao (1 − x A ) x A + tp kC Ao (1 − x A ) =

c.

0,1.x A (1 − x A ) x A + 2,25(1 − x A )

Program matlab

% Optimasi konversi pada reaktor batch % reaksi orde 2 pada reaktor batch % A --> B % optimasi konversi untuk mendapatkan % B maksimal per waktu siklus % Penyelesaian dengan fungsi fminbnd % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc global Cao k tp % Data-data Cao = 2; k = 0.025; tp = 45;

% gmol/L % L/(gmol.menit) % menit

% Interval konversi xo=0.01; % konversi minimal yang mungkin terjadi xn=0.99; % konversi maksimal yang mungkin terjadi % Perhitungan konversi optimal x_opt=fminbnd('F63',xo,xn)

Fungsi matlab function Cb_ts_min=F63(x) % Program ini berisi fungsi untuk menghitung

143 % % % %

B terbentuk per satuan waktu siklus Nama File : F63.m Surakarta, Oktober 2005 ---------------------------------------------------------------

global k Cao tp tr = x/(k*Cao*(1-x)); ts = tp + tr; Cb_ts = Cao*x/ts; Cb_ts_min = 1/Cb_ts;

% % % %

Waktu reaksi Waktu siklus Maksimum B terbentuk per waktu siklus Program minimasi

Keluaran program x_opt = 0.6000

Konversi optimal adalah 0,6 d.

tr =

xA kC AO (1 − x A )

= 30 menit Cara klasik untuk mendapatkan suatu nilai yang optimal adalah dengan mencoba semua titik yang mungkin. Cara ini lebih lama tetapi cukup menarik untuk optimasi proses yang sederhana.

Contoh 6.4. Produksi Optimal

Seorang engineer ingin menentukan tingkat produksi yang optimal. Jika ia memproduksi barang lebih banyak daripada yang dapat ia jual, maka keuntungan yang diperoleh tidak sebanyak yang diharapkan. Data pabrik menunjukkan bahwa biaya tetap (fixed cost) produksi $ 30.000 per tahun tidak tergantung banyak barang yang diproduksi. Biaya tambahan adalah $ 2.000 per unit barang. Penjualan berfluktuasi 25 – 50 unit per tahun tanpa ada data kecenderungan penjualan. Harga barang tidak bisa lebih dari $ 4.000 per unit. Tentukan jumlah unit barang yang diproduksi setiap tahun, dengan asumsi satu unit barang dijual dengan harga $ 4.000 sepanjang tahun. Asumsikan harga barang turun menjadi $ 1.000 per unitnya pada akhir tahun jika barang tersebut tidak terjual. Program matlab untuk persoalan di atas adalah

144 % Produksi optimal % Perhitungan jumlah unit barang yang diproduksi setiap tahun % Untuk mendapatkan keuntungan maksimal % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** n = 5000; %Jumlah simulasi random level = [25:50]; %vektor tingkat produksi awal cost = 30000+2000*level; %biaya for k = 1:26 cum_profit = 0; for m = 1:n demand = floor(rand*(50-25)+26); if demand >= level(k) income = 4000*level(k); else income = 4000*demand+1000*(level(k)-demand); end profit = income-cost(k); cum_profit = cum_profit+profit; end expected_profit = cum_profit/n; p(k,1) = level(k); p(k,2) = expected_profit; end plot(p(:,1),p(:,2),'o',p(:,1),p(:,2),'-') xlabel('Jumlah unit'),ylabel('Profit ($)')

loop k menunjukkan keuntungan produksi pada berbagai jumlah unit produksi

yaitu antara 25 – 50. loop m menunjukkan jumlah simulasi secara acak. Variabel demand menunjukkan jumlah permintaan untuk produksi. Jika permintaan lebih

besar daripada jumlah produksi, maka seluruh barang akan dijual dan incomenya adalah $ 4.000 kali jumlah barang. Jika income lebih sedikit daripada produksi barang, maka income adalah $ 4.000 kali jumlah barang terjual ditambah $ 1.000 kali jumlah barang yang tidak terjual. Pada setiap permintaan yang acak, maka profit adalah selisih pdapatn dan biaya. profit_kum adalah profit kumulatif

keuntungan untuk seluruh simulasi acak. expected_profit adalah profit kumulatif rata-rata yaitu profit_kum dibagi simulasi acak. Keluaran program

Profit ($)

145

Gambar 6.3. Keluaran Program Contoh 6.4

6.3. OPTIMASI MULTIVARIABEL Untuk optimasi multivariabel, Matlab menyediakan fminsearch. Untuk memanggil fminsearch dapat diikuti langkah berikut: x = fminsearch (fun,x0)

dimulai pada x0untuk menemukan x

optimal pada fungsi fun. fun menerima input x, dan keluar adalah F yang dievaluasi pada x. x0dapat berupa scalar, vektor, atau matriks.

Contoh 6.5. Persamaan Fit untuk Data Tekanan Uap Benzena

Contoh 5.4 tentang hubungan tekanan uap benzena dan temperatur, dapat pula digunakan persamaan Antoine log(P) = A −

B T+C

Parameter A, B, dan C harus ditentukan dengan regresi non linier.

146 Program % Persamaan Fit untuk Data Tekanan Uap Benzena % Regresi non linier % B % log (P) = A - ------% T + C % Penyelesaian dengan fungsi fminsearch % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global vp T % Data-data vp = [ 1 5 10 20 40 60 100 200 400 760]; T = [-36.7 -19.6 -11.5 -2.6 7.6 15.4 26.1 42.2 60.6 80.1]; %Tebakan untuk nilai parameter Ko = [10 2000 273] ; % Perhitungan optimasi K = fminsearch('F65',Ko) % Evaluasi parameter z = 10.^(K(1)-(K(2)./(T+K(3)))); % Menampilkan hasil plot(T,z,'k-',T,vp,'ko','linewidth',2) set(gca,'fontsize',14) xlabel('T(C)') ylabel('vp(mmHg)')

Fungsi terkait function ff=F65(K) % Program ini bertujuan mencari nilai minimum % program non linier % Persamaan Antoine % K(1) = A % K(2) = B % K(3) = C % % Nama File : F65.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global vp T % Perhitungan minimasi SSE f = log10(vp)-K(1)+K(2)./(T+K(3)); ff=sum(f.*f);

Keluaran program K = 5.7673

677.0928

Artinya A = 5,7673

153.8852

147 B = 677,0928

vp(mmHg)

C = 153,8852

Gambar 6.4. Keluaran Program Contoh 6.5

Contoh 6.6. Hidrogenasi Etilen menjadi Etana Kecep. Reaksi

PE

PEA

PH

(mol/kgkat.detik)

(atm)

(atm)

(atm)

1,04

1

1

1

3,13

1

1

3

5,21

1

1

5

3,82

3

1

3

4,19

5

1

3

2,391

0,5

1

3

3,867

0,5

0,5

5

148 2,199

0,5

3

3

0,75

0,5

5

1

Reaksi hidrogenasi etilen menjadi etana H2 + C2H4 → C2H6 terjadi dengan katalis cobalt molybdenum. Dari data-data yang ditunjukkan pada tabel di bawah ini, tentukan parameter-parameter persamaan kecepatan reaksi dengan menggunakan analisa kuadrat terkecil. -rA =

kPE PH 1 + K A PEA + K E PE

Penyelesaian % Hidrogenasi Etilen menjadi Etana % Reaksi hidrogenasi etilen menjadi etana % H2 + C2H4 --> C2H6 % Regresi Non Linear % kPePh % ra = -----------------% 1 + KaPea + KePe % Ingin menghitung nilai k, Ka, dan Ke % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc global ra Pe Ph Pea n % Data-data Percobaan ra=[1.04 3.13 5.21 3.82 4.19 2.391 % % Pe=[1 1 1 3 5 0.5 0.5 0.5 0.5]; % Pea=[1 1 1 1 1 1 0.5 3 5]; % Ph=[1 3 5 3 3 3 5 3 1]; %

3.867 2.199 0.75]; Kecepatan reaksi mol/kgkat.detik Tekanan, atm Tekanan, atm Tekanan, atm

% Jumlah data n=9; % Tebakan awal k, Ka, Ke masing-masing 1 xo=[1 1 1]; %Minimasi di sub program F66 disp 'Harga k, Ka, dan Ke hasil minimasi' fminsearch('F66',xo)

Fungsi perhitungan SSE function f=F66(x) % Program ini berisi fungsi untuk menghitung

149 % % % % % % %

SEE dari persamaan kecepatan reaksi sebagai fungsi konstanta-konstanta yang ingin dicari x(1)=k; x(2)=Ke; x(3)=Ka Nama File : F66.m Surakarta, Oktober 2005 ---------------------------------------------------------------

% Data-data global ra Pe Ph Pea n % Minimasi SSE f=0; for i=1:n f=f+(ra(i)-(x(1)*Pe(i)*Ph(i))/(1+x(3)*Pea(i)+x(2)*Pe(i)))^2; end

Hasil program >> Harga k, Ka, dan Ke hasil minimasi ans = 3.3479 2.2111 0.0429

Artinya adalah k = 3,3479; Ka = 2,2111; dan Ke = 0,0429 -rA =

3,3479PE PH 1 + 2,2111PEA + 0,0429PE

Contoh 6.7. Optimasi Kanal Saluran Air

Gambar 6.5 menunjukkan cross section dari kanal saluran air. Analisa awal menunjukkan bahwa luas penampang saluran harus 100 ft3 untuk dapat menampung kecepatan aliran air. Untuk meminimasi biaya digunakan kanal lurus dengan cara meminimasi panjang perimeter kanal. Tentukan d, b, dan θ untuk meminimasi panjang kanal ini.

d b

θ

Gambar 6.5. Kanal Saluran Air

Panjang perimeter L dapat ditulis sebagai

150 L = b + 2d sin θ Luas penampang saluran 2 = 100 A = db + d tan θ

b = 100 − d d tan θ

substitusi pada persamaan L=

100 d 2d − + d tan θ sin θ

Program Matlab % Optimasi Kanal Saluran Air % menentukan d dan sudut tetha % 100 d 2d % L = ---- - ---------- + ---------% d tan(tetha) sin(tetha) % Ingin menghitung nilai k, Ka, dan Ke % ---------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % ***************************************************************** % clear all clc % Tebakan awal d_tebakan = 20; teta_tebakan = 1;

% ft

% Perhitungan optimasi x =fminsearch('F67',[d_tebakan teta_tebakan]); % Hasil perhitungan d = x(1) teta = x(2)*180/pi

% konversi ke derajat

Program perhitungan L function L = F67(x) % Program ini berisi fungsi untuk menghitung L % sebagai fungsi d dan tetha % % Nama File : F67.m % Surakarta, Oktober 2005 % --------------------------------------------------------------d = x(1); teta = x(2); % Persamaan yang diminimasi L = 100./d-d./tan(teta)+2*d./sin(teta);

151 Keluaran program >> d = 7.5983 teta = 60.0004

Contoh 6.8. Perhatikan Program berikut ini % % % % % % % % % %

--------------------------------------------------------------Demonstrasi regresi nonlinear dengan fminsearch Fit y=alpha*exp(beta*x) --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

clear all global xDataz yDataz % Header Program disp('Demonstrasi regresi nonlinear') disp(' y = alpha*exp(beta*x)') % Data-data xDataz = [ 0 2 3 5 7 8 9 ]'; yDataz = [ 10 8 5 3 2 1 1 ]'; % Tebakan guess = [15 -0.5]; % Perhitungan param = fminsearch('F68', guess); % Cetak hasil perhitungan alpha = param(1); beta = param(2); disp('Koefisien adalah: ') disp([ 'alpha = ', num2str(alpha) ]) disp([ 'beta = ', num2str(beta) ]) % Evaluasi hasil yfit = alpha.*exp(beta.*xDataz); % Plot dan membandingkan hasil plot(xDataz, yDataz, 'o', xDataz, yfit, '-', 'linewidth',2) set(gca,'fontsize',16)

Fungsi untuk menghitung SSE function sse=F68(param) % Program ini berisi fungsi untuk menghitung SEE % fungsi konstanta-konstanta yang ingin dicari % param(1)=alpha; param(2)=beta % % Nama File : F68.m % Surakarta, Oktober 2005 % ---------------------------------------------------------------

152 global xDataz yDataz % Mengubah variabel alpha = param(1); beta = param(2); % Perhitungan SSE error = yDataz - alpha.*exp(beta.*xDataz); sse = sum(error.^2);

Keluaran Program

Gambar 6.6. Keluaran Program Contoh 6.8. Demonstrasi regresi nonlinear y = alpha*exp(beta*x) Koefisien adalah: alpha = 10.5674 beta = -0.23575

Contoh 6.9. Ekstraktor Tiga Tingkat

Campuran C dan A akan diambil C-nya dengan ekstraksi menggunakan solven B dalam ekstraktor 3 tingkat yang beroperasi secara cross-current seperti terlihat pada gambar 6.7. Hubungan kesetimbangan antara C dalam fasa B (y) dan C dalam fasa A (x) mengikuti persamaan :

y = k.x2

Ingin dicari S1, S2, dan S3 yang memberikan xR minimal jika S = S1 + S2 + S3 = tetap.

153 S1

S3

S2

F

1 x0

F

2

x1

F x2

3

F x3=xR

S1

S2

S3

y1

y2

y3

Gambar 6.7. Ekstraktor Tiga Tingkat Cross-current

Dari neraca massa diperoleh persamaan,

x1 =

x2 =

− F + F 2 + 4F.S1 .k.x o 2S1 .k

− F + F 2 + 4F.S 2 .k.x 1

xR = x3 =

2S 2 .k

− F + F 2 + 4F.S3 .k.x 2 2S3 .k

S3 = S – S1 – S2 Data-data yang diketahui adalah F = 100 kg A/mnt; S = 180 kg B/mnt; xo = 0,2 kg C/ kg A; dan k = 20 Program Penyelesaian % Ekstraktor Tiga Tingkat % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global Stot xo F S3 k % Data-data Stot=180; xo=0.2; F=100; k=20;

% % % %

Laju alir solvent total, kg B/menit Konsentrasi umpan, kg C/kg A Laju alir umpan, kg A/menit Konstanta kesetimbangan

% Tebakan awal laju alir solvent S1 & S2 So=[20 100]; % Perhitungan [S,xR]=fminsearch(@F69,So);

154 % Hasil perhitungan S1=S(1) S2=S(2) S3=Stot-S1-S2 xR_min=xR

Program terkait function xR=F69(S) % Program ini berisi fungsi untuk menghitung XR % fungsi konstanta-konstanta yang ingin dicari % S(1) & S(2) ---> S(3) akan terhitung % % Nama File : F69.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global Stot xo F S3 k S3=Stot-S(1)-S(2); x1= (-F+sqrt(F^2+4*F*S(1)*k*xo))/(2*S(1)*k); x2= (-F+sqrt(F^2+4*F*S(2)*k*x1))/(2*S(2)*k); xR= (-F+sqrt(F^2+4*F*S3*k*x2))/(2*S3*k);

Keluaran program S1 = 47.3733 S2 = 59.8036 S3 = 72.8231 xR_min = 0.0382

Contoh 6.10. Koefisien Aktivitas Campuran Biner

Pada suhu 350 K, campuran biner bahan A dan B, fasa uapnya mengikuti hukum-hukum gas ideal sedangkan fasa cairnya non-ideal dengan koefisien aktivitas mengikuti persamaan : γA = exp ( β.xB2 )

dan

γB = exp ( β.xA2 )

Pada 350 K, tekanan uap murni A dan B masing-masing 80 cmHg dan 60 cmHg. Data tekanan total kesetimbangan pada 350 K pd berbagai fraksi mol A adalah : xA Pt (cmHg)

0,1

0,2

0,3

0,4

0,6

0,7

0,8

0,9

65,8

70,3

73,9

76,5

79,9

80,9

81,3

81

155 Berdasarkan data-data tersebut, perkirakan nilai β dengan membandingkan Pt data dengan Pt hasil perhitungan sampai diperoleh SSE minimum.

SSE = ∑ (Pt hit − Pt dat )

2

dengan Pthit dapat dicari dengan persamaan,

[

]

Pt hit = x A .PAo .exp β(1 − x A ) 2 + (1 − x A ).PBo .exp(βe 2A ) Penyelesaian % Koefisien Aktivitas Campuran Biner % Koef(A) = exp (beta.xB^2 ) % Koef(B) = exp (beta.xA^2 ) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global xa Ptdat Pao Pbo % Data-data xa=[0.1 0.2 0.3 0.4 0.6 0.7 0.8 0.9]; Ptdat=[65.8 70.3 73.9 76.5 79.9 80.9 81.3 81]; % Tekanan uap murni Pao=80; Pbo=60; % Perhitungan beta beta=fminsearch(@F610,0.7)

Program terkait function fP=F610(B) % Program ini berisi fungsi untuk menghitung SSE % % SSE = sigma [ P data - P hit ]^2 % % Nama File : F610.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global xa Ptdat Pao Pbo Pt=xa*Pao.*exp(B*(1-xa).^2)+(1-xa)*Pbo.*exp(B*xa.^2); fP=sum((Ptdat-Pt).^2);

Keluaran program beta = 0.4584

Contoh 6.11.

Reaktor Adiabatis untuk Reaksi Fase Gas Bolak-balik Eksotermis

156 Reaksi fasa gas bolak-balik eksotermis SO2 + ½ O2 ↔ SO3 dijalankan dalam reaktor tabung adiabatik dengan bantuan katalisator padat berbentuk butir-butir. Aliran gas dianggap plug-flow dan tekanan system dianggap tetap Pt = 1 atm. Proses ditunjukkan pada gambar 6.8. Kecepatan reaksi mengikuti persamaan :

⎛ ⎞ PSO3 ⎟ k 1 .PO 2 .PSO 2 .⎜1 − 0 , 5 ⎜ ⎟ P . P . K ⎛ ⎞ gmol SO 2 SO 2 O2 P ⎠ ⎝ ⎟⎟ = r ⎜⎜ 2 ⎝ jam . kg katalisator ⎠ 22,414. 1 + K 2 .PSO 2 + K 3 .PSO 3

(

)

dengan :

5473 ⎞ ⎛ k 1 = exp⎜12,16 − ⎟ T ⎠ ⎝

8619 ⎞ ⎛ K 2 = exp⎜ − 9,953 + ⎟ T ⎠ ⎝ 52956 ⎞ ⎛ K 3 = exp⎜ − 71,745 − ⎟ T ⎠ ⎝ 11300 ⎞ ⎛ K P = exp⎜ − 10,68 + ⎟ T ⎠ ⎝

PSO 2 =

(1 − x) .Pt (12,82 − 0,5.x)

PO 2 =

(1 − x) .Pt (12,82 − 0,5.x)

PSO3 =

x .Pt (12,82 − 0,5.x)

xF Tin

T = TF + 241,7.(x – xF)

xin Tin

xout Tout W kg katalis

F gmol N2 / j SO2 = 7,8% O2 = 10,8% N2 = 81,4%

R gmol N2 / j

157

Gambar 6.8. Reaktor Adiabatis Plug Flow

Ingin dicari harga (R/F) yang memberikan nilai W minimum x

out ⎛ R⎞ 1 W = 137,3.⎜1 + ⎟. ∫ . dx F ⎠ x in r ⎝

⎛R⎞ x F + ⎜ ⎟.x out ⎝R⎠ x in = R 1+ F Diketahui data-data sebagai berikut, xF = 0; xout = 0,64; TF = 660 K Program penyelesaian % Reaktor Adiabatis untuk Reaksi Fase Gas Bolak-balik Eksotermis % % SO2 + ½ O2 ---> SO3 % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global xf xout Tf % Data-data xf=0; % Konversi umpan xout=0.64; % Konversi keluar reaktor Tf=660; % Temperatur umpan, K % Perhitungan [RperF,Wmin]=fminsearch(@F611,4)

Program terkait

158 function W=F611(RperF) % Program ini berisi fungsi untuk menghitung berat katalis % % Nama File : F611.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global xf xout Tf % Perhitungan konversi masuk reaktor xin=(xf+RperF*xout)/(1+RperF); % Distribusi nilai konversi dari konversi masuk sampai keluar x=linspace(xin,xout,100); % Perhitungan temperatur reaktor T=Tf+241.7*(x-xf); % Perhitungan tekanan parsial Pso2=(1-x)./(12.82-0.5*x); Po2=(1.3846-0.5*x)./(12.82-0.5*x); Pso3=x./(12.82-0.5*x); % Perhitungan kecepatan reaksi k1=exp(12.16-5473./T); K2=exp(-9.953+8619./T); K3=exp(-71.745+52596./T); Kp=exp(-10.68+11300./T); Ra=k1.*Po2.*Pso2.*(1-Pso3./(Pso2.*sqrt(Po2).*Kp))./... (22.414*(1+K2.*Pso2+K3.*Pso3).^2); Ra1=1./Ra; % Perhitungan berat katalis area=trapz(x,Ra1); W=137.3*(1+RperF)*area;

Keluaran program RperF = 2.2554 Wmin = 4.4758e+003

Sehingga pada R/F = 2,25 akan diperoleh berat katalis minimum yaitu 4475,8 kg.

Contoh 6.12. Reaktor Batch Adiabatis untuk Reaksi Cair Orde 2

Reaktor batch beroperasi secara adiabatis untuk reaksi fasa cair order 2 : A → B. Perubahan entalpi reaksi ∆HR, volume reaktor VR, dan kapasitas panas larutan Cp dianggap tetap. Waktu bongkar pasang tp. Umpan masuk pada suhu TF dan konsentrasi A CAo. Reaksi dihentikan pada konversi xR. Konversi A mula-mula xRo. Ingin dicari konversi A yang memberikan kecepatan produksi B tiap waktu maksimum. Persamaan-persamaan yang dipakai adalah :

159

tR =

1 C Ao

x out



x in

1 dx A k.(1 − x A ) 2

⎛ E ⎞ k = A. exp ⎜ ⎟ ⎝ RT ⎠

T = TF B = VR

C Ao ∆H R xA ρ .Cp

C Ao .x R (t R + t p )

Data-data yang diketahui adalah VR = 10.000 L; CAo = 1 gmol/L; ρ = 1,0 kcal/(kg.K); A = 107 L/(gmol.mnt); E = 14 kcal/gmol; ∆HR = - 6 kcal/gmol; R = 0,001987 kcal/(gmol.K); TF = 350 K; tp = 120 mnt; xRo = 0. Program penyelesaian % Reaktor Batch Adiabatis untuk Reaksi Cair Orde 2 % A --> B % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global Tf Cao dHr rho Cp A Ea R xro Vr tp % Data-data Tf=350; Cao=1; dHr=-6; rho=1; Cp=1; A=1e7; Ea=14; R=0.001987; xro=0; Vr=10000; tp=120;

% % % % % % % % % %

Temperatur umpan, K Konsentrasi umpan, gmol/L Beda entalphi reaksi, kkal/gmol Densitas larutan, kg/L Kapasitas panas larutan, kcal/kg.K Konstanta Arrhenius, L/gmol.menit Konstanta Arrhenius, kkal/gmol Konstanta gas ideal, kkal/gmol.K Konversi mula-mula Volume reaktor, L

% Perhitungan konversi konversi=fminsearch(@F612,0.5)

Program terkait function fxr=soal_15b(xr) % Program ini berisi fungsi untuk menghitung konversi % % Nama File : F612.m % Surakarta, Oktober 2005 % ---------------------------------------------------------------

160 global Tf Cao dHr rho Cp A Ea R xro Vr tp tr=quad(@F612F,xro,xr); fxr=(tr+tp)/(Vr*Cao*xr);

Program lain function fx=F612F(x) % Program ini berisi fungsi untuk menghitung integral % waktu reaksi % Nama File : F612F.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global Tf Cao dHr rho Cp A Ea R xro Vr tp T=Tf-Cao*dHr*x/(rho*Cp); k=A*exp(-Ea./(R*T)); fx=1./(Cao*k.*(1-x).^2);

Keluaran program konversi = 0.6267

Contoh 6.13. Reaktor Batch Adiabatis Reaksi Fase Cair Bolak-balik

Reaksi fasa cair bolak-balik eksotermis : A ↔ B dijalankan dalam reaktor batch adiabatis. Volum campuran dapat dianggap tetap. Suhu awal reaktor To. Panas reaksi λ kal/gmol, kapasitas panas campuran Cp cal/(g.K). Konsentrasi A mulamula CAo gmol/L dan konversi awal xo. Konversi akhir yang diinginkan xN. Ingin dicari suhu awal reaktor To yang memberikan waktu reaksi t minimum. Waktu reaksi dinyatakan dengan persamaan,

t=

xN

dx

∫ k[(1 − x) − K.x ]

xo

⎛ E ⎞ k = A. exp ⎜ ⎟ ⎝ RT ⎠ ⎛β⎞ K = α. exp ⎜ ⎟ ⎝T⎠

T = To +

λ.C Ao (x - x o ) ρ .Cp

Data-data yang diketahui adalah : A = 25; E = 10.000; R = 1,987; α = 1750; β = 5.000; ρ = 1100; Cp = 1,2; CAo = 1; xo = 0; xN = 0,3.

161 Program penyelesaian % Reaktor Batch Adiabatis Reaksi Fase Cair Bolak-balik % A <---> B % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global alpa rho Cp Cao xo xn beta A Ea R lamda % Data-data alpa=1750; rho=1100; Cp=1.2; Cao=1; xo=0; xn=0.3; beta=-5e3; A=25; Ea=1e4; R=1.987; lamda=-8e4; % Perhitungan temperatur awal optimum [To,waktu]=fminsearch(@F613,700)

Program terkait function ft=F613(To) % Program ini berisi fungsi untuk menghitung waktu reaksi % % Nama File : F613.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global alpa rho Cp Cao xo xn beta A Ea R lamda % Distribusi konversi di reaktor x=linspace(xo,xn,100); % Perhitungan temperatur reaktor T=To+lamda*Cao*(x-xo)/rho/Cp; % Perhitungan waktu reaksi k=A*exp(-Ea./(R*T)); K=alpa*exp(beta./T) ; y=1./(k.*((1-x)-K.*x)); ft=trapz(x,y);

Keluaran program To = 736.3329 waktu = 25.6426

Contoh 6.14. Dua Reaktor Adiabatis Tersusun Seri

162 Reaksi endotermis order 1 fasa gas : A → B + C, dijalankan dengan katalisator padat dalam 2 reaktor adiabatis yang disusun seri seperti terlihat pada gambar 6.9. Suhu umpan masuk ke reaktor-reaktor dijaga Tin dengan preheater dan interheater. Umpan reaktor 1 berupa A murni sebanyak FAo. Tekanan reaktor-reaktor dianggap tetap P. Aliran gas dianggap plug flow. Carilah konversi antara yang memberikan berat katalisator W minimum. Berat katalisator dinyatakan dengan persamaan, x out

Wi = FAo . ∫

x in

dx , ( i =1 , 2 ) rA

Kecepatan reaksi dinyatakan dengan persamaan

rA =

k.P ⎛ 1 − x ⎞ ⎜ ⎟ R .T ⎝ 1 + x ⎠

T = TR −

[(1 − x in ).Cp A + x in .(Cp B + Cp C )].(TR − Tin ) + ( x − x in ).∆H oR (1 − x ).Cp A + x.(Cp B + Cp C )

x0, Tin

x1, T1

x1, Tin

x2, T2

x0, T0 W2

W1

HE

HE

Gambar 6.9. Susunan Reaktor Seri

Program penyelesaian % Dua Reaktor Adiabatis Tersusun Seri % Reaksi endotermis order 1 fasa gas % A ---> B + C % dengan katalisator padat dalam 2 reaktor adiabatis % yang disusun seri % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** global xin xout Tr Tin Cpa Cpb Cpc dHr R P Fao % Data-data xin=0; xout=0.6;

% Konversi masuk rangkaian reaktor % Konversi keluar rangkaian reaktor

163 Tr=298; Tin=1200; Cpa=4; Cpb=5.5; Cpc=7; dHr=2000; P=2; R=0.082; Fao=10;

% % % % % % % % %

Temperatur referensi, K Temperatur masuk reaktor, K Kapasitas panas A, kal/gmol.K Kapasitas panas B, kal/gmol.K Kapasitas panas C, kal/gmol.K Beda entalphi reaktsi, kal/gmol Tekanan reaktor, atm Konstanta gas ideal, L.atm/gmol.K Kecepatan umpan masuk,gmol/detik

% Penentuan konversi keluar reaktor 1 optimal utk W minimal [x1,W]=fminbnd(@F614,xin,xout)

Program terkait function fw=F614(x1) % Program ini berisi fungsi untuk menghitung berat katalis % % Nama File : F614.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global xin xout Tr Tin Cpa Cpb Cpc dHr R P Fao % Distribusi nilai x dari xin sampai x1 x=linspace(xin,x1,40); % Perhitungan temperatur keluar reaktor 1 T=Tr-((Tr-Tin)*((1-xin)*Cpa+xin*(Cpb+Cpc))+(x-xin)*dHr)./... ((1-x)*Cpa+x*(Cpb+Cpc)); % Perhitungan berat katalis reaktor 1 k=2.5e16*exp(-33000./T); ya=Fao./(k*P.*(1-x)./(R*T.*(1+x))); wa=trapz(x,ya); % Distribusi nilai x dari x1 sampai xout x=linspace(x1,xout,40); % Perhitungan temperatur keluar reaktor 2 T=Tr-((Tr-Tin)*((1-x1)*Cpa+x1*(Cpb+Cpc))+(x-x1)*dHr)./... ((1-x)*Cpa+x*(Cpb+Cpc)); % Perhitungan berat katalis reaktor 2 k=2.5e16*exp(-33000./T); yb=Fao./(k*P.*(1-x)./(R*T.*(1+x))); wb=trapz(x,yb); % Berat katalis total fw=wa+wb;

Keluaran program x1 = 0.2506 W = 560.4560

Sehingga konversi dari reaktor 1 yang optimal adalah 0,2506 dengan berat katalis total minimal 560,456 kg.

164

Contoh 6.15. Reaktor Batch untuk Reaksi Gas Cair

Reaksi fasa cair eksotermis A → B, dijalankan dalam sebuah reaktor tangki berpengaduk yang bekerja secara batch dan adiabatis. Kadar A dalam reaktor kecil. Data operasi reaktor tersebut untuk konsentrasi A awal, CAo = 1,6 gmol/L adalah sebagai berikut, Waktu

Konversi A

(menit)

Suhu (K)

0

0

340

30

0,11

344

60

0,28

350

90

0,53

359

120

0,78

369

150

0,90

373

Jika persamaan kinetika dinyatakan sebagai berikut,

t=

1 C Ao

x

dx

∫ k.(1 − x)

2

0

⎛ E ⎞ k = A. exp ⎜ ⎟ ⎝ RT ⎠ T = To + CAo.β.x Tentukan nilai β dengan cara regresi linear kemudian tentukan nilai A dan B dengan mencari SSE minimum, SSE dinyatakan dengan persamaan berikut,

SSE = ∑ (t hit − t dat )

2

Penyelesaian % Reaktor Batch untuk Reaksi Gas Cair % Reaksi fasa cair eksotermis % A ---> B % reaktor tangki berpengaduk yang bekerja % secara batch dan adiabatis % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Tebakan konstanta

165 Ao=[2e18 1.8e4]; % Penentuan konstanta [A]=fminsearch(@F615,Ao); % Menampilkan hasil perhitungan Ar=A(1) B=A(2)

Program terkait function ft=F615(A) % Program ini berisi fungsi untuk menghitung SEE % % Nama File : F615.m % Surakarta, Oktober 2005 % --------------------------------------------------------------% Data-data Cao=1.6; To=340; tdat=[0 30 60 90 120 150]; Tdt=[340 344 350 359 369 373]; xdt=[0 0.11 0.28 0.53 0.78 0.9]; % Penentuan Beta p=polyfit(xdt,Tdt,1); beta=p(1)/Cao; % Perhitungan waktu for i=1:6 x=linspace(0,xdt(i),100); T=To+beta*Cao*x; k=A(1)*exp(-A(2)./T); y=1./(Cao*k.*(1-x).^2); wkt(i)=trapz(x,y); end % Perhitungan SEE ft=sum((tdat-wkt).^2);

Keluaran program Ar = 9.9683e+017 B = 1.6204e+004

PERSAMAAN

7

DIFFERENSIAL ORDINER

Persamaan differensial merupakan persamaan yang sangat sering dijumpai dalam penyusunan suatu model untuk mendiskripsikan suatu phenomena. Persamaan differensial merupakan gabungan suatu fungsi yang tidak diketahui disertai turunannya. Variabel yang didifferensialkan disebut variabel tak bebas dan variabel tempat variabel tak bebas didifferensialkan disebut variabel bebas (independen). Jika fungsi tersebut mencakup satu variabel bebas, maka persamaan tersebut disebut persamaan differensial ordiner. Tetapi jika fungsi tersebut mencakup lebih dari satu variabel bebas, maka persamaanya disebut persamaan differensial parsial, yang akan dibahas pada bab VIII. Persamaan differensial juga diklasifikasikan menurut ordenya. Jika suatu fungsi turunan tertingginya adalah turunan pertama, maka persamaan tersebut disebut persamaan differensial orde satu. Suatu persamaan orde dua akan mempunyai turunan kedua sebagai turunan tertinggi. Penyelesaian persamaan differensial orde ke-n membutuhkan n kondisi yang diketahui. Jika kondisi dispesifikasikan pada harga yang sama pada variabel bebas (misal pada t = 0) maka masalah ini dinamakan masalah harga awal (initial value problem). Selain masalah harga awal, kadang spesifikasi kondisi terjadi pada harga-harga yang berbeda dari variabel bebas. Jika demikian

170 maka persoalan tersebut disebut masalah harga batas (boundary value problem). Pada bagian awal bab ini akan dibahas masalah harga awal terlebih dahulu yang akan dilanjutkan penyelesaian untuk masalah harga batas pada bagian akhir bab. Ada dua kategori utama metode numerik dalam penyelesaian persamaan differensial ordiner, yaitu metode satu langkah dan metode multi langkah. Untuk metode satu langkah akan dibahas metode Euler dan metode Runge-Kutta. Sedangkan metode multi langkah akan dibahas metode predictor-korektor.

7.1. MASALAH HARGA AWAL 7.1.1. METODE EULER Metode Euler adalah salah satu metode satu langkah yang paling mendasar. Semua metode satu langkah menggunakan suatu slope φ untuk mengekstrapolasikan suatu harga lama variabel tak bebas terhadap suatu harga baru variabel tak bebas tersebut. Perbedaanya adalah pada cara memperkirakan besarnya slope tersebut.

slope

xi

xi+1 h

Gambar 7.1. Penjelasan Grafis Metode Satu Langkah Bentuk umum yn+1 = yn + φh

… (7.1)

Untuk metode Euler turunan pertama memberikan perkiraan langsung slope pada yn.

171 yn+1 = yn + f(tn,yn) h

… (7.2)

Berikut program Matlab untuk metode Euler function [tvals, yvals]=euler(func,tspan,startval,step) % Program ini bertujuan untuk penyelesaian % persamaan differensial ordiner % dengan Metode Euler % Cara menggunakan fungsi ini % tvals adalah variabel bebas (t) % yvals adalah variabel tak bebas hasil perhitungan (y) % func adalah nama fungsi yang ingin diselesaikan % tspan adalah variabel bebas % starval adalah nilai awal variabel bebas (yo) % step adalah besaran langkah untuk interval tspan % % Nama File : euler.m % Surakarta, Oktober 2005 % --------------------------------------------------------------steps=(tspan(2)-tspan(1))/step+1; y=startval;t=tspan(1); yvals=startval;tvals=tspan(1); for i=2:steps y1=y+step*feval(func,t,y);t1=t+step; tvals=[tvals,t1]; yvals=[yvals,y1]; t=t1;y=y1; end

Contoh 7.1. Selesaikan dengan Metode Euler dy/dt = y – 20

dengan y(0) = 100

Program Matlab % Demonstrasi penggunaan metode euler % Program ini bertujuan menyelesaikan % dy % ---- = y - 20 y(0) = 100 % dt % Tentukan y sebagai fungsi t % Penyelesaian dengan Metode Euler % Dicoba untuk berbagai besaran step yang berbeda % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** [t y] = euler('F71',[0 5],100,0.5); % step = 0.5 plot(t,y,'ko','LineWidth',2); axis([0 5 0 12000]) pause(3) hold on; [t y] = euler('F71',[0 5],100,0.2); % step = 0.2 plot(t,y,'kx','LineWidth',2); pause(3) [t y] = euler('F71',[0 5],100,0.1); % step = 0.1 plot(t,y,'k+','LineWidth',2); pause(3) xlabel('time','FontSize',14);ylabel('y','FontSize',14); plot(t,80*exp(t)+20,'k-') hold off;

172 Fungsi terkait function v=F71(t,y) % Program ini berisi fungsi untuk menghitung v % dy % v = ---- = y - 20 % dt % Nama File : F71.m % Surakarta, Oktober 2005 % --------------------------------------------------------------v= y - 20;

y

Keluaran program

Gambar 7.2. Keluaran Program Contoh 7.1

7.1.2. METODE RUNGE-KUTTA Metode satu langkah lain adalah metode Runge-Kutta. Bentuk umum

yn+1 = yn + hf(tn, yn, h)

… (7.3)

f(tn, yn, h) disebut fungsi inkremen yang dapat diinterpretasikan sebagai sebuah slope rata-rata sepanjang interval. Fungsi inkremen dapat ditulis sebagai

173 f(tn, yn, h) = a1k1 + a2k2 + … + ankn Ada beberapa jenis metode Runge-Kutta yang dapat digunakan tergantung dari pengembangan jumlah suku-suku yang berbeda pada fungsi inkremen. Metode Runge-Kutta yang paling popular adalah Metode Runge-Kutta klasikal yang menggunakan orde 4 ( n = 4 ). yn+1 = yn + (k1 + 2k2 + 2k3 + k4)/6 dengan

… (7.4)

k1 = h(tn, yn) k2 = h(tn + h/2, yn + k1/2) k3 = h(tn + h/2, yn + k2/2) k4 = h(tn + h, yn + k3)

Berikut program Matlab untuk metode Runge-Kutta function [tvals,yvals]=rkgen(func,tspan,startval,step) % Program ini bertujuan untuk penyelesaian % persamaan differensial ordiner % dengan Metode Runge-Kutta % Cara menggunakan fungsi ini % tvals adalah variabel bebas (t) % yvals adalah variabel tak bebas hasil perhitungan (y) % func adalah nama fungsi yang ingin diselesaikan % tspan adalah variabel bebas % starval adalah nilai awal variabel bebas (yo) % step adalah besaran langkah untuk interval tspan % % Nama File : rkgen.m % Surakarta, Oktober 2005 % --------------------------------------------------------------b=[ ];c=[ ];d=[ ];order = 4; b=[1/6 1/3 1/3 1/6]; d=[0 0.5 0.5 1]; c=[0 0 0 0; 0.5 0 0 0; 0 0.5 0 0; 0 0 1 0]; steps=(tspan(2)-tspan(1))/step+1; y=startval;t=tspan(1); yvals=startval;tvals=tspan(1); for j=2:steps k(1)=step*feval(func,t,y); for i=2:order k(i)=step*feval(func,t+step*d(i),y+c(i,1:i-1)*k(1:i-1)'); end; y1=y+b*k';t1=t+step; tvals=[tvals,t1]; yvals=[yvals,y1]; t=t1;y=y1; end;

7.1.3. METODE PREDIKTOR KOREKTOR

174 Metode Euler dan metode Runge-Kutta menggunakan harga variabel tak bebas yn pada sebuah titik berikutnya tn+1. Pendekatan alternatif lain adalah dengan mendasarkan pengertian bahwa sekali perhitungan dimulai informasi yang berharga dari titik-titik terdahulu berada dalam pengaturan. Pendekatan ini disebut metode multi langkah. Metode prediktor-korektor adalah metode multi langkah yang menggunakan beberapa persamaan untuk memperkirakan harga variabel tak bebas ke-n+1. Hasilnya kemudian koreksi dengan persamaan korektor. Sebagai contoh dapat digunakan metode Adam-Bashforth-Moulton. yn+1 = yn + h(55y’n – 59y’n-1 + 37y’n-2 – 9y’n-3)/24

… (7.5)



y n+1 = f(tn+1,yn+1) yn+1 = yn + h(9y’n+1 – 19y’n – 5y’n-1 + y’n-2)/24

… (7.6)



y n+1 = f(tn+1,yn+1) tn+1 = tn + h Terlihat dibutuhkan tiga titik awal untuk dapat menggunakan metode AdamBashforth-Moulton. Tiga titik awal ini dapat diperoleh dengan menggunakan metode Runge-Kutta. Program Matlab untuk metode Adam-Bashforth-Moulton function [tvals,yvals]=abm(func,tspan,startval,step) % Program ini bertujuan untuk penyelesaian % persamaan differensial ordiner % Metode Prediktor-Korektor (Adams, Bashforth, Moulton) % Cara menggunakan fungsi ini % tvals adalah variabel bebas (t) % yvals adalah variabel tak bebas hasil perhitungan (y) % func adalah nama fungsi yang ingin diselesaikan % tspan adalah variabel bebas % starval adalah nilai awal variabel bebas (yo) % step adalah besaran langkah untuk interval tspan % % Nama File : abm.m % Surakarta, Oktober 2005 % --------------------------------------------------------------b=[ ];c=[ ];d=[ ];order = 4; b=[1/6 1/3 1/3 1/6]; d=[0 0.5 0.5 1]; c=[0 0 0 0; 0.5 0 0 0; 0 0.5 0 0; 0 0 1 0]; steps=(tspan(2)-tspan(1))/step+1; y=startval;t=tspan(1);fval(1)=feval(func,t,y); ys(1)=startval;yvals=startval;tvals=tspan(1); % Tiga langkah awal dengan Metode Runge-Kutta for j=2:4 k(1)=step*feval(func,t,y); for I=2:order k(i)=step*feval(func,t+step*d(i),y+c(I,1:I-1)*k(1:I-1)’); end; y1=y+b*k’;ys(j)=y1;t1=t+step;

175 fval(j)=feval(func,t1,y1); tvals=[tvals,t1]; yvals=[yvals,y1]; t=t1;y=y1; end; % Langkah selanjutnya dg ABM orde 4 for I=5:steps y1=ys(4)+step*(55*fval(4)-59*fval(3)+37*fval(2)-9*fval(1))/24; t1=t+step;fval(5)=feval(func,t1,y1); yc=ys(4)+step*(9*fval(5)+19*fval(4)-5*fval(3)+fval(2))/24; fval(5)=feval(func,t1,yc); fval(1:4)=fval(2:5); ys(4)=yc; tvals=[tvals,t1];yvals=[yvals,yc]; t=t1; y=y1; end

Contoh 7.2. Selesaikan

dy/dt = 2yt

dengan y = 2 untuk t = 0

Penyelesaian secara analitis y = 2exp(t2) Program penyelesaian % Demonstrasi penyelesaian Persamaan Differensial Ordiner % Program ini bertujuan menyelesaikan % dy % ---- = 2*t*y y(0) = 2 % dt % Tentukan y sebagai fungsi t % Penyelesaian dengan % Metode Runge-Kutta dan Prediktor-Korektor % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % t0=0; tf=2; tinc=0.25; steps=floor((tf-t0)/tinc+1); [t,y1]=rkgen(‘F72’,[t0 tf],2,tinc); [t,y2]=abm(‘F72’,[t0 tf],2,tinc); disp(‘ t Runge-Kutta Prediktor-Korektor Eksak ‘) for I=1:steps fprintf(‘%8.2f%14.7f%18.7f%16.7f\n’,t(i),y1(i),y2(i),... 2*exp(t(i)*t(i))); end

Program terkait function v=F72(t,y) % Program ini berisi fungsi untuk menghitung v % dy % v = ---- = 2*y*t % dt % Nama File : F72.m % Surakarta, Oktober 2005 % -------------------------------------------------------------v=2*t*y;

Keluaran program

176 t 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00

Runge-Kutta 2.0000000 2.1289876 2.5680329 3.5099767 5.4357436 9.5369365 18.9519740 42.6424234 108.5814979

Prediktor-Korektor Eksak 2.0000000 2.0000000 2.1289876 2.1289889 2.5680329 2.5680508 3.5099767 3.5101093 5.4340314 5.4365637 9.5206761 9.5414664 18.8575896 18.9754717 42.1631012 42.7618855 106.2068597 109.1963001

7.1.4. FUNGSI ode Matlab menyediakan fungsi-fungsi

ode

untuk secara numerik

mendekati penyelesaiannya. Fungsi ode45 adalah fungsi ode pertama yang dapat dicoba pada masalah yang baru. Untuk melakukan hal tersebut perlu ditulis sebuah fungsi M-File yang menghasilkan derivatif untuk nilai variabel tak bebas.

Contoh 7.3. Penyelesaian Dua Persamaan Differensial Ordiner Perhatikan contoh program berikut % Demonstrasi penyelesaian Persamaan Differensial Ordiner % Program ini bertujuan menyelesaikan % dc/dt = 1 - c - xk*c ... neraca massa % dT/dt = 1 - T - alpha*xk*c ... neraca entalpi % Penyelesaian dengan fungsi ode45 % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** clear all global Alpha Beta % Data-data Alpha = -5.; Beta = 2.; % Nilai awal y0(1) = 1. ; y0(2) = 0.1; % Batasan waktu t0 = 0.; % waktu mulai tf = 1.; % waktu akhir % Penggunaan fungsi ode45 [t y] = ode45('F73', [t0:0.01:tf], y0); % Menyimpan hasil perhitungan % Data ini dapat dibuka dg word atau excel temp = [t y]; save ode.dat temp -ascii

177 % Plot hasil plot(t, y, 'k-','linewidth',2)

Program perhitungan function dydt = F73(time, y) % Program ini berisi fungsi untuk menghitung v % dc/dt = 1 - c - xk*c ... neraca massa % dT/dt = 1 - T - alpha*xk*c ... neraca entalpi % Nama File : F73.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global Alpha Beta % Variabel sesungguhnya c = y(1); T = y(2); % Konstanta kecepatan reaksi xk = Beta*T*T; % Persamaan Differensial Ordiner dydt(1) = 1. - c - xk*c ; dydt(2) = 1. - T - Alpha*xk*c ; dydt = dydt';

Keluaran program

Gambar 7.3. Keluaran Program Contoh 7.3

178

Contoh 7.4. Tangki Seri Larutan Garam Dua buah tangki dengan kapasitas 100 L diisi penuh dengan larutan garam dengan konsentrasi 20 g/L. Ke dalam tangki I dimasukkan air 5 L/menit, dan pada saat yang sama dari tangki I dialirkan 8 L/menit larutan ke tangki II. Dari tangki II dialirkan 8 L/menit tapi dipecah menjadi 2 aliran yaitu 3 L/menit dikembalikan (di-recycle) ke tangki I dan 5 L/menit diambil sebagai hasil. Tentukan konsentrasi garam pada kedua tangki setelah 30 menit.

Recycle

Tangki I

Tangki II Produk

Gambar 7.4. Tangki Seri Larutan Garam Program penyelesaian % Dua Tangki Seri Larutan Garam % Tentukan konsentrasi larutan garam pada Tangki I dan II % sebagai fungsi waktu % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % % Kondisi awal tangki C1o = 20; % Konsentrasi Tangki I awal, g/L C2o = 20; % Konsentrasi Tangki II awal, g/L

179 Co = [C1o C2o]; % Batasan waktu to = 0; % waktu awal, menit tn = 30; % waktu akhir, menit n = 31; % jumlah data datat = linspace(to,tn,n); % Perhitungan [t,C]= ode45('F74',datat,Co); % Plot hasil plot(t,C(:,1),'k-',t,C(:,2),'k+','LineWidth',2); legend('C1','C2') % Menampilkan hasil t = t(n) C1 = C(n,1) C2 = C(n,2)

Program terkait function dCdt = F74(t,C) % Program ini berisi fungsi untuk menghitung % konsentrasi garam tangki I dan II % sebagai fungsi waktu % Neraca massa tangki I % dC1/dt = (q0*C0 + qR*C2 - q1*C1)/V1 % Neraca massa tangki II % dC2/dt = (q1*C1 - q2*C2)/V2 % Nama File : F74.m % Surakarta, Oktober 2005 % -------------------------------------------------------------% Data-data V1 = 100; V2 = 100; q0 = 5; q1 = 8; q2 = 8; qR = 3; qproduk = 5; C0 = 0;

% % % % % % % %

Volume tangki I, L Volume tangki II, L Laju alir umpan, L/menit Laju alir keluar tangki I, L/menit Laju alir keluar tangki II, L/menit Laju alir recycle, L/menit Laju alir produk, L/menit konsentrasi umpan, L/menit

% Persamaan differensial dCdt1 = (q0*C0 + qR*C(2) - q1*C(1))/V1; dCdt2 = (q1*C(1) - q2*C(2))/V2; dCdt = [dCdt1 dCdt2];

Keluaran program

180

Gambar 7.5. Keluaran Program Contoh 7.4.

Contoh 7.5. Penukar Panas dalam Tangki Seri Tiga tangki tersusun seri digunakan sebagai preheater larutan minyak multikomponen sebelum larutan tersebut diumpankan ke kolom distilasi untuk dipisahkan. Setiap tangki mula-mula diisi dengan 1000 kg minyak 20 OC. Steam jenuh pada temperatur 250 OC dikondensasikan di dalam koil di setiap tangki. Minyak umpan masuk tangki pertama pada kecepatan 100 kg/menit dn overflow ke tangki kedua dan ketiga dengan kecepatan yang sama. Temperatur umpan minyak masuk tangki pada 20 OC. Tangki-tangki dilengkapi dengan pengaduk sehingga larutan tercampuran sempurna dan mempunyai suhu yang seragam. Temperatur keluar tangki sama dengan temperatur di dalam tangki. Kapasitas panas Cp minyak adalah 2,0 kJ/kg. Untuk setiap tangki, panas yang ditransfer ke minyak dari koil steam dinyatakan dengan Q = UA(Tsteam – T)

181 O

dengan UA = 10 kJ/menit C yaitu koefisien transfer panas dan luas oil setiap tangki. T adalah temperatur minyak dalam tangki (OC) dan Q adalah kecepatan panas ditransfer dalam kJ/menit.

To = 20 C W = 100 kg/menit

T1

T1

steam

T2

T2

T3

steam

T3

steam

Gambar 7.6. Sistem Penukar Panas Tangki Seri Tentukan suhu di dalam setiap tangki sebagai fungsi waktu ! Penyelesaian Neraca panas pada tangki 1 MCp

dT1 = WCpTo + UA(Tsteam – T1) – WCpT1 dt

dT1 = [WCp(To – T1) + UA(Tsteam – T1)]/ (MCp) dt analog untuk tangki 2 dan 3

dT2 = [WCp(T1 – T2) + UA(Tsteam – T2)]/ (MCp) dt dT3 = [WCp(T2 – T3) + UA(Tsteam – T3)]/ (MCp) dt Program Matlab % Penukar Panas dalam Tangki Seri % Larutan minyak multikomponen dipanaskan dalam % tiga tangki tersusun seri. % Sebagai pemanas digunakan steam jenuh yang % terkondensasi dalam koil % Tentukan suhu di dalam tangki sebagai fungsi waktu % Penyelesaian dengan fungsi ode45 % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** %

182 clear all clc global W UA M Cp Tsteam Jml_Tangki To % Data-data Jml_Tangki = 3; W = 100; UA = 10; M = 1000; Cp = 2.0; Tsteam = 250; To = 20;

% % % % % % %

Jumlah tangki Laju alir minyak, kg/menit Koef. transfer panas & luas koil, kJ/menit.C massa minyak dalam tangki, kg kapasitas panas minyak, kj/kg temperatur steam jenuh, C temperatur minyak masuk, C

% Temperatur awal tangki T_awal = ones(1,Jml_Tangki)*To; % Setting waktu t_mulai = 0; % menit t_akhir = 90; % menit tspan = [t_mulai t_akhir]; % Perhitungan dg fungsi ode45 [t,T]=ode45('F75',tspan,T_awal); % Plot hasil perhitungan plot(t,T,'k-','LineWidth',2) title('Temperatur dalam Tangki Berpengaduk','FontSize',14) xlabel('waktu(menit)','FontSize',14) ylabel('T(C)','FontSize',14) output=[t T]; save temp.dat output –ascii

Program terkait function dTdt = F75(t,T) % Program ini berisi fungsi untuk menghitung % temperatur di dalam tangki sebagai fungsi waktu % Neraca panas di setiap tangki % dTi W Cp (To - Ti) + UA (Tsteam - Ti) % ----- = ----------------------------------% dt M Cp % Nama File : F75.m % Surakarta, Oktober 2005 % --------------------------------------------------------------global W UA M Cp Tsteam Jml_Tangki To for j =1:Jml_Tangki if j==1 dTdt(j)=(W*Cp*(To-T(j))+UA*(Tsteam-T(j)))/(M*Cp); % Tangki 1 else dTdt(j)=(W*Cp*(T(j-1)-T(j))+UA*(Tsteam-T(j)))/(M*Cp); % Tangki 2 & 3 end end dTdt=dTdt';

Keluaran program

183

Gambar 7.7. Keluaran Program Contoh 7.5

Contoh 7.6. Persamaaan Differensial Ordiner Simultan Dalam sistem yang tertutup, tiga komponen bereaksi dengan langkah sebagai berikut k

1 B A ⎯⎯→

k

2 A + C B + C ⎯⎯→

k

3 C + B 2B ⎯⎯→

mengikuti persamaan differensial berikut :

dC A = -k1CA + k2CBCC dt

dC B = k1CA – k2CBCC – k3CB2 dt

dC C = k3CB2 dt

184 CA(0) =1, CB(0) = CC(0) = 0. Tentukan CA(10), CB(10), dan CC(10), jika k1 = 0,08, k2 =2 x 104, k3 = 6.107 ! Program Matlab % Reaksi-reaksi Simultan % k1 k2 k3 % A ----> B B + C ----> A + C 2B ----> C + B % ra = -k1*Ca % rb = k1*Ca - k2*Cb*Cc - k3*Cb^2 % rc = k3*Cb^2 % Tentukan Ca, Cb, dan Cc sebagai fungsi waktu % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc global k1 k2 k3 % Data konstanta kecepatan reaksi k1 = 8e-2; k2 = 2e-4; k3 = 6e-2; % Data kondisi awal Cao = 1.0; Cbo = 0; Cco = 0; Co = [Cao Cbo Cco]; % Batasan waktu to = 0; tn = 10; tspan = [to tn]; % Perhitungan [t C] = ode45('F76',tspan,Co); % Plot Hasil plot(t,C(:,1),'k-',t,C(:,2),'k+',t,C(:,3),'ko','LineWidth',2) title('Tiga Reaksi Simultan','FontSize',14) xlabel('waktu','FontSize',14) ylabel('konsentrasi','FontSize',14) legend('Ca','Cb','Cc',14)

Program terkait function dC_dt=F76(t,C) % Program ini berisi fungsi untuk menghitung Ca, Cb, Cc % ra = -k1*Ca % rb = k1*Ca - k2*Cb*Cc - k3*Cb^2 % rc = k3*Cb^2 % Nama File : F76.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global k1 k2 k3 % Variabel awal Ca = C(1); Cb = C(2); Cc = C(3);

185 dC_dt(1) = -k1*Ca + k2*Cb*Cc; dC_dt(2) = k1*Ca - k2*Cb*Cc - k3*Cb^2; dC_dt(3) = k3*Cb^2; dC_dt=dC_dt';

konsentrasi

Keluaran program

Gambar 7.8. Keluaran Program Contoh 7.6

Contoh 7.7. Reaksi Pembentukan Etilen Oksida dari Etilen Reaksi oksidasi etilen menjadi etilen oksida H2C CH2

+

O 1/2 O 2

H2C

CH2

Etilen oksida (A) dan O2 (B) masuk reaktor pada temperatur 260 OC. Etilen masuk dengan kecepatan 0,3 lbmol/detik dan tekanan 10 atm. Reaksi dijalankan pada sepuluh unit pipa yang masing-masing unit terdiri 100 pipa diameter 1 ½ in schedule 40.

186 Akibatnya laju alir 3.10-4 lbmol/detik. Sifat fisis fluida bereaksi dipertimbangkan sebagai udara pada tekanan dan temperatur yang sama. Densitas katalis yang berdiameter ¼ in 120 lb/ft3 dan bed void fraction 0,45. Kecepatan reaksi –rA’ = kPA1/3PB2/3 dengan k = 0,0141 lbmol/(atm.lbkatalis.jam) pada 260 OC. Tentukan konversi dan penurunan tekanan sebagai fungsi berat katalis ! Diketahui βo = 0,0775 atm/ft. Penyelesaian FAo = 3.10-4 lbmol/detik = 1,08 lbmol/jam FBo = 1,5.10-4 lbmol/detik = 0,54 lbmol/jam FI = 1,5.10-4 lbmol/detik x 0,79/0,21 = 5,64.10-4 lbmol/detik = 2,03 lbmol/jam FTo = 3,65 lbmol/jam PAo = yAoPo = (FAo / FTo)Po PAo = (1,08/2,03).10 atm = 3 atm -rA’ = kPA1/3PB2/3 -rA’ = k(CART)1/3(CBRT)2/3 = kRT CA1/3CB2/3 v = vo (1+εX)(Po/P) CA = FA = C Ao (1 − x ) P v 1 + εx Po CB = FB = C Ao (1 / 2 − x / 2) P v 1 + εx Po -rA’ = kC Ao RTo P (1- x)1/3(1/2 - x)2/3 1 + εx Po -rA’ = k’ (1 − x ) y (1 + εx )

dengan k’ = kPAo(1/2)2/3 dan y = P/Po

k’ = 0,0141lbmol/(atm.lbkat.jam).3atm.0,63 k’ = 0,0266 lbmol/(lbkat.jam) ε = yAo δ = (FAo / FTo) δ = (1,08/2,03)(1 – ½ – 1 ) = -0,15 FAo

dx = -rA’ dW

187 dx dW

= -rA’ / FAo

Persamaan untuk penurunan tekanan

α Po dP =− (1 + εx ) dW 2 P / Po α dy = − (1 + εx ) dW 2y

dengan α =

2β o Ac(1 − φ)ρ kat Po

α = 0,0166 / lbkat βo = G (1 − φ) ρc g c D P φ3

⎡150(1 − φ)µ ⎤ + 1,75G ⎥ ⎢ Dp ⎣⎢ ⎦⎥

untuk pipa1 ½ in schedule 40 , Ac = 0,01414 ft2 G = m / Ac G = 104,4 =7383,3 lbm/(jam.ft2) 0,01414

Untuk udara 260 OC dan 10 atm, µ = 0,0673 lbm/(ft.jam) ρo = 0,413 lbm/ft3 Dp = ¼ in = 0,0208 ft gc = 4,17.108 lbm.ft/(lbf.jam2) βo = 164,1 lbf/ft3 = 0,0775 atm/ft = 25,8 kPa/m

% Reaksi Pembentukan Etilen Oksida dari Etilen % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % % Kondisi awal Xo = 0; % konversi mula-mula yo = 1; % penurunan tekanan mula-mula xo = [Xo yo]; Wspan = [0 60]; % batasan berat katalis global eps kprime % Perhitungan [W,x]=ode45('F77',Wspan,xo); f=(1+eps.*x(:,1))./x(:,2); % Plot hasil

188 figure(1) plot(W,x,'k+',W,f,'k-','linewidth',2) title('Reaksi Pembentukan Etilen Oksida','fontsize',14) xlabel('W (lb)','fontsize',14) legend('X','y','f','fontsize',14) rate=kprime*((1-x(:,1))/(1+eps*x(:,1)))*x(:,2); figure(2) plot(W,rate,'k-','linewidth',2) title('Kecepatan Reaksi Pembentukan Etilen Oksida','fontsize',14) xlabel('W (lb)','fontsize',14)

Program lain function dx_dW=F77(W,x) % Nama File : F77.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global eps kprime X = x(1); y = x(2); kprime=0.0266; eps=-0.15; alpha=0.0166; rate=kprime*((1-X)/(1+eps*X))*y; fa0=1; dx_dW(1,:)=rate/fa0; dx_dW(2,:)=-alpha*(1+eps*X)/(2*y);

Keluaran program

Gambar 7.9.a. Keluaran Program Contoh 7.7

189

Gambar 7.9.b. Keluaran Program Contoh 7.7 Contoh 7.8. Reaksi Phase Gas Reversibel dan Eksotermis dalam Reaktor Katalitik

Reaksi elementari phase gas 2A ↔ C dijalankan pada reaktor packed bed. Reaktor dilengkapi dengan penukar panas dan terjadi penurunan tekanan (pressure drop) sepanjang reaktor. q

Ta

Fao

X

To

T

q

Ta

Gambar 7.10. Reaktor Katalitik

Berbagai nilai parameter untuk reaktor ini ditunjukkan pada tabel di bawah ini :

190 CPa = 40,0 J/gmolK

R = 8,314 j/gmolK

CPc = 80,0 J/gmolK

Fao = 5,0 gmol/menit

∆ Hr = -40.000 J/gmol

Ua = 0,8 J/kgmenitK

Ea = 41.800 J/gmolK

Ta = 500 K

6

k = 0,5 dm /kgmenitmol @ 450 K

α = 0,015 kg-1

KC = 25.000 dm3/gmol @ 450 K

Po = 10 atm

3

Cao = 0,271 gmol/dm

yao = 1,0

To = 450 K Plot konversi (X), penurunan tekanan (y) dan temperatur (T.10-3) sepanjang reaktor untuk W = 0 sampai W = 20 kg. Plot juga profil konsentrasi untuk reaktan A dan produk C untuk harga W yang sama ! Penyelesaian Neraca massa untuk reaktor katalitik Fao

dX = -r’ a dW

⎡ ⎤ -r’a = k ⎢Ca 2 − Cc ⎥ KC ⎦ ⎣ dengan konstanta kecepatan reaksi reaktan A mengikuti persamaan Arrhenius k = k(pada 450 K) exp E a ⎡ 1 − 1 ⎤ R ⎢⎣ 450 T ⎥⎦ dan konstanta kesetimbangan bervariasi terhadap temperatur yang ditentukan dari persamaan van’t Hoff dengan ∆Cp = 0 KC = KC(pada 450 K) exp ∆Hr ⎡ 1 − 1 ⎤ R ⎢⎣ 450 T ⎥⎦ Stoikiometri untuk 2A ↔ C untuk phase gas (perubahan volumetrik) Ca = Cao ⎛⎜ 1 − X ⎞⎟ P To = Cao ⎛⎜ 1 − X ⎞⎟ y To ⎝ 1 + εX ⎠ Po T ⎝ 1 + 0,5X ⎠ T Cc = ⎛⎜ 0,5CaoX ⎞⎟ y To ⎝ 1 + 0,5X ⎠ T Penurunan tekanan dapat dinyatakan sebagai

191 d(P / Po) − α(1 + εX) Po T = dW 2 P To

dy − α(1 + εX) T = dW 2y To Secara umum neraca energi dapat ditulis sebagai berikut dT Ua (Ta − T) + r ' a ∆Hr = dW FaoCpa % Reaksi Phase Gas Reversibel dan Eksotermis dlm Reaktor Katalitik % Reaksi elementari phase gas 2A --> C % dijalankan pada reaktor packed bed % Reaktor dilengkapi dengan penukar panas % terjadi penurunan tekanan sepanjang reaktor % Tentukan konveri, penurunan tekanan, dan temperatur % sebagai fungsi berat katalis % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % global Ta delH CPA FAO % Data-data Ta = 500; delH = -40000; CPA = 40; FAO = 5;

% % % %

% Kondisi awal var0(1) = 0; var0(2) = 450; var0(3) = 1.0; Wspan = [0 20];

% konversi % temperatur % penurunan tekanan

temperatur, K panas reaksi, J/gmol kapasitas panas A, J/(gmol.K) laju alir A, gmol/menit

% Perhitungan [W var]=ode45('F78',Wspan,var0); % Plot hasil tt = var(:,2)/1000; x=var(:,1); T=var(:,2); y=var(:,3); figure(1) plot(W,x,'k-',W,y,'k+',W,tt,'ko','LineWidth',2) title('Model Reaktor','FontSize',14) xlabel('W','FontSize',14) legend('konversi A', 'Tekanan ternormalisasi', 'T/1000') temp=0.271*(450./T).*y./(1-0.5*x); CA=temp.*(1-x); CC=temp.*0.5.*x; figure(2) plot(W,CA,'k-',W,CC,'k+','LineWidth',2) title('Konsentrasi','FontSize',14) xlabel('W','FontSize',14) legend('Konsentrasi A','Konsentrasi C')

192 Program terkait function der=F78(W,var) % Program ini berisi fungsi untuk menghitung x, T, y % dx/dW = -ra'/Fao % dT Ua*(Ta-T) + ra'*delH % ---- = ---------------------% dW Fao*Cpa % dy - alpha*(1+eps*x) T % ---- = ------------------ * ---% dW 2*y To % Nama File : F78.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global Ta delH CPA FAO % variabel awal x = var(1); T = var(2); y = var(3); % perhitungan k = 0.5*exp(5032*(1/450-1/T)); temp = 0.271*(450/T)*y/(1-0.5*x); CA = temp*(1-x); CC = temp*0.5*x; Kc = 25000*exp(delH/8.314*(1/450-1/T)); rA = -k*(CA*CA-CC/Kc); % persamaan differensial der(1) = -rA/FAO; der(2) = (0.8*(Ta-T)+rA*delH)/(CPA*FAO); der(3) = -0.015*(1-0.5*x)*(T/450)/(2*y); der=der';

Keluaran program

193

Gambar 7.11.a. Keluaran Program Contoh 7.8

194 Gambar 7.11.b. Keluaran Program Contoh 7.8

Contoh 7.9. Tinggi Cairan dalam Tangki Sperikal

Tangki berisi air berbentuk bola diisi dari suatu lubang pada bagian puncak dan dikeluarkan melalui lubang yang lain pada bagian dasar kolom. Jika jari-jari tangki adalah r, maka volume air dalam tangki dapat dinyatakan sebagai fungsi h (tinggi cairan) sebagai berikut V(h) = πrh2 – ⅓ πh3 Laju alir volum melalui lubang (q) merupakan fungsi tinggi cairan (h) dan dinyatakan dengan : q = CdA 2gh dengan

A

= luas lubang

Cd

= Konstanta, untuk air 0,6

g

= gravitasi

h

Gambar 7.12. Tangki Sperikal

Tentukan waktu tangki menjadi kosong jika tinggi cairan mula-mula 9 ft. Tangki mempunyai jari-jari r = 5 ft dan lubang mempunyai diameter 1 in di dasar tangki. Gunakan g = 32,2 ft/second2.

dV = -q dt

195 2πrh

dh dh - πh2 = - CdA dt dt

2gh

dh = C d A 2gh − dt π( 2rh − h 2 ) % Tinggi Cairan dalam Tangki Sperikal % Menentukan tinggi cairan dalam tangki sebagai fungsi waktu % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all % kondisi awal ho = 9; % ft % Batasan waktu to = 0; tn = 2475; tspan = [to tn];

% menit % menit

% Perhitungan [t,h]=ode45('F79',tspan,ho); % Plot hasil plot(t,h,'k-','LineWidth',2) xlabel('Waktu (detik)','FontSize',14) ylabel('Tinggi (ft)','FontSize',14)

Program terkait function hdot = F79(t,h) % dh Cd*A*(2*g*h)^0.5 % ---- = - ------------------% dt phi*(2*r*h - h^2) % Nama File : F63.m % Surakarta, Oktober 2005 % -------------------------------------------------------------%Data-data Cd = 0.6; r = 5; dhole = 1/12; A = pi*(dhole)^2; g = 32.2;

% % % %

jari-jari tangki, ft diameter lubang, konversi ke ft luas lubang pengeluaran ft/det^2

hdot = -Cd*A*(2*g*h)^0.5/(pi*(2*r*h-h^2));

Tinggi(ft)

Keluaran program

196

Gambar 7.13. Keluaran Program Contoh 7.9. Contoh 7.10. Reaksi Dehidrogenasi dalam Reaktor Sperikal

Sebanyak 20.000 barrel minyak diproses per hari untuk meningkatkan angka oktannya dalam reaktor reforming. Laju alir umpan adalah 44 kg per detik atau 440 mol per detik. Reaksi dehidrogenasi Parafin → olefin + H2 Reaksi orde satu terhadap parafin. Asumsi parafin masih murni pada tekanan 2000 kPa dan konsentrasi 0,32 mol/dm3. Tentukan konsentrasi dan penurunan tekanan ketika reaksi ini dijalankan dalam reaktor bola berdiameter 27 dm ! -rA’

= k’CA

-rA

= ρB (-rA’) = ρC (1 - φ) k’CA

Berat katalis

= 173,870 kg

ρB

= 0,032 kg/dm3

Dp

= 0,02 dm

φ

= 0,4

197 3

k’

= 0,02 dm /(kgkatdetik)

µ

= 1,5.10-6 kg/dmdetik

L = L’

= 27 dm

ρC

= 2,6 kg/dm3 dFA = rA Ac dz dx − rA Ac = dz FAo

rA = - kCA = - k’ CA ρC (1 - φ) CA = CAo ⎛⎜ 1 − x ⎞⎟ y ⎝ 1 + εx ⎠

ε = yAoδ = 1 x (1+1-1) = 1 y = P/Po Persamaan untuk penurunan tekanan β dy = − o (1 + εx ) dz Po y

βo = G (1 − φ) ⎡⎢150(1 − φ)µ + 1,75G ⎤⎥ ρ c g c D P φ 3 ⎢⎣

Dp

⎥⎦

G = m / Ac Reaktor sperikal Ac = π [R2 – (z – L)2] βo =

⎤ G (1 − 0,4) ⎡150(1 − 0,4)1,5.10 −6 + 1,75G ⎥ ⎢ 0,02 0,032.0,02.0,4 3 ⎣ ⎦

βo = [98,87G + 25630G2]0,01 w = ρC (1 - φ) π [R2z – 1/3(z – L)3 - 1/3 L3] % Reaksi Dehidrogenasi dalam Reaktor Sperikal % Reaksi dehidrogenasi % Parafin --> olefin + H2 % Reaksi orde satu terhadap parafin. % Tentukan konsentrasi dan penurunan tekanan % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % global eps kprime

198 % Data awal Xo = 0; yo = 1; xo = [Xo yo]; % batasan jarak zspan = [0 54]; %Perhitungan [z,x]=ode45('F710',zspan,xo); % Plot hasil plot(z,x,'k-','linewidth',2) title('Reaksi Dehidrogenasi pada Reaktor Bola') xlabel('z (dm)','FontSize',12) legend('X','y',12) axis([0 54 0 1.2])

Program terkait function dx_dz=F710(z,x) % Nama File : F710.m % Surakarta, Oktober 2005 % -------------------------------------------------------------% Variabel awal X = x(1); y = x(2); % Data-data Fa0 = 440; P0 = 2000; Ca0 = 0.32; R = 30; phi = 0.4; kprime = 0.02; L = 27; rhocat = 2.6; m = 44; % Perhitungan Ca = Ca0*(1-X)*y/(1+X); Ac = pi*(R^2-(z-L)^2); V=pi*(z*R^2-1/3*(z-L)^3-1/3*L^3); G=m/Ac; ra=-kprime*Ca*rhocat*(1-phi); beta=(98.87*G+25630*G^2)*0.01; W=rhocat*(1-phi)*V; % Differnsial dx_dz(1,:)=-ra*Ac/Fa0; dx_dz(2,:)=-beta/P0/y*(1+X);

Keluaran program

199

Gambar 7.14. Keluaran Program Contoh 7.10 Contoh 7.11. Reaksi Dehidrogenasi Phase Uap Benzena dalam Reaktor Alir Tubular

Reaksi dehidrogenasi phase uap benzena dalam reaktor alir tubular 2C6H6 → C12H10 + H2 C6H6 + C12H10 → C18H14 + H2 Kecepatan reaksi r1 =

−15200 ⎛ dx1 T ⎜ p2 − pDpH = 14,96.10 6 e ⎜ B d(V F) K1 ⎝

⎞ lbmol benzena bereaksi/(jam ft3) ⎟⎟ ⎠

r2 =

−15200 ⎛ dx 2 T ⎜ p p − pT pH = 8,67.10 6 e ⎜ B D d(V F) K2 ⎝

⎞ lbmol triphenil terbentuk//(jam ft3) ⎟⎟ ⎠

pB = tekanan parsial benzena, atm

T = temperatur, 1033 K

pD = tekanan parsial diphenil, atm

V = volume reaktor, ft3

pT = tekanan parsial triphenil, atm

F = laju alir bahan, lbmol/jam

pH = tekanan parsial hidrogen, atm

P = tekanan total, 1 atm

x1 = konversi pada reaksi 1

K1 = 0,312

200 x2 = konversi pada reaksi 2

K2 = 0,480

Jika umpan terdiri dari benzena murni 1 lbmol/ft3 buktikan bahwa

⎡ dx1 = 6,089 ⎢(1 − x1 − x 2 )2 − d (V F) ⎣⎢

(12 x1 − x 2 )(12 x1 + x 2 )⎤

(

⎡ x 2 12 x1 + x 2 dx 2 = 3,529 ⎢(1 − x1 − x 2 ) 12 x1 − x 2 − 0,480 d(V F) ⎢⎣

(

⎥ ⎦⎥

0,312

)

)⎤⎥ ⎥⎦

Tentukan x1 dan x2 pada (V/F) = 0,5 ft3jam/lbmol ! Penyelesaian % Reaksi Dehidrogenasi Phase Uap Benzena dlm Reaktor Alir Tubular % Reaksi % 2C6H6 ---> C12H10 + H2 % C6H6 + C12H10 ---> C18H14 + H2 % Tentukan konversi reaksi 1 dan 2 sbg fungsi (V/F) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % global T K1 K2 % Data-data T = 1033; K1 = 0.312; K2 = 0.480;

% Temperatur, K % konstanta kesetimbangan reaksi 1 % konstanta kesetimbangan reaksi 2

% Kondisi awal x1o = 0; x2o = 0; xo = [x1o x2o]; % Batasan V/F V_Fo = 0; % V/F awal, ft^3.jam/lbmol V_Ff = 0.5; % V/F awal, ft^3.jam/lbmol V_Fspan = [V_Fo V_Ff]; % Perhitungan [V_F,x]=ode45('F711',V_Fspan,xo); % Plot hasil plot(V_F,x(:,1),'k-',V_F,x(:,2),'k+','Linewidth',2) title('Dehidrogenasi Benzena','FontSize',12) xlabel('V/F dlm ft^3.jam/lbmol','FontSize',12) ylabel('konversi Benzena','FontSize',12) legend('reaksi 1', 'reaksi 2') disp(['Pada V/F ',num2str(V_F(end))]) konversi = x(end,:)

Program terkait function dx_dVF = F711(V_F,x) % Program ini berisi fungsi untuk menghitung

201 % % % % % % % % % %

konversi reaksi 1 dan reaksi 2 dx1 [ (0,5x1-x2)(0,5x1+x2) ] ------- = 0,6089 [ (1-x1-x2)^2 - -------------------- ] d(V/F) [ 0,312 ] dx2 [ x2(0,5x1+x2) ] ------- = 3,529 [ (1-x1-x2)(0,5x1-x2) - ------------ ] d(V/F) [ 0,480 ] Nama File : F11.m Surakarta, Oktober 2005 --------------------------------------------------------------

global T K1 K2 dx_dVF(1) = 14.96*10^6*exp(-15200/T)*((1-x(1)-x(2))^2-... (0.5*x(1)-x(2))*(0.5*x(1)+x(2))/K1); dx_dVF(2) = 8.67*10^6*exp(-15200/T)*((1-x(1)-x(2))*... (0.5*x(1)-x(2))-x(2)*(0.5*x(1)+x(2))/K2); dx_dVF=dx_dVF';

konversi Benzena

Keluaran program

Gambar 7.15. Keluaran Program Contoh 7.11

Contoh 7.12. Distilasi Secera Batch Komponen Biner

Proses distilasi secara biner melibatkan komponen 1 dan 2. Mol liquid tersisa (L) dinyatakan sebagai fungsi fraksi mol komponen ke-2, x2 sebagai berikut :

dL L = dx 2 x 2 (k 2 − 1)

202 dengan k2 adalah rasio kesetimbangan uap cair komponen ke-2. Jika sistem dianggap berada pada keadaan ideal, rasio kesetimbangan uap cair dapat dihitung sebagi ki = Pi /P dengan Pi adalah tekanan uap komponen i dan P adalah tekanan total. Secara umum model tekanan uap menggunakan persamaan Antoine dengan T adalah temperatur (OC). Pi = 10^ ⎛⎜ A − B ⎞⎟ T +C⎠ ⎝ Temperatur dalam batch distilasi mengikuti kurva bubble point. Temperatur bubble point didefinisikan sebagai

k1x1 + k2x2 = 1 Untuk sistem biner dengan komponen benzena (komponen ke-1) dan toluena (komponen ke-2) diasumsikan berada pada kesetimbangan. Konstanta Antoine untuk benzena A1 = 6,90565, B1 = 1211,033, dan C1 = 220,79. Sedang untuk toluena A2 = 6,95464, B2 = 1344,8, dan C2 = 219,482. P adalah tekanan (mmHg) dan T adalah temperatur (OC). Hitunglah jumlah liquid tersisa

dalam distilasi saat konsentrasi toluena

mencapai 80 %, jika diketahui 100 mol liquid umpan terdiri 60% benzena dan 40% toluena (fraksi mol) pada tekanan 1,2 atm. Penyelesaian % Distilasi Secera Batch Komponen Biner % Proses distilasi secara biner melibatkan komponen 1 dan 2 % Hitunglah jumlah liquid tersisa dalam distilasi % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc global A B C P % A B C

Data-data Persamaan Antoine = [6.90565 6.95464]; % Komponen 1 => Benzena = [1211.033 1344.8]; % Komponen 2 => Toluena = [220.79 219.482];

% Data-data proses P = 1.2*760; Lo = 100; x2_awal = 0.4; x2_akhir = 0.8;

% % % %

mmHg mol mol toluena awal mol toluena akhir

203 % Penyelesaian PD Ordiner x2span = [x2_awal x2_akhir]; [x2 L] = ode45('F712',x2span,Lo); % Plot hasil plot(x2,L,'k-','linewidth',2) title('Distillasi Batch','fontsize',14) xlabel('Fraksi mol toluena','fontsize',14) ylabel('Mol cairan','fontsize',14) % Save hasil output = [x2 L]; save batch.dat output -ascii

Program terkait 1 function dLdx2 = F712(x2,L) % Program ini berisi fungsi untuk menghitung PD ordiner % dL L % ----- = --------------% dx2 x2 ( k2 - 1 ) % Nama File : F712.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global A B C P x2 T_tebak = (80.1+110.6)/2; T = fzero('F712F', T_tebak);

% % % T %

T tebakan dari rata-rata titik didih harus dicari terlebih dahulu dg fzero

P_i = 10.^(A-B./(T+C)); k = P_i/P; dLdx2 = L/x2/(k(2)-1);

Program terkait 2 function f = F712F(T) % Program ini berisi fungsi untuk menentukan T % ( B ) % Pi = 10^(A - -------) % ( T + C ) % Pi % ki = ---% P % k1*x1 + k2*x2 = 1 % Nama File : F712F.m % Surakarta, Oktober 2005 % -------------------------------------------------------------global A B C P x2 x1 = 1-x2; P_i = 10.^(A-B./(T+C)); k = P_i/P; f = 1-k(1)*x1-k(2)*x2;

Keluaran program

Mol cairan

204

Gambar 7.16. Keluaran Program Contoh 7.12

7.2. MASALAH NILAI BATAS Dalam persamaan differensial orde lebih dari satu, dibutuhkan nilainilai yang sudah diketahui untuk dapat mengevaluasi konstanta-konstanta dalam fungsi partikular. Beberapa nilai dispesifikasikan pada nilai variabel bebas yang sama yang biasanya merupakan nilai awal. Tetapi beberapa persoalan kadang nilai variabel bebas yang diketahui tidak pada nilai yang sama, karena nilai-nilai variabel bebas yang diketahui biasanya pada kondisi batas (boundary condition). Persoalan seperti ini disebut masalah nilai batas.

205

7.2.1. METODE SHOOTING Metode shooting dapat diilustrasikan seperti sebuah meriam yang menembakkan pelurunya. Meriam tersebut harus mempunyai sudut tertentu agar peluru bisa mengenai sasarannya. Dalam penyelesaian persamaan differensial, sebuah nilai yang kritikal (biasanya slope) ditentukan nilainya. Nilai awal yang telah diketahui dan nilai slope yang ditebak menyebabkan kita dapat menghitung titik-titik selanjutnya dengan metode-metode yang telah diberikan pada sub bab 7.1. (metode Euler, Runge-Kutta, dan lain-lain). Pada akhir perhitungan akan dibandingkan dengan nilai yang sudah diketahui. Jika ternyata nilai akhir hasil perhitungan tersebut telah sama dengan nilai yang diketahui maka nilai slope tebakan telah tepat. Tetapi jika nilai akhir hasil perhitungan berbeda dengan nilai yang diketahui maka harus ditentukan nilai slope yang baru. Berikut program matlab untuk masalah harga batas function [t,z] = bvp2sh(func,tspan,zbc,options,alfo) % Program ini bertujuan untuk penyelesaian % persamaan differensial ordiner orde 2 % masalah harga batas % dengan Metode shooting % Bentuk umum persamaan differensial ordiner orde 2 % y'' + a*y' + b*y = f(t) % dengan a dan b dapat merupakan fungsi y dan t % Persamaan di atas dapat juga ditulis sebagai % dz1/dt = z2 and dz2/dt = f - a*z2 - b*z1 % dengan z1 = y and z2 = y' % Cara menggunakan fungsi ini % func adalah nama fungsi yang ingin diselesaikan % tspan adalah vektor variabel bebas % zbc adl matriks yg mengandung koefisien kondisi batas % options adalah struktur opsi standar (optional) % alfo adalah tebakan awal alf (optional) % t - vektor kolom variabel bebas % z - matriks penyelesaian dg kolom 1 untuk z1 % dan kolom 2 untuk z2 % % Nama File : bvp2sh.m % Surakarta, Oktober 2005 % File prepared by J. R. White, UMass-Lowell (March 2003) % --------------------------------------------------------------% % % % %

Cek apakah opsi tersedia if nargin < 4, options = [];

end

Cek apakah tebakan awal alf ada if nargin < 5, alfo = 1; end Mengekstrak kondisi batas a1 = zbc(1,1); b1 = zbc(1,2);

w1 = zbc(1,3);

206 a2 = zbc(2,1); % % % % % %

% % % %

% %

b2 = zbc(2,2);

set parameter iteratif err = 1e10; tol = 1e-6; mulai iterasi while abs(err) > tol

&

w2 = zbc(2,3);

icnt = 1;

icntmax = 25;

icnt <= icntmax

menentukan vektor kondisi awal berdasarkan sturtur matriks zbc if b1 == 0 zo = [w1/a1; alfo]; else zo = [alfo; (w1 - a1*alfo)/b1]; end Penyelesaian PDO dg kondisi awal yang diketahui [t,z] = ode23(func,tspan,zo,options); Evaluasi kesalahan pada BC ke2 e1 = a2*z(end,1) + b2*z(end,2) - w2; err = e1; fprintf(1,' \n') fprintf(1,'untuk iterasi # %2i: \n',icnt) fprintf(1,' kondisi batas adalah : %13.5e %13.5e \n',zo) fprintf(1,' error dan BC ke2 : %13.5e \n',err) fprintf(1,' \n') estimasi nilai alf baru if abs(err) > tol alfp = 1.01*alfo; if b1 == 0 zo = [w1/a1; alfp]; else zo = [alfp; (w1 - a1*alfp)/b1]; end [t,z] = ode23(func,tspan,zo,options); e2 = a2*z(end,1) + b2*z(end,2) - w2; deda = (e2-e1)/(0.01*alfo); alfn = alfo-e1/deda; icnt = icnt+1; alfo = alfn; end end % akhir loop iterasi if icnt >= icntmax fprintf(1,' WARNING -- iterasi telah maksimum!!! \n'); end

Contoh 7.13

Selesaikan persoalan nilai batas 2 titik dengan shooting method d2y dt 2

+ 3xy + 7 y = cos(2 x )

dengan y(0) = 1 dan y(π) = 0 Penyelesaian Persamaan di atas disubstitusi menjadi z1’ = z2 z2’ = -3xz2 – 7z1 + cos(2x)

207 Program matlab % Demonstrasi penyelesaian Persamaan Differensial Ordiner % Masalah Nilai Batas % Program ini bertujuan menyelesaikan % y'' + 3xy' + 7y = cos(2x) % y(0) = 1 and y(pi) = 0 % Penyelesaian dengan Metode Shooting % File prepared by J. R. White, UMass-Lowell (Aug. 2003) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all, close all, nfig = 0; % Nilai ALF tebakan adalah 1, -1, dan -5.4713 gs = [1 -1 -5.4715]; % % set kondisi batas dan penyelesaian IVP xo = 0; xf = pi; tol = 1.0e-6; yxo = 1.0; options = odeset('RelTol',tol); [x1,z1] = ode23('F713',[xo xf],[yxo gs(1)],options); [x2,z2] = ode23('F713',[xo xf],[yxo gs(2)],options); [x3,z3] = ode23('F713',[xo xf],[yxo gs(3)],options); % % plot hasil nfig = nfig+1; figure(nfig) plot(x1,z1(:,1),'k-',x2,z2(:,1),'k-.',x3,z3(:,1),'k-','LineWidth',2) title('Metode Shooting (Iterasi Manual)') xlabel('x'),ylabel('y'),grid legend('alf = 1','alf = -1','alf = -5.4715')

Program terkait function zp = odefile(x,z) % Persamaan Differensial Ordiner % y'' + 3xy' + 7y = cos(2x) % Nama File : F713.m % Surakarta, Oktober 2005 % File prepared by J. R. White, UMass-Lowell (March 2003) % --------------------------------------------------------------zp = zeros(length(z),1); zp(1) = z(2); zp(2) = -3*x*z(2) - 7*z(1) + cos(2*x);

Keluaran program

208

Gambar 7.17. Keluaran Program Contoh 7.13a.

Alternatif penyelesaian yang lebih baik adalah dengan menggunakan iteratif secara automatis. % Demonstrasi penyelesaian Persamaan Differensial Ordiner % Masalah Nilai Batas % Program ini bertujuan menyelesaikan % y'' + 3xy' + 7y = cos(2x) % y(0) = 1 and y(pi) = 0 % Penyelesaian dengan Metode Shooting % Iteratif secara automatis % File prepared by J. R. White, UMass-Lowell (Aug. 2003) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** clear all % Set kondisi batas dan penyelesaian xo = 0; xf = pi; zbc = [1 0 1.0; 1 0 0.0]; tol = 1e-6; options = odeset('RelTol',tol); [xs,zs] = bvp2sh('F713',[xo xf],zbc,options);

209 % Plot hasil plot(xs,zs(:,1),'k','LineWidth',2),grid title('Metode Shooting untuk PDO orde 2')

Keluaran program

Gambar 7.18. Keluaran Program Contoh 7.13b

7.2.2. METODE BEDA HINGGA (FINITE DIFFERENCE) Metode beda hingga (finite difference) sebenarnya adalah mengubah persamaan differensial ordiner menjadi sekumpulan persamaan aljabar, dengan suatu persamaan neraca untuk tiap titik atau volum terbatas dalam suatu sistem. Teknik umum yang digunakan adalah dengan menempatkan derivatif dalam persamaan differensial ordiner dengan pendekatan beda hingga dalam suatu jaringan titik. Pendekatan beda hingga

210

dy yi +1 − yi ≈ dx ∆x

(forward)

dy yi − yi −1 ≈ dx ∆x

(backward)

dy yi +1 − yi −1 ≈ dx 2∆x

(central)

secara teoritis metode central lebih baik. Untuk turunan kedua dengan metode central

d 2 y d ⎛ dy ⎞ = ⎜ ⎟≈ dx 2 dx ⎝ dx ⎠

y i+1 − y i y i − y i−1 − ∆x = y i+1 − 2 y i + y i−1 ∆x ∆x (∆x )2

Contoh 7.14

Selesaikan persoalan nilai batas 2 titik dengan finite difference method d2y dt 2

+ 3xy + 7 y = cos(2 x )

dengan y(0) = 1 dan y(π) = 0 Penyelesaian x → xi dan xi+1 = xi + ∆x y(x) → y(xi) = yi y’(x) → y’(xi) = y’i h = ∆x = yi” =

xf − xo N +1

y i −1 − 2 y i + y i +1 ∆x 2

yi’ = yi +1 − yi −1 2∆x

Substitusi pada persamaan differensial awal d2y dt 2

+ 3xy + 7 y = cos(2 x )

⎛ y i −1 − 2 y i + y i +1 ⎞ ⎛ y − y i −1 ⎞ + 7y = cos(2x ) ⎟⎟ +3xi ⎜⎜ i +1 ⎜⎜ i i ⎟⎟ 2 2∆x ∆x ⎠ ⎝ ⎝ ⎠

211 ⎛ 3x i ∆x ⎞ 2 2 ⎛ 3x ∆x ⎞ ⎜1 − ⎟ yi-1 + (-2 + 7∆x )yi + ⎜⎜1 + i ⎟⎟ yi+1 = ∆x cos(2xi) 2 2 ⎝ ⎠ ⎝ ⎠

selanjutnya A(i,i-1) = 1 −

3x i ∆x 2

A(i,i) = -2 + 7∆x2 A(i,i+1) = 1 + 3x i ∆x 2

2

b(i) = ∆x cos(2xi) untuk i = 1, yi-1 = yo = yxo ⎛ 3x ∆x ⎞ (-2 + 7∆x2)y1 + ⎜1 + i ⎟ y2 = ∆x2cos(2x1) – 2 ⎠ ⎝

⎛ 3x 1 ∆x ⎞ yxo ⎜⎜1 − ⎟ 2 ⎟⎠ ⎝

untuk i = N, yi+1 = yN+1 = yxf ⎛ 3x N ∆x ⎞ y + (-2 + 7∆x2)y = ∆x2cos(2x ) - ⎛ 3x N ∆x ⎞ yxf N N ⎜⎜1 − 2 ⎟⎟ N-1 ⎜⎜1 + 2 ⎟⎟ ⎝ ⎠ ⎠ ⎝

Kasus B Pendekatan y’ = d2y dt 2

y i +1 − y i ∆x

+ 3xy + 7 y = cos(2 x )

⎛ y i −1 − 2 y i + y i +1 ⎞ yi +1 − yi + 7y = cos(2x ) i i ⎟⎟ +3xi ∆x ⎜⎜ 2 ∆x ⎠ ⎝

yi-1 – (2 + 3xi∆x – 7∆x2)yi + (1 +3xi∆x) yi+1 = ∆x2cos(2xi) untuk i = 1 – (2 + 3x1∆x – 7∆x2)y1 + (1 +3x1∆x) y2 = ∆x2cos(2x1) – yxo untuk i = N yN-1 – (2 + 3xN∆x – 7∆x2)yN = ∆x2cos(2x1) – (1 +3x1∆x) yxf % Demonstrasi penyelesaian Persamaan Differensial Ordiner % Masalah Nilai Batas % Program ini bertujuan menyelesaikan % y'' + 3xy' + 7y = cos(2x) % y(0) = 1 and y(pi) = 0

212 % % % % % % % % %

Penyelesaian dengan Metode Finite Difference Digunakan beberapa jumlah titik yang berbeda File prepared by J. R. White, UMass-Lowell (Aug. 2003) --------------------------------------------------------------Surakarta, Oktober 2005 Jurusan Teknik Kimia, Fak. Teknik Universitas Sebelas Maret ***************************************************************

% Kondisi batas xo = 0; xf = pi; yxo = 1; yxf = 0; % jumlah titik yang berbeda NN = [20 40 60 160]; for n=1:4 N = NN(n); % substitusi finite difference dx = (xf-xo)/(N+1); dx2 = dx*dx; x = (xo+dx):dx:(xf-dx); % Metode 1 : central a = zeros(N,N); b = zeros(N,1); % titik awal a(1,1) = -2+7*dx2; a(1,2) = 1+3*x(1)*dx/2; b(1) = dx2*cos(2*x(1))-(1-3*x(1)*dx/2)*yxo; % titik ke 2 sampai ke N-1 for i = 2:N-1 a(i,i-1) = 1-3*x(i)*dx/2; a(i,i) = -2+7*dx2; a(i,i+1) = 1+3*x(i)*dx/2; b(i) = dx2*cos(2*x(i)); end % titik ke N a(N,N-1) = 1-3*x(N)*dx/2; a(N,N) = -2+7*dx2; b(N) = dx2*cos(2*x(N))-(1-3*x(N)*dx/2)*yxf; % penyelesaian persamaan aljabar simultan y = a\b; za = [yxo y' yxf]; xa = [xo x xf]; % Metode 2 : forward a = zeros(N,N); b = zeros(N,1); % titik awal a(1,1) = -(2+3*x(i)*dx-7*dx2); a(1,2) = 1+3*x(i)*dx/2; b(1) = dx2*cos(2*x(1))-yxo; % titik ke 2 sampai ke N-1 for i = 2:N-1 a(i,i-1) = 1; a(i,i) = -(2+3*x(i)*dx-7*dx2); a(i,i+1) = 1+3*x(i)*dx; b(i) = dx2*cos(2*x(i)); end % titik ke N a(N,N-1) = 1; a(N,N) = -(2+3*x(N)*dx+7*dx2); b(N) = dx2*cos(2*x(N))-(1-3*x(N)*dx)*yxf; % penyelesaian persamaan aljabar simultan y = a\b;

213 zb = [yxo y' yxf]; xb = [xo x xf]; % plot hasil t = '220+n'; subplot(eval(t)),plot(xa,za,xb,zb,'LineWidth',2) axis([0 3.2 -2 1]); title(['Metode Finite Difference (',num2str(N),' titik)']) legend('Metode Central','Metode Forward') end

Keluaran hasil

Gambar 7.19. Keluaran Program Contoh 7.14

Contoh 7.15. Transfer Panas dalam Circular Fin

Sebuah fin berbentuk lingkaran tipis digunakan untuk memindahkan panas. T oo qc

qr

qr+ r

qc = 0

Gambar 7.20. Circular Fin

214 Dalam keadaan steady qr – qr+∆r – qc = 0 - kAr k 2πrδ

dT dT + kAr dr r dr dT dr

− k 2πrδ r + ∆r

– hAc (T - T∞) = 0 r + ∆r

dT dr

r

∆r

– 2π[2r+∆r]h(T - T∞) = 0

limit ∆r → 0 dT ⎤ d ⎡ k 2πrδ ⎥ – 4πrh(T – T∞) = 0 ⎢ dr ⎦ dr ⎣ 2

d T dT – 2h r2(T – T∞) = 0 r2 dr 2 + r dr kδ

T(rw) = Tw

dan

dT dr

=0 rs

Persamaan ditulis dalam kelompok tak berdimensi u=

T − T∞ Tw − T∞

dan

x=

r rs

rs du du dr dT = = dx dr dx Tw − T∞ dr

rs2 d 2 u d ⎛ du ⎞ dr d 2T = ⎜ ⎟ = dx 2 dr ⎝ dx ⎠ dx Tw − T∞ dr 2 ⎛ Tw − T∞ (rsx) ⎜ 2 ⎝ rs 2⎜

⎞ ⎟⎟ ⎠

d2u ⎛ Tw − T∞ ⎞ du 2h 2 ⎟ ⎜ dx 2 + (rsx) ⎜⎝ rs ⎟⎠ dx – kδ (rsx) (T – T∞)u = 0

du d2u +x – α2x2u = 0 x 2 dx dx 2

x2 u” + x u’ – α2x2u = 0 Kondisi batas

2hrs2 dengan α = kδ 2

215 x=

rw =a rs

u(a) = 1

x=

rs =b=1 rs

u’(b) = 0

rw = 1 in

rs = 1,5 in O

δ = 0,0625 in

O

Tw = 200 F

T∞ = 70 F

h = 20 BTU/jam.ft2.oF

h = 75 BTU/jam.ft.oF

Tentukan distribusi panas, total hilang panas fin, dan hitung effisiensi, η, yaitu η=

transfer panas aktual transfer panas jika fin masuk pada Tw

Penyelesaian x2 u” + x u’ – α2x2u = 0 Kondisi batas x=

rw =a rs

u(a) = 1

x=

rs =b=1 rs

u’(b) = 0

Shooting Method z1’ = z2 z2’ = –

1 z2 + α2z1 x

kondisi awal yang diberikan

⎡1⎤ z(a) = ⎡ u (a ) ⎤ = ⎢ ⎥ ⎢ u ' (a ) ⎥ α ⎦ ⎣ ⎦ ⎣

216 Program penyelesaian % Transfer Panas dalam Circular Fin % Program ini bertujuan menyelesaikan % x2 u" + x u' - a2x2u = 0 % z1' = z2 % z2' = - (1/x) z2 + a2z1 % u(a) = 1 u'(b) = 0 % Penyelesaian dengan Metode Shooting % File prepared by J. R. White, UMass-Lowell (Aug. 2003) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc global alpha rw = 1/12; rs = 1.5/12; thk = 0.0625/12; Tw = 200; Tinf = 70; h = 20; k = 75;

% % % % % % %

jari-jari dalam (ft) jari-jari luar (ft) tebal fin (ft) temperatur dinding dalam (F) temperatur lingkungan (F) koefisien transfer panas (BTU/jamft^2F) konduktivitas termal (BTU/jamftF)

a = rw/rs; b = rs/rs; alf2 = (2*h*rs*rs)/(k*thk); alpha = sqrt(alf2); Qideal = 2*pi*h*(rs*rs-rw*rw)*(Tw-Tinf); fid = fopen('cylfinsh.out','w'); fprintf(fid,'\n Data dan Hasil Perhitungan \n'); fprintf(fid,'\n \n Data \n'); fprintf(fid,'Jari-jari inside, rw = %6.2f ft \n',rw); fprintf(fid,'Jari-jari outside, rs = %6.2f ft \n',rs); fprintf(fid,'Tebal fin, thk = %6.2f ft \n',thk); fprintf(fid,'Temperatur inside, Tw = %6.2f F \n',Tw); fprintf(fid,'Temperatur ambient, Tinf = %6.2f F \n',Tinf); fprintf(fid,'Koef. transfer panas, h = %6.2f BTU/jamft^2F \n',h); fprintf(fid,'Konduktivitas termal, k = %6.2f BTU/jamftF \n',k); zbc = [1 0 1.0 0 1 0.0]; [x,z] = bvp2sh('F715',[a b],zbc); [nr,nc] = size(z); Qactual = -k*(2*pi*a*thk)*(Tw-Tinf)*z(1,2); Ttip = Tinf+(Tw-Tinf)*z(nr,1); fineff = Qactual/Qideal; fprintf(fid,'\n \n-------------------------------\n'); fprintf(fid, 'Temperatur dinding (F) = %8.3f \n',Tw); fprintf(fid, 'Temperatur ambient (F) = %8.3f \n',Tinf); fprintf(fid, 'Temperatur tip (F) = %8.3f \n',Ttip); fprintf(fid, 'Q ideal (BTU/jam) = %8.3f \n',Qideal); fprintf(fid, 'Q actual (BTU/jam) = %8.3f \n',Qactual); fprintf(fid, 'Eff fin = %8.3f \n',fineff); subplot(2,1,1) plot(x,z(:,1),'k','LineWidth',2) title('Profil Temperatur pd Fin Lingkaran dg Metode Shooting') grid, ylabel('Temperatur')

217 subplot(2,1,2) plot(x,z(:,2),'k','LineWidth',2) title('Gradien Temperatur pd Fin Lingkaran dg Metode Shooting') grid, xlabel('jarak'), ylabel('grandien temperatur') fclose(fid)

Program terkait function zp = odefile(x,z) % Persamaan Differensial Ordiner % x2 u" + x u' - a2x2u = 0 % Nama File : F715.m % Surakarta, Oktober 2005 % File prepared by J. R. White, UMass-Lowell (March 2003) % --------------------------------------------------------------global alpha zp = zeros(length(z),1); zp(1) = z(2); zp(2) = -z(2)/x+alpha*alpha*z(1);

Gradien temperatur

Temperatur

Keluaran program

Gambar 7.21. Keluaran Program Contoh 7.15a

Metode Beda Hingga

218 xi+1 = xi + ∆x

x → xi u(x) → u(xi) = ui

u’(x) → u’(xi) = ui’

∆x =

b−a N

ui” =

u i −1 − 2u i + u i +1 ∆x 2

ui’ =

u i +1 − u i −1 2∆x

⎛ u i −1 − 2u i + u i +1 ⎞ + x ⎛ u i +1 − u i −1 ⎞ – α2x 2u = 0 i i ⎟ i⎜ ⎟ ∆x 2 ⎝ ⎠ ⎝ 2 ∆x ⎠

xi2 ⎜

dengan α2 =

⎛ ∆x ⎜⎜1 − ⎝ 2x i

2hrs2 kδ

⎞ ⎟⎟ ui-1 – (2 + α2∆x2)ui + ⎠

A(i,i-1) = 1 −

⎛ ∆x ⎞ u = 0 ⎟⎟ i+1 ⎜⎜1 + ⎝ 2x i ⎠

∆x 2x i

A(i,i) = – (2 + α2∆x2) A(i,i+1) = 1 +

∆x 2x i

b(i) = 0 untuk i = 1, u0 = u(a) = 1 – (2 + α2∆x2)u1 +

⎛ ∆x ⎞ ⎜⎜1 + ⎟⎟ u2 = – ⎝ 2x 1 ⎠

⎛ ∆x ⎞ ⎜⎜1 − ⎟⎟ u0 ⎝ 2x 1 ⎠

untuk ujung yang terisolasi qxN-1/2 – qxN – qc = 0 - kAr

dT dr

– hAc(TN - T∞) = 0 r = rs − ∆r / 2

qxN = 0

219 Ar = 2π(rs -



∆r )δ 2 ⎛ ⎝

Ac =2π ⎢ rs − ⎜ rs − 2

⎢⎣

dT dr

= − r = rs − ∆r / 2

∆r ⎞ ⎟ 2 ⎠

2

⎤ ⎡ ∆r 2 ⎤ = 2π r r ∆ − ⎥ ⎢s ⎥ 4 ⎦ ⎥⎦ ⎣

h∆r f N (TN − T∞ ) kδ dengan fN =

du dx du dx

= xN − ∆x / 2

rs dT Tw − T∞ dr

(rs − ∆r / 4) (rs − ∆r / 2)

2 = − 2hrs ⎛⎜ 1 ⎞⎟⎛⎜ ∆r ⎞⎟f (TN − T∞ ) N kδ ⎝ 2 ⎠⎜⎝ rs ⎟⎠ (Tw − T∞ ) rs − ∆r / 2

⎛ ∆x ⎞

xN − ∆x / 2

= – α2 ⎜ 2 ⎟ fNuN ⎝ ⎠

untuk evaluasi pada x = xN –

atau

du dx

= xN − ∆x / 2

∆x 2

u N − u N −1 ∆x

⎛ ∆x 2 ⎞ − ⎜⎜1 + α 2 f N ⎟⎟ uN + uN-1 = 0 2 ⎝ ⎠ Program Matlab % Transfer Panas dalam Circular Fin % Program ini bertujuan menyelesaikan % x2 u" + x u' - a2x2u = 0 % z1' = z2 % z2' = - (1/x) z2 + a2z1 % u(a) = 1 u'(b) = 0 % Penyelesaian dengan Metode Finite Difference % File prepared by J. R. White, UMass-Lowell (Aug. 2003) % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all clc rw = 1/12; rs = 1.5/12;

% jari-jari dalam (ft) % jari-jari luar (ft)

220 thk = 0.0625/12; Tw = 200; Tinf = 70; h = 20; k = 75;

% % % % %

tebal fin (ft) temperatur dinding dalam (F) temperatur lingkungan (F) koefisien transfer panas (BTU/jamft^2F) konduktivitas termal (BTU/jamftF)

a = rw/rs; b = rs/rs; alf2 = (2*h*rs*rs)/(k*thk); alpha = sqrt(alf2); Qideal = 2*pi*h*(rs*rs-rw*rw)*(Tw-Tinf); fid = fopen('cylfinfd.out','w'); fprintf(fid,'\n Data dan Hasil Perhitungan \n'); fprintf(fid,'\n \n Data \n'); fprintf(fid,'Jari-jari inside, rw = %6.2f ft \n',rw); fprintf(fid,'Jari-jari outside, rs = %6.2f ft \n',rs); fprintf(fid,'Tebal fin, thk = %6.2f ft \n',thk); fprintf(fid,'Temperatur inside, Tw = %6.2f F \n',Tw); fprintf(fid,'Temperatur ambient, Tinf = %6.2f F \n',Tinf); fprintf(fid,'Koef. transfer panas, h = %6.2f BTU/jamft^2F \n',h); fprintf(fid,'Konduktivitas termal, k = %6.2f BTU/jamftF \n',k); u0 = 1; N = input('Enter nilai N yg diinginkan (tekan 0 untuk keluar) = '); while N ~= 0 clear A B u x xx zz zzp A = zeros(N,N); B = zeros(N,1); dx = (b-a)/N; dx2 = dx*dx; x = linspace(a+dx,b,N); fn = (b-dx/4)/(b-dx/2); for n = 2:N-1 A(n,n-1) = 1-dx/(2*x(n)); A(n,n) = -(2+alf2*dx2); A(n,n+1) = 1+dx/(2*x(n)); B(n) = 0; end A(1,1) = -(2+alf2*dx2); A(1,2) = 1+dx/(2*x(1)); B(1) = -(1-dx/(2*x(1)))*u0; A(N,N-1) = 1; A(N,N) = -(1+alf2*dx2*fn/2); B(N) = 0; u = A\B; xx = [a x]; zz = [u0 u']; zzp(1) = (zz(2)-zz(1))/dx; zzp(N+1) =0; for n=2:N zzp(n) = (zz(n+1)-zz(n-1))/(2*dx); end Qactual1 = -k*(2*pi*a*thk)*(Tw-Tinf)*zzp(1); dr=dx*rs; Qactual2 = h*2*pi*((rw+dr/2)^2-rw^2)*(Tw-Tinf)*zz(1) + ... h*2*pi*(rs^2-(rs-dr/2)^2)*(Tw-Tinf)*zz(N+1); for n = 2:N r2 = (xx(n)+dx/2)*rs; r1 = (xx(n)-dx/2)*rs; area = 2*pi*(r2^2-r1^2); Qactual2=Qactual2+h*area*(Tw-Tinf)*zz(n);

221 end Ttip = Tinf+(Tw-Tinf)*zz(N+1); fineff = Qactual2/Qideal; fprintf(fid,'\n \n-------------------------------\n'); fprintf(fid, 'Temperatur dinding (F) = %8.3f \n',Tw); fprintf(fid, 'Temperatur ambient (F) = %8.3f \n',Tinf); fprintf(fid, 'Temperatur tip (F) = %8.3f \n',Ttip); fprintf(fid, 'Q ideal (BTU/jam) = %8.3f \n',Qideal); fprintf(fid, 'Q actual (BTU/jam) = %8.3f (konduksi)\n', Qactual1); fprintf(fid, 'Q actual (BTU/jam) = %8.3f (konveksi)\n', Qactual2); fprintf(fid, 'Eff fin = %8.3f \n',fineff); subplot(2,1,1) plot(xx,zz,'LineWidth',2) title(['Profil Temperatur pd Fin Lingkaran dg Metode FD . . . untuk N = ', num2str(N)]) grid, ylabel('Temperatur') subplot(2,1,2) plot(xx,zzp,'LineWidth',2) title(['Gradien Temperatur pd Fin Lingkaran dg Metode FD . . . untuk N = ', num2str(N)]) grid, xlabel('jarak'), ylabel('grandien temperatur') N = input('Enter nilai N lain yang diinginkan (tekan 0 untuk keluar) = '); end fclose(fid)

Keluaran program untuk N = 50

Gradien temperatur

Temperatur

222

Gambar 7.22. Keluaran Program Contoh 7.15b

PERSAMAAN

8

DIFFERENSIAL PARSIAL

Persamaan differensial parsial secara umum untuk orde dua dalam variabel bebas x dan y dapat dinyatakan sebagai berikut : A

∂ 2u ∂x 2

+B

⎛ ∂u ∂u ⎞ ∂ 2u ∂2u + C 2 + D⎜⎜ x , y, u , , ⎟⎟ = 0 ∂x ∂y ⎠ ∂x∂y ∂y ⎝

… (8.1)

Persamaan differensial parsial dapat diklasifikasikan tergantung dari nilai B2 – 4AC. -

jika B2 – 4AC < 0, maka persamaan Eliptik

-

jika B2 – 4AC = 0, maka persamaan Parabolik

-

jika B2 – 4AC > 0, maka persamaan Hiperbolik

Jika koefisien A, B, dan C dalah fungsi x, y, dan/atau u, persamaan mungkin berubah dari satu klasifikasi menjadi klasifikasi lain pada titik bervariasi. Dalam teknik kimia persamaan yang sering dijumpai adalah persamaan differensial eliptik dan parabolik, sehingga kedua persamaan itulah yang akan dibahas dalam bab ini.

228

8.1. PERSAMAAN DIFFERENSIAL ELIPTIK Persamaan differensial eliptik terbentuk jika koefisien A dan C pada persamaan (8.1) sama dengan 1 dan B sama dengan nol, sehingga B2 – 4AC < 1.

Ada 2 type persamaan differensial eliptik yang akan dibahas, yaitu -

Persamaan Laplace A

-

∂ 2u ∂x 2

+C

∂ 2u

=0

∂y 2

… (8.2)

Persamaan Poisson A

∂ 2u ∂x

2

+C

⎛ ∂u ∂u ⎞ + D⎜⎜ x, y, u, , ⎟⎟ = 0 ∂x ∂y ⎠ ⎝

∂ 2u ∂y 2

… (8.3)

8.1.1. PERSAMAAN LAPLACE Persamaan Laplace sering muncul dari penyusunan persoalan perpindahan panas dalam suatu plat. Bentuk paling sederhana persamaan Laplace adalah ∂ 2u ∂x 2

+

∂ 2u ∂y 2

=0

… (8.4)

Penyelesaian persamaan Laplace adalah metode beda hingga. ∂ 2u ∂x 2

+

∂ 2u ∂y 2

=

u i +1, j − 2u i, j + i −1, j

(∆x )

2

+

u i, j+1 − 2u i, j + i, j−1

(∆y )2

… (8.5)

Jika diambil ∆x = ∆y = h ∂ 2u ∂x

2

+

∂ 2u ∂y

2

=

1 h2

[ ui+1,j + ui-1,j + ui,j+1 + ui,j-1 – 4ui,j] = 0

… (8.6)

Contoh 8.1. Profil Temperatur pada Plat Tentukan distribusi temperatur pada sebuah plat bujursangkar yang salah satu sisiya mengikuti persamaan T = 100*sin(π*y), sedang ketiga sisi yang lain sama dengan nol.

229 Program Matlab % Profil Temperatur pada Plat Rektanguler % Persamaan Laplace % d^2 U d^2 U % ----- + ----- = 0 % d x^2 d y^2 % Temperatur salah satu sisi = 100*sin(Pi*y) % sedang ketiga sisi yang lain = 0 % Penyelesaian dengan Metode Finite Difference % % Author's Data: Housam BINOUS % Department of Chemical Engineering % National Institute of Applied Sciences and Technology % Tunis, TUNISIA % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % % Jumlah titik adalah 29*29 % Penyelesaian sistem AU = X dengan U adalah temperatur % yang tidak diketahui pada titik interior. clear; N=30; for j=0:N-2 for i=1:N-2 X(i+j*(N-1))=0; end end for i=1:N-1 X(i*(N-1))=-100*sin(i*pi/N); end % Penyusunan matriks A for i=1:(N-1)*(N-1) A(i,i)=-4; end for i=1:N-2 for k=0:N-2 A(i+k*(N-1),i+1+k*(N-1))=1; end end for k=0:N-3 for i=1:N-1 A(i+k*(N-1),i+(k+1)*(N-1))=1; end end for i=1:(N-1)*(N-1) for j=1:i A(i,j)=A(j,i); end end % Inversi Matriks dan Perhitungan temperatur M=inv(A); U=M*X'; % Plot hasil pada bentuk contour for i=1:N-1 for j=1:N-1 x(i,j)=U(j+(i-1)*(N-1)); end

230 end [i,j]=meshgrid(1:1:N-1,1:1:N-1); [c,h]=contourf(i,j,x);

Gambar 8.1. Keluaran Program Contoh 8.1

Contoh 8.2. Aliran Panas Steady State Plat tipis dari baja mempunyai ukuran 10 cm x 20 cm. Jika salah satu sisi ukuran 10 cm dijaga pada 100 OC dan ketiga sisi yang lain dijaga pada 0 OC. Tentukan profil temperatur pada plat. Untuk baja k = 0,16 kal/detik.cm2.C/cm.

Penyelesaian ∂ 2u ∂x

2

+

∂ 2u ∂y 2

=0

dengan u(x,0) = 0, u(x,10) = 0, u(0,y) = 0,

231 u(20,y) = 100. Program Matlab % Profil Temperatur pada Plat Rektanguler % Persamaan Laplace % d^2 U d^2 U % ----- + ----- = 0 % d x^2 d y^2 % Plat ukuran 10cm x 20cm % Temperatur salah satu sisi = 100 % sedang ketiga sisi yang lain = 0 % Penyelesaian dengan Metode Finite Difference % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % % Jumlah titik adalah 9*19 % Penyelesaian sistem AU = X dengan U adalah temperatur % yang tidak diketahui pada titik interior. clear; N=20; M=10; for j=0:N-2 for i=1:M-2 X(i+j*(M-1))=0; end end for i=1:M-1 X(i*(N-1))=-100; end % Penyusunan matriks A for i=1:(N-1)*(M-1) A(i,i)=-4; end for i=1:N-2 for k=0:M-2 A(i+k*(N-1),i+1+k*(N-1))=1; end end for k=0:M-3 for i=1:N-1 A(i+k*(N-1),i+(k+1)*(N-1))=1; end end for i=1:(N-1)*(M-1) for j=1:i A(i,j)=A(j,i); end end % Inversi Matriks dan Perhitungan Temperatur G=inv(A); U=G*X'; % Plot hasil bentuk contour for i=1:M-1 for j=1:N-1 x(i,j)=U(j+(i-1)*(N-1)); end

232 end T = x [i,j]=meshgrid(1:1:N-1,1:1:M-1); [c,h]=contourf(i,j,x);

Keluaran program

Gambar 8.2. Keluaran Program Contoh 8.2 Contoh berikut menggunakan fungsi ellipgen dalam penyelesaian persamaan differensial Eliptik. function [a,om]=ellipgen(nx,hx,ny,hy,G,F,bx0,bxn,by0,byn) % Penyelesaian persamaan PD Parsial Eliptik % d^2 Z d^2 Z % ----- + ----- + G(x,y)*Z = F(x,y) % d x^2 d y^2 % pada plat rektanguler % Cara menggunakan fungsi ini % hx,hy = ukuran titik arah x, y % F, G = array (ny+1,nx+1) representasi F(x,y), G(x,y) % bx0, bxn = vektor baris kondisi batas pada x0, xn % by0, byn = vektor baris kondisi batas pada y0, yn % a = array (ny+1,nx+1) penyelesaian % % Nama File : ellipgen.m % Surakarta, Oktober 2005 % --------------------------------------------------------------nmax=(nx-1)*(ny-1); r=hy/hx; a=zeros(ny+1,nx+1); p=zeros(ny+1,nx+1); if nargin==6 ncase=0;mode=F; end if nargin==10

233 test=0; if F==zeros(ny+1,nx+1), test=1; end if bx0==zeros(1,ny+1), test=test+1; end if bxn==zeros(1,ny+1), test=test+1; end if by0==zeros(1,nx+1), test=test+1; end if byn==zeros(1,nx+1), test=test+1; end if test==5 disp(' WARNING ') disp(' ') break end bx0=bx0(1,ny+1:-1:1); bxn=bxn(1,ny+1:-1:1); a(1,:)=byn; a(ny+1,:)=by0; a(:,1)=bx0'; a(:,nx+1)=bxn';ncase=1; end for i=2:ny for j=2:nx nn=(i-2)*(nx-1)+(j-1); q(nn,1)=i; q(nn,2)=j; p(i,j)=nn; end end C=zeros(nmax,nmax); e=zeros(nmax,1); om=zeros(nmax,1); if ncase==1, g=zeros(nmax,1); end for i=2:ny for j=2:nx nn=p(i,j); C(nn,nn)=-(2+2*r^2); e(nn)=hy^2*G(i,j); if ncase==1, g(nn)=g(nn)+hy^2*F(i,j); end if p(i+1,j)~=0 np=p(i+1,j); C(nn,np)=1; else if ncase==1, g(nn)=g(nn)-by0(j); end end if p(i-1,j)~=0 np=p(i-1,j); C(nn,np)=1; else if ncase==1, g(nn)=g(nn)-byn(j); end end if p(i,j+1)~=0 np=p(i,j+1); C(nn,np)=r^2; else if ncase==1, g(nn)=g(nn)-r^2*bxn(i); end end if p(i, j-1)~=0 np=p(i,j-1); C(nn,np)=r^2; else if ncase==1, g(nn)=g(nn)-r^2*bx0(i); end end end end if ncase==1 C=C+diag(e); z=C\g; for nn=1:nmax i=q(nn,1); j=q(nn,2); a(i,j)=z(nn); end else [u,lam]=eig(C,-diag(e)); [om,k]=sort(diag(lam)); u=u(:,k); for nn=1:nmax i=q(nn,1); j=q(nn,2); a(i,j)=u(nn,mode); end end

Contoh 8.3. Distribusi Temperatur pada Plat Rektanguler

234 Tentukan distribusi temperatur dalam suatu plat rektanguler, dengan kondisi batas sebagai berikut x = 0, T = 100y x = 3, T = 250y y = 0, T = 0 y = 2, T = 200 + (100/3)x2 Penyelesaian untuk ukuran 6 x 6. Program Matlab % Profil Temperatur pada Plat Rektanguler % Persamaan Laplace % Plat ukuran 2 x 3 % pada x = 0, T = 100y % pada x = 3, T = 250y % pada y = 0, T = 0 % pada y = 2, T = 200 + (100/3)x^2 % Penyelesaian dengan Metode Finite Difference % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clear all % Jumlah titik arah x, y nx=6; ny=6; % Ukuran titik arah x, y hx=0.5; hy=0.3333; % Input data pada kondisi batas by0=[0 0 0 0 0 0 0]; byn=[200 208.33 233.33 275 333.33 408.33 500]; bx0=[0 33.33 66.67 100 133.33 166.67 200]; bxn=[0 83.33 166.67 250 333.33 416.67 500]; % Penyelesaian dg fungsi ellipgen F=zeros(ny+1,nx+1); G=F; % PD Laplace a=ellipgen(nx, hx, ny, hy, G, F, bx0, bxn, by0, byn); % Plot hasil contourf(a) xlabel('Titik-titik dalam arah x'); ylabel('Titik-titik dalam arah y');

Keluaran program

235

Gambar 8.3. Keluaran Program Contoh 8.3.

8.1.2. PERSAMAAN POISSON Bentuk persamaan umum A

∂ 2u ∂x

2

+C

⎛ ∂u ∂u ⎞ = F⎜⎜ x, y, u , , ⎟⎟ ∂x ∂y ⎠ ∂y ⎝

∂ 2u 2

Contoh 8.4. Defleksi Membran Tentukan defleksi membran bujursangkar seragam dengan ujung-ujung tetap dijaga. Sedang beban distribusi dapat didekati dengan suatu beban pada suatu titik.

Permasalahan

ini

mengikuti

persamaan

Poisson

dengan

F(x,y)

menunjukkan beban membran. Penyelesaian dengan fungsi ellipgen. % Defleksi Membran % Persamaan Poisson % Plat ukuran 2 x 3 % d^2 U d^2 U % ----- + ----- = F (x,y) % d x^2 d y^2 % Penyelesaian dengan Metode Finite Difference % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % % Jumlah titik arah x, y nx=6; ny=6;

236 % Ukuran titik arah x, y hx=1/6; hy=1/6; % Input data by0=[0 0 0 0 byn=[0 0 0 0 bx0=[0 0 0 0 bxn=[0 0 0 0

pada kondisi batas 0 0 0]; 0 0 0]; 0 0 0]; 0 0 0];

% Penyelesaian dg fungsi ellipgen F=-ones(ny+1,nx+1); G=zeros(nx+1,ny+1); a=ellipgen(nx, hx, ny, hy, G, F, bx0, bxn, by0, byn); % Plot hasil surfl(a) axis([1 7 1 7 0 0.1]) xlabel('titik-titik arah x'); ylabel('titik-titik arah y '); zlabel('tebal');

Keluaran program

Gambar 8.4. Keluaran Program Contoh 8.4.

8.2. PERSAMAAN PARABOLIK Persamaan parabolik akan sering dijumpai dalam persamaan aliran panas satu dimensi unsteady state.

237

∂ 2u ∂x

2

cρ ∂u k ∂t

=

… (8.7)

8.2.1. METODE EKSPLISIT Metode eksplisit menyelesaikan persamaan (8.7) dengan pendekatan beda hingga sebagai berikut ∂2u ∂x 2

=

u ij+1 + 2u ij + u ij−1

… (8.8)

(∆x )2

j+1 j ∂u u i − u i = ∂t ∆t

… (8.9)

Substitusi persamaan (8.8) dan (8.9) pada persamaan (8.7) dan penyelesaian untuk uij+1 u ij+1 =

k∆t cρ(∆x )

Penyederhanaan jika u ij+1 =

(

2

(u

j i +1

k∆t

cρ(∆x )2

1 j u i +1 + u ij−1 2

)

)

⎛ 2k∆t + u ij−1 + ⎜1 − ⎜ cρ(∆x )2 ⎝ =

⎞ j ⎟u ⎟ i ⎠

… (8.10)

1 1 dengan M adalah Modulus = 2 M

… (8.11)

Contoh 8.5

Selesaikan persamaan 8.10. untuk M = 4. Ditentukan uin = 0,5, uA = 1,0, uB = 0,2, L = 1, N = 10. Program Matlab % Persamaan Differensial Parsial % Persamaan Parabolik % d^2 u d u % ------- = ----% d x^2 d t % Penyelesaian dengan Finite Difference % Metode Eksplisit % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % clc clear all

238 uin = 0.5; uA =1; uB = 0.2;

% nilai u untuk seluruh x pada t = 0 % nilai u untuk x = 0 (bagian atas) pada t > 0 % nilai u untuk x = 1 (bagian bawah) pada t > 0

% Interval x = 0 sampai x = L, dibagi N bagian sama besar AL = 1; % panjang sisi N = 25; % sisi x dibagi sebanyak N bagian % Modulus AM = 4; % Interval waktu dibagi bagian kecil sebesar delt Jend = 100; % jumlah hitungan waktu yaitu t = delt*Jend delx = AL/N; delt = delx^2/AM; %Kondisi awal for i=1:N+1 x(i)= (i-1)*delx; u(i,1)= uin; end for j=1:Jend for i=2:N u(1,j+1)=uA; u(N+1,j+1)=uB; u(i,j+1)=(u(i-1,j)+(AM-2)*u(i,j)+u(i+1,j))/AM; end end % Plot x,y kondisi awal plot(x',u(:,1),'LineWidth',2) disp('kondisi awal t = 0') x = x', u0 = u(:,1) % Tidak semua hitungan perlu diplotkan disp('kondisi t >= 0') hold on for w=1:Jend j=ceil(w/20); uu(:,j) = u(:,w); t(j)=delt*w; end x=x ,t, un=uu plot(x,uu,'LineWidth',2)

Keluaran program >> kondisi awal t = 0 x = 0 0.0400 0.0800 0.1200 0.1600 0.2000 0.2400 0.2800 0.3200 0.3600 0.4000 0.4400 0.4800 0.5200 0.5600 0.6000

239 0.6400 0.6800 0.7200 0.7600 0.8000 0.8400 0.8800 0.9200 0.9600 1.0000 u0 = 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 kondisi t >= 0 x = 0 0.0400 0.0800 0.1200 0.1600 0.2000 0.2400 0.2800 0.3200 0.3600 0.4000 0.4400 0.4800 0.5200 0.5600 0.6000 0.6400 0.6800 0.7200 0.7600 0.8000 0.8400 0.8800 0.9200 0.9600 1.0000

240 t = 0.0080

0.0160

0.0240

0.0320

0.0400

1.0000 0.8714 0.7557 0.6620 0.5939 0.5494 0.5235 0.5100 0.5038 0.5013 0.5004 0.5001 0.5000 0.5000 0.4999 0.4998 0.4992 0.4977 0.4940 0.4859 0.4703 0.4437 0.4028 0.3466 0.2772 0.2000

1.0000 0.9099 0.8244 0.7472 0.6810 0.6272 0.5855 0.5550 0.5337 0.5197 0.5109 0.5055 0.5021 0.4996 0.4971 0.4937 0.4882 0.4798 0.4670 0.4487 0.4237 0.3914 0.3517 0.3054 0.2540 0.2000

1.0000 0.9267 0.8558 0.7896 0.7298 0.6776 0.6335 0.5974 0.5689 0.5470 0.5304 0.5179 0.5083 0.5001 0.4922 0.4835 0.4728 0.4592 0.4418 0.4200 0.3935 0.3621 0.3262 0.2865 0.2440 0.2000

1.0000 0.9366 0.8748 0.8160 0.7614 0.7121 0.6684 0.6307 0.5988 0.5722 0.5502 0.5319 0.5163 0.5023 0.4889 0.4751 0.4600 0.4428 0.4228 0.3997 0.3732 0.3434 0.3105 0.2752 0.2381 0.2000

1.0000 0.9432 0.8876 0.8341 0.7836 0.7369 0.6943 0.6562 0.6226 0.5931 0.5673 0.5447 0.5244 0.5057 0.4879 0.4700 0.4513 0.4313 0.4095 0.3855 0.3592 0.3307 0.3001 0.2677 0.2342 0.2000

un =

Gambar 8.5. Keluaran Program Contoh 8.5

241 Contoh 8.6. Distribusi Temperatur sebagai Fungsi Waktu pada Plat Tipis

Plat besi yang sangat luas mempunyai tebal 2 cm. Temperatur mula-mula dalam plat merupakan fungsi jarak dari salah satu sisinya sebagai berikut : u = 100x

untuk 0 # x # 1,

u = 100( 2 – x)

untuk 0 # x # 1.

Tentukan temperatur tebal plat sebagai fungsi x dan t, jika kedua permukaan tetap dijaga 0 OC. Untuk besi k = 0,13 kal/detik.cm. OC, c = 0,11 cal/g. OC, ρ = 7,8 g/cm3.

Penyelesaian k∆t cρ(∆x )

2

=

1 1 , = 2 M

∆x = 0,25 sehingga ∆t = 0,206 detik

Program Matlab % Persamaan Differensial Parsial % Persamaan Parabolik % d^2 u c*rho d u % ------- = ----- ----% d x^2 k d t % Plat tebal 2 cm % Kondisi awal % u(x,0) = 100x utk 0 <= x <= 1 % u(x,0) = 100(2-x) utk 1 <= x <= 2 % Kondisi batas % u(0,t) = 0 % u(2,t) = 0 % Penyelesaian dengan Finite Difference % Metode Eksplisit % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % format short clc clear all % Data-data L=2; k=0.13; c=0.11; rho=7.8; % Interval N=8; M=0.5; delx=L/N;

% % % %

tebal plat, cm konduktivitas panas, kal/det.cm.oC kapasitas panas, kal/g.oC densitas, g/cm^3

% modulus

242 delt=M*c*rho*delx^2/k; xo=0; Jend=10; for i=1:N+1 x(i)=xo+delx*(i-1); end % Kondisi awal for i=1:ceil((N+1)/2) u(1,i)=100*x(i); end for i=N+1:-1:ceil((N+1)/2) u(1,i)=100*(2-x(i)); end for i=1:Jend t(i)=delt*i; end for j=1:Jend for i=2:ceil((N+1)/2)+1 u(j+1,i)=(k*delt/(c*rho*delx^2))*(u(j,i-1)+u(j,i+1))+... (1-2*k*delt/(c*rho*delx^2))*u(j,i); end for i=N+1:-1:ceil((N+1)/2)+1 u(j+1,i)=u(j+1,ceil((N+1)/2)*2-i); end end x t=t' u

Keluaran program x = 0

0.2500

0.5000

0.7500

1.0000

1.2500

1.5000

1.7500

2.0000

25.0000 25.0000 25.0000 25.0000 21.8750 21.8750 18.7500 18.7500 16.0156 16.0156 13.6719

50.0000 50.0000 50.0000 43.7500 43.7500 37.5000 37.5000 32.0313 32.0313 27.3438 27.3438

75.0000 75.0000 62.5000 62.5000 53.1250 53.1250 45.3125 45.3125 38.6719 38.6719 33.0078

100.000 75.0000 75.0000 62.5000 62.5000 53.1250 53.1250 45.3125 45.3125 38.6719 38.6719

75.0000 75.0000 62.5000 62.5000 53.1250 53.1250 45.3125 45.3125 38.6719 38.6719 33.0078

50.0000 50.0000 50.0000 43.7500 43.7500 37.5000 37.5000 32.0313 32.0313 27.3438 27.3438

25.0000 25.0000 25.0000 25.0000 21.8750 21.8750 18.7500 18.7500 16.0156 16.0156 13.6719

0 0 0 0 0 0 0 0 0 0 0

t = 0.2062 0.4125 0.6187 0.8250 1.0313 1.2375 1.4437 1.6500 1.8563 2.0625 u = 0 0 0 0 0 0 0 0 0 0 0

Contoh 8.7. Difusi Alkohol

243 Suatu tabung panjang 20 cm mula-mula berisi udara dengan 2 % uap alkohol. Pada bagian bawah tabung berhubungan dengan bejana berisi alkohol sehingga alkohol tersebut menguap melalui tabung yang mula-mula berisi udara diam tersebut. Pada bagian ini konsentrasi alkohol dijaga tetap 10 %. Pada bagian atas (puncak) tabung uap alkohol di permukaan atas tabung dapat dianggap selalu nol.

20 cm

Gambar 8.6. Difusi Alkohol

Tentukan distribusi konsentrasi alkohol pada tabung sampai minimal 100 detik. Diketahui ϑ = 0,119 cm2 / detik. Ambil r = ϑ ∆t/(∆x)2 =1/2 dan ∆x = 4 cm.

Penyelesaian ∆t = 0.5(∆x)2/ϑ = 67,2 detik Program Matlab % Persamaan Differensial Parsial % Persamaan Parabolik % d^2 c d c % D ------- = ----% d x^2 d t % Kondisi awal % c(0,t) = 2 % Kondisi batas % c(0,t) = 0 c(20,t) = 10 % Penyelesaian dengan Finite Difference % Metode Eksplisit % % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** %

244 format short clc clear all % Data-data L=20; D=0.119;

% panjang tube, cm % koefisien difusivitas, cm^2/detik

N=5; M=0.5; delx=L/N; delt=M/D*delx^2; xo=0; Jend=16; for i=1:N+1 x(i)=xo+delx*(i-1); end x %Kondisi awal u(1,1)=0.0; for i=2:N u(1,i)=2; end u(1,N+1)=10.0; % interval waktu for i=1:Jend+1 t(i) = delt*i-delt; end t=t' for j=1:Jend u(j+1,1)=0.0; for i=2:N u(j+1,i)=(delt*D/delx^2)*(u(j,i-1)+u(j,i+1))+... (1-2*delt*D/delx^2)*u(j,i); end u(j+1,N+1)=10.0; end u

Keluaran program x = 0

4

t = 1.0e+003 * 0 0.0672 0.1345 0.2017 0.2689 0.3361 0.4034 0.4706 0.5378 0.6050 0.6723 0.7395 0.8067 0.8739 0.9412 1.0084 1.0756

8

12

16

20

245 u = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2.0000 1.0000 1.0000 0.7500 1.2500 1.1250 1.5000 1.4219 1.6719 1.6211 1.7852 1.7520 1.8594 1.8376 1.9080 1.8937 1.9398

2.0000 2.0000 1.5000 2.5000 2.2500 3.0000 2.8438 3.3438 3.2422 3.5703 3.5039 3.7188 3.6753 3.8159 3.7875 3.8795 3.8609

2.0000 2.0000 4.0000 3.7500 4.7500 4.5625 5.1875 5.0625 5.4688 5.3867 5.6523 5.5986 5.7725 5.7373 5.8511 5.8281 5.9025

2.0000 6.0000 6.0000 7.0000 6.8750 7.3750 7.2813 7.5938 7.5313 7.7344 7.6934 7.8262 7.7993 7.8862 7.8687 7.9255 7.9140

10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000 10.0000

8.2.2. METODE IMPLISIT Berikut penggunaan fungsi

heat

untuk penyelesaian persamaan

differensial parsial secara implisit. function u=heat(nx,hx,nt,ht,init,lowb,hib,K) % Penyelesaian persamaan PD Parsial Parabolik % d^2 U d U % K ----- = ---% d x^2 d t % Cara menggunakan fungsi ini % nx,hx = jumlah dan ukuran titik x % nt,ht = jumlah dan ukuran titik t % init = vektor baris (nx+1) nilai awal fungsi % lowb, hib = batas bawah dan atas x % lowb dan hib mempunyai nilai skalar % K = konstanta persamaan parabolik % % Nama File : heat.m % Surakarta, Oktober 2005 % --------------------------------------------------------------alpha=K*ht/hx^2; A=zeros(nx-1,nx-1);u=zeros(nt+1,nx+1); u(:,1)=lowb*ones(nt+1,1); u(:,nx+1)=hib*ones(nt+1,1); u(1,:)=init; A(1,1)=1+2*alpha; for i=2:nx-2 A(i,i)=1+2*alpha; A(i,i-1)=-alpha; A(i,i+1)=-alpha; end A(nx-1,nx-2)=-alpha; A(nx-1,nx-1)=1+2*alpha; b(1,1)=init(2)+init(1)*alpha; for i=2:nx-2 b(i,1)=init(i+1); end b(nx-1,1)=init(nx)+init(nx+1)*alpha; [L,U]=lu(A); for j=2:nt+1

246 y=L\b;x=U\y; u(j,2:nx)=x';b=x; b(1,1)=b(1,1)+lowb*alpha; b(nx-1,1)=b(nx-1,1)+hib*alpha; end

Contoh 8.8. Distribusi Temperatur pada Dinding Batu Tahan Api sebagai Fungsi Waktu

Dinding batu tahan api setebal 0,3 m mula-mula mempunyai temperatur seragam 100 OC. Temperatur kedua permukaan diturunkan secara tiba-tiba menjadi 20 OC dan tetap dijaga pada temperatur ini. Tentukan distribusi temperatur pada dinding pada interval 440 detik sampai 22000 detik. Untuk batu tahan api K = 5.10-7 m2/detik.

Penyelesaian dengan menggunakan fungsi

heat,

dan diambil 15 subdivisi untuk

x dan 50 subdivisi untuk t. Program Matlab % Distribusi Temperatur Dinding Tahan Api % Persamaan Parabolik % Tebal dinding 0.3 m % Temperatur mula-mula seragam 100 oC % Secara tiba-tiba kedua sisi menjadi 20 oC % dan dijaga tetap seperti itu % Penyelesaian dengan Metode Finite Difference % Metode Implisit % --------------------------------------------------------------% Surakarta, Oktober 2005 % Jurusan Teknik Kimia, Fak. Teknik % Universitas Sebelas Maret % *************************************************************** % Data-data K=5e-7; hx=0.02; nx=15; ht=440; nt=50;

% % % % %

m^2/detik ukuran interval x jumlah interval x detik, ukuran interval t jumlah interval t

% Kondisi awal init = 100*ones(1,nx+1); % Kondisi batas lowb=20; hib=20; % Perhitungan u=heat(nx,hx,nt,ht,init,lowb,hib,K); % Plot Hasil surfl(u) axis([0 16 0 50 0 120]) view([-217 30]) xlabel('x'); ylabel('waktu'); zlabel('temperatur')

247

Keluaran Program

Gambar 8.7. Keluaran Program Contoh 8.8.

DAFTAR PUSTAKA

---, 2005, “MATLAB Central > File Exchange > Chemistry and Physics”, www.mathworks.com/matlabcentral/fileexchange/load Category.do Chapra, S.C. dan Canale, R.P., 1991, “Metode Numerik untuk Teknik”, Penerbit UI Jakarta Cutlip, M.B. dan Schacham, M., 2002, “Application of Mathematical Software Packages in Chemical Engineering Education”, Workshop Presenters, ASSE Chem. Eng. Division Summer School, University of Colorado, Boulder Davis, M.E., 1965, “Numerical Analysis for Chemical Engineering”, John Wiley and Sons., New York Fogler, H.S., 1999, “Elements of Chemical Reaction Engineering”, 3 ed., Prentice Hall International Ed. Englewood Cliffs, New Jersey. Gerald, C.F. dan Wheatley, P.O., 1985, “Applied Numerical Analysis”, AdisonWesley Publising Company, Inc., USA Hanna, O.T. dan Sandall, O.C., 1995, “Computational Methods in Chemical Engineering”, Prentice Hall PTR, New Jersey Hanselman, D. dan Littlefield, B., 2000, “Matlab Bahasa Komputasi Teknik”, Penerbit Andi, Yoyakarta Jenson, V.G. dan Jeffreys, G.V., 1977, “Mathematical Methods in Chemical Engineering”, Academic Press, Inc., London Levenspiel, O., 1999, “Chemical Reaction Engineering”, 3 ed., John Wiley and Sons, New York Mickley, H.S., Sherwood, T.S., dan Reed, C.E., 1975, ”Applied Mathematical in Chemical Engineering”, Tata Mc. Graw Hill Pub. Ca., New York Palm, W.J., 1999, “Matlab for Engineering Applications”, Mc.Graw-Hill, New York

252 Penny, J. dan Lindfield, G., 2000, “Numerical Methods using Matlab”, Prentice Hall, Inc., New Jersey Pike, R.W., 1986, “Optimization for Engineering System”, Van Nostrand Reinhold Company Inc., New York Rudd, D.F. dan Watson, C.C., 1968, “Strategy of Process Engineering”, John Wiley & Sons, Inc., New York Sediawan, W.B. dan Prasetya, A., 1977, “Pemodelan Matematis dan Penyelesaian Numeris dalam Teknik Kimia”, Penerbit Andi Yogyakarta Smith, J.M., 1981, “Chemical Engineering Kinetics”, 3rded., Mc. Graw Hill Inc., Tokyo Wang, N. S., 2002, “Computer Methods in Chemical Engineering”, Chemical Engineering Dept., University of Maryland, www.glue.umd.edu/ White, J.R., 2005, “Mathematical Methods for Engineering”, Chemical & Nuclear Engineering Dept., University of Massachussetts Lowell, www.profjrwhite.com/math_methods.htm. White, J.R., 2005, “Problem Solving with Matlab”, Chemical & Nuclear Engineering Dept., University of Massachussetts Lowell, www.profjrwhite.com/matlab_course.htm.

Related Documents


More Documents from "OktaAndricaPutra"

Buku Pemrograman Komputer
January 2021 0