Anda di halaman 1dari 348

Hak cipta pada penulis Hak penerbitan pada penerbit

Tidak boleh diproduksi sebagian atau seluruhnya dalam bentuk apapun Tanpa izin tertulis dari pengarang dan/atau penerbit

Kutipan Pasal 72 :
Sanksi pelanggaran Undang-undang Hak Cipta (UU No. 10 Tahun 2012)
Barang siapa dengan sengaja dan tanpa hak melakukan perbuatan sebagaimana dimaksud dalam Pasal 2 ayat (1) atau Pasal (49) ayat (1) dan ayat (2) dipidana
dengan pidana penjara masing-masing paling singkat 1 (satu) bulan dan/atau denda paling sedikit Rp. 1. 000.000,00 (satu juta rupiah), atau pidana penjara
paling lama 7 (tujuh) tahun dan atau denda paling banyak Rp. 5. 000.000.000,00 (lima miliar rupiah)
Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu Ciptaan atau hasil barang hasil pelanggaran Hak
Cipta atau Hak Terkait sebagaimana dimaksud ayat (1) dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp.
500.000.000,00 (lima ratus juta rupiah)
Perpustakaan Nasional RI:
Katalog Dalam Terbitan (KDT)

PENGANTAR KOMPUTASI TEKNIK KIMIA


DENGAN MATLAB DAN SIMULINK

Penulis:
HERI RUSTAMAJI, S.T., M.Eng.

Desain Cover & Layout


Team Aura Creative

Penerbit
AURA
CV. Anugrah Utama Raharja
Anggota IKAPI
No.003/LPU/2013

x + 280 hal : 15,5 x 23 cm


Cetakan, Juli 2017

ISBN: 978-602-6739-14-8

Alamat
Jl. Prof. Dr. Soemantri Brojonegoro, Komplek Unila
Gedongmeneng Bandar Lampung
HP. 081281430268
E-mail : redaksiaura@gmail.com
Website : www.aura-publishing.com

Hak Cipta dilindungi Undang-undang


KATA PENGANTAR

Tujuan buku ini adalah untuk mengilustrasikan tentang (1)


persoalan - persoalan dalam teknik kimia yang harus diselesaikan,
(2) penyusunan model matematis persoalan teknik kimia, (3)
program komputer yang digunakan untuk menyelesaikan
persoalan teknik kimia secara numeris, dan (4) bagaimana
mengoreksi untuk memastikan bahwa persoalan-persoalan
tersebut sudah diselesaikan secara benar. Hal ini dilakukan dalam
konteks bagaimana mahasiswa belajar dengan banyak
menggunakan komputer. Program yang dicontohkan di sini
adalah MATLAB dan Simulink. Metode penyelesaian numeris
yang dijabarkan dalam buku ini adalah dengan menggunkan built
in function yang sudah disusun dalam MATLAB.

Penjelasan lebih detail tentang metode numeris untuk menyelesai-


kan berbagai bentuk persamaan yang muncul dalam teknik kimia
adalah di luar ruang lingkup buku ini.

Bab-bab dalam buku ini disusun berdasarkan model persamaan


yang terbentuk dari persoalan-persoalan yang muncul dalam
teknik kimia. Buku ini juga dapat digunakan dalam kuliah lain
karena beberapa bab disusun untuk mengakomodasi kurikulum
teknik kimia.

v
Sebagai contoh, ketika kesetimbangan reaksi kimia telah dibahas
pada mata kuliah Termodinamika Teknik Kimia, pengajar dapat
melaksanakan sesi latihan yang mengajarkan aplikasi komputer,
menggunakan bab pada kesetimbangan reaksi kimia. Materi pada
pilihan model termodinamika juga dapat ditambahkan sedikit lebih
realistis terhadap kuliah termodinamika.

Bab lainnya dapat digunakan pada mata kuliah lain. Dengan cara
ini mahasiswa akan menggunakan buku ini selama masa pem-
belajaran, dalam kuliah atau setelah kuliah Neraca Massa dan
Energi, Transfer Momentum, Panas, dan Massa, Perancangan
Reaktor, Optimasi Proses dan Pengendalian Proses.

Harapannya adalah bahwa mahasiswa akan mampu lebih konsen-


trasi pada prinsip fundamental teknik kimia dan mampu menggu-
nakan MATLAB dan Simulink sebagai suatu tool untuk menye-
lesaiakan persoalan dalam teknik kimia.

Akhir kata, Penulis mengucapkan banyak terima kasih kepada Ir.


Sufriadi Burhanuddin, M.Eng. dan Ir. Azhar. M.T., yang pertama
kali mengenalkan dan mengajarkan beberapa topik materi yang
terkandung dalam buku ini.

HERI RUSTAMAJI

vi KATA PENGANTAR
DAFTAR ISI

BAB 1 MEMULAI MENGGUNAKAN MATLAB


1.1 PENDAHULUAN 1
1.2 MENGENAL MATLAB 2
1.2.1 Dekstop MATLAB 3
1.2.2 Ruang Kerja MATLAB 3
1.2.3 M-files 6
1.2.3.1 Aturan dan Sifat-Sifat 7
1.2.3.2 Syntax Untuk Membuat Fungsi 8
1.2.3.3 Perintah Global 9
1.2.4 Pemrograman MATLAB 10
1.2.4.1 Membuat File Program 11
1.2.4.2 Script : Urutan Perintah
MATLAB 11
1.2.4.3 Fungsi : Subrutin Matlab 12
1.2.4.4 Format Penampilan Angka 13
1.3 RANGKUMAN 15
1.4 LATIHAN 15
1.5 RUJUKAN 15

BAB 2 KONTROL ALUR PROGRAM


2.1 PENDAHULUAN 16
2.2 PEMROGRAMAN MATLAB 17
2.2.1 Konstruksi if else end 17
vii
2.2.2Loop for 18
2.2.3Loop while 19
2.2.4Konstruksi switch case –other wise 19
2.2.5Operasi Vektor dan Matriks 20
2.2.6Operasi Vektor dan Matriks pada
Fungsi 24
2.3 RANGKUMAN 26
2.4 LATIHAN 27
2.5 RUJUKAN 28

BAB 3 VISUALISASI DATA DALAM MATLAB


3.1 PENDAHULUAN 29
3.2 VISUALISASI GRAFIK 29
3.2.1 Pembuatan Grafik Sederhana 30
3.2.2 Grafik Multiple Plot _33
3.2.3 Grafik Tiga Dimensi 34
3.2.4 Analisis Data Percobaan 37
3.2.5 Menentukan Model dari Data
Percobaan 40
3.2.6 Membuat Polinom dan Mencari Akar
Polinom 43
3.3 RANGKUMAN 44
3.4 RUJUKAN 44

BAB 4 PERSAMAAN LINIER SIMULTAN


4.1 PENDAHULUAN 45
4.2 MODEL MATEMATIS PERSAMAAN LINIER
SIMULTAN 46
4.3 RANGKUMAN 66
4.4 RUJUKAN 66

viii DAFTAR ISI


BAB 5 PERSAMAAN NON LINIER TUNGGAL
5.1 PENDAHULUAN 68
5.2 MODEL MATEMATIS PERSAMAAN NON
LINIER 69
5.3 RANGKUMAN 87
5.4 RUJUKAN 88

BAB 6 PERSAMAAN NON LINIER SIMULTAN


6.1 PENDAHULUAN 89
6.2 PERSAMAAN NON LINIER MULTI
VARIABEL 90
6.3 RANGKUMAN 107
6.4 LATIHAN 108
6.5 RUJUKAN 110

BAB 7 PERSAMAAN DIFERENSIAL BIASA


7.1 PENDAHULUAN 112
7.2 MODEL PERSAMAAN DIFERENSIAL
BIASA 112
7.3 RANGKUMAN 175
7.4 RUJUKAN 176

BAB 8 PERSAMAAN DIFERENSIAL PARSIAL


8.1 PENDAHULUAN 177
8.2 MODEL MATEMATIS 177
8.3 RANGKUMAN 192
8.4 RUJUKAN 192

BAB 9 OPTIMASI
9.1 PENDAHULUAN 193
9.2 TOOLBOX OPTIMASI DALAM
MATLAB 195
9.3 OPTIMASI TANPA KONSTRAIN 197
9.3.1 Optimasi satu variabel 197

DAFTAR ISI ix
9.3.2 Optimasi multivariabel 198
9.4 OPTIMASI DENGAN KONSTRAIN 203
9.5 PEMROGRAMAN LINIER 211
9.6 APLIKASI MATLAB DALAM OPTIMASI
TEKNIK KIMIA 217
9.7 RUJUKAN 243

BAB 10 SIMULINK
10.1 PENDAHULUAN 245
10.2 SIMULINK LIBRARY 245
10.3 RANGKUMAN 280
10.4 RUJUKAN 280

x DAFTAR ISI
BAB 1

MEMULAI MENGGUNAKAN MATLAB

1.1 PENDAHULUAN

Apa itu MATLAB? Apa yang dapat dilakukan oleh


MATLAB? Kemampuan apa yang dimilikinya? Bagaimana
kita menggunakan MATLAB untuk menyelesaikan perma-
salahan-permasalahan komputasi? Mungkin kalimat terse-
but adalah beberapa pertanyaan awal bagi mahasiswa yang
baru pertama mengenal MATLAB. Namun bagi Anda yang
sudah mengenal MATLAB pertanyaan di atas bukanlah hal
yang baru dan tentu saja Anda dapat menjawabnya dengan
mudah.
Pada bab ini akan dibahas mengenai MATLAB dan
beberapa hal yang harus dipahami untuk menjalankan
MATLAB. Setelah mengikuti kuliah ini mahasiswa diharap-
kan akan mampu membuka dan menjalankan MATLAB
serta mampu menjelaskan fungsi dan tampilan pada
MATLAB. Menguasai bab ini merupakan prasayarat untuk
menguasai bab-bab berikutnya pada bahan ajar ini. Bagi
mahasiswa yang ingin cepat memahami dan menguasai
MATLAB maka cara yang paling mudah adalah mem-

1
praktekan bahan ajar ini langsung dalam lembar kerja
MATLAB. Penjelasan yang lebih luas dan mendalam
tentang MATLAB dapat Anda peroleh dengan membuka
menu help pada toolbar MATLAB.

1.2 MENGENAL MATLAB

MATLAB (MATrix LABoratory) merupakan bahasa


canggih untuk komputasi teknik. MATLAB merupakan
integrasi dari komputasi, visualisasi dan pemrograman
dalam suatu lingkungan yang mudah digunakan, karena
permasalahan dan pemecahannya dinyatakan dalam notasi
matematika biasa. Kegunaan MATLAB secara umum adalah
untuk :
 Matematika dan komputasi
 Pengembangan dan algoritma
 Pemodelan, simulasi dan pembuatan prototype
 Analisa data, eksplorasi dan visualisasi
 Pembuatan apilikasi termasuk pembuatan graphical
user interface

MATLAB adalah sistem interaktif dengan elemen dasar


array yang merupakan basis datanya. Array tersebut tidak
perlu dinyatakan khusus seperti di bahasa pemrograman
yang ada sekarang. Hal ini memungkinkan Anda untuk
memecahkan banyak masalah perhitungan teknik, khusus-
nya yang melibatkan matriks dan vektor dengan waktu yang
lebih singkat dari waktu yang dibutuhkan untuk menulis
program dalam bahasa C atau Fortran. Untuk memahami
MATLAB, terlebih dahulu Anda harus sudah paham menge-
nai matematika terutama operasi vektor dan matriks, karena
operasi matriks merupakan inti utama dari MATLAB. Pada
intinya MATLAB merupakan sekumpulan fungsi-fungsi

2 MEMULAI MENGGUNAKAN MATLAB


yang dapat dipanggil dan dieksekusi. Fungsi-fungsi
tersebut dibagi-bagi berdasarkan kegunaannya yang
dikelompokan di dalam Toolbox yang ada pada MATLAB.
Untuk mengetahui lebih jauh mengenai Toolbox yang ada
di MATLAB dan fungsinya anda dapat mencarinya di
website http://www.mathworks.com, Untuk memulai
bekerja dengan MATLAB, maka bagi mahasiswa yang
baru mengenal MATLAB perlu dijelaskan tentang
beberapa hal yang terkait dengan tampilan dan beberpa
fungsi dalam MATLAB sebagaimana diuraikan di bawah.

1.2.1 Desktop MATLAB

Ketika anda mulai membuka program MATLAB, akan


muncul desktop MATLAB yang berisi tools (Graphical User
Interface) untuk mengatur file, variabel dan aplikasi yang
berhubungan dengan MATLAB. Sebagai ilustrasi dibawah
ini digambarkan desktop yang pertama muncul di MATLAB.
Gambar 1.1 menunjukkan desktop MATLAB.

Untuk lebih jelas mengenai lingkungan kerja MATLAB


perhatikan contoh pada Gambar 1.2.

1.2.2Ruang Kerja MATLAB

Saat anda bekerja di command window semua perintah,


variabel dan data yang disimpan berada di dalam ruang
kerja MATLAB. Ruang kerja “default” dari MATLAB yaitu
di folder work di dalam folder MATLAB. Apabila kita
menginstal MATLAB versi 7.1 di C maka folder work akan
berada di C:/Matlab7p 1/work. Untuk merubah ruang kerja
lakukan di Command Window, seperti anda merubah
direktori di DOS.

MEMULAI MENGGUNAKAN MATLAB 3


Coba anda ketik tes = 2 pada command window, maka
akan keluar output sebagai berikut :

tes =

Gambar 1.1 Desktop MATLAB

Ini berarti variabel tes telah tersimpan di dalam ruang


kerja kita. Untuk melihat data yang telah tersimpan coba
anda ketik tes pada command window.

Jika Anda tidak dapat mengingat nama setiap variabel, maka


anda dapat meminta MATLAB untuk menampilkan
namanya, menggunakan perintah who atau whos.
whos Name tes 1x1
tes2 Size Bytes Class
8 double array
1x1 8 double array
Grand total is 2 elements using 16 bytes

4 MEMULAI MENGGUNAKAN MATLAB


Untuk mengetahui isi variabel tersebut anda harus
memasukkan nama variabelnya dalam command window.

Untuk memanggil perintah sebelumnya, di MATLAB


menggunakan tombol panah pada keyboard anda ( ←↑↓→ ).

Untuk menghapus semua semua variabel yang sudah kita


masukkan digunakan perintah clear all

Untuk melihat keterangan dari function di MATLAB atau


program yang kita buat digunakan perintah : ' help
function ' , sebagai contoh :
>> help plot
Maka akan muncul tampilan seperti Gambar 1.3.

Gambar 1.2 Perintah dalam Command Window

MEMULAI MENGGUNAKAN MATLAB 5


Gambar 1.3 Tampilan di command window dari help plot

1.2.3 M-files

Ketika Anda menggunakan fungsi-fungsi di matlab


seperti inv, abs, sqrt, exp, matlab menerima variabel yang anda
berikan, menghitung hasil berdasarkan input dan
mengembalikan hasil akhirnya pada Anda sendiri. Bila kita
ibaratkan fungsi adalah sebuah kotak hitam dimana yang kita
lihat hanyalah apa yang masuk dan apa yang keluar. Sifat-
sifat demikian membuat fungsi dapat menjadi suatu alat yang
baik untuk mengevaluasi perintah-perintah yang
menggabungkan fungsi-fungsi matematika atau deretan
perintah yang sering digunakan untuk memecahkan suatu
masalah besar.
Untuk itu matlab menyediakan suatu struktur untuk
membuat fungsi Anda sendiri dalam bentuk m-file yang
disimpan dalam komputer. M-files dapat berisi program,
scripts, persamaan atau data yang dipanggil selama eksekusi.
Jika m-files adalah definisi fungsi, selanjutnya bagian yang
terpenting dari jenis m-file ini adalah baris pertama. Baris
6 MEMULAI MENGGUNAKAN MATLAB
pertama harus mengandung definisi fungsi sehingga
MATLAB dapat menemukan M-files yang dipanggil. M-
files tipe ini disebut dengan fungsi M-files atau fungsi file.

1.2.3.1 Aturan dan Sifat-Sifat

Fungsi m-file harus mengikuti beberapa aturan dan


sejumlah sifat penting. Aturan-aturan dan sifat-sifat tersebut
meliputi :
o Nama fungsi dan nama file harus identik misalnya anda
membuat fungsi dengan nama pangkat maka anda memberi
nama m-file anda pangkat juga.
o Baris komentar sampai dengan baris bukan komentar yang
pertama adalah teks help yang ditampilkan jika anda
meminta help dari fungsi yang anda buat.
o Setiap fungsi mempunyai ruang kerjanya 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
suatu variabel input, perubahan itu hanya tampak dalam
fungsi dan tidak mempengaruhi variabel yang ada dalam
ruang kerja MATLAB. Variabel yang dibuat oleh suatu
fungsi tinggal hanya dalam ruang kerja fungsi.
o Jumlah dari argumen input dan output yang digunakan
jika suatu fungsi dipanggil hanya ada dalam fungsi
tersebut. Fungsi ruang kerja memuat jumlah argument
input. Fungsi kerja nargout memuat jumlah argumen
output. Dalam praktek, variabel-variabel nargout dan
nargin biasanya digunakan untuk mengatur variabel input
standar dan menentukan variabel output yang diperlukan
user.

MEMULAI MENGGUNAKAN MATLAB 7


1.2.3.2 Syntax untuk membuat fungsi

Syntax untuk membuat fungsi adalah sebagai berikut :


function y = nama_fungsi(x)

y adalah keluaran fungsi, keluaran ini dapat satu variabel atau


lebih dari satu variabel, jika keluaran lebih dari satu variabel
maka mempunyai bentuk sebagai berikut :

function [y,z,a,b] = nama_fungsi(x)

x adalah masukan dari fungsi, masukan ini dapat satu variabel


atau lebih dari satu variabel, jika masukan lebih dari satu
variabel maka mempunyai bentuk sebagai berikut :

function y = nama_fungsi(a,b,c,d)

„nama_fungsi‟ adalah nama sederhana M-file (nama file


harus sama dalam definisi dan nama file). Baris script
selanjutnya dalam M-file dapat mendefinisikan fungsi atau
fungsi dan label beberapa variabel yang diperlukan.
Gambar 1.4 adalah contoh suatu M-file yang digunakan
untuk mengeplot fungsi logaritma bilangan natural.

Gambar 1.4 Penulisan dalam M-files

8 MEMULAI MENGGUNAKAN MATLAB


Untuk menghasilkan plot fungsi ini , berikut ini kode
yang damasukkan ke dalam command window:
fplot (‘example1’,[1:5])

Ini akan mnghasilkan plot ln (x) antara x = 1 dan x =


5. Hasil plot ditunjukkan Gambar 1.5. Dengan
menggunakan menu ‟insert‟ kita dapat menambah judul,
nama sumbu x dan y dan jika perlu legend.

1.2.3.3 Perintah ‘global’


Command workspace adalah area di dalam memori
komputer dimana tersimpan berbagai parameter dan variabel
yang telah didefinisikan pada command line (baik pada
command window ataupun pada m-file) MATLAB. Masing –
masing m-file memiliki workspace khusus yang masing–masing
tidak dapat berkomunikasi sampai kita membuatnya saling
berkomunikasi. Salah satu cara untuk mengkomunikasikan
masing– masing workspace tersebut adalah dengan perintah
‟global‟ (Lihat Gambar 1.6).

Gambar 1.5 Grafik hasil fungsi example1

MEMULAI MENGGUNAKAN MATLAB 9


Command window Mfile1 Mfile2

global a b c global a b global a c

a b c a b a c

Gambar 1.6 Variabel global dan lokal.


Global workspace : a b c

1.2.4 Pemrograman pada MATLAB

Hampir seluruh operasi MATLAB dilaksanakan melalui


script, yaitu urutan perintah-perintah yang dituliskan dalam
bentuk teks. Seperti halnya script-script lainnya (misalnya
file- file berekstensi .bat di sistem operasi DOS), script
Matlab juga harus dijalankan dalam program MATLAB
sebagai lingkungannya.
Script ini dapat berupa urutan perintah seperti layaknya
script-script lainnya, tetapi dapat juga merupakan sebuah
fungsi atau subrutin. Sebagai fungsi, script matlab dapat
menerima variabel dan menghasilkan suatu besaran. Dengan
demikian, pekerjaan dapat dipecah-pecah menjadi beberapa
pekerjaan kecil dan dilaksanakan dalam fungsi-fungsi tersebut
sehingga penyelesaiannya menjadi lebih mudah. Berikut akan
dipaparkan bagaimana membangun script dan fungsi,
menempatkannya dalam lingkungan operasi MATLAB,
mengeksekusinya, menangani variabel-variabel yang terlibat di
dalamnya, melewatkan variabel melalui fungsi, dan mengatur
aliran program.

10 MEMULAI MENGGUNAKAN MATLAB


1.2.4.1 Membuat File Program yang Dapat Dieksekusi pada
MATLAB

File script adalah sebuah file teks biasa dan bisa dibuat
menggunakan editor teks biasa seperti notepad pada windows
atau editor edit.exe pada DOS. Tetapi pada Matlab versi 7.x
yang baru, editor khusus telah disediakan. Editor ini dilengkapi
dengan pustaka kata-kata kunci MATLAB yang berwarna lain
sehingga memudahkan penyuntingan program. Selain itu,
editor dilengkapi juga dengan pemandu pasangan kurung
(bracket), fungsinya menunjukkan pasangan kurung buka dan
kurung tutup yang bersesuaian. Ini penting saat penyuntingan
persamaan yang melibatkan kurung berlapis-lapis.
Untuk mengeksekusi script atau fungsi, tuliskanlah nama
fungsi tersebut pada prompt (»). Jangan gunakan huruf kapital
karena nama fungsi di MATLAB diharuskan menggunakan
huruf non-kapital.

1.2.4.2 Script : Urutan Perintah MATLAB

Untuk membuat script biasa, tuliskan perintah-perintah


MATLAB dengan urutan yang benar. Perhatikan contoh
berikut :
% contoh1.m : Menghitung perkalian matriks

A = [1 2 3; 4 5 6]
B = [2 3; 4 5; 6 7] C = A*B

» contoh1 A =

1 2 3
4 5 6

MEMULAI MENGGUNAKAN MATLAB 11


B =

2 3
4 5
6 7

C =

28 34
64 79

Script dapat menerima masukan melalui input dari keyboard,


tetapi tidak dapat menerima masukan berupa argumen.
Karena itu script hanya digunakan untuk program-program
singkat, atau program induk.

1.2.4.3 Fungsi : Subrutin Matlab


Penggunaan fungsi lebih fleksibel dibandingkan script biasa.
Fungsi dapat menerima masukan berupa argumen. Walaupun
fungsi juga dapat menerima masukan dari keyboard, tetapi
pemrogram biasanya tidak menempatkan pekerjaan ini dalam
fungsi kecuali ada tujuan khusus untuk itu.
Sebuah fungsi harus memiliki header yang ditandai dengan
kata-kunci function. Pada header tersebut terdapat variabel
output, nama fungsi dan variabel input. Nama fungsi disini
tidak selalu mencerminkan nama fungsi yang sebenarnya.
Nama fungsi sebenarnya adalah nama file .m yang berisi fungsi
tersebut. Walaupun demikian, nama fungsi pada header
sebaiknya sama dengan nama file agar tidak membingungkan.
Perhatikan contoh berikut :

function R = contoh2(P,Q)
% contoh2.m : Menghitung perkalian
matriks R = P*Q

» A = [1 2 3; 4 5 6];

12 MEMULAI MENGGUNAKAN MATLAB


» B = [2 3; 4 5; 6 7];
» C = contoh2(A,B)

C =

28 34
64 79

Perhatikan bahwa nama variabel di dalam fungsi dan variabel


pemanggil fungsi tidak harus sama. MATLAB membedakan
variabel di luar fungsi dan variabel di dalam fungsi. Variabel di
dalam fungsi bersifat lokal dan hanya berlaku di dalam fungsi.
Hal ini akan dibahas pada sub-bagian lain.

1.2.4.4. Format Penampilan Angka

Saat MATLAB menampilkan hasil proses numerik, MATLAB


mengikuti beberapa aturan. Dalam keadaan biasa, jika hasilnya
berupa bilangan bulat, MATLAB menapilkannya sebagai
bilangan bulat. Jika hasilnya suatu bilangan real, MATLAB
akan menampilkannya sebagai bilangan dengan empat digit
desimal. Jika angka penting hasilnya di luar kisaran ini,
MATLAB akan menampilkannya sebagai notasi lain seperti
pada kalkulator sain. Anda dapat mengatur format penampilan
ini dari item preference pada menu File jika ada atau dengan
mengetikkan perintah MATLAB pada prompt command.
Menggunakan variabel average_cost, format numerik yang
tersedia adalah:

MEMULAI MENGGUNAKAN MATLAB 13


MATLAB
Average_cost Comments
Command
format
50.83333 5 digits
short
format
50.83333333333334 16 digits
long
format 5 digits plus
5.0833e+01
short e eksponen
format 16 digits plus
50.83333333333334e+01
long e eksponen
Better of
format
50.833 format short or
short g
Format short e
format
50.83333333333333 hexadecimal
long g
format
40496aaaaaaaaaab hexadecimal
hex
format 2 decimals
50.83
bank digits
Positive,
format + 50.83 negative, or
zero
format Rational
305/6
rat approximation

Penting untuk diperhatikan bahwa MATLAB tidak


mengubah representasi internal dari suatu bilangan sekalipun
berbagai format penampilan dipilih untuk bilangan itu; hanya
tampilannya saja yang berubah.

14 MEMULAI MENGGUNAKAN MATLAB


1.3 RANGKUMAN

 MATLAB merupakan bahasa canggih untuk komputasi


teknik kegunaannya secara umum adalah untuk matema-
tika dan komputasi, pengembangan dan algoritma, pemo-
delan, simulasi dan pembuatan prototype, analisa data,
eksplorasi dan visualisasi, pembuatan apilikasi termasuk
pembuatan graphical user interface.
 Perintah MATLAB dapat dituliskan langsung pada
prompt command window atau dalam bentuk M-file. Pe-
nulisan pada command window dilakukan hanya untuk
operasi komputasi yang sederhana. Sementara untuk ope-
rasi komputasi yang panjang dan kompleks lebih sering
dituliskan dalam M-file dimana file ini dapat diedit dan
dipanggil setiap saat oleh MATLAB.

1.4 LATIHAN

Latihan 1.
Buatlah script penulisan dengan M-file dan pada prompt
command window untuk perhitungan berikut :
y = 2x2 + 5x + 8
Tentukan niali y untuk setiap nilai x berikut:
x= 5, 6, 7 dan 3

1.5 RUJUKAN

1) Dan Hanselman dan Bruce Littlefield, 1997.


MATLAB: Bahasa Komputasi dan Teknis. hal 6-26. ANDI.
Yogyakarta.
2) http://www.mathworks.com

MEMULAI MENGGUNAKAN MATLAB 15


BAB 2

KONTROL ALUR PROGRAM

2.1 PENDAHULUAN
Setelah kita membahas sekilas tentang cara kerja dan
kemampuan MATLAB pada Bab 1, selanjutnya pada bab ini
akan dijelaskan tentang kemampuan pemrograman MATLAB
yang dijelaskan melalui beberapa konstruksi. Setelah menye-
lasaikan perkuliahan ini diharapkan mahasiswa akan mampu
membuat alur program sederhana untuk menyelesaikan suatu
permasalahan dalam bidang teknik kimia baik menggunakan
kontruksi logika pemrograman maupun dengan pendekatan
vector.
Bahasan ini sangat penting mengingat penyelesaian
permasalahan dalam teknik kimia yang kompleks
membutuhkan suatu program penyelesaian yang terkadang
juga kompleks. Sehingga pemahaman terhadap logika
terhdap pemrograman menjadi prasyarat untuk mampu
menyelesaikan berbagai permasalahan dalam bidang teknik
kimia.

16
Pada bagian bab ini mahasiswa diharpakan banyak
berlatih membuat alur program untuk menyelesaiakn soal-soal
yang ada pada buku rujukan.

2.2 PEMROGRAMAN MATLAB


Sebagaimana bahasa pemrograman pada umumnya, MATLAB
juga memiliki perintah-perintah untuk mengatur atau
mengontrol alur program. Kontrol program sangat berguna
karena memungkinkan komputasi-komputasi yang lalu
mempengaruhi komputasi berikutnya. MATLAB menyediakan
empat struktur pengambilan keputusan atau struktur kontrol
program. Keempatnya adalah konstruksi if-else-end, loop for,
loop while, dan konstruksi switch-case-otherwise. Kontruksi-
kontruksi tersebut seringkali melibatkan banyak perintah
MATLAB, yang oleh karenanya konstruksi lebih sering
terdapat dalam M-file daripada diberikan langsunng pada
prompt MATLAB. Penjelasan singkat tentang kotruksi-
kontruksi tersebut akan dijelaskan di bawah ini.

2.2.1 Kontruksi if – else - end


Perintah ini adalah perintah klasik pemrograman. Identik
dengan jika … maka, perintah ini dapat digunakan untuk
menguji suatu kondisi tertentu. Sintaks dari perintah ini
diperlihatkan pada contoh berikut :
% program :
test.m a =
input('a = ');

if a == 0
disp('a sama dengan
nol'); elseif a < 0
disp('a
negatif'); else
disp('a positif');

KONTROL ALUR PROGRAM 17


»
test
a =
4
a positif
»
test
a =
-4

2.2.2 Loop for

Perintah ini juga merupakan perintah klasik bahasa


pemrograman. Fungsi for adalah untuk melakukan loop
sejumlah urutan yang telah ditentukan. Sintaks dari perintah
ini diperlihatkan pada contoh berikut :

% program :
» test
test.m for
A =
i=1:10
for j=1:2:10
2 0 4 0 6 0 8 0 10
A(i,j) =
3 0 5 0 7 0 9 0 11
(i+j);
4 0 6 0 8 0 10 0 12
en
5 0 7 0 9 0 11 0 13
6 0 8 0 10 0 12 0 14
7 0 9 0 11 0 13 0 15
8 0 10 0 12 0 14 0 16
9 0 11 0 13 0 15 0 17
10 0 12 0 14 0 16 0 18
11 0 13 0 15 0 17 0 19

18 KONTROL ALUR PROGRAM


Urutan loop dapat sebuah vektor dengan bilangan-bilangan
tertentu seperti contoh di atas : untuk i urutan dari 1 sampai 10
dengan kenaikan 1, sedangkan untuk j dari 1 sampai 10 dengan
kenaikan 2. Jika x = [1 1.3 5.4 2.3 5.5 7], maka for x = x akan
memberikan harga-harga x seperti setiap elemen dalam vektor
x ; x(1) = 1, x(3) = 5.4 dan seterusnya.

2.2.3 Loop while

Perintah ini akan mengulang perintah-perintah yang diapitnya


selama kondisi pengujinya benar. Di dalam loop harus ada
perintah-perintah yang membuat kondisi penguji menjadi salah,
karena kalau tidak loop akan berlangsung terus.
Contoh baik dapat dilihat para perhitungan epsilon mesin
Matlab.

% program :
2.2.4 Kontruksi
epsilon.mswitch
satu -=case - otherwise
inf;
Perintah
eps ini mengarahkan alur program melalui sejumlah
= 1;
while satu > 1
pilihan. Perintah ini untuk menggantikan
eps = eps/2;
perintah if…elseif
% nilai eps semakin lama
…else yang bertumpuk. % semakin kecil
satu = 1 + eps; % satu suatu saat akan
sama
% program % dengan 1
:Pilihan.m
end; a =
eps = eps*2
input('a = ');
»
switch a

KONTROL ALUR PROGRAM 19


case {1}, disp('a
satu') otherwise
disp('a bukan nol atau
satu'); end;

»
pilihan
2.2.5 Operasi
a = 1 Vektor dan Matriks
a satu
Beberapa
» operasi vektor dan matriks yang penting antara lain
adalahpilihan
:
a = 0
 Transposisi
a nol
Transposisi vektor dan matriks dinyatakan dengan simbol
»
apostrop
pilihan (‘). Secara sederhana, definisi transposisi vektor
dan
a =matriks
-3 adalah mengubah posisi elemen-elemen kolom
dalam
a bukan vektor
nol dan
ataumatriks
satu menjadi elemen-elemen baris
pada vektor dan matriks yang bersangkutan.
Secara matematik dapat dinyatakan sebagai berikut. :
A  B' jik a  b
ij ji
a
Pada Matlab, perintah ini dapat dilakukan dengan :

» A = [1 2 3] A =
12
3

» B = A'

20 KONTROL ALUR PROGRAM


B =
1
2
3

» P = [1 2 3; 4 5 6; 7 8
9] P =
1 2 3
4 5 6
7 8 9

» Q =

P' Q =
1 4 7
2 5 8
3 6 9

Perlu diingat bahwa Matlab selalu mendefinisikan sebuah


array (vektor) sebagai vektor baris, kecuali didefinisikan
terlebih dahulu. Misalnya A = 1:5 adalah vektor [1 2 3 4 5]
dan bukan vektor kolom. Hal ini berbeda dengan definisi
awal (default) vektor pada beberapa buku referensi
komputasi.

 Penjumlahan dan Pengurangan


Penjumlahan dan pengurangan vektor dan matriks adalah
penjumlahan masing-masing elemennya. Pada Matlab,
operasi penjumlahan dan pengurangan ditandai dengan
tanda plus (+) dan minus (-).

» A = [5 6 7]

A =
5 6 7

» B = [1 2 3]

KONTROL ALUR PROGRAM 21


B =
1 2 3

» A - B

ans = 4
4 4

Syarat penjumlahan dan pengurangan adalah dimensi


kedua vektor atau matriks yang dijumlahkan harus sama.

 Perkalian Vektor dan Matriks


Perkalian vektor dan matriks dilakukan menurut
persamaan :
C  AB cik  aij.bjk
Syarat perkalian vektor dan matriks adalah jumlah baris
vektor/matriks pertama harus sama dengan jumlah kolom
vektor/matriks kedua.

» A = [1 2 3; 4 5 6; 7 8 9] A =

1 2 3
4 5 6
7 8 9

» B = [1 3; 2 4; 5 7]

B =
1 3
2 4
5 7

» A*B

ans =

22 KONTROL ALUR PROGRAM


20 32
44 74
68 116

 Pembagian Matriks
Terdapat dua macam pembagian matriks :
Pembagian kiri : x = A\B diartikan sebagai penyelesaian
A*x = B
Pembagian kanan : x = A/B diartikan sebagai x =
A*inv(B)

 Pemangkatan Matriks
Pemangkatan n matriks adalah perkalian matriks tersebut
n kali. Syarat pemangkatan matriks tentu saja adalah
bahwa matriks yang akan dipangkatkan harus bujur-
sangkar sehingga dapat dikalikan berulang-ulang.

 Operasi Elementer

Beberapa operasi khusus terhadap elemen vektor dan matriks


adalah :
 Perkalian/pembagian elemen vektor dan matriks
Perkalian elementer vektor dan matriks lain dengan
perkalian vektor dan matriks biasa. Perkalian elementer ini
adalah perkalian antara elemen-elemen dari dua vektor
atau matriks.

» A = [1 2 3];
» B = [4 5 6];
» A*B'
ans = 32

(perkalian vektor biasa)

» A.*B

KONTROL ALUR PROGRAM 23


ans =
4 10 18
(perkalian elementer)

» A./B
ans = 0.2500

0.4000 0.5000
(pembagian elementer)

 Pemangkatan elemen vektor dan matriks


Sama halnya dengan perkalian dan pembagian matriks,
pemangkatan elementer juga berlaku untuk setiap elemen
suatu vektor/matriks.

» A.^2

ans =

14
9 ( [1^2 2^2 3^2] )

» B.^A

ans =

4 25 216 ([4^1 5^26^3])

2.2.6 Operasi Vektor dan Matriks pada Fungsi


Operasi fungsional pada Matlab dapat diaplikasikan pada
vektor dan/atau matriks. Misalnya jika x = [1 2 3] dan y = x2 +
2x + 4, maka persamaan y(x) dapat dievaluasi secara vektor.

» x = [1 2 3];

» y = x.^2 + 2*x + 4

24 KONTROL ALUR PROGRAM


y =

7 12 19

Beberapa fungsi bawaan dapat juga diaplikasikan secara vektor


dan matriks misalnya sinus, cosinus, exponent, logatirma dan
lainnya.
Pemahaman tentang operasi pada vektor dan matriks ini akan
sangat membantu menyelesaikan masalah menggunakan
Matlab, karena beberapa kegiatan iteratif diganti dengan hanya
sebuah atau beberapa buah perintah Matlab. Sebagai ilustrasi,
simaklah contoh berikut ini :

Contoh 1.1 :
Untuk menentukan harga kapasitas panas suatu campuran gas
pada suatu temperatur biasanya digunakan persamaan
polinom kapasitas panas zat murni. Misalkan komposisi gas
adalah yi dan Cpi = Ai + BiT + CiT2 + DiT3 maka perhitungan
kapasitas panas campuran pada T = 300 K dapat dilakukan
dengan cara :

 cara pertama dengan pemrograman biasa :

% test1.m

Cp = [1.2 0.02 0.00323 0.000003233;


3.2 0.013 0.00466 0.000004345]

y = [0.4 0.6]

T = 300

Cpc = 0
for i=1:length(y)
Cpi = 0
for j=1:length(Cp)
Cpi = Cpi + Cp(i,j)*T^(j-1)
KONTROL ALUR PROGRAM 25
end;
Cpc = Cpc +
y(i)*Cpi end;
Cpc

test1

Cpc =

 cara kedua dengan perhitungan vektor/matriks :

% test2.m
2.3 RANGKUMAN
Cp = [1.2 0.02 0.00323 0.000003233;
 MATLAB memiliki empat kontruksi untuk
3.2 0.013 0.00466 0.000004345]; mengatur alur
program yang lebih sering terdapat dituliskan atau
y = [0.4 0.6];
dikodekan dalam M-file daripada diberikan langsunng
T = prompt
pada 300; MATLAB.

 Sejumlah
P = 0:3; prosedur yang % biasanya dikodekan
mendefinisikan iteratif
pangkat
% P = [0 1 2 3]
TT = T .* ones(1,4); % menghitung vektor
% TT = [300 300 300 300]
TT = TT.^P % menghitung TT = [300^0
% 300^1 300^2 300^3]
Cpc = y*(Cp*TT')

test2

Cpc =

26 KONTROL ALUR PROGRAM


(menggunakan perintah for) dapat dihilangkan dan diganti
dengan kode operasi matriks linier (tidak iteratif).
 Pemahaman penggunaan operasi-operasi vektor dan
matriks, selain akan mempercepat perhitungan, juga akan
mempermudah pengkodean program dan dokumentasi
program.

2.4 LATIHAN
Latihan1: Menghitung Entalpi Campuran Gas
Melalui cara yang telah dibahas di atas , hitunglah entalpi
suatu campuran gas CH4, H2O, H2, CO2, CO dengan komposisi
masing-masing sebesar 0.22, 0.12, 0.41, 0.13, 0.12 pada
temperatur 350 K. Data kapasitas panas dan entalpi
pembentukan masing-masing gas murni adalah sebagai berikut
:
Gas Hf A B C D E

CH4 -17.89 38.3870 -7.3664E-2 2.9098E-4 -2.6385E-7 8.0068E-11


H2 O -57.80 34.0471 -9.6506E-3 3.2998E-5 -2.0447E-8 4.3022E-12

H2 0.0 17.6386 6.7005E-2 -1.3148E-4 1.0588E-7 -2.9180E-11

CO2 -94.05 19.0223 7.9629E-2 -7.3707E-5 3.7457E-8 -8.1330E-12

CO -26.42 29.0063 2.4923E-3 -1.8644E-5 4.7989E-8 -2.8726E-11

Catatan : Hf dalam kkal/mol


Cp = A + BT + CT2 + DT3 + ET4 [J/mol.K] dan T
dalam K

Entalpi campuran gas dapat dihitung berdasarkan


persamaan :  
H   y(i) H  
T
Cp dT 
n

i1   To
i 
 f ,i

KONTROL ALUR PROGRAM 27


2.5 RUJUKAN
1) Dan Hanselman dan Bruce Littlefield, 1997. MATLAB:
Bahasa Komputasi dan Teknis. ANDI. Yogyakarta.
2) Himmelblau, D. M. 1999. Basic Principle and Calculation
in Chemical Engineering 6th ed. Prentice hall PTR. New
York.

28 KONTROL ALUR PROGRAM


BAB 3

VISUALISASI DATA DALAM MATLAB

3.1 PENDAHULAN

Pada bab ini akan dibahas berbagai metode visualisasi data


dalam MATLAB. Setelah menyelesaikan pokok bahasan bab ini
mahasiswa diharapkan mampu membuat berbagai jenis grafik.
Secara khusus mampu membuat grafik sederhana dua dimensi,
membuat multiplot dari grafik tiga dimensi dan menentukan
bentuk persamaan polinom dari sekumpulan data.
Materi ini sangat berkaitan dengan pengolahan dan visualisasi
data yang biasanya diperoleh mahasiswa dari hasil penelitan.
Data yang diperoleh tersebut biasanya dibuat model dan
simulasi hingga diperoleh visualisasinya, sehinga materi ini
akan membantu mahasiswa khususnya yang berkaitan
pengolahan data.

3.2 VISUALISASI GRAFIK

MATLAB menyediakan berbagai fungsi untuk menampilkan


data secara dua dimensi maupun tiga dimensi. Pada kasus

29
dimana Anda membuat grafik dalam tiga dimensi, Anda dapat
menggambar permukaan dan menempatkan bingkai pada grafik
tersebut. Warna digunakan untuk mewakili dimensi keempat.
Untuk lengkapnya akan dibahas berikut.

3.2.1 Pembuatan Grafik Sederhana

Perintah plot sering digunakan untuk menggambarkan grafik


dua dimensi. Perintah plot menggambarkan data dalam array
pada sumbu yang bersesuaian dan menghubungkan titik-titik
tersebut dengan garis lurus. Untuk keterangan lebih jelas
mengenai fungsi plot ketik help plot di command window.

Contoh 2.1. Data reaksi berikut telah diperoleh dari reaksi


peluruhan sederhana:
A→B
Menggunakan MATLAB untuk mengeplot konsentrasi
komponen A dalam mol/L terhadap waktu reaksi, dalam menit.
Waktu Konsentrasi
(Menit) (mole/L)
0 100
1 80
3 65
6 55
9 49
12 45
15 42
18 41
21 38
Penyelesaian :
Pertama, data harus dimasukkan ke dalam MATLAB sebagai
dua vektor. Vektor x dan y didefinisikan dalam Command
Window, diikuti dengan perintah untuk mengeplot data.
Gambar 3.1 di bawah menunjukkan cara penulisan.

30 VISUALISASI DATA DALAM MATLAB


Gambar 3.1 Penulisan peritah plot

Hasil grafik ditunjukkan Gambar 3.2 di bawah.

Gambar 3.2. Grafik hasil perintah Plot

Matrix baris ‘x’ (atau vektor) memiliki keluaran tampilan


menggunakan ‘;’ pada akhir baris. Syntax dapat digunakan
untuk menentukan judul dan labels, tetapi lebih mudah

VISUALISASI DATA DALAM MATLAB 31


menggunakan pendekatan berdasarkan GUI (Graphical User
Interface) untuk mengedit gambar.
 Pilih perintah ‘Edit Plot’ pada menu ‘Tools’ atau klick
kursor pada gambar.
 Double click pada ruang putih dalam grafik. Hal ini
memungkinkan untuk mengedit. Selanjutnya judul dan
aksis dapat disisipkan di bawah perintah ‘label’.
 Sekarang klick langsung pada garis, dan property editor
garis akan muncul.
 Selanjutnya warna garis, bentuk atau bentuk marker dapat
diedit. Kurva akhir ditunjukkan Gambar 3.3 di bawah.

Gambar 3.3 Hasil grafik akhir

Untuk menampilkan data statistik sederhana, ikuti


petunjuk. ‘Tools Data Statistics’ dan nilai minimum,
maximum, mean, median, standard deviation, and range x

32 VISUALISASI DATA DALAM MATLAB


and y akan tampil. Di dalam kotak ini setiap statistik dapat
ditambahkan ke kurva sebagai titik data/garis.
Anda dapat memilih sendiri style penandaan, warna dan
bentuk garis dengan memberikan argumen ketiga pada
fungsi plot untuk setiap pasangan array data. Argumen
tambahan ini adalah suatu karakter string yang terdiri dari
satu atau lebih karakter dari tabel di bawah ini:

Tabel 3.1 Karakterik dalam MATLAB


Simbol Warna Penandaan Simbol

b Biru . Titik
r Merah o Lingkaran
g Hijau x Tanda x
c Cyan + Tanda plus
Tanda
m Magenta *
bintang
y Kuning s Bujursangkar
k Hitam d Diamon
w Putih p pentagram
h heksagram

3.2.2 Grafik Multiple Plot

Function subplot digunakan untuk membuat suatu figure


yang dapat memuat lebih dari satu gambar. Perintah subplot
didefinisikan sebagai :
subplot(n,m,i)
Perintah tersebut membagi suatu figure menjadi suatu matriks
m x n, area grafik dan i berfungsi sebagai indeks penomoran
gambar. Subplot dinomori dari kiri ke kanan dimulai dari baris
teratas.

Contoh 2.2 Untuk memplot grafik atas dan bawah


>> income = [3.2 4.1 5.0 5.6];

VISUALISASI DATA DALAM MATLAB 33


outgo = [2.5 4.0 3.35 4.9];
subplot(2,1,1);
plot(income)
title('Income')
subplot(2,1,2);
Income
6

3
1 1.5 2 2.5 3 3.5 4

Outgo
5

2
1 1.5 2 2.5 3 3.5 4

3.2.3 Grafik Tiga Dimensi


(3D) Perintah menggambar
grafik 3D surf(x,y,z)
Misalkan: data berikut

x y z(x=1) z(x=2) z(x=3)


1 1 2 5 10
2 2 5 8 13
3 3 10 13 18
4 17 20 25

34 VISUALISASI DATA DALAM MATLAB


Syntax penulisan dalam MATLAB adalah:

>> x=[1 2 3]
x =
1 2 3
>> y=[1 2 3 4]
y =
1 2 3 4
>> z=[2 5 10;5 8 13;10 13 18;17 20 25]
z =
2 5 10
5 8 13
10 13 18
17 20 25

Perintah untuk manmpilkan grafik tiga dimensi :

>> surf(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
25

20

15
z

10

0
4

3 3
2.5
2
2
1 1 1.5
y
x

VISUALISASI DATA DALAM MATLAB 35


Untuk mempercantik tampilan dan mempermudah penafsiran
grafik dengan menambah legenda warna ketikkan perintah
berikut ini.

>> shading interp


>> colorbar

Apabila penafsiran grafik 3D seperti tercetak di muka masih


dirasakan sulit, MATLAB telah menyediakan perintah untuk
membuat grafik 3D menjadi grafik 2D.
Berikut syntax penulisan dalam MATLAB adalah:

>> pcolor(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> shading interp
>> colorbar

36 VISUALISASI DATA DALAM MATLAB


3.2.4 Menganalisis Sekumpulan Data Percobaan
Sekumpulan data pengukuran sebuah spesimen adalah sbb. :
67,5 65,7 68,4 65,3 69,1 66,2 68,3 63,1 67,3 71,0
69,9 68,3 66,4 65,7 70,1 64,9 69,6 67,9 66,5 68,4

Analisis data menggunakan Matlab :

> D = [67.5 65.7 68.4 65.3 66.2 68.3 63.1 67.3


69.1
71.0 ...
69.9 68.3 66.4 65.7 70.1 64.969.6 67.9 66.5 68.4]

D =

Columns 1 through 9

67.5000 65.7000 68.4000 65.3000 69.1000

66.2000 68.3000 63.1000 67.3000

VISUALISASI DATA DALAM MATLAB 37


Columns 10 through 18

38 VISUALISASI DATA DALAM MATLAB


71.0000 69.9000 68.3000 66.4000 65.7000

70.1000 64.9000 69.6000 67.9000

Columns 19 through 20

66.5000 68.4000

> max(D) % menentukan nilai maksimum

ans =

71

> min(D) % menentukan nilai minimum

ans =

63.1000

> mean(D) % menentukan nilai rata-rata

ans =

67.4800

> median(D) % menentukan nilai tengah

ans =

67.7000

> std(D) % menentukan standar deviasi

ans =

2.0023

> sort(D) % mengurutkan data

VISUALISASI DATA DALAM MATLAB 39


ans =

Columns 1 through 7

63.1000 64.9000 65.3000 65.7000 65.7000


66.2000 66.4000

Columns 8 through 14

66.5000 67.3000 67.5000 67.9000 68.3000


68.3000 68.4000

Columns 15 through 20

68.4000 69.1000 69.6000 69.9000 70.1000


71.0000

> sum(D) % menjumlahkan data

ans =

1.3496e+003

> prod(D) % mengalikan data

ans =

3.8006e+036

> cumsum(D) % menjumlahkan data secara


kumulatif ans =

1.0e+003 *

Columns 1 through 7

0.0675 0.1332 0.2016 0.2669 0.3360


0.4022 0.4705

Columns 8 through 14

40 VISUALISASI DATA DALAM MATLAB


0.5336 0.6009 0.6719 0.7418 0.8101
0.8765 0.9422

Columns 15 through 20
1.0123 1.0772 1.1468 1.2147 1.2812
1.3496

3.2.5 Menentukan Model Polinom Dari Sekumpulan Data


Percobaan
Dari suatu hasil pengukuran diperoleh data sbb.

x y
0 2.952383
0.2 6.209525
0.4 6.1624
0.6 5.465714
0.8 7.891386
1 8.181819
1.2 10.47825
1.4 16.69245
1.6 16.6094
1.8 23.76093
2 23.91732
2.2 29.41918
2.4 34.0725
2.6 43.34264
2.8 51.50684
3 57.81625

Menurut teori, data ini bersesuaian dengan model polinom orde


ketiga. Berikut langkah-langkah untuk mendapatkan model
tersebut

VISUALISASI DATA DALAM MATLAB 41


x
x =
Columns 1 through 7

0 0.2000 0.4000 0.6000 0.8000


1.0000 1.2000

Columns 8 through 14

1.4000 1.6000 1.8000 2.0000 2.2000


2.4000 2.6000

Columns 15 through 16

2.8000 3.0000

> y

y =
Columns 1 through 7

2.9524 6.2095 6.1624 5.4657 7.8914


8.1818 10.4782

Columns 8 through 14

16.6925 16.6094 23.7609 23.9173


29.4192 34.0725 43.3426

Columns 15 through 16

51.5068 57.8163

> polyfit(x,y,3)

P =
1.2851 1.1226 3.2621 3.9039 % koefisien
polinom orde-3

> yc = polyval(P,x)

42 VISUALISASI DATA DALAM MATLAB


yc =

Columns 1 through 7

3.9039 4.6115 5.47066.54297.8901


9.5738 11.6557

Columns 8 through 14

14.197517.2610 20.9077 25.1994


30.197835.9645 42.5613

Columns 15 through 16

50.049758.4916

Data Percobaan vs. Model Polinom Orde ke-3


60

50

40

30
y

20

10

0
0 0.5 1 1.5 2 2.5 3
x

VISUALISASI DATA DALAM MATLAB 43


3.2.6 Membuat Polinom dan Mencari Akar Polinom

Matlab memiliki fungsi-fungsi untuk membentuk polinom dari


akar-akarnya, dan sebaliknya, menentukan akar-akar polinom
dari sebuah polinom. Simaklah contoh berikut.
y = x3 + 2x2 + 3x + 4
penyelesaian dengan MATLAB adal berikut :

> P = [1 2 3 4]

P =
1 2 3 4

> poly(P)

ans =

1 -10 35 -50 24

> roots(ans)

ans =
4.0000
3.0000
2.0000
1.0000

Matlab juga dapat bekerja dengan bilangan kompleks.


Untuk akar-akar yang mengandung bilangan kompleks,
fungsi roots akan mengeluarkan jawaban berupa bilangan
kompleks.

> roots(
P) ans =
-1.6506
-0.1747 + 1.5469i
-0.1747 - 1.5469i

44 VISUALISASI DATA DALAM MATLAB


3.3 RANGKUMAN

 Perintah plot menciptakan grafik suatu vector atau kolom-


kolom matriks. Bentuk perintahnya adalah plot (x1, y1, x2, y2,
S2,…), dengan (xn, yn) adalah himpunan data dan Sn adalah
string tambahan yang menentukan warna, symbol
penanda- an, dan style garis
 Grid berfungsi sebagai toggle untuk titik tanda nilai sumbu
pada grafik

3.4 RUJUKAN
1) Dan Hanselman dan Bruce Littlefield, 1997. MATLAB:
Bahasa Komputasi dan Teknis. hal 180-210 dan 214-234.
Andi. Yogyakarta.
2) Constantinidis dan Mustoufi,1999, Numerical Methodes
for Chemical Engineers with MATLAB Application,
Prentice-Hall: Englewood Cfiffs, NJ

VISUALISASI DATA DALAM MATLAB 45


BAB 4

PERSAMAAN LINIER SIMULTAN

4.1 PENDAHULUAN

Pada bab ini akan dibahas tentang persamaan linier


simulatan, sehingga diharapakan mahasiswa akan mampu
menyelesaikan persamaan linier simultan yang muncul dari
permasalahan teknik kimia. Mahasiswa juga diharapkan mampu
menyusun suatu persamaan linier simultan dari peristiwa fisis
atau kimia dalam teknik kimia dan menyelesaikan persamaan
tersebut dengan MATLAB.
Topik ini sangat penting untuk dipelajari karena dalam
permasalahan penyusunan neraca massa dan energi sering
ditemukan persamaan yang mencerminkan perilaku dari sistem
berupa seperangkat persamaan linier simultan yang kompleks.
Untuk memperdalam pemahaman mahasiswa tentang topik
ini disarankan untuk membaca kembali buku rujukan yang
digunakan dalam buku ini.

46 VISUALISASI DATA DALAM MATLAB 45


4.2 MODEL MATEMATIS PERSAMAAN LINER
SIMULTAN

Analisis matematis dari sistem fisika-kimia yang linier


sering menghasilkan model yang terdiri dari seperangkat
persamaan aljabar linier. Selain itu, metode penyelesaian dari
sistem persamaan nonlinier dan persamaan diferensial meng-
gunakan teknik dari model linierisasi, sehingga membutuhkan
penyelesaian berulang dari seperangkat persamaan aljabar
linier. Masalah-masalah ini dapat berupa persamaan dengan
kompleksitas yang tinggi yaitu dari seperangkat yang terdiri
dari dua persamaan linear aljabar simultan sampai seperangkat
yang melibatkan 1.000 atau bahkan 10.000 persamaan.
Penyelesaian dari seperangkat dua sampai tiga persamaan
aljabar linear dapat diperoleh dengan mudah dengan metode
eliminasi aljabar atau dengan penerapan aturan Cramer.
Namun demikian, untuk sistem yang melibatkan lima
atau lebih persamaan, metode eliminasi aljabar menjadi
terlalu kompleks, dan aturan Cramer membutuhkan sejumlah
operasi aritmatika tingkat tinggi, terlalu besar bahkan untuk
saat ini dibutuhkan kecepatan komputer digital yang tinggi.
Dalam bagian ini, diberikan beberapa contoh dari sistem
yang menggambarkan aplikasi dari teknik kimia yang
menghasilkan seperangkat persamaan aljabar linier simultan.
Neraca massa dan energi adalah tools utama bagi insinyur
kimia. Neraca tersebut misalnya diterapkan pada proses
distilasi bertingkat atau multikomponen yang menghasilkan
seperangkat persamaan yang dapat berupa persaman diferensial
atau aljabar. Seringkali sistem yang dianalisis adalah persamaan
nonlinier, sehingga menghasilkan seperangkat persamaan
nonlinier. Namun, banyak prosedur telah dikembangkan
dengan linearisasi persamaan dan menerapkan teknik iteratif
konvergensi untuk sampai pada penyelesaian dari sistem

46 PERSAMAAN LINIER SIMULTAN


persamaan nonlinier. Sebuah contoh klasik dari penggunaan
teknik ini adalah dalam analisis kolom distilasi, seperti yang
ditunjukkan pada Gambar 4.1. Neraca massa steady state
diterapkan pada bagian rektifikasi kolom menghasilkan
persamaan berikut:

vji
Kondensor Total
loi

j =1
vji lj-1,i
j i
D
vj+1,i lji
j +1
vf-1,1
vFil j =f-1 j =f
Fi lf-1,i j
j +1
vji lj-1,i
vj+1,ilji

j =N-1
Reboiler parsial
bi B
j =N

Gambar 4.1 Kolom distilasi

Neraca massa sekitar kondensor:


V1y1i = Lo1xoi + D xDi (4.1)
Neraca massa di atas tahap j :
Vjyji = Lj-1xj-1 + D xDi (4.2)
PERSAMAAN LINIER SIMULTAN 47
Asumsi bahwa tahap bearada dalam kesetimbangan dan kolom
meggunakan kondensor total sehingga hubungan
kesetimbangan berikut berlaku:
yji = Kji xji (4.3)
persamaan (4.3) disubtitusikan ke persamaan (4.1) dan (4.2) dan
semuanya dibagi dengan D x i maka dihasilkan persamaan :
D

V1 y1i  L0 z jF F x 
(4.4)
1
D x1i D x1i 1

Vj y j  Lj1  Vj1 y j1,i 


   (4.5)
1
 D x
D x1i  K j1,i  1i 

Laju alir molal komponen tunggal didefinisikan sebagai:


vji = V1y1i (4.6)
di = D xDi (4.7)

untuk beberapa tahap j, rasio adsorpsi didefinisikan sebagai:

A1i  L
j
(4.8)
K jVj

dan untuk kondenser total :


A0i
L (4.9)
 D0

Subtitusi persamaan (4.6)-(4.8) ke persamaan (4.4) dan (4.5)


dihasilkan:
 v1i 
   A0i 1 (4.10)
 di 

48 PERSAMAAN LINIER SIMULTAN


 v1i   y j1,i 
   Aj1,i   1 (4.11)
d d
 i  i 

PERSAMAAN LINIER SIMULTAN 49


Untuk setiap perhitungan percobaan yang diberikan A
dianggap sebagai konstanta. Yang tidak diketahui dalam
persamaan di atas adalah kelompok vji/di. Jika hal ini
diganti dengan xji dan subskrip i, komponen menunjukkan
komponen i yang dijatuhkan, seperangkat persamaan berikut
dapat ditulis untuk kolom yang berisi lima tahap kesetimbangan
di atas tahap/plat umpan.

x1 = Ao + 1
-A1x1 + x2 =1
-A2x2+ x3 =1 (4.12)
-A3x3 + x4 + =1
-A4x4 + x5 + =1

Ini adalah seperangkat persamaan aljabar linier simultan. Ini


sebenarnya adalah seperangkat khusus yang hanya memiliki
persyaratan bukan nol pada diagonal dan satu elemen yang
berdekatan. Ini adalah satu set matrik bidiagonal.
Bentuk umum persamaan linier simultan adalah:
a11x1 + a12x2 + a13x3 + …. + a1nxn = c1
a21x1 + a22x2 + a23x3 + …. + a2nxn = c2
a31x1 + a32x2 + a33x3 + …. + a3nxn = c3
. . . . . .
disampin
. . . . . .
(4.13)
. . . . . .
an1x1 + an2x2 + an3x3 + …. + annxn = cn

di mana semua koefisien aij, dapat berupa nilai yang bukan nol.
Seperangkat persamaan ini biasanya sering dinyatakan dalam
vektor matrix dengan notasi sebagai berikut:
Ax=c (4.14)
dimana A adalah koefisien matriks.

50 PERSAMAAN LINIER SIMULTAN


𝑎11𝑎12 . . . 𝑎1𝑛
𝖥 1
I I
I 𝑎21𝑎22 . . . 𝑎2𝑛 I
𝐴= I (4.15)
I
I . . . . . . . I
I I
[ 𝑎𝑛1𝑎𝑛2 . . . 𝑎𝑛𝑛 ]

x adalah vektor dari variabel yang tidak diketahui nilainya

𝑥1
𝖥 1
I𝑥 I
2
I I
𝑥= . (4.16)
I I
I .I
I .I
[𝑥𝑛 ]

dan c adalah vektor konstanta


𝑐1
𝖥 1
I𝑐 I
2
I I
𝑐= . (4.17)
I . I
I I
I .I
[𝑐𝑛 ]

Ketika vektor c adalah vektor nol, maka seperangkat


persamaan di atas disebut homogen.

Di dalam MATLAB, jenis persamaan-persamaan di atas dapat


diselesaikan dengan menggunakan fasilitas yang sudah tersedia
yaitu operasi matrix.

PERSAMAAN LINIER SIMULTAN 51


Contoh 4.1 Mencari beberapa variabel persamaan linier
simultan
Diketahui sebuah sistem persamaan linier sbb. :
5x1  3x2  x3 5
x1  2x2  3x3  x4 
(4.1.1)
1
3x2  5x3  6x4  5
 x1  2x3  x4 0

Sistem persamaan linier ini dapat dinyatakan dalam bentuk


persamaan matriks :
5 3 1 0  x1  5 
    
1 2 3 1 x 1
  2     (4.1.2)
0 3  5 6  x 3   5
1 0 2  x 0
 1 4   
Penyelesaian pada MATLAB :

» A = [5 -3 1 0; 1 2 -3 1; 0 3 -5 6; -1 0 2 -
1] A =
5 -3 1 0
1 2 -3 1
0 3 -5 6
-1 0 2 -1

» b = [5 1 -5 0]
b =
5 1 -5 0

» x = A\
b' x =
1.3165
0.5823
0.1646
-0.9873
»
A*x
52 ans
PERSAMAAN LINIER SIMULTAN
1.0000
-5.0000
0

Contoh 4.2 : Neraca Massa Linier Rangkaian Proses.


Suatu bahan A akan dikonversikan menjadi B dalam sebuah
reaktor. Produk B keluar bersama reaktan A yang tidak
bereaksi menuju pemisah sehingga reaktan A dapat
dikembalikan ke reaktor. Skema proses tersebut ditunjukkan
pada Gambar 4.2 di bawah.

Gambar 4.2 Skema Rangkaian Proses

Produk berupa zat A murni dengan laju 100 kmol/jam. Kendala


proses adalah :
(1) 80 % dari A dan 40 % dari B di dalam alur 2 didaur-ulang.
(2) Perbandingan mol A terhadap B di dalam alur 1 adalah 5 : 1.

PERSAMAAN LINIER SIMULTAN 53


Penyelesaian:
Neraca massa Pencampur :
NA1 – NA3 = 100 (4.2.1)
NB1 – NB3 =0 (4.2.2)
Neraca massa reaktor :
- NA1 + NA2 + r =0 (4.2.3)
- NB1 – NB2 – r =0 (4.2.4)
(r = laju reaksi)
Neraca massa pemisah :
- NA2 + NA3 + NA4 =0 (4.2.5)
- NB2 + NB3 + NB4 =0 (4.2.6)
Kendala-kendala (constraints) :
 Porsi cabang :
0.8 NA2 + NA3 = 0 (4.2.7)
-0.4 NB2 + NB3 = 0 (4.2.8)
Hubungan komposisi alur :
NA1 – 5 NB1 =0(4.2.9)
Ada 9 persamaan linier dengan 9 variabel yang tak diketahui :
NA1, NB1, NA2, NB2, NA3, NB3, NA4, NB4, dan r.
Persamaan-persamaan di atas dapat dituliskan kembali dalam
bentuk matriks sebagai berikut :

1 0
0 0 1 0 0 0 0  NA1 100
 
0 1
0 N 
0 0 1 0 0  0 
0
   
A2

1 0 1 0 0 0 0 0 1  NA3   0 
0 1 0 1 0 0 0 0  N 0 (4.2.10)
 1 A4   
0 0 1 0 1 0 1 0 0  N A5    0 
0 0 0 1 0 1 0 1 0  N   0 
  A6   
0 0  0.8 1 0 0 0 0 N   0 
0
  A7   
0 0 0  0.4 1 0 0 0  NA8  0 
 0 
1 5
0 0 0 0 0 0 0 N   0 
  A9   

54 PERSAMAAN LINIER SIMULTAN


Script MATLAB dalam command window untuk menye-
lesaikan sistem persamaan ini adalah sebagai berikut:

PERSAMAAN LINIER SIMULTAN 55


%9x9 matriks A
A=[1 0 0 0 -1 0 0 0 0;0 1 0 0 0 -1 0 0 0;-1 0 1
0
0 0 0 0 1; 0 -1 0 1 0 0 0 0 -1;0 0 -1 0 1 0 1 0
0;0 0 0 -1 0 1 0 1 0; 0 0 -0.8 0 1 0 0 0 0;0 0
0 -0.4 0 1 0 0 0;1 -5 0 0 0 0 0 0 0];

%9x1 matriks B
b=[100 0 0 0 0 0 0 0 0]'

%penyelesaian neraca massa dengan


eliminasi Gauss
x = A\b

x =
227.272
7
45.4545
159.0909
113.6364
127.2727
45.4545
31.8182

Contoh 4.3 Sistem Distribusi Steam Pabrik Kimia


Gambar 4.3 di bawah merepresentasikan sistem distribusi
steam dalam suatu pabrik kimia (Himmelblau et al, 2012).
Neraca massa dan energi untuk sistem ini diberikan
sebagai berikut:
181,60 -x 3 –132,57 –x 4 – x5 = – y1 –y 2 +y 5 +y 4 = 5,1 (4.3.1a)

1,17 x3 –x 6 =0 (4.3.2a)

132,57– 0,745x7 = 61,2 (4.3.3a)

x5 +x 7 - x8 - x9 – x1 0 +x 1 5 = y 7 +y 8 - y3 =99, 1 (4.3.4a)

56 PERSAMAAN LINIER SIMULTAN


x8 + x9 + x10 + x11- x12 - x13 = -y7 = -8,4 (4.3.5a)
x6 -x15 = y6 - y5 =24,2 (4.3.6a)
-1,15(181,60) + x3 – x6 + x12 + x16 = 1,15y1 – y9 + 0,4 = -19,7 (4.3.7a)
181,60 – 4,594x12 - 0,11x16 = -y1 + 1,0235y9 + 2,45 = 35,05 (4.3.8a)

-0,0423(181,60) + x11 = 0,0423y1 = 2,88 (4.3.9a)

-0,016(181,60) + x4 = 0 (4.3.10a)

x8 - 0,147x16 = 0 (4.3.11a)
x5-0,07x14 = 0 (4.3.12a)

-0,0805(181,60) + x9 =0 (4.3.13a)

x12 – x14 + x16 = 0,4 – y9 = -97,9 (4.3.14a)

Terdapat empat level steam pada pabrik ini yaitu: 680, 215,
170, and 37 psia. Ke- 14 xi, i = 3, . . . , i = 16 tidak diketahui
nilainya dan yi adalah parameter yang diketahui untuk
sistem ini. Kedua xi dan yi memiliki satuan 1000 lb/jam.
Tentukan 14 paremeter xi yang tidak diketahui dari i = 3, ...,
i
= 16.

PERSAMAAN LINIER SIMULTAN 57


Gambar 4.3 Sistem distribusi steam

Penyelesaian:
14 persamaan ini menunjukan neraca disekitar 14 unit
operasi, yaitu:

Pers. (1) 680 psia header Pers. (8) Condensate quench drum
Pers. (2) Desuperheater Pers. (9) Blow down flash drum
Pers. (3) Alternator turbine Pers. (10) Boiler atomizing
Pers. (4) 170 psia header Pers. (11) Treated feedwater pump
Pers. (5) 37 psia header Pers. (12) Boiler feedwater pump
Pers. (6) 215 psia steam Pers. (13) Boiler fan
Pers. (7) BFW balance Pers. (14) Deaerator-quench.

58 PERSAMAAN LINIER SIMULTAN


Seperangkat persamaan yang dinyatakan dalam soal
disederhanakan menjadi seperangkat persamaan yang
mengandung 14 variabel yang tidak diketahui (x3 - x16).
x3 + x4 + x5 = 43,93 (4.3.1b)
1,17x 3 –x6 =0 (4.3.2b)
x7 = 95,798 (4.3.3b)
x5 +x 7 -x 8 - x9 –x 10 +x 15 = 99,1 (4.3.4b)
x8 + x9 + x10 + x11 - x12 - x13 = -8,4 (4.3.5b)
x6 -x 15 =24,2 (4.3.6b)
x3 –x6 + x12 + x16= 189,14 (4.3.7b)
4,594x12 + 0,11x16 = 146,55 (4.3.8b)
x11 = 10,56 (4.3.9b)
x4 = 2,9056 (4.3.10b)
x8 - 0,147x16= 0 (4.3.11b)
x5-0,07x14 = 0 (4.3.12b)
x9 = 14,6188 (4.3.13b)
x12 – x14 + x16 = -97,9 (4.3.14b)
Untuk kemudahan dalam pemrograman, kita rubah urutan
angka variabel sehigga x3 menjadi x1, x4 menjadi x2, dan
seterusnya.

x1+x2+x3 = 43,93 (4.3.1c)


1,17x1 –x4 =0 (4.3.2c)
x5 = 95,798 (4.3.3c)
x3 +x 5 -x 6 - x7 – x8 +x 1 3 = 99,1 (4.3.4c)
x6 + x7 + x8 + x9- x10 - x11 = -8,4 (4.3.5c)
x4 - x13 = 24,2 (4.3.6c)
x1 – x4 + x10 + x14 = 189,14 (4.3.7c)
4,594x10 + 0,11x14 = 146,55 (4.3.8c)
x9 = 10,56 (4.3.9c)
x2 = 2,9056 (4.3.10c)
x6 - 0,0147x14 = 0 (4.3.11c)
x3-0,07x12 = 0 (4.3.12c)

PERSAMAAN LINIER SIMULTAN 59


x7 = 14,6188 (4.3.13c)
x10 – x12 + x14 = -97,9 (4.3.14c)

Persamaan aljabar linier di atas dapat dinyatakan dengan:

Ax = c (4.3.15)

Dimana A adalah mariks bujur sangkar yang banyak


mengandung nilai nol. Srcipt penyelesaian dalam MATLAB
dpat dituliskan sebagai berikut:

(4.3.15)

P =[1 1 1 0 0 0 0 0 0 0 0 0 0 0;
1.17 0 0 -1 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 1 0 1 -1 -1 -1 0 0 0 0 1 0;
0 0 0 0 0 1 1 1 1 -1 -1 0 0 0;
0 0 0 1 0 0 0 0 0 0 0 0 -1 0;
1 0 0 -1 0 0 0 0 0 1 0 0 0 1;
0 0 0 0 0 0 0 0 0 4.594 0 0 0 0.11;
0 0 0 0 0 0 0 0 1 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0 -0.0147;
60 PERSAMAAN LINIER SIMULTAN
0 0 1 0 0 0 0 0 0 0 0 -0.07 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 1 0 -1 0 1];
Q =[43.93 0 95.798 99.1 -8.4 24.2 189.14
146.55 10.56 2.9056 0 0 14.6188 -97.9]';
S=P\Q
S=

20.6854
2.9056
20.3390
24.2020
95.7980
2.4211
14.6188
-0.0010
10.5600
27.957
8.0422
290.556
0.0020
164.6998

Berdasarkan hasil perhitungan di atas maka dapat


dituliskan nilai penyeesaian untuk x sampai
1 x 14

sebagai berikut :

x Nilai
x1 20.3390
x2 24 .2020
x3 95.7980
x4 2.4211
x5 14.6188
x6 2.4211
x7 14.6188

PERSAMAAN LINIER SIMULTAN 61


x Nilai
x8 0
x9 10.5600
x10 27.9567
x11 8.0422
x12 290.5565
x13 0.0020
x14 164.6998

Contoh 4.4 Kolom Absorpsi Enam Plat


Sebuah kolom absorpi enam plat/tray dioperasikan pada
keadaan steady state (Raramirez, 1998). Hubungan
kesetimbangan linier yang terjadi antara cairan (xm) dan uap
(ym) setiap plat dapat diasumsikan dengan persamaan:
ym = axm + b (4.4.1)
Komposisi umpan masuk ke kolom, xo dan y7
ditentukam bersama laju alir (mol/waktu) fasa cairan (L) dan
gas (G). Sistem ditunjukkan gambar di bawah.

Gambar 4.4. Kolom Absorpsi

62 PERSAMAAN LINIER SIMULTAN


Tentukan komposisi tray, jika diketahui:
a.
Cairan umpan adalah cairan murni (xo = 0) dan umpan gas
mengandung 0.2 kmol gas terlarut/kmol gas inert (y7 =
0.2).
b.
Cairan umpan adalah cairan murni (x0 = 0) dan y7 = 0.3.
Nilai : a = 0,72 ; L = 66,7 kgmol/menit
b=0 ; G = 40,8 kgmol/menit

Penyelesaian:
Untuk menyelesaikan soal di atas, neraca massa ditulis pada
tray representative, ke-n, yang ditunjukkan gambar di bawah.

Gambar 4.5. Tray tipikal

Penerapan neraca massa makroskopis diperoleh:


Rate of mass in  Rate mass out
of
L xn1 (4.4.2)
 G y n1  L  G yn
xn
Menggunakan hubungan kesetimbangan linier pada neraca
massa memberikan :
L xn1  G axn1  b  L xn  G a xn  (4.4.3)
atau b
(4.4.4)
L xn1 L  Ga xn  Gaxn1  0

Berikut seperangkat persamaan untuk kolom enam plat:

PERSAMAAN LINIER SIMULTAN 63


 L  Ga x1  Gax 2  Lx0
L x1  L  Ga x2  Gax 3  0
L x2  L  Ga x3  Gax 4  0
L x3  L  Ga x4  Gax 5  (4.4.5)
0
L x4  L  Ga x5  Gax 6  0

L x5 y7  b
 L  Ga  Ga
x6 a

 L  Ga Ga 
 x 1    Lx0 
 0 
x 
L  L  Ga Ga   2  
 L  L  Ga Ga 0 x  (4.4.5)
3  
     0 

L  L  Ga Ga x
   4
 L  L  Ga Ga     0 
  x 5  y b
 L  L  Ga x  Ga 7 
 6
 a
Persamaan matriks adalah : 

Ax (4.4.6)
b
Berikut script program penyelesaian soal di atas yang ditulis
dalam command window.
%baca parameter proses yang
diketahui a=0.72;
b=0;
L=66.7;%kgmol/menit
G=40.88;%kgmol/menit

%baca kondisi awal


x0=0;y7(1)=0.2;
y7(2)=0.3;
%baca matriks A dan B
A=zeros(6);%6x6 matriks berelemen nol
A(1,1)=-(L+G*a);%elemen matriks pada baris ke-
1
kolom ke-1
64 A(2,1)=L;
PERSAMAAN LINIER SIMULTAN

A(1,2)=G*a;
A(2,2)=-
(L+G*a);
A(4,3)=L;
A(3,4)=G*a;
A(4,4)=-
(L+G*a);
A(5,4)=L;
A(4,5)=G*a;
A(5,5)=-
(L+G*a);
A(6,5)=L;
A(5,6)=G*a;
A(6,6)=-
(L+G*a);

B1=zeros(6,1);%6x1 matriks berelemen nol


B1(1,1)=-L*x0;%elemen matriks pada baris
ke-1
kolom
ke-1 B1(6,1)=-
G*a*(y7(1)-b)/a;

B2=zeros(6,1);%6x1 matriks berelemen nol


B2(1,1)=-L*x0;%elemen matriks pada baris
ke-1 kolom ke-1
B2(6,1)=-G*a*(y7(2)-b)/a;

%penyelesaian komposisi tray dengan


eliminasi Gauss
x1=A\B1
x1 =
0.00
11
0.0038
0.0097
0.0230
0.0534
0.1221

x2=A\B2
x2 =

PERSAMAAN LINIER SIMULTAN 65


Contoh 4.5 Penyelesaian Persamaan Reaksi Kimia
dan Neraca Massa
Suatu reaksi kimia dijalankan dalam serangkaian empat reaktor
alir tangki berpengaduk (CSTR) yang disusun seperti gambar
di bawah.

1000 L/jam 100 L/jam


100 L/jam
CAO = 1 mol/L

V1 CA1 V2 CA2 V3 CA3 V4 CA4


k1 k2 k3 k4 1000 L/jam

CA1 CA2 CA3 CA4

Gambar 4.6. Rangkain Reaktor CSTR

Reaksi kimia adalah reaksi irreverible orde satu dengan


persamaan reaksi:
A → B
Kondisi temperatur dalam setiap reaktor sebagaimana nilai
konstanta laju reaksi ki berbeda di setiap reaktor. Volume setiap
reaktor, Vi juga berbeda. Nilai ki dan Vi diberikan pada tabel di
bawah. Berikut asumsi yang dapat digunakan untuk sistem
tersebut.
a) Sistem adalah steady state
b) Reaksi terjadi di fasa cair
c) Tidak ada perubahan volume atau densitas cairan
d) Laju pengurangan komponen A dalam setiap reaktor
dinyatakan dengan :
Ri = Vi ki CAi (mol/jam) (4.5.1)

66 PERSAMAAN LINIER SIMULTAN


Reaktor Vi (L) ki (jam-1)
1 1000 0,1
2 1500 0,2
3 100 0,4
4 500 0,3

Susunlah persamaan neraca massa untuk keempat reaktor dan


tentukan konsentrasi (CAi) yang keluar dari tiap reaktor.

Penyelesaian:
Neraca massa unsteady state untuk setiap reaktor adalah:
(4.5.2)
Karena sistem adalah steady state, maka laju akumulasi adalah
nol, neraca massa dapat disederhanakan menjadi:
Rate of input  Rate of output  Rate
of Reaction  0 (5.4.3)

Penyusunan neraca massa untuk setiap reaktor menghasilkan


persamaan:
1000CA0 - 1000CA1 - V1 k1CA1 = 0
1000CA1 +100CA3 - 1100CA2 -V2 k2CA2 = 0 (5.4.4)
1100CA2 +100CA4 - 1200CA3 - V3 k3CA3 = 0
1100CA3 - 1100CA4 – V4 k4CA4 = 0

Subtitusi nilai CA0, ki dan Vi diperoleh persamaan:


1100CA1  1000
1000CA1 1400CA2  100CA3 0
1100CA2 1240CA2  (4.4.5)
0
100CA4
1100CA3 1250CA4  0

PERSAMAAN LINIER SIMULTAN 67


Persamaan diatas disusun dalam matriks :
1100
C 1000
A1  (4.4.6)
 
1000  100 C   0 
1400
  A2    
 1100  1240 100 CA3   0 
1100     
1250 0
 CA4   

Penyelesaian persamaan dengan MATLAB adalah berikut:

%matriks A dan B
4.3 RANGKUMAN
A=[1100 0 0 0;1000 -1400 100 0;0 1100 -
1240
100;0 0 1100 -
 Persamaan
1250];
aljabar linier simultan dapat dinyatakan dalam
vektor matriks
B=[1000;0;0;0];
 Untuk
x=A dapat dinyatakan dalam bentuk vector/matrik
\B
jumlah variabel yang tidak diketahui harus sama
x =
dengan jumlah persamaan
0.9091
 Matriks yang terbentuk dari persamaan linier simultan
adalah matrik bujur sangkar
 Persaman aljabar linier simultan dapat diselesaiakan
dengan MATLAB menggunakan operasi matriks

4.4 RUJUKAN

1) Constantinidis dan Mustoufi. 1999. Numerical Methodes


for Chemical Engineers with MATLAB Application. hal
63-
69. Prentice-Hall: Englewood Cfiffs, NJ

68 PERSAMAAN LINIER SIMULTAN


2) Himmelblau, M. David and James B Riggs. 2012. Basic
Principles and Calculations in Chemical Engineering 8th Ed.
Prentice-Hall: NJ
3) Cutlip, M. B., Shacham, M. 1999. Problem Solving in
Chemical Engineering with Numerical Methods. Hal 15-16.
Prentice-Hall: Englewood Cfiffs, NJ.
4) Ramirez, W.F. 1998. Computational Methods in Process
Simulation. Hal: 54-56. Elsevier Science & Technology
Books.

PERSAMAAN LINIER SIMULTAN 69


BAB 5

PERSAMAAN NON-LINIER TUNGGAL

5.1 PENDAHULUAN

Materi ini membahas tentang persamaan non-linier satu


variabel. Setelah menyelesaikan bab ini diharapkan mahasiswa
akan mampu menyelesaikan persoalan dalam teknik kimia yang
dapat dinyatakan dengan persamaaan nonlinier. Secara khusus
mahasiswa diharapkan mampu menyusun peristiwa fisis dan
kimia dalam teknik kimia kedalam persamaan matematis yang
berbertuk nonlinier dan mampu menyelesaikannya dengan
fungsi MATLAB yaitu fzero.
Materi ini sangat penting mengingat banyak peristiwa
dalam bidang teknik kimia yang berkaitan dengan termodina-
mika memiliki bentuk persamaan nonlinier yang harus dipecah-
kan untuk proses evaluasi, optimasi dan perancangan. Sehingga
memahami dan menguasai materi dari bab ini akan membantu
mahasiswa dalam memecahkan persoalan perhitungan tentang
termodinamika dan lainnya yang berkaitan dengan persamaan
non linier.
Pendalaman materi tentang topik yang dibahas pada bab
ini dapat dibaca buku yang menjadi rujukan sebagaimana ditu-
liskan halamannya.
68
5.2 MODEL MATEMATIS PERSAMAAN NON
LINIER

Banyak persoalan dalam bidang teknik dan sains memerlu-


kan penyelesaian persamaan nonlinier. Beberapa contoh
masalah yang menggambarkan dari bidang teknik kimia dan
dari aplikasi bidang lain akan dibahas pada bagian ini. Metode
penyelesaian akan yang dikembangkan dalam bagian bab ini,
dan contoh-contoh spesifik penyelesaian akan didemonstrasikan
menggunakan perangkat lunak MATLAB.
Dalam termodinamika, hubungan tekanan-volume-suhu
gas nyata dinyatakan dengan persamaan keadaan (equation of
state). Ada beberapa persamaan semi teoritis atau empiris,
seperti Redlich-Kwong, Soave-Redlich-Kwong, dan persamaan
Benedicts-Webb-Rubin, yang telah digunakan secara luas
dalam teknik kimia. Sebagai contoh, persamaan keadaan Soave-
Redlich-Kwong yang memiliki bentuk:
a
RT  (5.1)
Pvb
v v  b
Dimana P, v dan T adalah tekanan, volume molar, dan suhu. R
adalah konstanta gas,  merupakan fungsi temperatur, a dan b
adalah konstanta yang spesifik untuk masing-masing gas.
Pers (5.1) adalah polinomial derajat tiga dalam V dan dapat
dengan mudah diatur kembali menjadi bentuk kanonik dari
polinomial, yaitu:
Z 3  Z 2  (A  B  B2 )Z  AB  0 (5.2)
dimana Z = P v/RT adalah faktor kompresibilitas, A = aP/R2T2
dan B = bP/RT.
Oleh karena itu, masalahnya adalah mencari volume spesifik
gas pada temperatur dan tekanan yang diberikan untuk
menemukan akar yang tepat dari persamaan polinomial.
Kasus lain, misalnya di dalam perhitungan pemisahan
multikomponen, sering diperlukan untuk memperkirakan rasio

PERSAMAAN NON-LINIER TUNGGAL 69


refluks minimum kolom distilasi multitahap. Suatu metode
telah dikembangkan oleh Underwood (1948) dan dijelaskan
secara detil oleh Treybal (1980), yakni persamaan berikut:
n  z
j jF F

  F  1  q  (5.3)
j
1
j  0

dimana F adalah alju alir molar umpan, n adalah jumlah kom-
ponen pada umpan, zjF adalah mol fraksi setiap komponen dalam
umpan, q adalah kualitas umpan αj adalah volatilitas relative
setiap komponen pada kondisi rata-rata kolom, dan  adalah
akar persamaan. Laju alir umpan, komposisi umpan, dan kuali-
tas biasanya diketahui, kondisi kolom rata-rata dapat
diperkirakan. Sehingga hanya yang tidak diketahui. Karena
persamaan ini adalah persamaan polynomial dalam dengan
derajat n, maka ada beberapa kemungkinan nilai  (akar) yang
cocok menyelesaiakn persamaan (5.3).
Semua persamaan non linier dapat dituliskan dalam
bentuk umum :

f(x) = 0 (5.4)

dimana x adalah variabel tunggal dapat yang dapat memiliki


akar banyak yang sesuai dengan persamaan ini. Fungsi f(x)
mungkin menganggap berbagai fungsi nonlinier mulai dari
persamaan polinomial yang kanonik berbentuk
f (x)  an xn  a n xn1 . ..  a x  a  (5.5)
1 0
1 o
ke persamaan transendental, yang melibatkan bentuk trigono-
metri, eksponensial, dan logaritmik. Akar fungsi ini dapat
berupa :
1) real dan jelas
2) real dan diulang
3) kompleks konjugat
4) kombinasi dari beberapa atau semua di atas
70 PERSAMAAN NON-LINIER TUNGGAL
Bagian real dari akar bisa positif, negatif, atau nol.

PERSAMAAN NON-LINIER TUNGGAL 71


MATLAB memiliki dua routin yang dapat menyelesaikan
fungsi pengenolan untuk satu variabel. fzero digunakan untuk
persamaan nonlinear umum, sementara roots dapat digunakan
jika persamaan nonlinear adalah polinomial.

5.1 fzero
Routine pertama yang kita gunakan adalah fzero. fzero menggu-
nakan kombinasi metode numeris interval bisection dan regula
falsi.
Syntax yang digunakan untuk menuliskan fzero adalah

z = fzero(‘function’,initial guess)

Untuk menggunakan fzero Anda harus terlebih dahulu menulis


m-file MATLAB untuk menghasilkan fungsi yang sedang
dievaluasi. Anggap suatu fungsi: f(x) = x2 - 2x – 3 = 0. m-file
MATLAB berikut untuk mengevaluasi fungsi ini (m-file
dinamankan fcnl.m):
function y=fcnl(x)
y=x^2-2*x-3;
Setelah menghasilkan m-file fncl.m, Anda harus menyediakan
tebakan awal untuk menyelesaikan routin fzero. Perintah
berikut memberikan tebakan awal x = 0.
y =fzero('fcnl',0)
MATLAB akan memberikan jawabannya:
y = 1
Untuk tebakan awal x = 2, Anda memasukkan:
z =fzero('fcnl',2)
dan MATLAB kembali memberikan jawaban:
z = 3
Kita temukan bahwa ada dua solusi untuk masalah yang sama
(kita dapat menggunakan rumus kuadratik untuk memperoleh-
nya). Solusi yang diperoleh tergantung pada tebakan awal.

72 PERSAMAAN NON-LINIER TUNGGAL


5.2roots

Kita juga bisa menggunakan routine MATLAB roots untuk


menemukan pengenolan suatu polynomial. Misal fungsi
polinomial:
x2-2x–3 = 0
Anda harus membuat vector koefisien polynomial dalam orde
yang berurutan
c = [1 -2 -3]
kemudian Anda dapat menuliskan perintah seperti berikut:
roots(c)
dan MATLAB akan menjawab:
ans:
3
-1

Ini adalah penyelesaian yang kita harapkan.

Berikut di bawah ini akan dijelaskan beberapa contoh


penyelesaian persamaan non linier tunggal secara umum dan
aplikasinya dalam teknik kimia.

Contoh 5.1 Mencari akar persamaan


Diketahui persamaan :

f(x) = x3 – 2x – 5,

akan dicari nilai x yang menyebabkan fungsi f(x) sama dengan


nol.

Penyelesaian:
Tulis dalam m-file :

function
Untuk mendapatkan nol mendekati 2, tuliskan :
y=f(x)

PERSAMAAN NON-LINIER TUNGGAL 73


z=fzero(‘f’,2
) z=
2.0946

Contoh 5.2 Mencari temperatur untuk suatu harga Cp


tertentu
Diketahui sebuah persamaan kapasitas panas sebagai berikut :
Cp  0.716  4.257 106 T 
15.04  kJ  dan T dalam K (5.2.1)
 
kg.K
T  
Akan ditentukan temperatur pada saat Cp = 1 kJ/kg.K. Untuk
itu, ubahlah persamaan di atas menjadi :
15.04
f (T )  1  0.716  4.257 106T   (5.2.2)
0 T

Penyelesaian :
Tahap 1 : membuat fungsi yang dapat mengevaluasi
persamaan (5.2.2)
function f=fungsi(T)
Apabila fungsi ini diplot (fplot(‘fungsi’,[100 300]) akan
%fungsi yang akan di-nol-kan.
diperoleh grafik sebagai berikut:
f = 1 - 0.716 + 4257E-6*T - 15.04/sqrt(T);
0.8

0.6

0.4

0.2

0
f

-0.2

-0.4

-0.6

-0.8
100 120 140 160 180 200 220 240 260 280 300
T (K)

Gambar 5.1. Grafik Cp terhadap suhu

74 PERSAMAAN NON-LINIER TUNGGAL


Untuk mendapatkan harga pembuat nol dari fungsi tersebut
digunakan fungsi fzero dengan tebakan awal 100 :
Diperoleh T = 189.7597 K pada saat Cp = 1 kJ/kg.K.
> fzero('fungsi',10
0) ans =
Contoh 5.3. Mencari volume spesifik gas
189.7597 n-butana
Tentukan volume spesifik butana pada 500 K dan 18 atm
menggunakan persamaan keadaan Redlich – Kwong :

RT a
p v  b  (5.3.1)
v v  b
 R 2T 2 
 RT 
a  0,42748 c  , b  0,08664 
 pc   pc 

dan Tr 1
T  , 0,5
(5.3.2)
r
Tc Tr

Penyelesaian :
Persamaan (5.3.1) dapat dituliskan :

v3 ( p) v2 (RT )  v (a  pb2  RTb )  ab  0 (5.3.3)

Untuk mendapatkan nilai v maka:


F(v) = 0 (5.3.4)

Langkah penyelesaian soal di atas adalah diatas adalah :

Tahap 1: Pertama kita perlu menyiapkan m-file yang akan


menghitung f(v), dengan tekanan, temperatur, dan properti
termodinamika yang diberikan. File ditunjukkan di bawah:
% menghitungg vol gas
butana function
y=specvol(v)

PERSAMAAN NON-LINIER TUNGGAL 75


% parameters for n-
butane Tc=425.2
pc=37.5
T=500
(2:27)
p=18
R=0.08206
Tr=T/Tc
alphaRK=1/(Tr)^0.
5
aRK=(0.42748*(R*Tc)^2/pc)*alphaRK

Fungsi ini dinamakan ‘specvol’, mendefinisikan masalah yang


akan diselesaiakan.
Tahap 2. Untuk menguji fungsi ‘specvol’ kita keluarkan juga
perintah di commands window:
Fungsifeval(‘specvol’,0.2)
feval menyebabkan MATLAB menghitung nilai y
menggunakan m-file yang diberi nama specvol ketika v = 0.2.
ans=specvol(0.2)
Output yang kita peroleh adalah:
Kita harus memeriksa hasil ini baris demi baris, khususnya
Tc=425.2000
perhitungan untuk aRK, bRK, and y.
pc=37.5000
TahapT=5003. Ketika kita menggunakan fzero, fungsi specvol akan
p=18
dievaluasi untuk variasi v.
(2:29)
Oleh karena itu, terlihat tidak nyaman jika konstanta
R=0.08206
ditampilkan pada layar untuk setiap iterasi. Untuk menghindari
aRK=13.878
hal tersebut,
2 kita rubah fungsi specvol dengan menambahkan
aRK=12.798

76 PERSAMAAN NON-LINIER TUNGGAL


titik koma ‘ ; ’ pada setiap baris. Lakukan hal ini dan simpan
save m-file, specvol.
Tahap 4. Selanjutnya, kita keluarkan perintah pada command
window:
Dalamv =feval, 0.2 adalah nilai v yang digunakan dalam
perhitungan, dimana dengan fzero,
fzero(‘specvol’,0.2) v v adalah nilai tebakan awal.
Untuk mengeceknya, kita dapat mengevaluasi fungsi untuk
menemukan seberapa dekat dengan nol f(v).
>> ans =
Tentu kita berharap ans
specvol(v) ini adalah nol (atau sangat dekat dengan
nol) karena kita berharap MATLAB bekerja dengan baik.
Jika MATLAB tidak menemukan jawaban, MATLAB akan
memberitahu kita.

Contoh 5.4. Pemisahan Campuran dengan Flash Drum


Pada Tabel 5.1 di bawah diberikan data untuk empat komponen
hidrokarbon. Di dalamya adalah daftar konstanta A, B, dan C
untuk persamaan Antoine.
log
P* A  (5.4.1)
Bi

10 i i
Ci  T
Tabel 5.1 Konstanta Antoine
Etilen (1) Etana (2) Propana (3) n-butana (4)
A 3,86690 3,93264 3,97721 3,84431
B 584,146 659,739 819,296 909,65
C -18,307 -16,719 -24,417 -36,146
z 0,10 0,30 0,40 0,20

dimana:
Pi* = tekanan uap komponen i (atm)
T = temperatur (K)
Ai, Bi, Ci = konstanta Antoine

PERSAMAAN NON-LINIER TUNGGAL 77


F adalah laju umpan molar, dan z adalah mol fraksi masing-
masing komponen dalam umpan, V adalah laju alir molar uap,
dan y adalah mol fraksi setiap komponen dalam uap, L adalah
laju alir molar cairan dan x adalah fraksi mol setiap komponen
dalam cairan.
Ingin dicari fraksi campuran dalam fasa uap ketika campuran
umpan di-flash pada suhu 60oC dan tekanan 40 atm.

V, yi

Flash drum

F, zi
valve

L, xi

Gambar 5.2. Diagram skematik flash drum

Penyelesaian :
Asumsi campuran ideal (dimana berlaku hukum Raoult) ,
berlaku persamaan kesetimbangan berikut:
yi Pi*
K   ;i  1, 2,, n (5.4.2)
i c
xi P
Dimana ki adalah konstanta kesetimbangan untuk komponen i,
P adalah tekanan total dan nc jumlah komponen.
Persamaan neraca massa untuk flash drum selanjutya dapat
dituliskan berikut:

78 PERSAMAAN NON-LINIER TUNGGAL


F LV
zi F  xi L  yiV ;i  1, 2,, nc (5.4.3)
nc nc

 x =  yi
i1
i
i1
1

Misalkan α = V/F, adalah fraksi umpan yang diflash ke


fasa uap.
Persamaan ini dapat dimodifikasi ke dalam persamaan non
linier tunggal dalam fungsi α .
f      y  x  zi 1  K i
 n
n
(5.4.4)

i i
i1 i1 1   K i 1
Setelah α diperoleh, fraksi mol cairan dan uap dapat diperoleh
dari persamaan :
xi  zi
1  (5.4.5)
Ki 1
yi  Ki xi
Berikut program MATLAB file flash_calculation.m untuk kasus di
atas.

function flash_calculation
clear, clc, format short g, format compact global z1 z2 z3 z4
aguess = 0.5 ; z1=0.1;z2=0.3;z3=0.4;z4=0.2;
disp('Nilai variabel pada tebakan awal');
disp(['Nilai alpha tebakan: ' num2str(aguess) ', Fungsi nilai : ' num2str(flash(aguess)
asolv=fzero(@flash,aguess); %fungsi untuk mencari nilai alpha Pt =40;% dalam satuan atm
T = 60+273;% dalam satuan K
P1 = 10^(3.86690-(584.146/(-18.307+T)));
P2 = 10^(3.93264-(659.739/(-16.719+T)));
P3 = 10^(3.97721-(819.296/(-24.417+T)));
P4 = 10^(3.84431-(909.65/(-36.146+T))); K1 = P1/Pt; K2=P2/Pt; K3=P3/Pt; K4=P4/Pt;
x1 = (z1/(1+asolv*(K1-1)));
x2 = (z2/(1+asolv*(K2-1)));
x3 = (z3/(1+asolv*(K3-1)));
x4 = (z4/(1+asolv*(K4-1)));
y1 = K1*x1; y2 = K2*x2; y3 = K3*x3; y4 = K4*x4;
%Menampilkan hasil akhir alpha disp('Nilai variabel pada penyelesaian');
disp(['Nilai alpha: ' num2str(asolv) ', Fungsi nilai alpha: ' num2str(flash(asolv))]);
%menampilkan hasil perhitungan komposisi setiap komponen
disp('') disp(' Component Ethylene Ethane Propane n-Butane '); disp('') disp([' F

PERSAMAAN NON-LINIER TUNGGAL 79


' num2str(z3) ' disp(['
' num2str(z4)]);
Vapor num2str(y3)
' num2str(y1)
' disp(['
' Liquid num2str(x3) '
' num2str(y4)]); ' num2str(y2) ''
' num2str(x1) ' ' num2str(x4)]);
' num2str(x2) ' '

disp('')
% function falpha = flash(alpha)
global z1 z2 z3 z4 Pt=40;% dalam satuan atm T=60+273;% dalam satuan K
P1 = 10^(3.86690-(584.146/(-18.307+T)));
P2 = 10^(3.93264-(659.739/(-16.719+T)));
P3 = 10^(3.97721-(819.296/(-24.417+T)));
P4 = 10^(3.84431-(909.65/(-36.146+T))); K1 = P1/Pt; K2=P2/Pt; K3=P3/Pt; K4=P4/P
x1 = (z1/(1+alpha*(K1-1)));
x2 = (z2/(1+alpha*(K2-1)));
x3 = (z3/(1+alpha*(K3-1)));
x4 = (z4/(1+alpha*(K4-1)));
y1 = K1*x1; y2 = K2*x2; y3 = K3*x3; y4 = K4*x4; falpha = x1*(1-K1)+x2*(1-K2)+x3

Hasil Running:
Nilai variabel pada tebakan awal
Nilai alpha tebakan: 0.5, Fungsi nilai : 0.2921 Nilai variabel pada penyele
Nilai alpha: 0.036447, Fungsi nilai alpha: -2.7756e-017 ComponentEthyleneEt

Feed 0.1 0.3 0.4 0.2


Vapor 0.24241 0.51282 0.21368 0.031091
Liquid 0.094613 0.29195 0.40705 0.20639

Contoh 5.5. Mencari volume spesifik gas dengan


persamaanVan der Wall
Diketahui persamaan Van Der Waals sebagai berikut:

P a v  b 
 (5.5.1)
 RT

v
2

2 2
a  27 R c  (5.5.2)
64  Pc  RT
b c
80 PERSAMAAN NON-LINIER TUNGGAL
8Pc

(5.5.3)

PERSAMAAN NON-LINIER TUNGGAL 81


Dimana : v = volum molar, L/mol
T = suhu, K
R = konstanta gas universal = 0,08206
atm.L/mol.K
Tc = suhu kritis, K (405,5 K untuk Amonia)
Pc = tekanan kritis, atm (111,3 atm untuk
Amonia)

Diketahui : Tekanan reduksi


P
P 
r
P
c

(5.5.4) di
Faktor kompresibilitas sampin
Pv (5.5.5)
Z  RT
(a) Hitung volum molar dan faktor kompresibilitas untuk gas
amonia pada P = 56 atm dan suhu = 450 K dengan
menggunakan persamaan keadaan Van Der Waals?
(b) Ulangi perhitungan untuk tekanan reduksi berikut : Pr =
1, 2, 4, 10, dan 20 !
(c) Bagaimana hubungan antara faktor kompresibilitas dan
tekanan reduksi (gambarkan dalam sebuah grafik) ?

Penyelesaian :
Persamaan (5.4.1) perlu disusun kembali sehingga menjadi
bentuk :

Untuk mendapatkan nilai v maka:


F(v) = 0 (5.5.6)
Berikut penulisan program untuk penyelesaian soal di atas.

% Program Utama : Contoh_55.m


clear all % Membersihkan memory
global P a b R T % Mendefinisikan variabel2 ini sebagai

% variabel global sehingga dapat terbaca oleh

82 PERSAMAAN NON-LINIER TUNGGAL


% Sub_ProgramVol_Mol.m
% Memasukkan konstanta2 & parameter keadaan
Pc = 111.3; % Tekanan kritis dlm atm
Tc = 405.5; % Suhu kritis dlm K
R = 0.08206; % Konstanta gas dlm atm.L/mol.K
T = 450; % dlm K
P = 56; % dlm atm

% Konstanta Van Der Waals


a = 27/64*R^2*Tc^2/Pc;
b = R*Tc/(8*Pc);

volguess = R*T/P; % Memperkirakan nilai volum molar dengan


% persamaan gas ideal

vol = fzero ('Vol_Mol', volguess); % Menghitung volum molar


Z = P*vol/(R*T); % Menghitung faktor
% kompresibilitas

disp('Pada suhu (K) = ');T


disp('dan tekanan (atm) = ');P
disp('Diperoleh volum molar (L) = ');vol
disp('Dan faktor kompresibilitas = ');Z

% Nilai dari berbagai tekanan reduksi disimpan dalam bentuk vektor


Pred = [1 2 4 10 20];
% Perulangan perhitungan dengan mem-variasi tekanan
for k = 1 : 5
P = Pc*Pred(k);
volguess = R*T/P;
vol = fzero ('Vol_Mol',volguess);
Z = P*vol/(R*T);
result(k,1) = Pred(k);
result(k,2) = vol;
result(k,3) = P*vol/(R*T);
end
disp('Diperoleh vol molar dan faktor Z utk berbagai Pred sbb :')
disp(' ')
disp('===================================')
disp(' Pred Molar Vol faktor Z ')
disp('===================================')
disp(result)
disp('===================================')

plot(result(:,1),result(:,3),'or-')
title('Grafik Hubungan Faktor Kompresibilitas Terhadap Tekanan

PERSAMAAN NON-LINIER TUNGGAL 83


Reduksi')
xlabel('Tekanan Reduksi, Pr') ylabel('Faktor Kompresibilitas, Z')

% Sub-Program: Vol_Mol.m function y = Vol_Mol(vol) global P a b R T


y = P*vol^3-(P*b+R*T)*vol^2+a*vol-a*b;

Hasil Program

>> Contoh_55 Pada suhu (K) T =


450 =
dan tekanan (atm) P =
56
Diperoleh volum molar (L) vol =
0.5749 =

Dan faktor kompresibilitas = Z =


0.8718
Diperoleh vol molar dan faktor Z utk berbagai Pred sbb :

===================================
PredMolar Vol faktor Z
===================================

1.0000 0.2335 0.7038


2.0000 0.0773 0.4658
4.0000 0.0607 0.7313
10.0000 0.0509 1.5334
20.0000 0.0462 2.7835
===================================

84 PERSAMAAN NON-LINIER TUNGGAL


Grafik Hubungan Faktor Kompresibilitas Terhadap Tekanan Reduksi
3

2.5

2
Faktor Kompresibilitas,

1.5

0.5

0
0 2 4 68101214161820
Tekanan Reduksi, Pr

Gambar 5.2. Grafik kompresibilitas dan tekanan reduksi

Contoh 5.6. Perhitungan laju Alir (Flow Rate) dalam suatu


Pipa
Gambar di bawah menunjukkan suatu pipa yang megiriman air
pada suhu konstan T = 60oC dari titik 1 dimana tekanan
P1
=150 psig dan elevasi adalah z1= 0 ft ke titik 2 dimana tekanan
adalah atmosferik dan elevasi z = 300 ft. 2

2 P = P2
z = z2

1 P = P1 z =z1

Gambar 5.3. Grafik sistem perpipaan fluida

PERSAMAAN NON-LINIER TUNGGAL 85


Hitung kecepatan aliran dan laju alir untuk pipa dengan
panjang efektif L = 500, 1000, 10000 ft dan dibuat diameter
nominal 4,5,6 dan 8 in dengan schedule 40 pipa baja komersial.
Buatkan grafik kecepatan aliran, v vs D dan L juga grafik laju
alir, q vs D dan L.

Penyelesaian :
Persamaan neraca energi mekanis pada cairan incompresible
(tak mampu mampat) yang dapat diterapkan untuk kasus ini
adalah:
1 f Lv2
 v2 gc P (5.6.1)
 g z 0
 2 D 
F
2

Dimana v adalah kecepatan aliran dalam ft/s, g adalah
perccepatan gravitasi diberikan dengan g = 32,174 ft/s2, ∆z =z2 - z1
adalah perbedaan elevasi (ft), gc adalah faktor konversi
(dalam satuan British gc = 32,174 ft.lbm/lbf.s2), ∆P = P2 - P1 adalah
perbedaan tekanan (lbm/ft2), ρ adalah densitas fluida (untuk air
pada T = 60oF, ρ = 62,3 lbm/ft3), fF adalah faktor
gesekan Fanning, L adalah panjang pipa (ft) dan D adalah
diameter dalam pipa (ft). Untuk menggunakan metode
Successive Subtitution persamaan di atas harus dituliskan
kembali: g z  gc P

0,5  2 f F L (5.6.2)
v
D

Persamaan yang digunakan untuk menghitung faktor gesekan


Fanning tergantung pada regim aliran. Regim aliran ditentukan
oleh bilangan Reynold, Re. Bilangan Reynold adalah bilangan
tak berdimensi Re = vρD/µ dimana µ adalah viskotitas (untuk air
pada T = 60oF, µ = 0.76 x 10-3 lbm/ft.s). Untuk aliran laminar
(Re < 2100) faktor gesekan Fanning dapat dihitung dari
persamaan :
86 PERSAMAAN NON-LINIER TUNGGAL
16 (5.6.3)
fF 

Re

PERSAMAAN NON-LINIER TUNGGAL 87


Untuk liran turbulen (Re > 2100) dapan digunakan persamaan
:

fF 1
 (5.6.4)
 / D 5,02   / 5,022
D   
16 log   log 3,
7 Re
3,7 
Re
   

Berikut program MATLAB untuk kasus di atas.

File flowvelocity.m untuk mengeksekusi persamaan utama.


function flowvelocity
clear, clc, format short g, format compact
D_list=[4.026/12 5.047/12 6.065/12 7.981/12];% Inside diameter of pipe
(ft)
T = 60; %Temperature (deg. F)
for i = 1:4
D = D_list(i);
j=0;
for L=500:500:10000
j = j+1;
L_list(j)=L; % Effective length of pipe (ft)
[v(j,i),fval]=fzero(@NLEfun,[1 20],[],D,L,T);
if abs(fval)>1e-10
disp([' No Convergence for L = ' num2str(L) ' and D = '
num2str(D)]);
end
q(j,i) = v(j,i) * pi * D ^ 2 / 4* 7.481 * 60; %Flow rate (gpm)
end
end
disp(' Flow Velocity (ft/s) versus Pipe Length and
Diameter');
disp(' Tabular Results');
disp('');
disp(' L\D D=4" D=5" D=6" D=8"');
Res=[L_list' v];
disp(Res);
plot(L_list,v(:,1),'',L_list,v(:,2),'+',L_list,v(:,3),'*',L_list,v(:
,4),'x');
legend(' D=4"',' D=5"',' D=6"',' D=8"');
title(' Flow Velocity')
xlabel('Pipe Length (ft)');
ylabel('Velocity (ft/s)');
pause
disp(' Flow Rate (gpm) versus Pipe Length and Diameter');
disp(' Tabular Results');
disp('');
disp(' L\D D=4" D=5" D=6" D=8"');
Res=[L_list' q(:,1) q(:,2) q(:,3) q(:,4)];
disp(Res);
plot(L_list,q(:,1),'-
',L_list,q(:,2),'+',L_list,q(:,3),'*',L_list,q(:,4),'x');
legend(' D=4"',' D=5"',' D=6"',' D=8"');
title(' Flow rate')
xlabel('Pipe Length (ft)');

88 PERSAMAAN NON-LINIER TUNGGAL


ylabel('Flow rate (gpm)');

PERSAMAAN NON-LINIER TUNGGAL 89


File NLEfun sebagai persamaan utama.

function fv = NLEfun(v,D,L,T)
epsilon = 0.00015;%Surface rougness of the pipe (ft)
Hasilrho
perhitungan pada
= 62.122 + T command
* (0.0122 + T * window:
(-0.000154 + T * (0.000000265 - (T
*
0.000000000224)))); %Fluid density (lb/cu.
ft.) deltaz = 300; %Elevation difference
Flow Velocity (ft/s) versus Pipe Length and Diameter
(ft) deltaP = -150; %Pressure difference
(psi) Tabular Results
vis = exp(-11.0318 + 1057.51 / (T + 214.624)); %Fluid
viscosity (lbm/ft-s)
L\D %TheD=4"
pi = 3.1416; constant piD=5" D=6" D=8"
eoD = epsilon / D; %Pipe roughness to diameter ratio
(dimensionless)
500 Re
10.773 = D * v * rho
12.516 / vis; %Reynolds
14.15 number
17.035
(dimesionless)
if (Re < 2100) %Fanning friction factor
1000 7.4207
(dimensionless) 8.6048
fF = 16 / Re; 9.7032 11.613
else
1500
fF 5.9721
= 1 / (16 6.9243
* log10(eoD 7.8051
/ 3.7 - (5.02 9.3295
* log10(eoD / 3.7 + 14.5

2000 5.1188 5.9361 6.6912 7.9953

2500 4.5409 5.2674 5.9382 7.0953

3000 4.1168 4.7769 5.3861 6.4362

3500 3.7888 4.3975 4.9592 5.927

4000 3.5255 4.093 4.6166 5.5185

4500 3.3082 3.8416 4.3338 5.1815

5000 3.1249 3.6297 4.0953 4.8973

5500 2.9677 3.4478 3.8907 4.6535

6000 2.8309 3.2896 3.7128 4.4415

6500 2.7106 3.1504 3.5561 4.2548

7000 2.6036 3.0266 3.4169 4.0889

7500 2.5077 2.9156 3.292 3.9402

90 PERSAMAAN NON-LINIER TUNGGAL


8000 2.4211 2.8154 3.1793 3.8059

8500 2.3424 2.7244 3.0769 3.6838

9000 2.2706 2.6412 2.9832 3.5723

9500 2.2046 2.5648 2.8972 3.4698

10000 2.1437 2.4943 2.8179 3.3752

Grafik yang dihasilkan:

18 Flow Velocity
D=4" D=5" D=6"
D=8"
16

14

12
Velocity

10

2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Pipe Length (ft)

Gambar 5.5 Grafik hasil perhitungan

5.3 RANGKUMAN

 Banyak peristiwa fisis dan kimia yang memiliki model


persamaan berupa persamaan nonlinier
 Persamaan nonlinear polynomial akan memiliki akar
persamaan untuk memenuhi penyelesaian persaman yang
sesuai

PERSAMAAN NON-LINIER TUNGGAL 91


 Penyelesaian persamaan non linier tunggal dengan
MATLAB menggunakan fungsi fzero akan diperoleh satu
nilai yang memberikan penyelesaian yang tepat.
 Penyelesaian persamaan non linier tunggal dengan
MATLAB menggunakan fungsi roots akan diperoleh akar-
akar yang memberikan penyelesaian yang tepat.

5.4 RUJUKAN

1) Constantinidis and Mustoufi,1999, Numerical Methodes


for Chemical Engineers with MATLAB Application, hal
1-
4. Prentice-Hall: Englewood Cfiffs, NJ.
2) Finlayson, B.A., 2006, Introduction to Chemical
Engineering Computing, hal 5-15. John Wiley & Sons
Inc., New Jersey
3) Ramirez, W.F. 1998. Computational Methods in Process
Simulation. Hal: 54-56. Elsevier Science & Technology
Books.
4) Sandler, S. I., 2006.Chemical, Biochemical, and
Engineering Thermodynamics,4th.ed. John Wiley.
NewYork.

92 PERSAMAAN NON-LINIER TUNGGAL


BAB 6

PERSAMAAN NON-LINIER SIMULTAN

6.1 PENDAHULUAN

Materi ini membahas tentang persamaan non-linier


multivariabel. Setelah menyelesaikan bab ini diharapkan
mahasiswa akan mampu menyelesaikan persoalan dalam teknik
kimia yang dapat dinyatakan dengan persamaaan non-linier
multivariabel. Secara khusus mahasiswa diharapkan mampu
menyusun peristiwa fisis dan kimia dalam teknik kimia ke
dalam persamaan matematis yang berbentuk nonlinier dan
mampu menyelesaikannya dengan fungsi MATLAB yaitu
fsolve,
Materi ini sangat penting, mengingat banyak peristiwa
dalam bidang teknik kimia yang berkaitan dengan
termodinamika dan bidang lainnya memiliki bentuk persamaan
non-linier yang harus dipecahkan untuk keperluan proses
evaluasi, optimasi dan perancangan. Oleh karena itu,
memahami dan menguasai materi dari bab ini akan membantu
mahasiswa dalam memecahkan persoalan perhitungan tentang
termodinamika (bubble point, dew point dan perhitungan
isothermal flash untuk campuran multikomponen non-ideal,
perhitungan adiabatic flash untuk campuran multikomponen),
89
distribusi aliran dalam jaringan pipa, perhitungan
kesetimbangan kimia kompleks dan kasus lainnya yang
berkaitan dengan persamaan non linier. Pendalaman materi
tentang topik yang dibahas pada bab ini dapat dibaca buku
yang menjadi rujukan sebagaimana dituliskan halamannya.

6.2 PERSAMAAN NON LINIER MULTIVARIABEL

Pada bab 5 telah dibahas tentang penyelesaian persamaan


non-linier variabel tunggal. Selanjutnya pada bab ini akan
dibahas persamaan nonlier multivariabel atau simultan. Banyak
persoalan dalam bidang teknik kimia memerlukan penyelesaian
persamaan non-linier.
Sebagai contoh, misalkan suatu reaktor continuous stirred-
tank reactor (CSTR), dioperasikan secara isotermal dimana
perubahan volum akibat reaksi diabaikan, dalam mode overflow
dengan volume fluida konstan, dan dengan dua reaksi kimia
(diasumsikan elementer) seperti gambar 6.1 di bawah.

masuk
Cj,in

keluar
Cj

Gambar 6.1. CSTR dengan dua reaksi kimia


A+B → r kC C R1 1 A B

rR2  k1CCCB (6.1)


CC+B→D
Dalam CSTR, kita berasumsi bahwa reaktor bercampur secara
sempurna sehingga konsentrasi komponen setiap bagian
dalam reaktor dianggap seragam. Artinya, setiap titik dalam
reaktor memiliki konsentrasi yang sama untuk setiap
komponen, maka disusun seperangkat persamaan neraca
90 PERSAMAAN NON-LINIER SIMULTAN
massa:

PERSAMAAN NON-LINIER SIMULTAN 91


d
V CA
dt   A,in    V  k A CB 
C CA C
d
V C B 1
dt   B,in    V  k A CB  k 2 C C C B  (6.2)
C CB C

d
V CC 1
dt   C ,i    V  k A CB  k 2 C C C B 
C n CC C
d
V C D
dt   D,in    V k C C 
C CD
2 C B

υ adalah laju alir volumetrik aliran umpan dan keluaran, V


adalah volume tetap reaktor, Cj adalah konsentrasi spesies j
dalam reaktor (dan pada aliran keluaran), Cj,in adalah konsentrasi
spesies j di aliran masuk dan k1, k2 adalah konstanta laju reaksi
kimia dari masing-masing reaksi. Pada keadaan steady state,
derivatif waktu di sebelah kiri pada persamaan (6.2) adalah nol,
dan konsentrasi setiap spesies dalam reaktor memenuhi
seperangkat dari empat persamaan aljabar nonlinier. Untuk
mendapatkan persamaan ini dalam bentuk standar, kita
definisikan variabel yang tidak diketahui sebagai:
x = CA1 x =CB x3 = CC
2 x 4 = CD (6.3)
untuk memperoleh sistem persamaan aljabar.
  C  x   V  k x x  = 0
A,in 1 1 1 2
 C x   V  k x k x x = 0 (6.4)
x
B,in 2 1 1 2 2 3 2

 C x  V  k x k x x =0
x
C,in C 1 1 2 2 3 4

  CD,in  x4  V k x3  =0
x2

92 PERSAMAAN NON-LINIER SIMULTAN


2
Bentuk umum persamaan non-linier simultan adalah:
f (1) = f1 (x1, x2, x3, ...,1 xn) = 0
f (2) = f2 (x1, x2, x3, ..., xn) = 0
f (3) = f3 (x1 ,x2, x3, ..., xn) = 0
................................................
f (n) = f1 (x1 ,x2, x3, ..., xn) = 0
Dalam hal ini akan dicari harga x1, x2, …, xn.

PERSAMAAN NON-LINIER SIMULTAN 93


Fungsi fsolve pada MATLAB Optimization Toolbox digunakan
untuk menyelesaikan sistem persamaan non-linier simultan.
fsolve digunakan untuk meyelesaikan problem tertentu dengan
bentuk persamaan

F(x) = 0
Untuk x, dimana x adalah suatu vektor dan F(x) adalah
fungsi yang mengembalikan nilai suatu vektor. Fungsi ini
dapat dijalankan dengan beberapa pengaturan parameter input
dan output yang berbeda.

Syntax untuk fsolve adalah (bisa digunakan salah satunya):


x = fsolve(fun,x0)
x = fsolve(fun,x0,options)
x = fsolve(problem)
Penjelasan:
fsolve menemukan akar suatu sistem persamaan nonlinier
simultan.
x = fsolve(fun,x0), mulai pada x0 dan mencoba untuk
menyelesaikan persamaan yang dideskripsikan dalam fun
x = fsolve(fun,x0,options), menyelesaikan persamaan dengan
pilihan optimasi tertentu dalam struktur options.
Menggunakan optimset untuk mengatur pilihan ini.
x = fsolve(problem, menyelesaikan problem, dimana
problem adalah sturktur yang dinyatakan dalam Input
Arguments.

Input Arguments
Fun Sistem persamaan non linier untuk menyelesaikan fun
adalah fungsi yang menerima suatu vektor x dan
mengembalikan suatu vektor F, persamaan nonlinier
dievaluasi pada x. Fungsi fun dapat dispesifikan sebagai
fungsi yang menangani file x = fsolve(@myfun,x0)
dimana myfun suatu fungsi MATLAB seperti fungsi

94 PERSAMAAN NON-LINIER SIMULTAN


F = myfun(x)
F = ... %menghitung nilai fungsi pada x
fun dapat juga sebagai fungsi yang menangani suatu
anonymous function.
x = fsolve(@(x)sin(x.*x),x0);
Jika pengguna mendefinisikan nilai untuk x dan F adalah
matriks, mereka dikonversi ke suatu vektor
menggunakan linear indexing.

Contoh 6.1 Persamaan Non-Linier Dua Variabel


Contoh berikut menyelesaikan sistem dua persamaan dengan
dua variabel yang tidak diketahui:
2x1  x2 x
e 1
 x1  2x2 x
e 2
Mulai pencarian penyelesian pada xo =[-5 -5]
Penyelesaian:
Persamaan di atas dituliskan kembali dalam bentuk F(x) = 0 :
2x1  x  e  x1  0
2

 x1  2x2  e x2  0

Pertama, tuliskan suatu file untuk menghitung F, nilai


persamaan pada x.
function F = myfun(x)
Simpan file fungsi ini sebagai myfun.m di lokasi path MATLAB.
F = [2*x(1)-x(2)-exp(-x(1));
Selanjutnya, -x(1)
atur nilai awal dan
+ 2*x(2) - options untuk memanggil
exp(-x(2))];
fsolve
x0 = [-5; -5];% tebakan awal untuk penyelesaian
options=optimset('Display','iter');%pilihan
untuk enampilkan output dan iterasi
[x,fval] =
fsolve(@myfun,x0,options)% memanggil

PERSAMAAN NON-LINIER SIMULTAN 95


Setelah beberapa iterasi, fsolve menemukan jawaban:

Norm of First-order Trust-region


Iteration Func-countf(x)step optimality radius
0 3 23535.6 2.29e+004 1
1 6 6001.72 1 5.75e+003 1
2 9 1573.51 1 1.47e+003 1
3 12 427.226 1 388 1
4 15 119.763 1 107 1
5 18 33.5206 1 30.8 1
6 21 8.35208 1 9.05 1
7 24 1.21394 1 2.26 1
8 27 0.016329 0.759511 0.206 2.5
9 30 3.51575e-006 0.111927 0.00294 2.5
10 33 1.64763e-013 0.00169132 6.36e-007 2.5

Equation solved.
fsolve completed because the vector of function values is near zeroas measured b

x =
0.5671
0.5671
fval =
1.0e-006 *
-0.4059
-0.4059

Contoh 6.2 Menentukan nila x dan y dari persamaan


x3  3xy2  1/ 2
3x2 y  y3 
3/2

Langkah penyelesaian:
Langkah 1 : Buat terlebih dahulu fungsi sistem persamaan non-
linier dalam m-file.
function f = sistem(x)
f =[x(1)^3-3*x(1)*x(2)^2-0.5
3*x(1)^2*x(2)-x(2)^3-sqrt(3)/2];
96 PERSAMAAN NON-LINIER SIMULTAN
Langkah 2 : Buat program pengeksekusi menggunakan fsolve
pada m-file yang

Langkah 3 : Jalankan program pengeksekusi.


>>[x,fval] = fsolve('sistem',[1 2])
Contoh 6.3 Stoikiometri Reaksi Kesetimbangan
ReaksiOptimization
reformasi steam (steam reforming)
terminated: berlangsung
first-order menurut
optimality
is less than options.TolFun.
serangkaian reaksi kesetimbangan berikut:
x =
CH4(g) + H2O(g) CO(g) + H2 (g) R-1
2.5198 1.5874
CO(g) + H2O(g) CO2(g) + H2 (g) R-2
fval =
Pada suhu 2000 K harga konstanta kesetimbangan untuk
-4
masing-masing reaksi adalah 1,930 x 10 dan 5,528. Tentukan
1.0e-010
*
komposisi kesetimbangan komponen-komponen apabila Gas
umpan berkomposisi
0.1930 20% CH4(g) dan 80% H2O(g) berada pada
kondisi suhu 2000 K dan tekanan 1 atm.

Jawaban
Misal ditetapkan basis perhitungan 10 mol gas umpan .
 1 = tingkat reaksi dari reaksi pertama
 2 = tingkat reaksi dari reaksi kedua

PERSAMAAN NON-LINIER SIMULTAN 97


Fraksi mol kesetimbangan setiap komponen dapat dinyatakan
sebagai berikut:

yCO 1   2
 10  2 y H 2  3 1   2
10  21
1

 1   2
y H 2O  810  2
1

y CO2   2 y CH 4  2  1
10  21 10  21
Persamaan konstanta kesetimbangan dinyatakan sebagai
berikut:
y y3 P2
O H2
K 1 y y
CH H 4 O
2

yCO y H
K 2 y y 2 2

CO H O
2

Jika dinyatakan sebagin tingkat reaksi:


 1   2 31  2 3
K1 
2   8     10  2 1 2 1
2
1
K2
  2 3 1   2 
1   2 8  1   2 
Kedua persamaan di atas merupakan persamaan non-linier
simultan.  dan  merupakan variable yang nilainya akan
1 2
dicari.

Berikut ini pemrograman MATLAB-nya.


function y = equilibrium(e,K1,K2)
%Sistem Pers.tak linier yang akan dinolkan
y = [(e(1)-e(2))*(3*e(1)-e(2))^3 /((2-e(1))*(8-e(1)…
- e(2))*(10+2*e(1))^2) - K1
e(2)*(3*e(1)+e(2)) / ((e(1)-e(2))*(8-e(1)-e(2))) -

clear,clc
96 PERSAMAAN NON-LINIER SIMULTAN
K1 = input(‘Masukan konstanta kst. reaksi 1 =
'); K2 = input(‘Masukan konstanta kst. reaksi 2
%Pencari nol fungsi KsT.m
e = fsolve(@equilibrium (e,K1,K2),[1 0.5])

Eksekusi di MATLAB command window


Masukan harga konstanta kst. reaksi 1 = 1.93e-4
Contoh 6.4 Reaksi
Masukan hargaEksotermik Reversibel
konstanta kst. reaksi 2 = 5.528
Optimization terminated: first-order optimality is
less than options.TolFun.
Suatu reaksi eksotermik dapat balik dengan dua reaktan dan
dua produk
e = dinyatakan dengan persamaan :
0.7480 0.6920
A+B C+D

Reaksi berlangsung dalam sebuah CSTR yang memiliki dua


aliran umpan FA0 dan FB0 (m3/s), dengan komposisi CA0 dan CB0
(kmol/m3) seperti Gambar 6.2.

FAO
CAO FBO
CBO

Gambar 6.2. CSTR dengan reaksi kimia reversible

PERSAMAAN NON-LINIER SIMULTAN 97


Laju reaksi total adalah selisih laju reaksi forward dan reverse.
Kita asumsikan order satu independen pada komposisi.

r  kF CACB k REC C C D


 F    ER 
 k exp C C  k exp C C
0F   A B 0R   C D
 RT  RT
 
Ingin dicari komposisi keluaran reaktor pada suhu 300
sampai 400 K dengan incremental 10 K, jika diketahui
parameter- parameter sebagai berikut:

Pada T = 333 K , nilai Keq = 10


kor = ((29,3 . 10-6)/Keq) exp (139,4 .106/R/333)
kF = 4,239. 106exp(-69,71.106/RT ) m3 s-1 kmol-1
kR = kor. exp(-139,4.10-6/RT) m3 s-1 kmol-1
Konstanta gas, R = 8.314 J/kmol. K
Volume reaktor,Vr = 100 m3
Laju alir umpan, FAO = 0,004377 m3/s
Laju alir umpan, FBO = 0,004377 m3/s
Komposisi umpan, CAO = 8,01 kmol/m3
Komposisi umpan, CBO = 8,01 kmol/m3

Penyelesaian:
Terdapat empat komponen dalam sistem ini, sehingga empat
neraca komponen dapat dituliskan:

Komponen A (kmol A/s):


FA0CA0  FCA VR r
 FC A VR k F C AC B  k R CC C D 

Komponen B (kmol B/s):


FB0C A0  FC B VR k F C ACB  k R CC CD 

98 PERSAMAAN NON-LINIER SIMULTAN


Komponen C (kmol C/s):
0  FCC VR  kFCACB  kRCCCD 

Komponen D (kmol D/s):


0  FCD VR  kFCACB  kRCCCD 

Asumsi bahwa kita mengetahui nilai kondisi umpan, volume


reaktor, dan suhu reaksi (konstanta laju reaksi kF dan kr),
sehingga ada lima variabel yang tidak diketahui dari empat
persamaan di atas : F, CA, CB, CC dan CD. Karena itu diperlukan
penambahan persamaan. Jika densitas semua komponen adalah
sama, laju alir volumetrik keluaran akan sama terhadap laju alir
volumetrik dua umpan.
FA0  FB0  F
Terdapat empat persamaan dan empat variabel yang tidak
diketahui, sehingga persamaan di atas dapat diselesaikan.
Namun penyelesaian persamaan aljabar non linier simultan ini
sulit jika dilakukan dengan cara biasa, dan akan lebih sulit jika
reaksi bukan order satu. Peyelesaian di atas mudah diselesaikan
dengan fsolve function pada Matlab untuk menentukan empat
variabel yang tidak diketahui.

Berikut script program matlab file cstr_reversible.m untuk


menyelesaikan soal di atas.

Program utama:

function
cstrreverse clc,
clear
%function
cstrreverse Keq=10;
kor=((29.3e-6)/Keq)*exp(139.4e6/8314/333);
%set VR dan TR
vr=100;
tre=[300:10:400
PERSAMAAN NON-LINIER SIMULTAN 99
for k=1:n_tr
tr=tre(k);
kf=4.239e6*exp(-69.7e6/tr/8314);
kr=kor*exp(-139.4e6/8324/tr);
fa0=0.004377;ca0=8.01;fb0=0.004377;cb0=8.01;
flow=fa0+fb0;
parameters=[vr,kf,kr,fa0,ca0,fb0,cb0];
%tebakan awal untuk ca cb cc cd
xo=[0.2 0.3 0.4 0.1];

options=optimset('MaxFunEvals',1000,'TolFun',1e-8);
%use fsolve to solve four nonlinier algebraic
egquations

[x,feval]=fsolve('reverse',xo,options,parameters);
ca=x(1);
cb=x(2);
cc=x(3);
cd=x(4);
conversion=(fa0*ca0-flow*ca)/(fa0*ca0);
result(k,1)=tr;
result(k,2)=conversion;
end
disp(' Hasil perhitungan')
disp(' ======================')
disp(' Tr (K) konversi,x ')
disp('-----------------------------')
disp(result)
disp(' ')
plot(result(:,1),result(:,2),'-o')
legend('Vr=100');
title('Konversi versus Tr ')
xlabel('Temperatur Reaksi, Tr (K)');
ylabel('Fraksi konversi, x');

%
function f=reverse(x,parameters)
ca=x(1);
cb=x(2);
cc=x(3);
cd=x(4);
vr=parameters(1);
kf=parameters(2);
kr=parameters(3);
fa0=parameters(4);

100 PERSAMAAN NON-LINIER SIMULTAN


ca0=parameters(5);
fb0=parameters(6);
cb0=parameters(7);
flow=fa0+fb0;
ratef=kf*ca*cb;
rater=kr*cc*cd;
%empat persamaan
f(1,1)=fa0*ca0-flow*ca-vr*(ratef-
rater); f(2,1)=fb0*cb0-flow*cb-
vr*(ratef-rater); f(3,1)=-flow*cc-
vr*(-ratef+rater); f(4,1)=-flow*cd-

Hasil running di Command window:

Hasil perhitungan
======================
Tr (K) konversi,x

300 0.11178
310 0.21495
320 0.34569
330 0.47503
340 0.57028
350 0.60423
360 0.57865
370 0.52102
380 0.45359
390 0.38723
400 0.32661

PERSAMAAN NON-LINIER SIMULTAN 10


1
Grafik yang dihasilkan:

Konversi versus Tr
0.8
Vr=100

0.7

0.6
Fraksi konversi,

0.5

0.4

0.3

0.2

0.1
300 310 320 330 340 350 360 370 380 390 400
Temperatur Reaksi, Tr (K)

Gambar 6.3. Grafik hasil simulasi

Contoh 6.5 Kesetimbangan Kimia Kompleks dengan


Minimasi Energi Gibbs

Gas etana bereaksi dengan uap air menghasilkan hidrogen


dengan katalis perengkahan pada suhu T = 1000 K dan
tekanan P = 1 atm. Umpan mengandung 4 mol H2O per mol
CH4. Balzisher et al. (1972) menyatakan bahwa hanya
komponen yang dicantumkan pada tabel 6.1 yang terdapat
dalam kesetimbangan (asumsi bahwa tidak ada endapan
carbon). Energi Gibbs pembentukan berbagai komponen pada
suhu reaksi (1000 K) diberikan pada tabel 6.1. Ingin dicari
komposisi kesetimbangan yang keluar dari reaktor berdasarkan
data tersebut.

102 PERSAMAAN NON-LINIER SIMULTAN


Tabel 6-1. Komponen yang ada pada keluaran Reaktor
Perengkahan

Gibbs Energy Umpan Estimasi awal


No Komponen
(kcal/gmol) (gmol) keluaran
1 CH4 4,61 0,001
2 C2H4 28,249 0,001
3 C2H2 40,604 0,001
4 CO2 -94,61 0,993
5 CO -47,942 1
6 O2 0 0,001
7 H2 0 5,992
8 H2O -46,03 4 1
9 C2H6 26,13 1 0,001

Formulasikan kasus di atas sebagai masalah minimasi dengan


konstrain. Nyatakan konstrain kedalam fungsi objective meng-
gunakan Lagrange multiplier dan diferensiasikan fungsi tersebut
untuk memperoleh sistem persamaan aljabar non liner
simultan.

Penyelesaian :
Fungsi objective untuk meminimalkan energi Gibss diberikan
dengan :
G c  Go n 
min  n  i
 ln i 
i 
ni RT i1
  ni 
RT
Dimana ni adalah jumlah mol komponen i, c adalah jumlah
komponen, R adalah konstanta gas, dan Gi adalah energi Gibbs
komponen murni i pada suhu T. Minimisasi persaman di atas
harus dilakukan dengan konstrain neraca atom:

Neraca atom oksigen g1 = 2n4 +n5 + 2n6 +n7 – 4 = 0


Neraca atom hidrogen g2 = 4n1 + 4n2 + 2n3 + 2n7 + 2n8 + 6n9 – 14
= 0 Neraca atom karbon g3 =n1 + 2n2 + 2n3 +n4 +n5 + 2n9 - 2 =0
PERSAMAAN NON-LINIER SIMULTAN 10
3
Ketiga konstrain di atas dapat dikealkan kedalam fungsi
objective menggunakan Langrange Multiplier : λ1, λ2, λ3. Fungsi
objective yang diperluas adalah:
 o  3
min F  n  G i  ln n i    g
c
 
ni  i
,
i1
i n i 
 ji
j i

RT

Kondisi minimum untuk fungsi di atas pada titik tertentu


adalah bahwa semua turunan parsial F terhadap ni dan
λ1 sesuai pada titik tersebut. Turunan parsial F terhadap ni
adalah
:
F G1o n
  ln i  42  3  0
n1 RT  ni
Turunan parsial yang lainya terhadap ni dapat
diperoleh dengan cara yang sama.
Diharapkan bahwa jumlah komponen utama pada
kesetimbangan mendekati nol, lebih dipilih untuk menuliskan
persamaan dalam bentuk yang tidak memerlukan perhitungan
logaritma angka yang sangat kecil. Penyusunan kembali
persamaan di atas diperoleh :
 Go 
n1   ni exp  1  42  3   0
 RT 

Turunan parsial F terhadap λ1, λ2, dan λ3 masing-masing adalah


g1, g2 dan g3.

Fungsi fsolve pada MATLAB Optimization Toolbox digunakan


untuk menyelesaikan sistem persamaan nonlinier simultan.

104 PERSAMAAN NON-LINIER SIMULTAN


Berikut program MATLAb untuk contoh 6.5 di atas.

Main Program :

function Gibbs_minimation
clear, clc, format short g, format compact
xguess = [10. 10. 10. 5.992 1. 1. 0.993 0.001 0.001
0.001 0.001 0.0001]; % initial guess vector disp('Variable values
disp(' VariableValueFunction Value') for i=1:size(xguess,2);
disp([' x' int2str(i) '' num2str(xguess(i)) '' num2str(fguess(i))]
options = optimset('Diagnostics','off','TolFun',1e- 9,'TolX',1e-16
disp(' VariableValueFunction Value')

for i=1:size(xguess,2); disp([' x' int2str(i) ' num2str(real(xsolv


end '
'

Sub Program :

function fx =
MNLEfun(x) lamda1 =
x(1);
lamda2 =
x(2); lamda3
= x(3); H2 =
x(4);
H2O = x(5);
CO = x(6);
CO2 = x(7);
CH4 = x(8);

PERSAMAAN NON-LINIER SIMULTAN 10


5
C2H2 = x(11);
O2 = x(12);
R = 1.9872;
sum = H2 + O2 + H2O + CO + CO2 + CH4 + C2H6 + C2H4 +
C2H2;
fx(1,1) = 2 * CO2 + CO + 2 * O2 + H2O - 4; %Oxygen
balance
fx(2,1) = 4 * CH4 + 4 * C2H4 + 2 * C2H2 + 2 * H2 + 2 *
H2O + 6 * C2H6 - 14; %Hydrogen balance
fx(3,1) = CH4 + 2 * C2H4 + 2 * C2H2 + CO2 + CO + 2 *
C2H6 - 2; %Carbon balance
fx(4,1) = log(H2 / sum) + 2 * lamda2;
fx(5,1) = -46.03 / R + log(H2O / sum) + lamda1 + 2 *
lamda2;
fx(6,1) = -47.942 / R + log(CO / sum) + lamda1 +
lamda3;
fx(7,1) = -94.61 / R + log(CO2 / sum) + 2 * lamda1 +
lamda3;
fx(8,1) = 4.61 / R + log(CH4 / sum) + 4 * lamda2 +
lamda3;
fx(9,1) = 26.13 / R + log(C2H6 / sum) + 6 * lamda2 + 2
* lamda3;
fx(10,1) = 28.249 / R + log(C2H4 / sum) + 4 * lamda2 +
2 * lamda3;
fx(11,1) = C2H2 - exp(-(40.604 / R + 2 * lamda2 + 2 *
lamda3)) * sum;
fx(12,1) = O2 - exp(-2 * lamda1) * sum;

Hasil running di command window:

Variable es at the initial estimate


valu Value Function Value
Variable
x1 10 -0.0138
x2 10 0
x3 10 0
x4 5.992 19.5944
x5 1 4.6407
x6 1 -6.3214
x7 0.993 -19.8127
x8 0.001 43.2161
x9 0.001 84.0454
x10 0.001 65.1117
x11 0.001 0.001

106 PERSAMAAN NON-LINIER SIMULTAN


x12 0.0001 9.9981e-005

PERSAMAAN NON-LINIER SIMULTAN 10


7
Warning: The Gauss-Newton algorithm may be removed in a future release. A

Maximum number of function evaluations exceeded. Increase OPTIONS.MaxFun


Variable values at the solution

Variable x1 Value 24.4197


Function Value
x2 x3 x4 x5 x6 x7 0.25306
x8 x9 x10 x11 0
x12 1.5598 0
5.3452 0
1.5216-1.1102e-016 2.1094e-015
1.3885 1.9984e-015
0.54492 -1.5543e-015 0
0.066564

1.6707e-007 1.3323e-015
9.5412e-008 1.3323e-015
3.157e-010 -7.2378e-025
5.4592e-021 -5.7219e-030

6.3 RANGKUMAN

1) Banyak peristiwa fisis dan kimia yang memiliki model


persamaan berupa persamaan nonlinier tunggal maupun
simultan
2) Persamaan nonlinear simultan akan memiliki akar-akar
persamaan untuk memenuhi penyelesaian persaman yang
sesuai.
3) Penyelesaian persamaan nonlinier simultan dengan
MATLAB menggunakan fungsi fsolve akan diperoleh suatu
nilai yang memberikan penyelesaian yang tepat.

108 PERSAMAAN NON-LINIER SIMULTAN


6.4 LATIHAN

Latihan 6.1
Selesaikan persamaan berikut:

x1 13  x2  0
x1  x2  1 2

Latihan 6.2.
Beberapa reaksi setimbang berlangsung dalam reaktor batch
(volume konstan) dengan persamaan reaksi sebagai berikut :
ABCD
BC  X 
Y
AX Z

Tentukan konsentrasi masing-masing komponen pada saat


setimbang jika diketahui CA0 = CB0 = 1.5, KC1 = 1.06, KC2 = 2.63
dan KC3 = 5. Lakukan perhitungan dengan estimasi nilai awal
sebagai berikut :
(a) CD = CX = CZ = 0
(b)
CD = CX = CZ = 1
(c)
CD = CX = CZ = 10

Petunjuk Penyelesaian :
Sistem persamaan aljabar menggambarkan kesetimbangan
rekasi di atas.
Hubungan kesetimbangan non-linier menggunakan kesetim-
bangan termodinamika dan hubungan linier diperoleh dari
stoikiometri reaksi.

CCCD CZ
K  CXCY K 
KC2 
CACB C BCC
C3
C C C
A X

CA = CAO – CD - CZ, CB = CBO – CD –


PERSAMAAN NON-LINIER SIMULTAN 10
9
CY CC = CD – CY, CY = CX + CZ

110 PERSAMAAN NON-LINIER SIMULTAN


Pada sperangkat persamaan ini, CA, CB, CC, CD, CX, CY dan
CZ adalah konsentrasi berbagai komponen pada kesetimbangan
yang dihasilkan dari konsentrasi awal hanya CAO dan
CBO. Konstanta kesetimbangan KC1, KC2 dan KC3 telah
diketahui nilainya.

Latihan 6.3
Perhatikan reaktor CSTR pada gambar 6.3 di bawah. Q adalah
laju alir volumetrik (L/s), V adalah volume rekator (L), dan Ci
adalah konsentrasi masing-masing empat komponen (gmol/L).
Misalkan reaksi hipotetik berikut berlangsung dalam CSTR :
r1
A→ 2B
r2
A r3
C
r4
B →D+C

Gambar 6.3. Continuous Stirred Tank Reactor

PERSAMAAN NON-LINIER SIMULTAN 11


1
Dimana :
r1  k1CA
r  k C 3/ 2
2 2 A
r k C2
3 3 C
r k C2
4 4 B

k1, k2, k3 dan k4 adalah


konstanta laju reaksi dengan satuan yang
sesuai. Nilai untuk konstanta tersebut adalah berikut:
k  1,5 s 1
1
k  0,1 L1/ 2 / gmol1/ 2  s
2
k3  0,1 L / gmol  s
k4  0,5 L / gmol  s

ri memiliki satuan gmol/L/s. Ingin dicari konsentrasi masing-


masing komponen keluaran reaktor dengan tebakan awal
konsentrasi keluaran masing-masing kompoeen adalah 0,5
gmol/L.

Petunjuk Penyelesaian:
Neraca massa untuk masing-masing empat komponen
membentuk seperangkat persamaan nonlinier berikut:
 1 A

C  C V  k C  k C 3/ 2  k C 2 / Q
A A0 2 A 3 C

C C  V 2k C  k C  / Q 2
B B0 1 A 4 B

C C  V k C  k C  k C  / Q
3/ 2 2 2
C C0 2 A 3 C 4 B

C C V k C / Q 2

D D0 4 B

6.5 RUJUKAN

1) Balzisher, R. E., Samuels, M. R., and Eliassen, J. D.,


1972. Chemical Engineering Thermodynamics, Englewood
Cliffs, N.J.: Prentice Hall.
112 PERSAMAAN NON-LINIER SIMULTAN
2) Fogler, H. S. 1999. Elements of Chemical Reaction
Engineering, 3rd ed., Englewood Cliffs, NJ: Prentice-
Hall
3) Michael B. Cutlip and Moderchai Sacham. 2007. Recent
Advances in Chemical Engineering Problem Solving. ASEE
Mathematical Software.

PERSAMAAN NON-LINIER SIMULTAN 11


3
BAB 7

PERSAMAAN DIFERENSIAL BIASA

7.1 PENDAHULUAN

Bab ini membahas tentang persamaan diferensial biasa. Setelah


menyelesaikan pokok bahasan ini mahasiswa diharapkan akan
mampu menyelesaikan persamaan diferensial biasa dengan
MATLAB. Secara khusus mahasiswa diharapkan akan mampu
menyusun permasalahan fisis dan kimia dalam Teknik Kimia
dalam bentuk persamaan diferensial biasa, menyelesaiakan
persamaan diferensial biasa dengan fungsi ode45 dalam
MATLAB. Persamaan diferensial biasa banyak ditemukan pada
pemodelan-pemodelan teknik reaktor, kinetika reaksi kimia,
peristiwa-peristiwa perpindahan dan lain-lain.

7.2 MODEL PERSAMAAN DIFERENSIAL BIASA

Persamaan diferensial muncul dari kajian dinamis proses fisis


dan kimia yang memiliki satu variabel bebas. Variabel tersebut
dapat berupa variabel jarak, x atau variabel waktu, t yang
bergantung pada geometri sistem dan kondisi batasnya.

112
Sebagai contoh suatu reaksi kimia dengan bentuk:
k1 C+D
A+B E (7.1)
k2 k3

Berlangsung dalam suatu reaktor, neraca massa dapat
diterapkan :
Rate of input  Rate of output  Rate of Re (7.2)
action
 Rate of Accumulation

Untuk reaktor batch, aliran masuk dan keluar adalah nol,


sehingga neraca massa disederhanakan menjadi:

Rate of
Reaction  Rate Accumulation (7.3)
of

Asumsi bahwa reaksi (7.1) berlangsung dalam fasa cair dengan


perubahan volum diabaikan. Jika persamaan (7.3) ditulis untuk
setiap komponen yang bereaksi maka akan memiliki bentuk :
dCA
 k1C ACB  k 2 C C C D
dt
dCB
 k1C ACB  k 2 C C C D
dt
dCC
 k C C  k C C  k CmCn (7.4)
2 C D 3 C D
1 A B
dt
dCD
 k C C  k C C  k CmCn
2 C D 3 C D
1 A B
dt
dCE
 k CmCn
3 C D
dt

dimana CA, CB, CC, CD, and CE, menyatakan konsentrasi lima
komponen pada reaksi kimia. Reaksi ini merupakan satu set
persamaan diferensial non-linier order satu simultan, yang
PERSAMAAN DIFERENSIAL BIASA 113
menggambarkan prilaku dinamis reaksi kimia. Dengan
metode yang disusun pada bab ini, persamaan ini dengan satu
set kondisi awal, dapat diintegrasikan untuk memperoleh
profil waktu semua konsentrasi.

114
Kasus lain, pada pertumbuhan mikroorgnisme, misalnya dalam
fermentor kontinyu dengan tipe yang ditunjukkan Gambar 7.1
di bawah:

Fin Xin Sin

VXS

Fout
Xout
Sout

Gambar 7.1 Fermentor kontinyu

Volume cairan dalam fermentor adalah V, laju alir nutrien ke


dalam fermentor adalah Fin , dan laju air produk keluar fermentor
adalah Fout. Neraca massa sel X adalah:
Rate of input  Rate of output  Rate Pr oduction
of
 Rate of Accumulation
d VX 
Fin Xin  Fout X out  rxV  (7.5)
dt
Neraca massa untuk subtrat S diberikan dengan persamaan:

d VS 
Fin Sin  FoutSout  rSV  (7.6)
dt
Neraca volume total adalah:

Fin  Fout  d V
(7.7)

dt
Jika kita buat asumsi bahwa fermentor tercampur sempurna,
114 PERSAMAAN DIFERENSIAL BIASA
yaitu konsentrasi di setiap titik dalam fermentor sama, maka :

PERSAMAAN DIFERENSIAL BIASA 115


X in  Fout
(7.8)
Sin  Sout
Dan persamaan disederhanakan menjadi :

d VX 
 F  F X  r V
X
dt in in out x
d VS

 Fin S in  Fout S   (7.9)
rxV
dt
dV
dt   Fout

Fin

Asumsi berikutnya dibuat bahwa laju alir masuk dan keluar


fermentor adalah sama, dan laju pembentukan sel dan
penggunaan subtrat diberikan oleh :
 SX
rx  max (7.10)
KS

1 max
SX
r  (7.11)
Y KS
S

Persamaan (7.9) disederhanakan menjadi:


dX  Fout  SX
   X   max (7.12)
X
  in KS
dt  V 
dS  Fout 1 max
  S 
 SX (7.13)
S
  in Y KS
dt  V 
Persamaan (7.12) dan (7.13) adalah seperangkat persamaan
diferensial biasa simultan, yang menggambarkan dinamik

116 PERSAMAAN DIFERENSIAL BIASA


fermentasi kultur kontinyu.

Berdasarkan ordenya persamaan diferensial biasa terdiri atas


tiga jenis (paling umum ditemukan dalam permasalahan teknik
kimia).

PERSAMAAN DIFERENSIAL BIASA 117


Orde 1 : dy
 y  kx (7.14)
dx
d 2 y  dy
Orde 2 :  kx (7.15)
dx2 y dx
Orde 3 :
2
d3 d2  dy 
ay b  kx (7.16)
y 3 dx 2   dx 
dx 
 

Salah satu kegunaan MATLAB dalam teknik adalah aplikasinya


untuk menyelesaikan secara numeris persamaan diferensial
biasa. MATLAB memiliki penyelesaian ode yang berbeda-beda
yang memungkinkan ode menyelesaikan secara akurat dan
efisien tergantung pada tingkat kesulitan (stiffness) ode. Stiffness
adalah perubahan relatif pada penyelesaian suatu persamaan
diferensial.

Terdapat beberapa cara berbeda untuk menyusun dan


mengeksekusi penyelesaian ode, namun untuk kali ini suatu
sistem yang menggunkanan m-files untuk setiap penyelesaian
ode akan diberikan. Dua m-files utama yang diperlukan adalah
file eksekusi (run) dan file fungsi. Untuk penyelesaian suatu ode
dalam MATLAB, semua ode harus didefinisikan dalam suatu
fungsi m-file. Ketika memasukkan ke dalam file fungsi,
persamaan diferensial harus memiliki order satu berbentuk
dy/dx = f(y,x). File fungsi harus berisi:
1) Definisi fungsi seperti function dmdt =
nama_file(t,m), dimana t adalah variable bebas dan m
adalah variable tak bebas order satu.
2) Jika variabel global digunakan, perintah global harus
disisipkan setelah definisi fungsi
3) Persamaan diferensial harus dalam bentuk deskripsi di
atas, misal: dmdt = f(m,t)
Nama file, variable (m dan t), dan dmdt dapat berubah-ubah.
118 PERSAMAAN DIFERENSIAL BIASA
Contoh 7.1 Aliran Fluida Pada Tangki
Suatu fluida dengan densitas tetap mengalir ke dalam tangki
besar yang kosong dan tak tentu pada 8 L/s. Sebuah kran
dipasang untuk mengatur aliran keluar pada laju tetap 4 L/s.
Turunkan dan selesaikan persamaan diferensial yang
menggambarkan proses ini sampai interval 50 detik.

8 L/s

4 L/s

Gambar 7.2 Aliran fluida pada tangki

Penyelesaian :
Neraca massa:
Laju Akumulasi = input –
Output

d V  (7.1.1)
 8  4 
dt
Karena densitas konstan, sehingga:
dV
 8  4  (7.1.2)
4
dt
dalam liter per detik.
Kondisi awal pada waktu t = 0, volume dalam tangki = 0.
Berikut penyelesaan persamaan di atas dengan program
MATLAB:
File fluida untuk fungsi utama:
function dvdt =
File runfluida digunakan untuk mengeksekusi penyelesaian.
fluida(t,v) dvdt=4;
List penulisan program adalah
PERSAMAAN DIFERENSIAL BIASA 119
function
runfluida to=0;
tf=50;
tspan=[to tf]; %interval
integrasi v0=0 %kondisi awal
[t,v]=ode45('fluida',tspan,v0)
plot(t,v(:,1))
Xlabel('Time (s)')
Ylabel ('vol in
tank(L)')

Grafik yang dihasilkan seperti Gambar 7.3.

fluida
200

180

160

140

120

100
vol in

80

60

40

20

0
0 5 10 15 20 25 30 35 40 45 50
Time (s)

Gambar 7.3 Plot waktu terhadap volum

Contoh 7.2 Simulasi Reaktor Batch


Reaktor batch adalah reaktor yang digunakan secara sekali
tempuh. Artinya umpan dimasukkan satu kali di awal reaksi
dan produk dikeluarkan pada akhir reaksi. Selama reaksi tidak
ada umpan yang masuk ataupun produk yang keluar.
120 PERSAMAAN DIFERENSIAL BIASA
Kecepatan proses biasanya diukur dari kecepatan pengurangan
umpan :
 dCA
dt  rA (7.2.1)
Apabila kecepatan reaksi dapat didefinisikan sebagai :

 rA
k CA (7.2.2)
 KC
A

maka persamaan diferensial di atas menjadi :


 dCA
dt k CA (7.2.3)
 KC
A

Jika harga k = 0.01, K = 1.03 dan CA pada t = 0 (awal reaksi)


adalah 0.5 mol/liter, maka konsentrasi A setiap waktu dapat
ditentukan dengan menyelesaikan persamaan diferensial di atas.
Catatan : persamaan tersebut tidak dapat diselesaikan secara
analitik karena bersifat tak linier, sehingga harus diselesaikan
secara numerik.
File run_rbatch1.m sebagai penyelesaian soal di atas. fungsi
utama.
function run_rbatch1 clc,clear
tspan=[0:1:10] %interval waktu dari 0 sampai 10 dengan increment 1
%eksekusi persamaan diferensial [t,Ca]=ode45(@rbatch,tspan,0.5);
[t Ca]% untuk menampilkan t dan Ca dlm baris yg sama
% function dcdt=rbatch(t,Ca)
% menghitung fungsi ruas kanan dari pers.neraca massa reaktor batc
dcdt=0.1*Ca/(1.03+Ca); dcdt=dcdt';

Hasil run:
ans =
0 0.5000
1.0000 0.5334
2.0000 0.5682
PERSAMAAN DIFERENSIAL BIASA 121
3.0000 0.6045
4.0000 0.6422
5.0000 0.6813
6.0000 0.7218
7.0000 0.7637
8.0000 0.8070
9.0000 0.8516
10.0000 0.8975

Pada hasil diatas, kolom pertama menunjukkan waktu dan


kolom kedua menunjukkan konsentrasi.
Apabila harga k bergantung pada temperatur menurut
persamaan Arhenius berikut :
 95.000
 
 RT 
k  108 e (7.2.4)
dan reaksi yang terjadi bersifat eksotermik (H = 432 kJ/mol)
dan dilaksanakan pada temperatur 500 K, maka persamaan-
persamaan neraca massa dan energi sistem adalah sebagai
berikut :
 95.000
 dCA 10 8e RT 
 A
(7.2.5)
dt K  CA
 
 95.000
8
 
RT
CA
dT 10 e
 CP dt 

H  (7.2.6)
KC
A

Jika  dan Cp dianggap sama dengan air (1000 kg/m3 dan 4.3
kJ/kg), maka program untuk solusi kasus di atas ditunjukkan
file run_rbatch2.m .
function
run_rbatch2
clc,clear
[t,Y]=ode23(@rbatch_2,[0 50],[0.5 500])
plot(t,Y(:,1),'-+r')
title('konsentrasi dalam
reaktor') xlabel('waktu (min)')

122 PERSAMAAN DIFERENSIAL BIASA


pause plot(t,Y(:,2),'-ob')
title('temperatur dalam reaktor') xlabel('waktu (min)')
ylabel('T (K)')
% function dcdt=rbatch_2(t,y)
% menghitung fungsi ruas kanan dari pers.neraca massa reakto
Ca = y(1);
T = y(2);
dcdt(1)=-1E8*exp(- 95000/(8.314*T))*Ca/(1.03+Ca);
dcdt(2)=1E8*exp(- 5000/(8.314*T))*Ca/(1.03+Ca)*(432*1000)/(1
);
dcdt=dcdt';

Hasil running:
ans =
0 0.5000 500.0000
5.0000 0.4799 502.0147
10.0000 0.4585 504.1645
15.0000 0.4357 506.4621
20.0000 0.4112 508.9204
25.0000 0.3850 511.5520
30.0000 0.3570 514.3673
35.0000 0.3271 517.3723
40.0000 0.2953 520.5644
45.0000 0.2618 523.9267
50.0000 0.2271 527.4201

PERSAMAAN DIFERENSIAL BIASA 123


Grafik yang dihasilkan:
konsentrasi dalam reaktor
0.5

0.45

0.4

0.35
Ca

0.3

0.25

0.2
0 5 10 15 20 25 30 35 40 45 50
waktu (min)

(a)
temperatur dalam reaktor
530

525

520

515

510

505

500
0 5 10 15 20 25 30 35 40 45 50
waktu (min)

(b)
Gambar 7.4 Perubahan (a) konsentrasi dan
temperatur (b) terhadap waktu

124 PERSAMAAN DIFERENSIAL BIASA


Contoh 7.3 Pemanasan Pada Tangki Seri

Tiga buah tangki yang disusun seri digunakan untuk memanas-


kan minyak mentah sebelum diumpankan ke fraksinator untuk
pemisahan lanjut.

W1 = 100 kg/min

TO = 20 oC T1 T2

steam steam steam

T1 T2 T3
T3

Gambar 7.5 Sistem pemanasan minyak

Pada saat awal, masing-masing tangki diisi dengan 1000 kg


minyak pada suhu 20 oC. Steam jenuh pada suhu 250 oC
dikondensasikan di dalam koil yang tercelup pada masing-
masing tangki. Minyak diumpankan ke tangki pertama dengan
laju 100 kg/menit dan dialirkan ke tangki kedua maupun
tangki ketiga dengan laju yang sama. Suhu minyak umpan
adalah 20oC. Tangki dilengkapi pengaduk sehingga
pencampuran di dalam tangki dapat dianggap sempurna, dan
suhu di dalam tangki seragam. Demikian juga dengan suhu
aliran keluar tangki sama dengan suhu di dalam tangki.
Kapasitas panas minyak, Cp = 2.0 kJ/kg. Laju perpindahan
panas dari steam ke minyak tiap tangki dinyatakan dengan
persamaan sebagai berikut :
Q  UaTsteam  T  (7.3.1)
Dimana Ua = 10 kJ/menit.oC yaitu perkalian antara koefisien
transfer panas dan luas area perpindahan panas koil untuk
masing-masing tangki.

PERSAMAAN DIFERENSIAL BIASA 125


Tentukan suhu steady state di tiap tangki, dan berapa interval
waktu yang dibutuhkan agar T3 mencapai 99% kondisi
steady state-nya pada saat start-up ?

Penyelesaian :
Asumsi :
a) Laju alir minyak menuju masing – masing
tangki dianggap sama (W0 = W1 = W2 = W3 = W).
b) Densitas minyak konstan, sehingga jumlah
(massa dan volum) minyak di dalam masing –
masing tangki sama dan konstan (M1 = M2 = M3
= M).
Disusun neraca panas unsteady state untuk masing – masing
tangki.

Untuk tangki 1 :
Panas Akumulasi = Panas masuk – Panas keluar
dT1
MC  WC  UaT  T   WC (7.3.2)
T T
p p 0 steam 1 p 1
dt
Persamaan di atas dapat disusun kembali sebagai berikut :
dT1 WC p T0  T1   UaTsteam  T1 
 (7.3.3)
dt MCp
Analog untuk tangki 2 :

dT WC p T1  T2   UaTsteam 
T2  2  (7.3.4)
dt MCp
Untuk tangki 3 :
dT 3 WC p T2  T3   UaTsteam  (7.3.5)
T3  
dt MCp
Penyelesaian untuk kasus diatas dengan MATLAB ditunjukkan
file runlatihan7_3.m berikut:
function
126 PERSAMAAN DIFERENSIAL BIASA
runlatihan7_3 clear,
clc
%nilai-nilai parameter yang diketahui
W=100; % kg/min
UA=10; % kJ/min.C
M=1000; % kg
Cp=2.0; % kJ/kg
Tsteam=250; % C
To=20; % C
%nilai awal T1, T2, dan T3
Tawal=[20 20 20];%oC
%increment waktu
tmulai=0; % min
takhir=90; % min
tspan=[tmulai:5:takhir];
%fungsi untuk menjalankan fungsi MATLAB
[t,Y]=ode45(@latihan7_3,tspan,Tawal);
%plot grafik t vs T
plot(t,Y(:,1),'*-r',t,Y(:,2),'o-b',t,Y(:,3),'*-g')
title('Temperature dalam tangki berpengaduk')
xlabel('waktu (min)')
ylabel('T (C)')
[t Y]
%
function dTdt=latihan7_3(t,Y)
global W UA M Cp Tsteam To
T1=Y(1);
T2=Y(2);
T3=Y(3);
%persamaan-persamaan diferensial yang terlibat
dTdt(1)=((W*Cp*(To-T1))+UA*(Tsteam-T1))/(M*Cp);
dTdt(2)=((W*Cp*(T1-T2))+UA*(Tsteam-T2))/(M*Cp);
dTdt(3)=((W*Cp*(T2-T3))+UA*(Tsteam-T3))/(M*Cp);
dTdt=dTdt';

PERSAMAAN DIFERENSIAL BIASA 127


Hasil running:
ans =
0 20.0000 20.0000 20.0000
5.0000 24.4744 25.4917 25.6595
10.0000 27.1193 30.0693 30.9567
15.0000 28.6863 33.5538 35.6443
20.0000 29.6107 36.0841 39.5612
25.0000 30.1592 37.8510 42.6961
30.0000 30.4827 39.0600 45.1140
35.0000 30.6744 39.8701 46.9260
40.0000 30.7879 40.4060 48.2515
45.0000 30.8550 40.7565 49.2027
50.0000 30.8948 40.9837 49.8738
55.0000 30.9183 41.1298 50.3411
60.0000 30.9322 41.2233 50.6624
65.0000 30.9404 41.2826 50.8811
70.0000 30.9453 41.3202 51.0286
75.0000 30.9482 41.3438 51.1274
80.0000 30.9499 41.3587 51.1930
85.0000 30.9509 41.3680 51.2363
90.0000 30.9515 41.3738 51.2648

Temperature dalam tangki berpengaduk


55

T
50 1

45

40
T

35

30

25

20
0 10 20 30 40 50 60 70 80 90
waktu (min)

Gambar 7.6 Grafik perubahan suhu terhadap waktu

128 PERSAMAAN DIFERENSIAL BIASA


Contoh 7.4. Reaksi Transesterifikasi Secara Batch

Pada proses pembuatan biodiesel dengan reaksi transesterifi-


kasi, minyak biji bunga matahari direaksikan secara batch
dengan metanol dengan rasio molar metanol terhadap minyak
adalah 6:1. Reaksi dijalankan pada fasa cair dengan bantuan
katalis NaOH. Menurut Klofutar (2010) reaksi didekati dengan
reaksi multitahap sebagai berikut:
k1
TG + CH3OH DG + ME
k4
k2
DG + CH3OH DG + ME

k5

k3
G + CH3OH DG + ME
k6
k7
TG + 3CH3OH DG + ME

k8

dimana TG = trigliserida, CH3OH = methanol, DG = digliserida,


MG = monogliserida, G = gliserol, dan ME = metil ester.
Ingin dicari konsentrasi setiap komponen setelah reaksi
dijalankan selama 120 menit. Nilai konsentrasi mula-mula
untuk trigliserida dan methanol adalah 0,4721 dan 0,8 mol/L.
Nilai konstanta laju reaksi pada suhu 50oC adalah : k1 = 0.0727; k2
= 0.1569; k3 = 0,0956; k4 = 0,0213; k5 = 0,0638; k6 = 0,0083; k7 = 0.00026;
k8 = 0.0000022 (L mol-1 min-1).

Penyelesaian :
Persamaan neraca massa untuk masing-masing komponen

PERSAMAAN DIFERENSIAL BIASA 129


dapat dituliskan:
dCTG
 k C C k C C  k3 C C k CC3
1 TG MOH 4 DG ME 7 TG MOH 8 G ME
dt

130 PERSAMAAN DIFERENSIAL BIASA


dCDG
dt  k1CTG CMOH  k2 CDG CMOH  k4 CDG CME  k5 CMG CME
dCMG
(7.4.1)
dt  k2CDG CMOH  k3CMG CMOH  k5CMG CME  k6CG CME
dCG  k C C k C C  k3 C C k C C3
MOH 6 G ME 7 TG MOH 8 G ME
3 MG
dt
dCMOH
dC
dt   dtME

Dengan CTG, CDG, CMG, CG, CME, CMOH masing–masing adalah


konsentrasi trigliserida, digliserida, monogliserida, gliserol, metil
ester dan methanol.
Berikut program MATLAB untuk meyelesaian contoh kasus di
atas.

function
simulasicontoh7_4;
clc,clear
% menyelesaikan PD ordiner simultan
%nilai awal
Yo=[0.4721 0 0 0 0 0.8];
%interval waktu
tspan=[0:2:120]; %
menit
[t,Y]=ode45(@sub_simulasi4,tspan,Yo);
CTG =Y(:,1);
CDG =Y(:,2);
CMG =Y(:,3);
CG =Y(:,4);
CME =Y(:,5);
CMOH =Y(:,6);
plot(tspan,CTG,'-*g',tspan,CDG,'-*b',tspan,CMG,'-*r',...
tspan,CG,'-*c',tspan,CME,'-*m',tspan,CMOH,'-*k')
title('grafik konsentasi vs waktu');
xlabel('waktu, t (menit)');
ylabel('konsentrasi, C (mgek/cm3)');
legend('TG','DG','MG','G','ME','MOH
')

PERSAMAAN DIFERENSIAL BIASA 131


%
function dydt=sub_simulasi4(t,Y);
k1=0.0727;k2=0.1569;k3=0.0956;k4=0.0213;k5=0.0638;k6=0.0083;
k7=0.00026;k8=0.0000022;
CTG=Y(1);CDG=Y(2);CMG=Y(3);CG=Y(4);CME=Y(5);CMOH=Y(6);

132 PERSAMAAN DIFERENSIAL BIASA


dydt(1)=-k1*CTG*CMOH+k4*CDG*CME-
k7*CTG*CMOH^3+k8*CG*CME^3; dydt(2)=k1*CTG*CMOH-
k2*CDG*CMOH-k4*CDG*CME+k5*CMG*CME;
dydt(3)=k2*CDG*CMOH-k3*CMG*CMOH-
k5*CMG*CME+k6*CG*CME; dydt(4)=k3*CMG*CMOH-
k6*CG*CME+k7*CTG*CMOH^3-k8*CG*CME^3;
dydt(5)=k1*CTG*CMOH+k2*CDG*CMOH+k3*CMG*CMOH-
k4*CDG*CME-

Konsentrasi setiap komponen ditampilkan dalam bentuk grafik


seperti terlihat pada gambar di bawah.
grafik konsentasi vs waktu
0.8

0.7

0.6
TG
konsentrasi, C (mgek/cm3)

0.5 DG
MG
G
0.4
ME
MOH
0.3

0.2

0.1

0
0 20 40 60 80 100 120
waktu, t (menit)

Gambar 7.7 Grafik perubahan suhu terhadap waktu

Contoh 7.5. Produksi Asetat Anhidrid dengan PFR


(Multitubular)

Dalam perancangan reaktor untuk produksi asam asetat anhidrid


salah satu kunci yang menentukan adalah tahap perengkangan
endotermis fasa uap aseton menjadi ketene dan metana (Fogler,
1999):
PERSAMAAN DIFERENSIAL BIASA 133
CH3COCH3 → CH2CO + CH4
Reaksi ini adalah order satu terhadap aseton dan laju reaksi
spesifik dinyatakan dengan persamaan:

k  8,2 1014 exp  (7.5.1)
34.222
 T 
 
Dimana k memiliki satuan detik dan T dengan satuan kelvin.
Dalam desain ini diperlukan umpan sebanyak 7.850 kg eseton per
jam ke dalam reaktor tubular. Reaktor terdiri atas susunan tube
sebanyak 1000 dengan ukuran 1 inch schedule 40.
Susunan 1000 tube 1-inch schedule 40 dengan panjang 1,79 m
setara dengan 1 m3 (0,001 m3/tube = 1 dm3/tube) dan
memberikan koversi 20%. Ketene tidak stabil dan cenderung
meledak, sehingga kondisi tersebut menjadi alasan untuk menjaga
kondisi reaktor pada konversi rendah. Namun demikian, material
pipa dan ukuran schedule harus diperiksa untuk mempelajari
bahwa material tersebut sesuai pada temperature dan tekanan
operasi.

Fluida penukar panas memiliki laju alir, mc, 0,111 mol/s, dengan
kapasitas panas 34,5 J/mol.K.
Kita harus mempertimbangakan empat kasus.
Temperature dan tekanan masuk adalah sama untuk semua
kasus pada 1.035 K dan 162 kPa (1,6 atm) dan temperatur fluida
pemanas tersedia pada 1.250 K.
a) Kasus 1 : Reaktor dioperasikan secara adiabatis
b) Kasus 2 : Temperatur fluida pemanas konstan, Ta = 1.250
K
c) Kasus 3 : Fluida pemanas searah (co-current)
dengan reaktan dengan, Tao = 1.250
d) Kasus 4 : Fluida pemanas berlawanan arah (counter-current)
dengan reaktan Tao = 1.250
Informasi tambahan :
CH3COCH3 (A) : H o T   216,67 kJ/mol
A R
CH2CO (B) : H o T

134 PERSAMAAN DIFERENSIAL BIASA


  61,09 kJ/mol
B R

PERSAMAAN DIFERENSIAL BIASA 135


CH4 (C) : H o T   74,81 kJ/mol
C R

U = 110 J/s.m2.K

Penyelesaian :

Misalkan A = CH3COCH3, B = CH2CO dan C = CH4, Persamaan


rekasi dapat dituliskan :
A→B+C

Urutan penyelesaian untuk PFR dengan Heat effect adalah :

1. Neraca mol steady state untuk reaktor PFR :

dX rA
 (7.5.2)
 FA0
dV

2. Persamaan Laju reaksi :

 rA  k CA (7.5.3)

3. Stoikiometri (Reaksi fasa gas tanpa hilang tekanan):

C A0 1  X
CT0  (7.5.4)
A
1   X T

ε = ya0δ =1 (1+1-1) =1

Kombinasi persamaan 7.5.3 dan 7.5.4, dihasilkan :

C A0 1  X
r k (7.5.5)
T0
A
1  X T

4. Neraca Energi :

136 PERSAMAAN DIFERENSIAL BIASA


a) Neraca Reaktor
Perubahan temperatur reaktor sebagai fungsi volume
reaktor:

PERSAMAAN DIFERENSIAL BIASA 137


dT Ua Ta  T    rA 
 (7.5.6)
H rxn 
dV FA0  i C pi  XC 
p

atau,

dT Ua Ta  T    rA 
 (7.5.7)
H rxn 
dV FACpA  FBCpB  FCCpC

b)Heat Exchanger.
Kita akan menggunakan fluida pemanas untuk aliran co-
current sebagai basis kasus. Selanjutnya kita dapat
memodifikasi program penyelesaian ODE untuk
menyelesian kasus lain yang berkesesuaian dengan
mengalikan nol atau minus.
Untuk aliran co-current :
dTa Ua Ta  T 
 (7.5.8)
dV mcCpc
5. Parameter untuk Neraca Energi:

Panas reaksi pada suhu tertentu terhadap suhu referensi (298 K)


adalah :
H  H 0 β γ
 αT   T 2
 T 2  T 3
T3 (7.5.9)
T  

rxn rxn
R R R
2 3
Kapasitas Panas komponen:

CpA = 26,63 + 0,183 T – 45,86 × 10−6T2 (J/mol


K) CpB = 20,04 + 0,0945 T – 30,95 × 10−6T2
(J/mol K) CpC = 13,39 + 0,077 T – 18,71 × 10−6T2
(J/mol K)
α  αC  αB  αA  13,9  20,04  26,63  J/mol.K
6,8
138 PERSAMAAN DIFERENSIAL BIASA
Δβ  βC  βB  βA  0,007  0,0945  0,183  J/mol.K 2
0,0115
γ  γ  γ γ  (18,71106 )  (30,95 106 )  (45,86 106 )
C B A
 3,8 106 J/mol.K 3

PERSAMAAN DIFERENSIAL BIASA 139


β 3
 5,75 10
2
γ
 1,27 106
3
Panas reaksi standar, H 0 :
r

H o
T   H T   H o T
o
 H T 
o
rxn R B R C R A R

= (-61,09) + (-74,81) - (-216,67) kJ/kmol

= 80,77 kJ/mol

Heat Exchange. Luas area transfer panas per satuan volume


pipa adalah : 4
 DL 4  150 m1
a  
 D / 4L
2 D 0,0266 m
U = 110 J/m2.s.K

Kombinasi koefisien transfer panas dengan area diperoleh:


Ua = 16.500 J/m3.s.K

6. Perhitungan Parameter Neraca Mol pada Basis Per Tube:

7.850 kg/jam 1
FA0
 58 kg/kmol  1000 tube  0,135 kmol/jam  mol/detik
0,0376

CA0 PA0 162 kPa kmol kmol


   0,0188 
RT kPa  m 3
8,31 1.035 18,8 m3
K kmol  K m3

F 3 1 m3 0,001 m3
v  A0
 2 dm /detik, V 
0 CA0 1000 tube tube

140 PERSAMAAN DIFERENSIAL BIASA


Kasus 1: Adiabatis

Kita mulai dengan kasus 1 adiabatis untuk menunjukkan pengaruh


bagaimana reaksi hilang/terhenti pada saat temperatur drop. Pada
kenyataannya kita akan menambah sampai volume 5 dm 3 untuk
mengamati efek ini dan menunjukkan bagaimana kebutuhan
penambahan suatu penukar panas. Untuk ilustrasi bagaimana
reaksi endotermis secara virtual dapat terhenti secara total.
Volume satu pipa ditambah dari 1 dm3 sampai 5 dm3. Untuk
adiabatis :

Ua = 16.500 x 0

Program Matlab ditunjukkan di bawah dan Gambar 7.8


menujukan grafik output.

PERSAMAAN DIFERENSIAL BIASA 141


konversi reaktor
0.4

0.3

0.2

0.1

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
volume, m3 -3
x 10
Temperature reaktor, K
1050

1000

950

900
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
volume, m3 -3
x 10

Gambar 7.8 Grafik perubahan terhadap volume


(a) reaktor konversi (b) temperatur

Kasus 2: Temperatur fluida pemanas konstan, Ta

Program penyelesaian kasus 2 sama seperti kasus 1, dengan


merubah :
dTa Ua Ta  T 
 0
dV mcCpc

Ua = 16.500 J/m3/s/K

Program Matlab ditunjukkan di bawah dan Gambar 7.9


menujukan grafik output.

142 PERSAMAAN DIFERENSIAL BIASA


PERSAMAAN DIFERENSIAL BIASA 143
konversi reaktor
1

0.9

0.8

0.7

0.6
konversi

0.5

0.4

0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
volume, m3 -3
x 10

(a)

Profil Temperature
1250
Reaktor,T Pemanas,Ta

1200

1150
Temperatur

1100

1050

1000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Volume, m3 -3
x 10

(b)

Gambar 7.9 Grafik perubahan terhadap volume reaktor


(a) konversi dan (b) temperatur

Kasus 3 : Fluida pemanas searah (co-current) dengan reaktan

Neraca energi untuk fluida pemanas adalah :

144 PERSAMAAN DIFERENSIAL BIASA


dTa Ua Ta  T 

dV mcCpc

dengan Ta0 = 1.250 K pada V = 0.

Program Matlab ditunjukkan di bawah dan Gambar 7.10


menujukan grafik output.

PERSAMAAN DIFERENSIAL BIASA 145


konversi reaktor
0.45

0.4

0.35

0.3

0.25
konve

0.2

0.15

0.1

0.05

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Volume, m3 -3
x 10

(a)
Profil Temperature
1250
Reaktor, T
Pemanas, Ta
1200

1150
Temperatur

1100

1050

1000

950
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Volume, m3 -3
x 10

(b)

Gambar 7.10 Grafik perubahan terhadap volume


(a) konversi dan (b) temperatur
146 PERSAMAAN DIFERENSIAL BIASA
Kasus 4: Fluida pemanas searah dengan reaktan

Neraca energi untuk fluida pemanas sama dengan kasus 3, dengan


mengalikan dengan -1 :
dT
Ua Ta  T 
a  mc C pc
dV
dengan Ta (V = 0) = 994,6 K untuk memperoleh Ta0 = 1.250 K.

Program Matlab ditunjukkan di bawah dan Gambar 7.11


menujukan grafik output.

PERSAMAAN DIFERENSIAL BIASA 147


konversi reaktor
0.35

0.3

0.25

0.2
konve

0.15

0.1

0.05

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Volume, m3 -3
x 10

(a)

Profil Temperature
1250
Reaktor, T
Pemanas, Ta
1200

1150
Temperatur,

1100

1050

1000

950
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Volume, m3 -3
x 10

(b)

Gambar 7.11 Grafik perubahan terhadap volume


(a) konversi dan (b) temperatur
148 PERSAMAAN DIFERENSIAL BIASA
Contoh 7.6 Reaksi Kompleks dengan Efek Panas dalam PFR

Berikut reaksi kompleks fasa gas mengikuti hukum laju reaksi


elementer (Fogler, 1999):

(1) A + 2B → C r k C C2
1A 1A A B

HRx1B  15.000 cal/mol B

(2) 2A + 3C → D r 
k C 2C 3
2C 2C A C

HRx 2 A  10.000 cal/mol A

Reaksi berlangsung pada reaktor PFR. Umpan adalah stoikiometri


pada reaksi (1) terhadap A dan B dengan FA0 = 5
mol/menit. Volume reaktor adalah 10 dm dan konsentrasi total
3

yang masuk adalah CT0 = 0,2 mo/dm3. Tekanan masuk adalah


100 atm dan temperatur masuk adalah 300 K. Laju alir
pendingin adalah 50 mol/menit dan memiliki kapasitas panas CpCO
= 10 cal/mol.K serta masuk pada suhu 325 K.
2
 dm3 
k1A  40   menit pada suhu 300 K E1  8.000 cal/mol
mol dengan
 
4
 3
k2C  2  d  menit pada suhu 300 K E1  12.000 cal/mol
mol
dengan
 
CpA = 10 cal/mol/K Ua = 80 cal/min/K

CpB = 12 cal/mol/K Ta0 = 325 K

CpC = 12 cal/mol/K m = 50 mol/min

CpD = 12 cal/mol/K

Plot FA, FB, FC, FD, y, T dan Ta sebagai fungsi V untuk :


PERSAMAAN DIFERENSIAL BIASA 149
(a) Pertukaran panas searah (co-current)

150 PERSAMAAN DIFERENSIAL BIASA


(b) Pertukaan panas lawan arah (counter current)
(c) Ta konstan
(d) Operasi Adiabatis

Penyelesaian :

Reaski Fasa Gas pada PFR tanpa hilang tekan (y = 1)

Neraca mol :

dFA (FA0 = 5 mol/menit) (7.6.1)


 rA
dV
dFB
rB
(FB0 = 10 mol/menit) (7.6.2)
dV
dF
C
 rC Vi = 10 dm3 (7.6.3)
dV
dF  (7.6.4)
D rD
dV

Persamaan laju :

r1A  k C C 2
1A A B (7.6.5)

r  k 2 (7.6.6)
C
3 C
2C 2C A C

Laju relatif
:
r1B  2 (7.6.7)
r1A
(7.6.8)
r1C 
r1A
2 2
r  r  k
C 2C 3
PERSAMAAN DIFERENSIAL BIASA 151
(7.6.9)
2A 2C 2C A C
3 3
1
r  r 1
 2 (7.6.10)
C
3 C
k
2D 2C 2C A C
3 3

152 PERSAMAAN DIFERENSIAL BIASA


Laju total untuk komponen A, B, C dan D adalah :
2
r  r  r  k C C 2  2 (7.6.11)
k C
3 C
A 1A 2A 1A A B
2C A C
3
rB  r1B  2k1A CA CB2 (7.6.12)
r r r
k C C2  C 2
C (7.6.13)
k 3
C 1C 2C 1A A B 2C A C

r r 1
 2 (7.6.14)
C
3 C
k
D
2D 2C A C
3
Stoikiometri :
 FA 
C A  CT 0  y (7.6.15)
F
 T 
 FB 
CB  CT 0  y (7.6.16)
F
 T 
 FC 
CC  CT 0  y (7.6.17)
F
 T 
 FD 
CD  CT 0  y (7.6.18)
F
 T 
y1 (7.6.19)
FT  FA  FB  FC  (7.6.20)
FD

Parameter :
 E1 
1
k  40 exp 1 
 3 (7.6.21)
1A   
dm/mol
 2 mi
n
R 300 T
 
 E2  
1k  2 exp 1
 dm /mol 
3
4

PERSAMAAN DIFERENSIAL BIASA 153


min (7.6.22)
2C   
 R  300 T
R = 1,987 cal/mol/K

Neraca Energi :

Perubahan suhu reaktor terhadap volume :

154 PERSAMAAN DIFERENSIAL BIASA


dT Qg  Qr
dV  (7.6.23)
 Fj Cp
j

 F Cp
j j  FACpA  FBCpB  FCCpC  (7.6.24)
FDCpD

Panas yang diserap (Heat Romoved) :

Qr  Ua T  Ta 
(7.6.25)

Panas yang dibangkitkan (Heat Generated):

Qr   rij  r1B HRx1B  r2 A HRx 2 (7.6.26)


H Rxij A

(a) Fluida pndingin searah (co-current) dengan reaktan


Neraca pertukaran panas untuk aliran co-current adalah :
dTa
Ua T  Ta (7.6.27)
dV 

mC CpCO
Program Matlab ditunjukkan di bawah dan Gambar 7.12
menujukan grafik output.

PERSAMAAN DIFERENSIAL BIASA 155


156 PERSAMAAN DIFERENSIAL BIASA
profil konsentrasi reaktor
10
Fa Fb Fc
9 Fd

6
konsentra

0
0 1 2 3 4 5 6 7 8 9 10
volume,dm3

(a)

Profil Temperatur
900
T
Ta
800

700
Temperatur

600

500

400

300
0 1 2 3 4 5 6 7 8 9 10
volume,dm3

(b)

Gambar 7.12 Grafik perubahan terhadap volume


(a) laju alir molar dan (b) temperatur

(b) Fluida pendingin berlawanan arah (counterr-current)


dengan reaktan
Neraca pertukaran panas untuk aliran co-current adalah :
PERSAMAAN DIFERENSIAL BIASA 157
dTa
dV   Ua T  Ta (7.6.27)

mC CpCO

Program Matlab ditunjukkan di bawah dan Gambar 7.13


menunjukkan grafik output.

158 PERSAMAAN DIFERENSIAL BIASA


profil laju alir molar
10
Fa Fb Fc
9 Fd

5
laju alir,

0
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(a)
Profil Temperatur
1200
T
1100 Ta

1000

900
Temperatur

800

700

600

500

400

300
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(b)

(a) laju alir molar dan (b)


temperatur
PERSAMAAN DIFERENSIAL BIASA 149
Gambar 7.13 Grafik perubahan terhadap volume

150 PERSAMAAN DIFERENSIAL BIASA


(c) Pertukaran panas dengan Ta konstan
Neraca pertukaran panas untuk Ta konstan adalah :

dTa
dV   Ua T  Ta  *
0
mCCpCO

Program Matlab ditunjukkan di bawah dan Gambar 7.14


menunjukkan grafik output.

(a) laju alir molar dan (b)


temperatur
PERSAMAAN DIFERENSIAL BIASA 151
profil laju alir molar
10
Fa Fb Fc Fd
9

5
laju alir,

0
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(a)
Profil Temperatur
900
T
Ta
800

700
Temperatur

600

500

400

300
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(b)

152 PERSAMAAN DIFERENSIAL BIASA


Gambar 7.14 Grafik perubahan terhadap volume

(a) laju alir molar dan (b)


temperatur
PERSAMAAN DIFERENSIAL BIASA 153
(d) Proses Adiabatis

154 PERSAMAAN DIFERENSIAL BIASA


profil laju alir molar
10
Fa Fb Fc Fd
9

5
laju alir,

0
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(a)
Profil Temperatur
1600
T

1400

1200

1000
Temperatur

800

600

400

200
0 1 2 3 4 5 6 7 8 9 10
volume reaktor,dm3

(b)

Gambar 7.15 Grafik perubahan terhadap volume


(a) laju alir molar dan (b)
temperatur
PERSAMAAN DIFERENSIAL BIASA 155
Contoh 7.7 Fixed Bed Reactor

Reaksi elementer fasa gas dijalankan dalam reaktor fixed bed.


Terdapat penukar panas di sekeliling reaktor, dan terdapat
pressure drop sepanjang reaktor.

2A C
Gas masuk reaktor pada suhu 450 K.

Gambar 7.16 Grafik perubahan terhadap volume


(a) laju alir molar dan (b) temperatur

Laju untuk reaksi katalisis di atas dinyatakan dengan persamaan :


 2 C 
r C
A  k C  (7.7.1)
 A 
 K C
Konstanta laju reaksi berdasarkan reaktan A dan mengikuti
persamaan Arrhenius :
 E  1 1 
k  kT 450K exp    (7.7.2)

  R  T0 T   
Kontanta kesetimbangan berubah terhadap suhu dan ditentukan
dari persamaan van’t Hoff’s dengan ∆Cp = 0.

 HR  1 1 
K C  KT 450K exp    (7.7.3)
T T
R
156 PERSAMAAN DIFERENSIAL BIASA
  0  

(a) laju alir molar dan (b)


temperatur
PERSAMAAN DIFERENSIAL BIASA 157
Beberapa parameter lainnya diberikan di bawah :

CPA = 40 J/g-mol.K R = 8,314 J/g-mol.K


CPC = 80 J/g-mol.K FA0 = 5 g-mol/min
∆HR = - 40.000 J/g-mol Ua/ρc = 0,8 J/kgcat.min.K
E = 41.800 J/g-mol.K Ta = 500 K
k0 = 0.5 dm6/kg⋅min⋅mol @ 450 K α = 0,019/ kgkatalis
K0 = 25.000 dm3/g-mol @ 450 K P0 = 10 atm
CA0 = 0,271 g-mol/dm3 yA0 = 1, 0 (Pure A feed)
T0 = 450 K Wf = 20 kg catalis

(a)Buat grafik konversi (x), tekanan reduksi (y) dan temperatur (T


x 10-3) sepanjang reaktor dari W = 0 kg sampai W = 20 kg
katalis.
(b)Buat grafik profil konsentrasi reaktan A dan produk C dari W =
0 kg sampai W= 20 kg katalis.

Penyelesaian :
Pada kasus di atas diasumsikan tidak ada gradien konsentrasi
dan temperatur pada arah radial di beberapa titik dalam katalis.
Desain reaktor akan menggunakan konversi A yang dinyatakan
dengan X dan temperatur T yang keduanya sebagai fungsi lokasi
di dalam bed katalis tertentu dengan berat katalis W.

Neraca mol :

dX  rA (7.7.4)
dW  FAO

Persamaan laju reaksi


:  CC  (7.7.1)
2
r
A  k CA  
K
 C

PERSAMAAN DIFERENSIAL BIASA 155


Konstanta laju reaksi :
E 1 1 (7.7.5)

k  0,5 exp    
T  
 R  T0

konstanta kesetimbangan reaksi :

H R 
4 1  (7.7.6)
1
K C  2,510 exp    
 R  T0 T 

Stoikiometri :

Konsentrasi dinyatakan sebagai fungsi konversi dan suhu yang


mengalami perubahan volumetrik karena penurunan jumlah mol
selama reaksi. Oleh karen itu :

 1 X   1 X
P  (7.7.7)
T0
T0
C A  CAO    CAO  y
1   X  P0 T 1 0,5 X  T
 
P
y
T0

CC   0,5CA0 X  y T0 (7.7.8)
1 0,5 X T
 

Neraca Energi :

Neraca energi dapat dituliskan:

Ua  T    H 
T
r
 a A rxn
dT (7.7.9)
dW  FA0  i C pi  X Cp 
c

156 PERSAMAAN DIFERENSIAL BIASA


Jika hanya reaktan A maka dapat disederhanakan :

PERSAMAAN DIFERENSIAL BIASA 157


Ua  T    r  H 
dT  T A rxn
a
 c (7.7.10)
dW FA0CpA

Pressure Drop :
Pressure drop dapat dinyatakan sebagai persamaan diferensial:

 P
d     1  ε X  P T
 P0  0 (7.7.11)

dW 2 P T0

atau

dy   1  0,5 X  (7.7.12)
T 
dW 2y T0

Penulisan program untuk penyelesaian kasus di atas dicantumkan


di bawah dan grafik simulasi ditunjukkan pada Gambar 7.17..

158 PERSAMAAN DIFERENSIAL BIASA


PERSAMAAN DIFERENSIAL BIASA 159
Profil Reaktor
1.4
Konversi A
Tekanan reduksi
1.2
T/1000

0.8

0.6

0.4

0.2

0
0 2 4 6 8 10 12 14 16 18 20
W, kg

(a)
Profil Reaktor
0.35
CA
CC
0.3

0.25

0.2
konsentrasi,

0.15

0.1

0.05

0
0 2 4 6 8 10 12 14 16 18 20
W, kg

(b)

Gambar 7.17 Grafik perubahan terhadap berat katalis


(a) konversi, tekanan dan T/1000, (b) konsentrasi A dan C

160 PERSAMAAN DIFERENSIAL BIASA


Contoh 7.8. Oksidasi Sulfur Dioksida
Dalam pembuatan asam sulfat dari belerang, tahap pertama adalah
pembakaran belerang dalam suatu furnace untuk menjadi belerang
dioksida (Fogler, 1999):
S + O2 → SO2
Selanjutnya SO2 dikonversi menjadi sulfur trioksida menggunakan
katalis :
SO2 + O2 → SO3
Persamaan laju reaksi untuk oksidaai SO2 dalam katalis tertentu
adalah :
2
  P  
r'  k PSO2  P   S O3  (7.8.1)
PSO3  O2
SO2  K P  
  p SO2  

Dimana Pi adalah tekanan parsial komponen i. Persamaan ini


dapat digunakan ketika konversi lebih besar dari 5%.

Untuk konversi dibawah 5%, laju reaksi mengikuti persamaan :

' 0,1176 

 rSO  k  0,848   (7.8.2)
2
 Kp 2 

Umpan ke SO2 konverter adalah 7900 lbmol/h, dan terdiri 11%


SO2, 10% O2, dan 79 % inert (sebagai N2). Konverter terdiri atas
4.631 tube dengan katalis padat, panjang masing-masing 20 ft.
Tube memiliki 3 in O.D. dan 2,871 in I.D. Tube katalis akan
didinginkan dengan cairan mendidih pada 805 oF sehingga
temperatur pendingin konstan. Tekanan masuk reaktor 2 atm.

Untuk temperatur masuk 740oF dan 940oF, plot profil konversi,


temperatur dan pressure drop.

Diberikan data :

PERSAMAAN DIFERENSIAL BIASA 161


= 0,45 U = 10 Btu/jam.ft2.oR

162 PERSAMAAN DIFERENSIAL BIASA


ρ 0 = 0,054 lb/ft3 Ac =0,0442 ft2
P0 = 2 atm T0 = 1400oR
Dp = 0,015 ft gc = 4,17 x 108 lbm.ft/lbf.h2
μ = 0,090 lb/ft.h pada 1400oR

Konstanta kesetimbangan
42.311 pada T adalah -1/2
K  exp 11,24 (K dalam atm ,T dalam o R)
(7.8.3)
p   p
 RT 
Kontanta laju reaksi dinyatakan dengan persamaan :
176.008
k  exp  (110,1ln T )  912,
(k
o dalam lbmol SO /lbcat.s.atm,T dalam (7.8.4)
 R)
8
 RT

 2

Terdapat efek difusional pada katalis pada suhu tersebut dan


persaman di atas harus dipandang sebagai persamaan empiris
yang memperkirakan konstanta laju rekais efektif dalam kisaran
suhu 814o-1138oF. Tabel JANAF digunakan untuk memberikan
data berikut:
CpSO2 = 7,208 + 5,633 x 10-3 T – 1,343 × 10−6T2 (7.8.5)
CpO2 = 5,731 + 2,323 x 10-3 T – 4,886 × 10−6T2 (7.8.6)
CpSO3 = 8,511 + 9,517 x 10 T – 3,325 × 10− T
-3 6 2 (7.8.7)
CpN2 = 6,248 + 8,778 x 10-4 T – 2,130 × 10−8T2 (7.8.8)

Dengan Cp dalam Btu/lbmol.oR dan T dalam oR.


∆HR(800oF) = -42.471 Btu/lbmol SO2

Penyelesaian :

Neraca
mol:
dX r'
A (7.8.9)

dW FAO

PERSAMAAN DIFERENSIAL BIASA 163


Persamaan Laju:
2
  P  
 r '  k PSO  PO   S O 3
  (7.8.1)
K P  
2
SO
PSO
2  2

 p SO  
3

 2

Hubungan Stoikiometri :
S + ½ O2 → SO2
A+½B → C
Kita misalkan A menyatakan SO2 dan vi koefisien stoikiometri
untuk komponen i:
P  C RT   i  i X RT P  i  i X RT (7.8.10)
C  P
i i AO
P1  X T / T P A0
1  X P
0 0 0

Subtitusi untuk tekanan parsial dalam laju reaksi dan kombinasi


menghasilkan :
dX r'
 A
dW FAO
P  1X   X 2 1 
 
 k1  X 
 SO3 2 SO3
   1   
(7.8.11)
X P 1
εX X
FAOSO 
P
A0  K2
   
3

 0 p

Dimana :
ε = -0,055, PA0= 0,22 atm; ΘSO2 = 1,0; ΘO2 = 0,91; ΘSO3 = 0,0;
ΘN2 = 7,17;
FT0 = 7.900 lb mol/h; FA0 = 869 lb mol/h
Per tube :
Berat katalis dalam satu tube =
π D2
W  ρc L  18,54 lbcat./tube
4

FA0
869
 4.631  0,188 lb mo/tube

164 PERSAMAAN DIFERENSIAL BIASA


Subtitusi nilai diatas diperoleh :

dX  0,2  0,11X P  X
 
2
1X
 5,329 k X
    (7.8.12)
dW P 0 1  X p 
1 
 
Neraca Energi : 0,055X K
4U
dT c D T  T    r 'A H R(T )
(7.8.13)

a 
dW   C
i pi X Cp 

FA0
β γ
H (T )  H 0 (T )  αT  T  T 2
 T 2  T 3

(7.8.14)
T3 

R R R R R
2 3

Untuk oksidasi SO2, S + ½ O2 → SO2 ,

α  αSO  1 α  αSO2  8,511  (0,5)(5,731)  7,208  1,563


2
O
3 2

β 
 1 2β  β SO2  (9,517 103 )  1
(2,323 103 )  (5,633 103 )
β SO3 2
O
2
  0,738 106

Δγ  γ
SO3  1 2γ 2
 γ SO  (2,325 106 )  1 (4,886 107 )  (1,343 106 )
2
O
2
6
  0,738 10
Subtitusi ke persamaan (7.9.9) dengan TR = 1260o R diperoleh :
H (T )  42.471  1,563T  1260  1,36 103 T 2  12602 
R

 (2,459 107 ) T 3  12603 
∆HR dalam Btu/lb mol, T dalam R

 C i pi
 57,23  0,014T 1,94 106 T (7.8.16)
2

PERSAMAAN DIFERENSIAL BIASA 165


Koefisien transfer panas :

UπD 4U
  
4 10 Btu/h  ft 2 o R 
c Ac c D 33,8lb/ft 2,78/12ft
2

 5,11 Btu/h  lb  cat o R

166 PERSAMAAN DIFERENSIAL BIASA


Persamaan (7.8.13) menjadi :
dT 5,11Ta  T    r  H (7.8.17)
(T )   '

dW 0,188 i C pi A X CR p 

Pressure drop :

Pressure drop diberikan dengan persamaan :

dP 1 φG 1 εX  150μ1- φ (7.8.18)


  
1,75G
dL ρ P / P T /T g D φ3 D
0 0 0
c p  p 

Dimana :
G   Fi0 /  1307,6 lb/ft 2  h
Ac
Mi
A  crosssectional area :  D2 / 4
c

dengan W  ρi Ac L , maka diperoleh persamaan :

dP GTP0 1  φ 1  εX  150μ1- φ




(7.8.19)
1,75G
dW ρ A ρ T Pg D φ 3
D
c c 0 0 c p  p 

Subtitusi parameter-parameter ke persamaan (7.8.1)8 diperoleh :

dP
1,12 106 1  0,055X T
5500μ  2288 (7.8.20)
dW   P

Persamaan (7.8.12), (7.8.17) dan (7.8.20) diselesaikan secara


simultan.
Program MATLAB dan grafik hasil simulasi ditunjukkan di
bawah.

PERSAMAAN DIFERENSIAL BIASA 167


168 PERSAMAAN DIFERENSIAL BIASA
2
X
1.8 P (atm)

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25 30
w (lb)

(a)
1600

1550

1500

1450
Temperature

1400

1350

1300

1250
0 5 10 15 20 25 30
w (lb)

(b)

Contoh 7.9. Distribusi Suhu Batang Logam


Suatu batang logam dengan jari-jari, R = 0,2 m, panjang L=
10 m, kedua ujungnya melekat pada dinding yang suhunya
berbeda, yaitu Ta = 300 K dan Tb = 400 K (Gambar 7.8). Suhu
udara diketahui, T∞ = 200 K. Diameter batang sangat kecil
PERSAMAAN DIFERENSIAL BIASA 169
dibanding dengan panjang batang dan konduktivitas panas
batang besar [ k = 200 J/(s.m.K)] sehingga gradien suhu
dalam batang arah radial bisa diabaikan. Koefisien perpindahan
panas antara permukaan batang dan udara, h = 1 J/m2K s.
Ingin dicari distribusi suhu batang pada keadaan steady state
pada arah x untuk kondisi (a) hanya panas konveksi mengalir
dari batang ke udara, (b) ada panas radiasi yang hilang dari
batang ke udara denga σ = 2,7 . 10-9 K-3m-2.

Penyelesaian :
Pada kasus di atas terjadi dua amacam perpindahan panas, yaitu
1) Perpindahan panas konduksi arah aksial dalam batang,
dT
q  k A
(7.9.1)
dx
2) Perpindahan panas antar fasa dari permukaan batang ke
udara batang,
q  h AT  T  (7.9.2)
Neraca Panas pada elemn volume sepanjang ∆x pada batang :

Gambar 7.8 Batang logam

170 PERSAMAAN DIFERENSIAL BIASA


Rate

of input – Rate

of output = Rate of Accumulation
dT dT  (7.9.3)

k  r 2  
k  r 2
h
T2 r x T
 

      0
  
d   x dx x x

 
Modifikasi persamaan (7.5.3) menghasilkan :

dT dT 2h
dx  dx (7.9.4)
x x

x
x
 T T   0
kr
Jika diambil ∆x → 0 , maka menurut definisi matematika
diperoleh:
d  dT  2h
T 
 T    0 (7.9.5)
 
dx  dx  k r
Persamaan matematis untuk persamaan ini adalah :
d 2T  2h   
T (7.9.5)
dx 2 k r 

Dengan kondisi batas pada :


x = 0 ; T = Ta (7.9.6)
x = L ; T = Tb (7.9.7)

Pada kenyataannya persamaan di atas secara fisik menyatakan


kondisi kedua batas batang yang dikenal dengan istilah
boundary condition.
Penyelesaian persamaan (7.9.5) dengan keadaan batas pers
(7.9.6) dan pers (7.9.7) akan menghasilkan T = f (x).
(a) Persamaan diatas dapat diselesaikan dengan MATLAB
dengan cara merubah persamaan (7.5.5) menjadi dua buah
persamaan oder satu simultan.
dT 
dx  z

dz 2h
 T  T
PERSAMAAN DIFERENSIAL BIASA 171
(7.9.5)
(7.9.5)

dx kr

(7.9.

(7.9.

172 PERSAMAAN DIFERENSIAL BIASA


Untuk harga T(0) = Ta , sementara harga z(0)
tidak diketahui. Nilai z diveluasi dengan degan cara trial
and error sehingga diperoleh Tb = f(z) = 400
menggunakan persamaan diferensial.

function contoh75A
clc, clear
zaf=fzero(@subcontoh75A,-50);
%
function r=subcontoh75A(z0)
T0 = 300; % K
xspan = [0 10];% panjang batang
[x,y]=ode45(@subsubcontoh75A,xspan,[300 z0])
plot(x,y(:,1))
title('grafik temperatur vs jarak');
xlabel('jarak, z (meter)');
ylabel('temperatur, K ');
r = y(length(x),1)-400;
%
function dydx=subsubcontoh75A(x,y)
T = y(1); z = y(2);
h = 1; %J/m2K.s
Tudara = 200; %K
k = 200; %J/s m K
r = 0.2; % m
dydx(1)= z;
dydx(2)= 2*h*(T-Tudara)/(k*r);
dydx=dydx';

Grafik profil suhu terhadap jarak pada batang ditunjukkan


Gambar di bawah

PERSAMAAN DIFERENSIAL BIASA 173


grafik temperatur vs jarak
400

380

360
temperatur,

340

320

300

280
0 1 2 3 4 5 6 7 8 9 10
jarak, z (meter)

Gambar 7.9 Profil Suhu pada batang

(b) Untuk sistem yang melibatkan panas radiasi, persamaan


disusun sebagai berikut:

dT
dx  z (7.9.5) (7.9.
dz 2h
 T     T 4  T 4 (7.9.5)
T

 
(7.9.1
dx kr

Program penyelesaian dengan MATLAB seabagai berikut:

function contoh75B clc, clear


zaf=fzero(@subcontoh75A,-50);
% function r=subcontoh75A(z0)
T0 = 300; % K
xspan = [0 10];% panjang batang [x,y]=ode45(@subsubcontoh75A

174 PERSAMAAN DIFERENSIAL BIASA


plot(x,y(:,1))
title('grafik temperatur vs jarak'); xlabel('jarak, z (meter
r = y(length(x),1)-400;
% function dydx=subsubcontoh75A(x,y)
T = y(1); z = y(2);
h = 1; %J/m2K.s Tudara = 200; %K k = 200; %J/s m K r = 0.2;
sigma = 2.7E-9;%K/m2 dydx(1)= z;
dydx(2)= 2*h*(T-Tudara)/(k*r)+sigma*(T^4- Tudara^4);
dydx=dydx';

Grafik profil suhu terhadap jarak pada batang ditunjukkan


Gambar 7.10 di bawah

grafik temperatur vs jarak


420

400

380

360

340
temperatur,

320

300

280

260

240

220
0 1 2 3 4 5 6 7 8 9 10
jarak, z (meter)

Gambar 7.10 Profil Suhu pada batang dengan panas radiasi


PERSAMAAN DIFERENSIAL BIASA 175
Contoh 7.10 Difusi dan Reaksi Kimia dalam Katalisator
Reaksi fasa gas order satu :
A→B
Berlangsung dipermukaan pori katalisator padat berbentuk
bola berjari-jari R = 2 cm. Sistem dianggap isotermis.
Konsentrasi A pada fasa gas di permukaan luar bola CAS = 5,0 x
10-4 gmol/cm3. Gas A mendifusi ke dalam bola melalui pori
katalisator sambil sebagian bereaksi di permukaan katalisator
dengan konstanta kecepatan reaksi k. Luas permukaan pori tiap
volum katalisator = a. Haga ka = 1,0 x 10-3 1/s. Harga
difusivitas effektif, De = 1,0 x 10-4 cm2/s. Konsentrasi di pusat
katalis diasumsikan 4,5 x 10-4 gmol/cm3. Kecepatan difusi A
melalui pori dianggap mengikuti persamaan yang mirip dengan
difusi gas, yaitu
gmolA:
N A   D eluas dCA (7.10.1)
waktu d jarak  z
 
Kecepatan reaksi di permukaan pori katalisator mengikuti
persamaan :
rA  gmol A   k C (7.10.2)
waktuluas pori A

 
Ingin di cari konsentrasi gas A pada berbagai posisi dalam bola
pada keadaan steady.

Penyelesaian :
Dalam menyusun model matematis, perpindahan massa A
dalam bola dianggap ke arah r positif keluar walaupun
sebenarya ke arah r negatif karena kedua keadaan tersebut
akan memberikan hasil persamaan matematis yang sama.

176 PERSAMAAN DIFERENSIAL BIASA


R

∆r

Gambar 7.11 Elemen volum setebal ∆r dalam bola berpori

Neraca massa A pada elemen volum:


Rate of input – Rate of output = Rate of Accumulation

 dC  
 2 dC A


D 4 r 2  D 4 r r
 A 
k C a 4 r 2r
 e  
 
e
d


A (7.10.3)

 d r  
r r

(4πr2∆r menyatakan volume dari elemen volum, yaitu luasnya


4πr2 dan tebalnya ∆r)
Modifikasi persamaan (7.10.3) dihasilkan :

dC
r r 
2

dCA ka 2 (7.10.4)
A r r
dr 
r r C 0
r De A

Jika diambil ∆r  0 , maka menurut definisi matematika


diperoleh:
d  2 dCA  k a 2 (7.10.5)
r   r CA 
0 
dr  dr  De
2 2 A dCA k a 2 (7.10.6)
r d 2  2r
dr dr  r CA  0
De
d 2CA  2 dC A  k a  (7.10.7)
r dr CA 0
dr 2 De

PERSAMAAN DIFERENSIAL BIASA 177


Dengan kondisi batas pada :
r = R ; CA = CAS (7.10.8)

r = 0 ; CA dCA
= CA0 ==0 (7.10.9)
dr
Persamaan diatas dapat diselesaikan dengan MATLAB dengan
cara merubah persamaan (7.10.7) menjadi dua buah persamaan
oder satu simultan.
dCA
(7.10.10)
dr  u
du 2u ka (7.10.11)
  CA
dr rDe
Untuk harga CA(0) = CAO , sementara harga u(0) tidak diketahui.
Nilai u diveluasi dengan degan cara trial and error sehingga
diperoleh CA = f(r) = CAS menggunakan persamaan diferensial.

function contoh76
clc, clear
cas=fzero(@subcontoh76,0.002);
%
function r=subcontoh76(u0)
ca0=0.00045;%gmol/cm3
r = 2;%cm
rspan = [0 r];%inteval jari-jari
[x,y]=ode45(@subsubcontoh76,rspan,[ca0 u0]);
plot(x,y(:,1),'m')
title('Konsentrasi vs Jari-jari');
xlabel('jari-jari, r (cm)');
ylabel('konsentrasi,CA (gmol/cm3) ');
%m=y(length(x),1)
r = y(end,1)-5E-4;
%
function dydr=subsubcontoh76(x,y)
ca = y(1);u = y(2);
r = 2;% cm
ka = 1E-3; %1/s
De = 1E-4; %cm2/s

178 PERSAMAAN DIFERENSIAL BIASA


dydr(1)= u;

PERSAMAAN DIFERENSIAL BIASA 179


dydr(2)=
-(2*u/r)+(ka*ca/De); dydr =

-4
x 10 Konsentrasi vs Jari-jari
6

4
konsentrasi,CA

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
jari-jari, r (cm)

Gambar 7.12 Elemen volum setebal ∆r dalam bola berpori

7.3 RANGKUMAN
a. Persamaan Diferensial Biasa (PDB) merupakan per-
samaan diferensial dimana fungsi yang tidak diketahui
(variabel terikat) adalah fungsi dari variabel bebas
tunggal
b. Dalam bidang Teknik Kimia Persamaan diferensial
muncul dari kajian proses fisis dan kimia dinamis yang
memiliki satu variable bebas. Variabel tersebut dapat
berupa variable jarak, z atau variabel waktu, t yang
bergantung pada geometri sistem dan kondisi batasnya.
c. Penyelesaian persamaan diferensial biasa dapat disele-
saikan dengan MATLAB menggunakan fungsi ode
yang akan diperoleh nilai variabel terikat untuk setiap
variabel bebas yang diberikan.

180 PERSAMAAN DIFERENSIAL BIASA


7.4 RUJUKAN

a. Constantinidis dan Mustoufi, 1999, Numerical Methodes


for Chemical Engineers with MATLAB Application, hal
262-264. Prentice-Hall: Englewood Cfiffs, NJ.
b. Finlayson, B.A., 2006, Introduction to Chemical
Engineering Computing, hal 115-123. John Wiley &
Sons Inc., New Jersey
c. Dan Hanselman dan Bruce Littlefield, 1997. MATLAB:
Bahasa Komputasi dan Teknis. hal 15 dan 154-165.
Andi. Yokyakarta.
d. Fogler, H. S. 1999. Elements of Chemical Reaction
Engineering, 3rd ed., Englewood Cliffs, NJ: Prentice-
Hall.
e. B. Klofutar, J. Golob, B. Likozar, C. Klofutar, ,E.Zagar, .
Poljanšek D. 2010. The transesterification of rapeseed and
waste sunflower oils: Mass-transfer and kinetics in a
laboratory batch reactor and in an industrial-scale
reactor/separator setup. Bioresource Technology 101. Pp.
3333–3344
f. Sediawan, Wahyudi Budi. 1997. Pemodelan Matematis
dan Penyelesaian Numeris dalam Teknik Kimia. Andi.
Yogyakarta.

PERSAMAAN DIFERENSIAL BIASA 181


BAB 8

PERSAMAAN DIFERENSIAL PARSIAL

8.1 PENDAHULUAN

Bab ini membahas tentang persamaan diferensial parsial.


Setelah menyelesaikan pokok bahasan ini mahasiswa diharap-
kan akan mampu menyelesaikan persamaan diferensial parsial
dengan MATLAB. Secara khusus mahasiswa diharapkan akan
mampu menyusun permasalahan fisis dan kimia dalam Teknik
Kimia dalam bentuk persamaan diferensial parsial, menyelesai-
kan persamaan diferensial parsial dengan methode of line dalam
MATLAB. Persamaan diferensial parsial banyak ditemukan
pada pemodelan-pemodelan teknik kimia berbasis fenomena
transpor (momentum, panas dan massa).

8.2 MODEL MATEMATIS

Hukum konservasi massa, momentum dan energi membentuk


basis penerapan fenomena transpor. Hukum ini berlaku pada
aliran fluida yang menghasilkan persamaan perubahan (equation
of change), yang menggambarkan perubahan kecepatan, tem-
peratur dan konsentrasi terhadap waktu dan posisi. Dinamika

182 PERSAMAAN DIFERENSIAL BIASA 177


sistem, yang memiliki lebih dari satu variabel bebas dimodelkan
dalam persamaan diferensial parsial (Constantinidis dan
Mostoufi, 1999).
Sebagai contoh persamaan neraca massa:

 Rate of mass   rate   rate of


of  (8.1)

 accumulation   mass in   mass in 
     
diterapkan pada volume elemen stasioner ∆x, ∆y, ∆z melewati
fluida murni yang sedang mengalir menghasilkan persamaan
kontinuitas (equation of continuity):
 
        
(8.2)
 x
x y z 
t x x 

Dimana 𝜌 adalah densitas fluida, vx, vy, vz adalah kecepatan
komponen dalam tiga koordinat rektanguler.
Aplikasi untuk neraca momentum:
 Rate   Rate of   Rate of   Sum forces 
of      of 
 momentum   momentum  momentum  action on (8.3)
       
accumulation  in out system
       

Pada elemen volume ∆x, ∆y, ∆z, untuk aliran fluida isotermal,
menghasilkan persamaan gerak dalam tiga arah :
    
ρ j    ρ x j  ρ y j  ρ z j (8.4)
t
 x y z
 
     p
   xj   yj   zj    ρ g j j  x, y, atau z
 x y z  j

Dimana  xj adalah shear stress tensor, p adalah tekanan dan gi


adalah percepatan gravitasi.

178 PERSAMAAN DIFERENSIAL PARSIAL


(x+∆x,y+∆y,z+∆z)
(ρvx)x (ρvx)x+∆x

(x,y,z)

Gambar 8.1 Elemen Volume ∆x∆y∆z untuk Aliran Fluida

Aplikasi untuk neraca energi adalah:


 Rate Rate of
of     Rate of 
     
 accumulation   energy in   energy out 
 
of energy  by convection  by convection  (8.5)
     
 Rate of   Rate of work 
Net Net 
  
  heat addition    done by system 
by conduction   on surroundings 
   

Pada elemen volume ∆x, ∆y, ∆z, untuk aliran fluida non-
isotermal dihasilkan persamaan neraca energi:
 T T T T   qx  qy  q 
z
ρ Cv   x  y  z     y z 
x  t x y z  
(8.6)
 T  p    qx qy qz   vx vy v 
 xx  yy 
  T   x y z   x y
z 
zz

  vx
vy   vx vz   vy vz 
  xy      xz      yz   
  y z x   z x   y  
Dimana T adalah temperatur, C adalah kapasitas panas pada
volume konstan, dan qi adalah komponen fluks energi yang
diberikan hukum Fourier untuk panas konduksi :
T i

q k
PERSAMAAN DIFERENSIAL PARSIAL 179
i  x, y, atau z
(8.7)
dimana k adalah konduktivitas termal.

180 PERSAMAAN DIFERENSIAL PARSIAL


Untuk konduksi dalam padatan, dimana kecepatan
adalah nol persamaan (8.6) dapat disederhanakan. Ketika di-
kombinasikan dengan pers. (8.7), menghasilkan persamaan
konduksi panas non setady state tiga dimensioanal yang ter-
kenal :
T   2T
2
T   (8.8)
ρ Cp 2
T
t  k   
y z 2
 x 2
2

dimana Cp adalah kapasitas panas pada tekanan konstan, meng-
gantikan Cv, dan k telah diasumsikan konstan di dalam padatan.

Persamaan kontinuitas untuk komponen A dalam suatu


campuran biner (komponen A dan B) dengan densitas fluida
yang konstan, ρ dan koefisien difusi, DAB yang konstan adalah :
c  c c c  2 
c

2
c
 2c

(8.9)
A
  A
 A

A
D  A
 A
 A
R
t   x x z   
2 A
y
y z AB
x
2
y z
2

  
Dimana cA = konsentrasi molar A dan RA = laju produksi molar
komponen A. Persamaan ini mereduksi hukum kedua difusi Fick
ketika RA =0 dan vx = vy = vz = 0.
cA 2  2  2c (8.10)
c c 
A A 
A
 DAB    2

t 2
y z
x 2

Persamaan diferensial yang paling umum muncul dalam


teknik kimia adalah persamaan order satu dan order dua.
Persamaan diferensial parsial diklasifikasikan berdasarkan
order, linieritas dan kondisi batasnya. Order persamaan
diferensial parsial ditentukan oleh order tertinggi turunan
parsial dalam persamaan. Contoh persamaan diferensial parsial
order satu, dua, tiga adalah :
Order satu : u u (8.11)
0  
PERSAMAAN DIFERENSIAL PARSIAL 181
x y
 u
Order dua :  u  (8.12)
2
u
0
x 2
y

182 PERSAMAAN DIFERENSIAL PARSIAL


3
 T   2u u
Order tiga : t  x y  y  0 (8.13)
 
Persamaan diferensial dikategorikan kedalam persamaan
linier, quasilinier dan nonlinier. Sebagiai contoh, misalkan
persamaan order dua berikut:

a .   2b  2u  c  2u
(8.14)
2
u x . 0
. x2
y y
2

Jika koefisien adalah konstan atau fungsi variabel independen


hanya [(.) ≡ (x,y)], maka persamaan (8.14) adalah linier. Jika
koefisien adalah fungsi variabel terikat dan atau beberapa
turunannya order yang lebih dari persamaan [(.) ≡ (x, y, u, ∂u/ ∂x,
∂u/ ∂y)] maka persamaanya adalah quasilinier. Jika koefisien
adalah fungsi turunan yang ordernya sama seperti persamaan
[(.) ≡ (x, y, u, ∂2u/ ∂x2, ∂2u/ ∂y2, ∂2u/ ∂x ∂y)] maka persamaanya
adalah nonlinier. Berdasarkan definisi di atas, persamaan (8.11)
adalah linier, persamaan (8.12) adalah quasilinier, dan pers
(8.13) adalah nonlinier.
Persamaan diferensial order dua linier dalam dua variabel
bebas selanjutnya diklasifikasikan ke dalam tiga bentuk kanonik
: elliptic, parabolic, dan hiperbolic. Bentuk umum persamaan jenis
ini adalah :
 2u 
2 u
2
 u u
u
a  2b c d e  fu  g (8.15)
x2 xy y y y
2

Dimana koefisien adalah konstan atau hanya fungsi variabel


independen. Bentuk tiga kanonik ditentukan oleh kriteria
berikut:
b2  ac  0, elliptic (8.16a)
b2  ac  0, parabolic (8.16b)
b  ac  0,
2
hyperbolic (8.16c)
PERSAMAAN DIFERENSIAL PARSIAL 183
Jika g = 0, maka persamaan (8.15) adalah persamaan diferensial
homogen.
Contoh klasik persamaan diferensial order dua yang

184 PERSAMAAN DIFERENSIAL PARSIAL


membentuk kanonik tiga adalah :

Persamaan Laplace (elliptic)


 2u  2u
x 2 
(8.17)
0
y 2
Persamaan difusi atau konduksi panas :

  2u
u (8.18)
 t
Persamaan gelombang : x2

 2u  2u
(8.18) (8.1
2
 x 2  2
t

Contoh 8.1 Perpindahan Panas Unsteady state


Pada suatu slab yang sangat luas, maka perpindahan panas
hanya berlangsung pada arah x. Perpindahan panas unstaedy
state dalam suatu slab pada arah x dinyatakan dengan
persamaan diferensial parsial :

T 
2
T  (8.1.1)
t x
2

dimana T adalah temperatur (K) , t adalah waktu (s), dan


adalah difusivitas (m2/s) diberikan dengan k/ρCp. Dalam hal ini
konduktivitas termal k (W/m.K) densitas, ρ (kg/m3) dan
kapasitas panas, Cp (J/kg.K) adalah konstan (Geankoplis, 1999).
Misalkan material slab dengan ketebalan 1 m dilindungi isolasi
nonkonduksi. Slab ditunjukan Gambar 8.2. Untuk penyelesaian
numeris slab dibagi kedalam N bagian dengan N + 1 titik
ujung. Slab mula-mula memiliki temperatur seragam 100oC.
Hal ini memberikan kondisi awal bahwa semua temperatur di
titik-titik internal diketahui nilainya pada saat t = 0.

PERSAMAAN DIFERENSIAL PARSIAL 185


Tn = 100 untuk n = 2 … (N + 1) pada t = 0 (8.1.2)

186 PERSAMAAN DIFERENSIAL PARSIAL


Kondisi batas :
(a)
T1 dijaga pada nilai
konstan
(b)
Transfer panas
konveksi ke To
Batas Isolasi

Gambar 8.2 Perpindahan Panas Konduksi Unstedy State


pada Slab Satu Dimensi

Jika pada waktu nol permukaan luar tiba-tiba terjadi pada


temperatur konstan 0oC, hal ni memberikan kondisi batas pada
titik 1.
T1 = 0 untuk t ≥ 0 (8.1.3)
Kondisi batas lain adalah bahwa batas isolasi pada N + 1 tidak ada
konduksi panas. Sehingga :
TN 1
0 untuk t ≥ 0 (8.1.4)
x
Sebagai catatan bahwa masalah ini sama dengan keadaan
yang memiliki suatu slab dengan dua kali ketebalan terhadap
temperatur awal kedua permukaan.
Ketika konveksi dianggap hanya sebagai model transfer
panas ke permukaan slab, neraca energi dapat dibuat di
permukaan yang menghubungkan antara energi input dengan
konveksi terhadap energi output dengan konduksi. Oleh karena
itu kapanpun untuk transfer normal ke permukaan slab pad arah
x adalah :
hT  T   k untuk t ≥ 0 (8.1.5)
T

0 1
x x0

PERSAMAAN DIFERENSIAL PARSIAL 187


dimana h adalah koefisien transfer panas konveksi dalam W/m2.K
dan T0 dalah temperatur embien.

a) Selesaikan secara numeris persamaan (8.1.1) dengan


kondisi batas awal dan akhir persamaan (8.1.2), (8.1.3) dan
(8.1.4) untuk kasus dimana α = 2 x 10-5 m2/s dan
permukaan slab dijaga konstan pada T1 = 0 °C.
Penyelesaian harus menggunkan numerical method of lines
dengan N = 10 bagian. Plot temperature T2, T3, T4, and T5
sebagai fungsi waktu sampai 6000 s.
b) Ulangi bagian (a) untuk kasus dimana panas konveksi
muncul pada permukaan slab dengan h = 25 W/m2.K, dan
k = 10 W/m.K.

Penyelesaian:
Untuk kasus (a) dengan N =10 dan dengan bagian panjang ∆x =
0,1 m, pers (8.1.1) dapat dituliskan menggunakan rumus central
difference untuk turunan kedua sebagai:
Tn 
 T  2T  T untuk (2 ≤ n ≤ 10) (8.1.6)

n1
 n n1
t

x2
Kondisi batas yang dinyatakan pers (8.1.4) dapat dituliskan
menggunakan backward finite difference order dua sebagai :
T11 3T11  4T10  T9 (8.1.7)

0
t 2x
yang dapat diselesaikan untuk T11 menghasilkan :

T11
4T10  T9 (8.1.8)
 3 0
Penyelesaian kasus di atas dengan proram MATLAB disusun dan

188 PERSAMAAN DIFERENSIAL PARSIAL


function latihan_81A
clear, clc, format short g, format compact
tspan=[0:500:6000]; % Range independent variable
dijalankan sebagai berikut:

PERSAMAAN DIFERENSIAL PARSIAL 189


T2=Y(:,1);
T3=Y(:,2);
T4=Y(:,3);
T5=Y(:,4);
T6=Y(:,5);
T7=Y(:,6);
T8=Y(:,7);
T9=Y(:,8);
T10=Y(:,9);
plot(tspan,T2,'-*r',tspan,T3,'-*b',tspan,T4,'-
*m',tspan,T5,'-
*g')
title('grafik temperatur vs waktu');
xlabel('waktu, t (detik)');
ylabel('temperatur, oC ');
legend('T2','T3','T4','T5')
%- - - - - - - - - - - - - - - - - - - - - -
function
dYdt=ODEfun(t,Y);
T2=Y(1);
T3=Y(2);
T4=Y(3);
T5=Y(4);
T6=Y(5);
T7=Y(6);
T8=Y(7);
T9=Y(8);
T10=Y(9);
alpha = .00002;
deltax = .1;
T1= 0;
T11=(4.*T10 - T9)./ 3;
dYdt(1) = alpha / (deltax ^ 2) * (T3 - (2 * T2) + T1);
dYdt(2) = alpha / (deltax ^ 2) * (T4 - (2 * T3) + T2);
dYdt(3) = alpha / (deltax ^ 2) * (T5 - (2 * T4) + T3);
dYdt(4) = alpha / (deltax ^ 2) * (T6 - (2 * T5) + T4);
dYdt(5) = alpha / (deltax ^ 2) * (T7 - (2 * T6) + T5);
dYdt(6) = alpha / (deltax ^ 2) * (T8 - (2 * T7) + T6);
dYdt(7) = alpha / (deltax ^ 2) * (T9 - (2 * T8) + T7);
dYdt(8) = alpha / (deltax ^ 2) * (T10 - (2 * T9) + T8);

190 PERSAMAAN DIFERENSIAL PARSIAL


grafik temperatur vs waktu
100
T2
90 T3
T4
80 T5

70

60
temperatur,

50

40

30

20

10
0 1000 2000 3000 4000 5000 6000
waktu, t (detik)

Gambar 8.3 Profil Temperatur Konduksi Panas Unsteady


State pada Slab Satu Dimensi

Untuk kasus (b), neraca energi pada permukaan slab di atas dapat
digunakan untuk menentukan hubungan antara temperatur
permukaan slab T1, temperatur ambien T0, dan temperatur
pada titik-titik internal. Dalam kasus ini persaman second-order
forward difference untuk turunan pertama dapat diterapkan pada
per- mukaan :
T  T3  4T2  3T1 (8.1.9)
x 
x0 
x
dan disubtitusikan ke pers (8.1.5) menghasilkan :
 T3  4T2  3T1 
h T0  T1   k
2x (8.1.10)
Persamaan terdahulu dapat diselesaikan untuk memperoleh T1 :
2hT0 x  kT3 
T 2
4kT (8.1.11)
1
3k  2hx
PERSAMAAN DIFERENSIAL PARSIAL 191
Penyelesaian kasus di atas dengan proram MATLAB disusun dan
dijalankan sebagai berikut:

function latihan_81B
clear, clc, format short g, format compact
tspan=[0:500:6000]; % Range for the independent variable
Y0=[100 100 100 100 100 100 100 100 100]; % nilai awal
T2-T10
[t Y] =
ode45(@ODEfun,tspan,Y0) T2 =
Y(:,1);
T3 = Y(:,2);
T4 = Y(:,3);
T5 = Y(:,4);
T6 = Y(:,5);
T7 = Y(:,6);
T8 = Y(:,7);
T9 = Y(:,8);
T10 = Y(:,9);
plot(tspan,T2,'-or',tspan,T3,'-ob',tspan,T4,'-om',tspan,T5,'-og')
title('grafik temperatur vs waktu');
xlabel('waktu, t
(detik)');
ylabel('temperatur, oC
');
legend('T2','T3','T4','
T5')
%- - - - - - - - - - - - - - - - - - - - - -
function
dYdt=ODEfun(t,Y); T2 =
Y(1);
T3 = Y(2);
T4 = Y(3);
T5 = Y(4);
T6 = Y(5);
T7 = Y(6);
T8 = Y(7);
T9 = Y(8);
T10 = Y(9);
alpha = .00002;
T0 = 0;
h =
25;%W/m2.K
k = 10;%

192 PERSAMAAN DIFERENSIAL PARSIAL


dYdt(5) = alpha / (deltax ^ 2) * (T7 - (2 * T6) +
T5); dYdt(6) = alpha / (deltax ^ 2) * (T8 - (2 *
T7) + T6); dYdt(7) = alpha / (deltax ^ 2) * (T9 -
(2 * T8) + T7); dYdt(8) = alpha / (deltax ^ 2) *
(T10 - (2 * T9) + T8); dYdt(9) = alpha / (deltax ^
2) * (T11 - (2 * T10) + T9); dYdt=dYdt';

grafik temperatur vs waktu


100
T2
90 T3
T4
80
T5

70

60
temperatur,

50

40

30

20

10

0
0 1000 2000 3000 4000 5000 6000
waktu, t (detik)

Gambar 8.4 Profil Temperatur Transfer Panas Unsteady State


dengan Konveksi dalam Slab Satu Dimensi

Contoh 8.2 Difusi Massa Unsteady state dan Reaksi pada


Slab
Gas CO2 pada tekanan satu atmosfer sedang diabsorpsi ke
dalam larutan alkali yang mengandung katalis. Gas CO 2 yang
terlarut dinyatakan sebagai reaktan A yang mengalami difusi
dan reaksi order satu, satu arah dalam larutan yang
dinyatakan sebagai persamaan diferensial sebagai berikut.
2C
CA  DAB A  k CA (8.2.1)
x2
t
PERSAMAAN DIFERENSIAL PARSIAL 193
dimana CA adalah konsentrasi CO2 terlarut (kgmol/m3), t adalah

194 PERSAMAAN DIFERENSIAL PARSIAL


waktu (detik), DAB adalah difusivitas CO2 dalam larutan alkali B
(m2/s), x adalah jarak dari atas larutan (m), dan k adalah
konstanta laju reaksi order satu (1/s). Tekanan parsial CO2
adalah PA0 =1,0132 x 105 Pa, dan kelarutan CO2 adalah S
= 2,961 x 10-7 kg.mol/Pa.

Kondisi awal untuk persamaan (8.2.1) diberikan dengan :


CA = 0 pada awal waktu t = 0 untuk semua x (8.2.2)
dan kondisi batas adalah
CA = CAS untuk t > 0 dan x = 0 (8.2.3)
dan
CA = 0 untuk t > 0 dan x = ∞ (8.2.4)

Pada sistem tersebut, Geankoplis (1993) menyediakan data


berikut:
CAS = PA0S = (1,0132 x 105 Pa)( 2,961 x 10-7 kg.mol/Pa.)
= 0,03 kg.mol/m3
DAB = 1,5 x 10-9 m2/s dan k = 35 s-1
a) Hitung konsentrasi A terlarut dalam larutan setelah 0,01
detik dengan menggunakan numerical methode of line
dengan 11 titik ( 10 interval dan interval antar node 1 x 10-6).
b) Hitung jumlah total A yang terserap sampai waktu 0,01
detik.

Penyelesaian :
Penyelesaian persoalan di atas dapat dilakukan dengan cara
yang sama seperti Contoh 8.1. Untuk 10 interval permukaan
slab dapat dituliskan :
CA DAB
 C  2CAn  CAn1  k CAn untuk (2 ≤ n ≤ 10)
t x  1 An
2
(8.2.5)

Kondisi awal untuk persamaan (8.2.2) dan (8.2.3) dapat


dituliskan :
PERSAMAAN DIFERENSIAL PARSIAL 195
CA1 = 0 pada t = 0 (8.2.6)
dan
CA1 = PA0S = (1,0132 x 105 Pa)( 2,961 x 10-7 kg.mol/Pa.) = 0,03
kg.mol/m3 untuk t > 0 (8.2.7)
kondisi batas pada pers (8.2.4) dengan asumsi kondisi (a)
menjadi:
CA11 = 0 untuk t ≥ 0 (8.2.8)
Penyelesaian kasus di atas dengan proram MATLAB disusun dan
dijalankan seperti pada program function_latihan 82A:

function latihan_82A
clear, clc, format short g, format compact
tspan=[0:0.0005:0.01]; % Range for the independent
variable Y0=[0 0 0 0 0 0 0 0 0]; % Nilai awal CA2
– CA10
[t Y] =
ode45(@ODEfun,tspan,Y0) CA2
= Y(:,1);
CA3 = Y(:,2);
CA4 = Y(:,3);
CA5 = Y(:,4);
CA6 = Y(:,5);
CA7 = Y(:,6);
CA8 = Y(:,7);
CA9 = Y(:,8);
CA10 = Y(:,9);
plot(tspan,CA2,'-r',tspan,CA3,'-b',tspan,CA4,'-m',tspan,CA5,'-g')
title('grafik konsentrasi A vs waktu');
xlabel('waktu, t (detik)');
ylabel('konsentrasi CA,
kgm0l/m3 ');
legend('CA2','CA3','CA4','CA
5')
%- - - - - - - - - - - - - - - - - - - - - -
function
dCAdt=ODEfun(t,Y); CA2
= Y(1);
CA3 = Y(2);
CA4 = Y(3);
CA5 = Y(4);
CA6 = Y(5);
CA7 = Y(6);
196 PERSAMAAN DIFERENSIAL PARSIAL
if (t == 0)
CA1 = 0;
else
CA1 = .03;
end
deltax = .000001;
CA11 = 0;
dCAdt(1) = DAB / (deltax ^ 2) * (CA3 - (2 * CA2) +
CA1)-k*CA2; dCAdt(2) = DAB / (deltax ^ 2) * (CA4 - (2 *
CA3) + CA2)-k*CA3; dCAdt(3) = DAB / (deltax ^ 2) * (CA5
- (2 * CA4) + CA3)-k*CA4; dCAdt(4) = DAB / (deltax ^ 2)
* (CA6 - (2 * CA5) + CA4)-k*CA5; dCAdt(5) = DAB /
(deltax ^ 2) * (CA7 - (2 * CA6) + CA5)-k*CA6; dCAdt(6) =
DAB / (deltax ^ 2) * (CA8 - (2 * CA7) + CA6)-k*CA7;
dCAdt(7) = DAB / (deltax ^ 2) * (CA9 - (2 * CA8) +
CA7)-k*CA8; dCAdt(8) = DAB / (deltax ^ 2) * (CA10 - (2 *
CA9) + CA8)-k*CA9; dCAdt(9) = DAB / (deltax ^ 2) * (CA11

Grafik profil konsentrasi terhadap waktu ditunjukkan gambar


berikut :
grafik konsentrasi A vs waktu
0.025
CA2 CA3 CA4
CA5

0.02

0.015
konsentrasi CA,

0.01

0.005

0
0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01
waktu, t (detik)

Gambar 8.5 Profil difusi dan reaksi unsteady state dalam


slab satu dimensi
PERSAMAAN DIFERENSIAL PARSIAL 197
8.3 RANGKUMAN

a. Persamaan Diferensial Parsial (PDP) merupakan per-


samaan diferensial dimana fungsi yang tidak diketahui
(variabel terikat) adalah fungsi dari lebih dari satu variabel
bebas.
b. Penyelesaian persamaan diferensial parsial dapat diselesai-
kan dengan methode of line dan MATLAB menggunakan
fungsi ode yang akan diperoleh nilai variabel terikat untuk
setiap variabel bebas yang diberikan.

8.4 RUJUKAN

a. Constantinidis dan Mustoufi.1999. Numerical Methodes for


Chemical Engineers with MATLAB Application. hal 262-
264. Prentice-Hall: Englewood Cfiffs. NJ.
b. Finlayson, B.A. 2006. Introduction to Chemical Engineering
Computing. hal 115-123. John Wiley & Sons Inc. New
Jersey
c. Bird, R. B., Stewart, W. E., Lightfoot, E. N., Transport
Phenomena, 2nd ed. Wiley: New York, 2002
d. Geankoplis, C.J., 1993. Transport Process and Unit Operation.
Prentice-Gill. New Jerssey.

198 PERSAMAAN DIFERENSIAL PARSIAL


BAB 9

OPTIMASI

9.1 PENDAHULUAN
Optimasi dapat diartikan sebagai suatu proses untuk men-
cari kondisi yang optimum, dalam arti paling menguntung-
kan. Optimasi bisa berupa maksimasi atau minimasi. Bila kita
berhadapan dengan masalah keuntungan, keadaan
optimum adalah yang memberikan keuntungan maksimum
(maksi- masi) sedang bila berhadapan dengan masalah
pengeluaran pengorbanan keadaan optimum adalah yang
memberikan pengeluaran/pengorbanan minimum
(minimasi).

Optimasi mencakup kegiatan yang dijalankan secara inovatif


dan matematis. Optimasi inovatif bersifat strategis dalam
arti mencari kondisi optimum dengan cara mencari proses-
proses baru atau cara-cara baru atau flow diagram baru
dan lain-lain, misalnya dengan mengubah proses ekstraksi
dari cross current menjadi current current, atau mengubah
cara pengambilan minyak atsiri dari stem distillation
menjadi ekstraksi. Sebaliknya optimasi matematis bersifat
taktis dalam arti prosesnya/caranya/flow diagramnya tetap
sedang yang dicari adalah kondisi-kondisi operasi yang
memberikan keadaan optimum secara matematis.
193
Dalam pelaksanaan optimasi, seringkali perhitungan alat-
alat dilakukan dengan cara kasar. Setelah kondisi optimum
diketahui baru dilakukan perhitungan dengan alat-alat
dijalankan dengan teliti, hitungan optimasinya menjadi
sangat besar.

Dalam kalkulus tersedia cara optimasi untuk satu perubah


bebas maupun untuk perubah banyak. Yang diperlukan
adalah turunan diferensialnya.

Untuk optimasi dengan satu variabel


y  f (x) (9.1)
Maka harga y maksimum atau minimum terjadi pada :
y
x  0 (9.2)
2y
Dimana apabila 0 terjadi y maksimum sedang bila

2y x 2
 0 terjadi y minimum.
x 2

Untuk optimasi dengan banyak perubah:


y  f (x1, x , x , , x ) (9.3)
2 3 n

Maka y maksimum atau minimum terjadi pada:


y y y
0  0 ; ... 0 (9.4)
x1 x xn
; 2 ;

Ada lagi suatu cara khusus untuk optimasi, yaitu dengan


cara Langrange. Jika dijumpai maksimasi atau minimasi
y  f (x1, x2 , x3 , , xn ) (9.5)
sedang misal antar variabel bebas ada hubungan matematis
g1  f (x1, x , x , , x ) (9.6)
2 3 n

g 2  f (x1, x , x , , x ) (9.7)
2 3 n

194 OPTIMASI
maka keadaan optimum terjadi pada:
y g1 g 2
0    (9.8)
x1 x1 x1
y g1 g 2
0    (9.9)
x2 x2 x2
  
y g1 g 2
0    (9.10)
xn xn xn

dengan λ dan β berupa konstanta.


Dalam optimasi variabel yang akan dimaksimumkan atau
diminimumkan (y) disebut objective function sedang variabel
x1, x2, ..., xn disebut variabel bebasnya atau design variable.
Meskipun optimasi dapat diselesaikan secara analitis, namun
sebagian besar praktek optimasi memerlukan metode
numeris, penyelesaian dengan komputer.

9.2 TOOLBOX OPTIMASI DALAM MATLAB

Toolbox optimasi harus diinstal dalam komputer sebagai


tambahan MATLAB sebelum digunakan. Tabel 9.1
menunjukaan beberapa fungsi yang tersedia dalam toolbox
optimasi. Sebagian besar routine optimasi ini memerlukan M-
file (tersimpan dalam current directory) yang mengandung
definisi persoalan yang akan diselesaikan, beberapa contoh
file akan ditampilkan dan didiskusikan nanti. Default
parameter optimasi digunakan secara luas, namun hal itu
bisa dimodifikasi melalui suatu perintah „options‟
yang tersedia dalam program. Sintaks perintah suatu fungsi
optimasi secara umum dalam bentuk :

[x, FunValue] = fminX(‘ObjFun’, . . ., options)

OPTIMASI 195
Pernyataan di sisi kiri menyatakan kuantitas yang dijalankan
oleh „fuction‟. Argumen output ini dijelaskan Table 9.2. Sisi
kanan, fminX menyatakan salah satu fungsi yang diberikan
Tabel 9.1. Dapat terdiri beberapa argumen untu fungsi
fminX, seperti nilai awal variabel, batas atas dan batas atas
variabel, nama M-file yang mengandung fungsi dan gradien,
lagoritma optimasi yang berkaitan dengan data, dan lainnya.
Kegunaan fungsi ini dicontohkan dalam bagian berikutnya
untuk beberapa tipe soal dan kondisi.

Tabel 9.1 Toolbox Fungsi Optimasi


Type of problemFormulationFuction
One variable Find x ϵ [xl, xu] to minimize f(x) fminbnd
unconstrain
minimization
Uncontrain Find x to minimize f(x) fminunc
minimization fminsearch
Constrain Find x to minimize f(x) fmincon
minimization Subject to nx = e, Ax ≤ b
hj =0, j = 1 to p
gi =0, i = 1 to m
xil ≤ xi ≤ xiu
Linier Programming Find x to minimize linprog
f(x)=cTx
Subject to Nx = e, Ax ≤b
Quadratic Find x to minimize quadprog
programming f(x)=cTx + ½ xTHx
Subject to Nx = e, Ax ≤
b

Tabel 9.2 Argumen Fungsi Optimasi


ArgumentDescription
x The solution vector or matrix found by optimization
function. If exitFlag > 0 then x is a solution,
otherwise x is the latest value from optimization
routine
FunValue Value of the objective fundtion, ObjFun, at the solution
x
Exitflag The exit condition for optimization function. If
ExitFlag is positive, then the optimization converged
to a solution x. If ExitFlag is negative, the the
optimization routine did not converge to a solution
Output The outputvector contain several pieces of information
about the optimization process. It prvides the number of
functions (output iteration) and the name of the

196 OPTIMASI
algorithm used to solve the problem (output algorithm),
etc.

OPTIMASI 197
9.3 OPTIMASI TANPA KONSTRAIN
(UNCONSTRAINT OPTIMIZATION)

9.3.1 Optimasi Satu variabel

Pada bagian ini akan dijelaskan teknik untuk menemukan nilai


maksimum atau minimum suatu fungsi variabel tunggal f(x).
Suatu gambar yang berguna dalam kaitan ini adalah “roller
coaster” satu variabel seperti yang ditunjukkan Gambar 9.1.
Sebagaimana lokasi akar persamaan yang rumit dengan fakta
bahwa beberapa akar persamaan dapat terjadi untuk fungsi
tunggal, hal yang sama untuk local optimum dan global optimum
keduanya dapat terjadi dalam optimasi

Global optimum menyatakan penyelesaian yang sangat baik.


Local optimum, meskipun tidak semua sangat baik, lebih baik
daripada nilai terdekatnya (Chapra, 2012). Kasus yang
termasuk dalam local optimum disebut multimodal. Dalam kasus
seperti itu, kita hampir akan selalu tertarik dalam menemukan
global optimum. Tambahan pula, kita harus difokuskan pada
kesalahan hasil nilai lokal untuk global optimum.
f(x) Global maximum
Local maximum

Global minimum
Local minimum

Gambar 9.1. Suatu fungsi yang secara asimtot mendekati nol


pada plus dan minus ∞ dan memiliki dua titik maksimum dan
minimum.

198 OPTIMASI
Pertama kita ilustrasikan penggunaan fungsi fminbnd untuk
minimasi suatu fungsi varibel tunggal f(x) dengan batas
pada x sebagai xl ≤ x ≤ xu.

Contoh 9.1 Minimasi unconstraint dengan satu variabel

Tentukan nilai x untuk meminimalkan f(x) = 2 - 4x + ex , -10


≤ x ≤ 10.

Penyelesaian.
Untuk menyelesaiakn soal, kita tuliskan dalam m-file yang
mencari nilai dari fungsi objektif.
function optm1
clc, clear
Lb=-10;Ub=10;
[x,fval,exitflag] = fminbnd(@objfun1,Lb,Ub)
%
function f = objfun1(x)
f = 2-4*x+exp(x);

The output from the function is given as :

x =
1.3863
fval =
0.4548
exitflag =
1
output =
iterations: 21
funcCount: 42
algorithm: [1x33 char]
message: [1x196 char]

9.3.2 Optimasi Multi variabel


Selain fungsi satu variabel, optimasi juga berlaku untuk
fungsi multivariabel. Untuk kasus dua variabel ditunjukkan

OPTIMASI 199
Gambar 9.2. Contoh berikut menunjukkan kemampuan
MATLAB untuk menvisualisasikan gambar fungsi dua
variabel.

Contoh 9.2 Minimasi unconstraint degan dua variabel

Gunakan kemempuan grafik MATLAB untuk


menampilkan fungsi berikut dan secara visual estimasi nilai
minimumnya pada –2 ≤ x1 ≤ 0 and 0 ≤ x2 ≤ 3:

f (x1, x2) = 2 + x1 − x2 + 2x1 2 + 2x1x2 + x22

Penyelesaian. Berikut script untuk membuat plot contour


dan mesh dari fungsi di atas.

x=linspace(-2,0,40);y=linspace(0,3,40);
[X,Y] = meshgrid(x,y);
Z=2+X-Y+2*X.^2+2*X.*Y+Y.^2;
subplot(1,2,1);
cs=contour(X,Y,Z);clabel(cs);
xlabel('x_1');ylabel('x_2');
title('(a) Contour plot');grid;
subplot(1,2,2);
cs=surfc(X,Y,Z);
zmin=floor(min(Z));
zmax=ceil(max(Z));
xlabel('x_1');ylabel('x_2');zlabel('f(x_1,x_
2)');
title('(b) Mesh plot');

200 OPTIMASI
(a) Contour plot (b) Mesh plot
3
3
6
2.5 5 8
4

1 6
2

f(x ,
1
1.5 2
x
2

2
3
1
0
3
0.5
2 0
4 2
6 5 1 -1
087 x
-2 -1.5 -1 -0.5 0 2 0 -2 x1
x1

Gambar 9.2. Grafik fungsi dua variabel dengan


(a) Contour dan (b) mesh

Seperti ditampilkan pada gambar di atas, kedua plot meng-


indikasikan bahwa fungsi memiliki nilai minimum f(x1, x2) =
0 sampai 1 terletak pada sekitar x1 = −1 and x2 = 1.5.
Teknik untuk optimasi multivariabel tanpa konstrain
dapat diklasifikasikan dalam beberapa cara yang dibagi
berdasarkan kebutuhannya untuk menggunakan penurunan.
Pendekatan yang memerlukan penurunan disebut metode
gradient atau descent. Sementara pendekatan yang tidak
memerlukan evaluasi penuruan disebut nongradient atau
direct.
MATLAB standar memiliki fungsi fminsearch dan
fminunc yang dapat digunakan untuk menentukan nilai
minimum fungsi multivariabel tanpa konstrain. Fungsi
fminsearch mengunakan metode pencarian Simplex Nelder-
Mead, yang merupakan metode direct yang hanya menggu-
nakan nilai fungsi (tidak membutuhkan penurunan) atau
tidak memerlukan nilai numeris atau gradien analisis fungsi
obyektif.
Sementara itu, fungsi fminunc memerlukan iniformasi
OPTIMASI 201
dan dengan option „LargeScale‟ diatur ke „off‟, ini
menngunakan metode BGF quasi–newton dengan prosedur
pencarian kombinasi quadratic dan cubik line. Formula DFP
yang mendekati invers matrik Hessian dapat dipilih dengan
mengatur pilihan Hessupdate menjadi steepdesc. Fminsearch
umumnya kurang efisien daripada fminunc. Namun demikian,
ini bisa menjadi efektif untuk persoalan yang evaluasi
gradiennya mahal atau tidak mungkin (Arora, 2012).

Untuk menyelesaikan persoalan, kita menuliskan suatu m-


file yang mencari nilai fungsi obyektif. Selanjutnya, fungsi
minimasi tanpa konstrain fminsearch atau fminunc dijalankan
dengan mengeksekusi M-file lainnya.

Pernyataan sederhana sintaknya adalah :

[xmin, fval] = fminsearch(function,x0)


[xmin, fval] = fminunc(function,x0)

Dimana xmin dan fval adalah lokasi dan nilai minimum,


function adalah nama fungsi yang dievaluasi, dan x0 adalah
tebakan awal. x0 dapat berupa scalar, vector atau suatu
matrik.
Berikut contoh sederhana penggunaan fminserach dan
fminunc untuk menentukan nilai minimum dari grafik yang
ditunjukkan Gambar 9.2

function optmulti
clc, clear
[x,fval] = fminsearch(@objfun2,[-0.5,0.5])
%
function f = objfun2(x)
f = 2+x(1)-x(2)+2*x(1)^2+2*x(1)*x(2)+x(2)^2;

202 OPTIMASI
Hasil eksekusi ditampikan dibawah:

x =
-1.0000 1.5000

fval =

0.7500

exitflag =

1
output =

iterations: 40
funcCount: 76
algorithm: [1x33 char]
message: [1x196 char]

Untuk script fminunc ditampilkan dibawah:

function optmulti2
clc, clear
[x,fval,exitflag] = fminunc(@objfun2,[-
0.5,0.5])
%
function f = objfun2(x)
f = 2+x(1)-x(2)+2*x(1)^2+2*x(1)*x(2)+x(2)^2;

Nilai variabel ditampikan dibawah:


x =
-1.0000 1.5000

fval =

0.7500

exitflag =

OPTIMASI 203
output =
iterations: 3
funcCount: 15
stepsize: 1
firstorderopt: 1.4901e-008
algorithm: [1x38 char]
message: [1x438 char]

9.4 OPTIMASI DENGAN KONSTRAIN


(CONSTRAINT OPTIMIZATION)

Persoalan optimasi dengan konstrain umum diselesaikan


dengan fungsi fmincon seperti didefinsikan pada tabel 9.1.
Prosedur untuk menjalankan fungsi ini sama dengan soal
tanpa konstrain tetapi pada fungsi ini harus disediakan M-
file yang mengandung fungsi konstrain. Jika ekspresi
gradien analitis diprogram dalam fungsi objektif dan M-file
fungsi konstrain, maka fungsi ini dinyatakan melalui
perintah option, jika tidak fmincon akan menggunakan
perhitungan gradien numeris berdasarkan metode finite
difference.

fmincon menyelesaikan persoalan minimasi dalam bentuk :


c(x)  0

ceq(x)  0

min
x
f (x) A  x  b
Aeq  x  beq

lb  x  ub,
x, b, beq, lb, dan ub adalah vektor, A dan Aeq adalah matriks,
c(x) dan ceq(x) adalah fungsi yang menjalankan vektor dan
f(x) adalah fungsi yang menjalankan skalar. f(x), c(x), dan
ceq(x) dapat berupa fungsi nonlinier.

fmincon menerapkan empat algoritma yang berbeda, yaitu :

204 OPTIMASI
interior point, SQP, activeset, dan trust region reflective.
Memilih salah satunya melalui option Algorithm: sebagai
contoh memilih SQP, atur options = optimset('Algorithm','sqp'),
dan selanjutnya masukan option ke fmincon.

Penulisan syntax :

x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,beq)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

Deskripsi :
f Fungsi yang diminimasi. fun is adalah fungsi
yang menerima vektor x dan skalar, f adalah
fungsi objektif yang dievaluasi pada x.
x0 Nilai awal x
A matrix for linear inequality constraints
b vector for linear inequality constraints
Aeq matrix for linear equality constraints
beq vector for linear equality constraints
c(x) nonlinear inequalities constrains
ceq(x) nonlinear equalities constraints
lb vector of lower bounds
ub vector of upper bounds
nonlcon nonlinear constraint function

Untuk memperjelas pengunaan fungsi ini, diberikan contoh


berikut:

Contoh 9.3 Optimasi dengan linier inequality constraint

Selesaikan soal minimasi berikut:


mi f (x)  x x x (9.3.1)
1 2 3
n
x

OPTIMASI 205
Terhadap konstrain:
0 ≤ x1 + 2.x2 + 2x3 ≤ 72 (9.3.2)

dengan nilai tebakan awal x adalah (10; 10; 10)

Penyelesaian:
Pada soal di atas konstrain hanya berupa linier inequality,
sementara konstrain lain tidak ada. Untuk menentukan nilai
minimasi pada fungsi di atas dapat digunakan syntax yang
paling sederhana.
Penulisan script:
function optconlin1
clc, clear
x0=[10 10 10]; %nilai tebakan awal x(1) dan x(2)
A=[-1 -2 -2;...
1 2 2] %matriks linier inequality constrain
b=[0;72] %vektor linier inequality constrain
%file eksekusi optimasi
[x,fval] = fmincon(@objfun1,x0,A,b)
%
function f = objfun1(x)
%objective function
f = -x(1)*x(2)*x(3)

Eksekusi program menghasilkan output:

lower upper ineqlin ineqnonlin


2
x =
24.0000 12.0000 12.0000
fval =
-3.4560e+003

206 OPTIMASI
Contoh 9.4 Optimasi dengan nonlinier inequality
constraint dan bound constraint

Selesaikan soal minimasi berikut:

min f (x)  e x1 (4x 2  2x 2  4x  2x 1) (9.4.1)


x
1 2 1 2 2
x

Terhadap konstrain:
x1.x2 – x1. - x2 ≤ -1,5 (9.4.2)
x1 .x2 ≥ -10 (9.4.3)
0 ≤ x1 ≤ 0 (9.4.4)
Penyelesaian:
Karena kedua konstrainnya adalah nonlinier, kita tidak dapat
melewati konstrain pada fmincon dalam satu file perintah.
Sehingga kita dapat membuat file kedua, confun.m yang
mencari nila kedua konstrain pada x saat ini dalam vektor
c. Optimasi constrain fmincon selanjutnya dieksekusi. Karena
fmincon meminta konstrain ditulis dalam bentuk c(x) ≤ 0,
konstrain harus ditulis dalam bentuk :

x1.x2 – x1. - x2 + 1,5 ≤ 0 (9.4.5)


-x1 .x2 - 10 ≤ 0 (9.4.6)

Penulisan syntax M-file untuk soal di atas adalah :

function optimcon1
clc, clear
x0 = [-1 1]; %nilai tebakan awal x(1) dan x(2)
A=[];b=[]; %linier inequality constrain
Aeq=[];beq=[]; %linier equality constraints
lb=[0 0];ub=[]; %lower dan upper bound
options = optimset('Algorithm','active-
set'); %memilih algoritma
[x,fval]=fmincon(@objfun,x0,A,b,Aeq,beq,lb,u
b,@confun,options)
%

OPTIMASI 207
function [c, ceq] = confun(x)

208 OPTIMASI
% Nonlinear inequality constraints
c = [1.5 + x(1)*x(2) - x(1) - x(2);
-x(1)*x(2) - 10];
% Nonlinear equality constraints
ceq =[];

%
function f = objfun(x)
%onjective function
f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 +
4*x(1)*x(2) + 2*x(2)+1);

Ouput program adalah :


Active inequalities (to within
options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin

1 1

x =
0 1.5000

fval =
8.5000

Contoh 9.5 Optimasi dengan nonlinier inequality


constraint, bound constraint dan gradients

Selesaikan soal minimasi berikut:

Minimasi f(x) = (x1-10)3 + (x2 – 20)3 (9.5.1)


Terhadap konstrain:
g1(x) = 100 - (x1 - 5)3 - (x2 – 5)3 ≤ 0 (9.5.2)
g2(x) = 100 - (x1 - 5)3 - (x2 – 5)3 ≤ 0 (9.5.3)
13 ≤ x1 ≤ 100, 0 ≤ x2 ≤ 100 (9.5.4)

OPTIMASI 209
Penyelesaian:
Penyelesaian optimum untuk soal diketahui x = 14,095;
0,84296) dan f(x) = -6961,9 (Arora, 1981). M-file untuk soal
ini diberikan di bawah:
function optconnlingrad
clc, clear
% Set bounds for variables
Lb = [13; 0]; Ub = [100; 100];
% Set initial design
x0 = [20.1 5.84];
% Invoke fmincon; four [ ] indicate no linear
constraints in the problem
options = optimset('Algorithm','interior-
point',...

'Display','iter','GradObj','on','GradConstr','o
n')
[x,FunVal, ExitFlag, Output] =...
fmincon(@ObjAndGrad9_5,x0,[],[],[],[],Lb,Ub,@Co
nstAndGrad9_5)
%
%M-File for Objective Function and Gradient
Evaluations
function [f, gf] = ObjAndGrad9_5(x)
% Re-name design variables x
x1 = x(1); x2 = x(2);
% Evaluate objective function
f = (x1-10)^3 + (x2-20)^3;
% Compute gradient of objective function
if nargout > 1
gf(1,1) = 3*(x1-10)^2;
gf(2,1) = 3*(x2-20)^2;
end
%
%M-File Constraint Functions and Their
Gradients Evaluation
function [g, h, gg, gh] = ConstAndGrad9_5(x)
%Re-name design variables
x1 = x(1); x2 = x(2);

210 OPTIMASI
% Inequality constraints
g(1) = 100-(x1-5)^2-(x2-5)^2;
g(2) = -82.81+ (x1-6)^2 + (x2-5)^2;
% Equality constraints (none)
h = [];
% Gradients of constraints
if nargout > 2
gg(1,1) = -2*(x1-5);
gg(2,1) = -2*(x2-5);
gg(1,2) = 2*(x1-6);
gg(2,2) = 2*(x2-5);
gh = [];
end

Tabel Iterasi Output MATLAB dan hasil optimasi:

First-order Norm of
Iter F-count f(x) Feasibility optimality step
0 1 -1.808858e+003 1.167e+002 5.850e+002
1 2 -6.941059e+003 1.401e+002 1.123e+003 5.811e+000
2 3 -7.105234e+003 1.281e+002 1.122e+003 4.446e-001
3 4 -7.575301e+003 7.439e+001 1.580e+002 2.137e+000
4 5 -7.921643e+003 1.051e+001 4.645e+001 3.233e+000
5 6 -7.949393e+003 1.218e+000 2.373e+001 5.829e-001
6 7 -7.950558e+003 8.713e-001 6.663e-001 2.270e-002
7 8 -7.950670e+003 9.018e-001 1.200e-001 1.894e-003
8 9 -7.950677e+003 9.001e-001 1.200e-001 1.104e-004
9 10 -7.950747e+003 8.748e-001 1.197e-001 1.654e-003
10 11 -7.950680e+003 8.693e-001 1.196e-001 3.268e-004
11 12 -7.877851e+003 8.050e-001 7.413e+000 6.894e-002
12 14 -7.508476e+003 5.784e-001 4.541e+001 3.543e-001
13 15 -7.074594e+003 2.500e-001 4.313e+001 4.194e-001
14 16 -6.984897e+003 2.595e-002 2.608e+000 8.441e-002
15 17 -6.962111e+003 7.145e-004 4.051e-001 2.213e-002
16 18 -6.961812e+003 1.278e-006 5.011e-003 2.828e-004
17 19 -6.961814e+003 3.422e-009 7.986e-005 1.442e-006

Local minimum found that satisfies the


constraints.

OPTIMASI 211
Optimization completed because the objective
function is non-decreasing in feasible
directions, to within the default value of
the function tolerance,and constraints were
satisfied to within the default value of the
constraint tolerance.
<stopping criteria details>

x =
14.0950 0.8430
FunVal =
-6.9618e+003
ExitFlag =

Output =

iterations: 17
funcCount: 19
constrviolation: [1x1 double]
stepsize: [1x1 double]
algorithm: [1x14 char]
firstorderopt: [1x1 double]
cgiterations: 0
message: [1x782 char]

Interpretasi hasil optimasi :


Berikut penjelasan dari tabel yang ditampilkan dari hasil
optimasi:
 Kolom Pertama, kata Iter, adalah jumlah iterasi
dari 0 sampai 9, Fmincon melakukan 17 iterasi untuk
konvergen.
 Kolom kedua, kata F-count, melaporkan jumlah
waktu kumulatif dari fungsi yang dievaluasi. Baris
akhir menunjukkan F-count 19, menandakan bahwa
fmincon mengevaluasi fungsi 19 kali dalam proses

212 OPTIMASI
untuk menemukan nilai minimum.
 Kolom ketiga, tanda f(x), menampilkan nilai objective
function. Nilai final, -6.961814e+003 adalah nilia
minimum yang dilaporkan dalam optimasi dan
dimunculkan pada pesan yang keluar dalam command
window.
 Kolom keepat, Feasibility menjelaskan bahwa
algoritma optimasi menemukan nilai parameter yang
sesuai dengan semua konstrain terhadap toleransi
tertentu namun tidak meminimalkan fungsi obyektif.
 Kolom kelima, First-order optimality adalah
ukuran seberapa dekat suatu titik x terhadap nilai
optimal.
 Kolom keenam, Norm of step, menjelaskan ukuran
langkah saat ini (size is the Euclidean norm, or 2-norm)

Pesan di bawah kolom menjelaskan bahwa pencarian untuk


nilai optimum konstrain selesai karena turunan fungsi
obyektif mendekati nol pada arah yang diizinkan oleh
konstrain, dan konstrain tersebut sangat sesuai.

9.5 PEMROGRAMAN LINIER (LINIER


PROGRAMMING)

Persoalan optimasi yang memiliki fungsi objektif linier dan


fungsi kontrain linier disebut program linier (Linier
Programming, LP).
Persoalan-persoalan dalam kelompok pemrograman linier
adalah yang terpenting karena tiga alasan yang berbeda :
1) Ini adalah salah satu ilustrasi kajian yang terpenting
bagaimana ide dan algoritma berubah dari analisis klasik
atau perhitungan manual menjadi program komputer
modern
OPTIMASI 213
2) Pemrograman linier mencakup persoalan yang luas.
3) Banyak algoritma diterapkan terhadap persoalan non-
linier yang mengeksploitasi penyelesaian perograman
linier.

Beberapa aplikasi metode program linier adalah untuk (1)


penugasan, (2) pencampuran, (3) distribusi, (4) penentuan
jaringan aliran, (5) penjadwalan, (6) transportasi dan (7)
jadwal perjalanan penjualan.

Aplikasi pada industri pertama kali dari program linier


dibuat dalam fraksionasi minyak. Secara umum, fraksionasi
minyak memiliki pilihan pembelian minyak mentah dari
beberapa sumber yang berbeda dengan komposisi yang
berbeda dan pada harga yang berbeda. Hal ini dapat
membuat produk yang berbeda, seperti bahan bakar pesawat
terbang, bahan bakar diesel, gasoline dalam jumlah yang
bervariasi. Kemungkinan kendala muncul karena keter-
batasan pada jumlah minyak mentah yang tersedia dari
sumber utama, kapasitas fraksionasi untuk menghasilkan
produk tertentu dan seterusnya. Kombinasi antara minyak
mentah yang dibeli dan produk yang dihasilkan dicari yang
menghasilkan keuntungan maksimum.

Masalah umum program linier dapat dinyatakan dalam


bentuk standar berikut :

Bentuk Scalar :
Minimasi f (x1 , x2 ,..., xn )  c1 x1  c2 x2      (9.4.1) (9.1
cn xn
Terhadap konstrain :
(9.4.1) (9.1
a11x1  a12 x2      a1n xn  b1
a21x1  a22 x2      a2n xn  b2 (9.4.1) (9.1

214 OPTIMASI
am1 x1  am2 x2      amn xn 
bm
x1  0
(9.4.1) (9.1
x2  0

xn  0
(9.4.1)
am1 x1  am2 x2      amn xn 
bm

Dimana cj, bj, dan aij (i = 1, 2, . . ., m; j = 1, 2, . . ., n) adalah


konstanta yang diketahui, dan xj adalah variabel desain.
(9.1
Bentuk Matriks :
Minimasi f (X)  cT (9.4.1)
Terhadap konstrain X
(9.1

aX  b (9.4.1)
X0

dimana :
x1 b1 c1 
 
   
X 2 b 2  2 
x b c c
,  ,  
     
 x   b  c 
 n   m  n 

a11 a12  a1n 



c   a21 a22  a2n  
  
a a a
 m1 m2 mn 

OPTIMASI 215
Karakteristik persoalan program linier yang dinyatakan
dalam bentuk standar adalah ;
1. Fungsi obyektif adalah tipe minimasi
2. Semua kontrain adalah tipe persamaan

216 OPTIMASI
3. Semua variabel bebas adalah non negatif

Persoalan optimasi program linier diselesaikan dengan


MATLAB menggunakan fungsi linprog.

linprog menyelesaikan persoalan minimasi dalam bentuk :


A  x  b
min f T (x) Aeq  x  beq
x 
lb  x  ub,

f,x, b, beq, lb, dan ub adalah vektor, A dan Aeq adalah

matriks. Syntax program :

x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq)
x = linprog(f,A,b,Aeq,beq,lb,ub)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0)
x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)

Deskripsi :
f Fungsi yang diminimasi. fun is adalah fungsi
yang menerima vektor x dan skalar, f adalah
fungsi objektif yang dievaluasi pada x.
x0 Nilai awal x
A matrix for linear inequality constraints
b vector for linear inequality constraints
Aeq matrix for linear equality constraints
beq vector for linear equality constraints
lb vector of lower bounds
ub vector of upper bounds
options struktur option dibuat dengan optimset

Untuk memperjelas pengunaan fungsi ini, diberikan contoh


berikut:

OPTIMASI 217
Contoh 9.6. Tentukan nilai minimum untuk persoalan
program linier berikut dengan MATLAB.

Minimasi f = - x1 – 2x2 – x3
Terhadap konstrain :
2x1 + x2 – x3 ≤ 2
2x1 - x2 + 5 x3 ≤ 6
4x1 + x2 + x3 ≤ 6
x3 ≤ 0; i = 1,2,3
Penyelesaian :
Pertama, ekspresi fungsi objektif dalam bentuk f T dan
identifikasi vektor x dan f sebagai : x
x1
  1 
x x dan f   2
 2 1 
x 
 3  
Eksperi konstrain dalam bentuk Ax ≤ b dan identifikasi
matriks A dalam bentuk vektor b sebagai :
2 1 1 2
 5  dan b  6
c  2 1  
 4 1 1 
 6


Kedua, Gunakan perintah untuk mengeksekusi program


linier menggunakan metode simplex yang ditunjukkan script
berikut:
function contoh94_1
clc
clear all
f=[-1;-2;-1];
A=[2 1 -1;2 -1 5;4 1 1];
b=[2;6;6];
lb=zeros(3,1);
Aeq=[];
beq=[];

218 OPTIMASI
options =
optimset('LargeScale','off','Simplex', 'on');
[x,fval,exitflag,output] =
linprog(f,A,b,Aeq,beq,lb,[],[],...
optimset('Display','iter'))

Hasil simulasi :

Residuals: Primal Dual Duality Total


Infeas Infeas Gap Rel
A*x-b A'*y+z-f x'*z Error

Iter 0: 1.03e+003 7.97e+000 1.50e+003 4.00e+002


Iter 1: 4.11e+002 2.22e-016 2.78e+002 4.72e+001
Iter 2: 1.16e-013 1.90e-015 2.85e+000 2.33e-001
Iter 3: 1.78e-015 1.80e-015 3.96e-002 3.96e-003
Iter 4: 7.48e-014 1.02e-015 1.99e-006 1.99e-007
Iter 5: 2.74e-014 9.76e-016 2.01e-012 1.98e-013

Optimization terminated.

x =

0.0000
4.0000
2.0000

fval =

-10.0000

exitflag =
1
output =
iterations: 5
algorithm: [1x27 char]
cgiterations: 0
message: [1x24 char]
constrviolation: 0
firstorderopt: 8.5746e-013

OPTIMASI 219
9.6 APLIKASI MATLAB DALAM OPTIMASI
TEKNIK KIMIA

Pada bagian ini akan dibahas beberapa contoh penggunaan


MATLAB untuk menyelesaikan persoalan dalam bidang
teknik kimia.

Contoh 9. 7. Optimasi Reaktor Batch

Reaktor batch beroperasi secara adiabatis untuk reaksi fasa


cair order 2:

A→B
Dengan persamaan kecepatan reaksi :
r kC2 (9.7.1)
A A

Dengan
 E
k  A exp  (9.7.2)
  

 RT 

Perubahan entalpi reaksi (AHR), volum reaktor (VR) dan


kapasitas panas larutan (Cp) dianggap tetap. Waktu untuk
bongkar pasang, tp. Umpan masuk pada suhu Tf , dan
konsentrasi A = CA0. Reaksi dihentikan pada saat konversi
XR. Konversi A mula-mula XA0. Ingin dicari konversi A
yang memberikan kecepatan produksi B tiap waktu
maksimum. Diketahui: VR = 10.000 L; CAO = 1 gmol/L; ρ
= 1 kg/L; Cp = 1,0 kcal/kg/K; A = 1,1E-07
L/gmol/menit; E = 14 kcal/gmol; AHR = - 6 kcal/gmol; R
= 0,001987 kcal/gmol/K ; Tf = 350 K; tp = 120
menit; XRo = 0.

220 OPTIMASI
Penyelesaian :

Dari Neraca mol A diperoleh persamaan (Sediawan dan


Prasetya, 1997):
1 1
t  dx
Xout
(9.7.3)
R
CA0
 Xin k (1  x A ) 2

Dari neraca energi diperoleh persamaan :

T  T f  CA0 H R
x (9.7.4)
 Cp A

Produksi tiap batch =

P  V R C A0 xR (9.7.4)
siklus batch

Kecepatan produksi B adalah :


V R C A0 xR
B
t R  t P (maksimum) (9.7.4)
Maksimasi kecepatan produksi B = f (XR) dengan cara
optimasi satu variabel.
function contoh9_7
clc,clear
global Cao
Cao = 1; %gmol/L
xopt = fminunc(@optbatch,0.2,0.99);
B = latihan8(xopt);
tr = (1./Cao).*quad(@sub_optbatch,0,xopt);
disp( 'HASIL PERHITUNGAN ')
disp(' ')
disp(['x optimum = ' num2str(xopt)])
disp(['B maksimum = ' num2str(B),'
gmol/menit'])

OPTIMASI 221
disp(['tr opt = ' num2str(tr),'
menit'])
disp(' ')
%
function B=optbatch(x)
global Cao
tp = 120; %menit
xo = 0; %konversi awal
x = 0.7;
Vr = 10000; %L
tr = (1./Cao).*quad(@sub_optbatch,xo,x);
B = (Vr.*Cao.*x)./(tr+tp);
%
function y=sub_ optbatch(x)
global Cao
Tf = 350; %K
rho = 1; %kg/L
Cp = 1; %kcal/kg/K
A = 1e7; %L/gmol/menit
delHr = -6; %kcal/gmol
R = 0.001987; %kcal/gmol/K
E = 14; %kcal/gmol

T = Tf -((Cao.*delHr.*x)./(rho.*Cp));
k = A.*exp(-E./(R.*T));
y = 1./(k.*(1-x).^2);

HASIL PERHITUNGAN

x optimum = 0.2
B maksimum = 30.4915 gmol/menit
tr opt = 13.3254 menit

Contoh 9.8 Optimasi Reaksi Isotermis


Reaksi fasa cair bolak-balik eksotermis :
A⇌B
Dijalankan dalam reaktor batch adiabatis. Volume campuran
dapat dianggap tetap. Suhu awal reaktor To. Kecepatan

222 OPTIMASI
reaksi mengikuti persamaan:
r k C 
CB (9.8.1)
A
  A 
 K 
Dengan :
 E 
k  A exp  (9.8.2)
 RT 
   
K  α exp  (9.8.3)
 
 T
Panas reaksi λ = -80.000 kal/gmol, densitas campuran ρ =
1100 g/L, kapasitas panas campuran Cp = 1,2 kal/g/K,
konsentrasi mula-mula CA0 = 1 gmol/L, konstanta
tumbukan A = 25, energi aktivasi E = 10.000, konstanta
gas universal R = 1,987; konstanta α = 1750 dan β = -
5000. Koversi awal Xo = 0 dan konversi akhir yang
diinginkan XN
= 0,3. Ingin dicari suhu awal yang memberikan waktu reaksi
minimum.

Penyelesaian :

Dari Neraca mol A diperoleh persamaan :


XN 1
t (9.8.4)
dx
X0 k (1  xA )  Kx

Dari neraca energi diperoleh persamaan :

T  T0  CA0 H R
(x A x0 ) (9.8.5)
 Cp

Nilai T0 dicari dengan meminimasikan t = f(T0), dan t


OPTIMASI 223
dihitung dengan integrasi.

224 OPTIMASI
function soal98
clc
Tsol=fminunc(@latihan98,500);
to=latihan10(Tsol);
disp( 'HASIL PERHITUNGAN ')
disp(' ')
disp(['Suhu optimum,T = ',num2str(Tsol),'
K'])
disp(['Waktu optimum,t = ',num2str(to),'
menit'])
%
function t=latihan98(To)
integral =
quad(@sub_latihan98,0,0.3,[],[],To);
t = integral;
%
function y=sub_latihan98(x,To)
clc
E=10000;A=25;R=1.987;alpha=1750;beta=-5000;
lambda =-80000;rho=1100;Cp=1.2;Cao=1;
T = To+((lambda.*Cao.*x)./(rho.*Cp));
k = A.*exp(-E./(R.*T));
K = alpha.*exp(beta./T);
y = 1./(k.*((1-x)-K.*x));

HASIL PERHITUNGAN

Suhu optimum,T = 736.3458 K


Waktu optimum,t = 25.6406 menit

Contoh 9.9 Optimasi Temperatur reaksi multiple

Suatu reaksi berurutan (series) fasa cair order 1.


k1 k2
A→B → C

dijalankan dalam sebuah reaktor batch yang beroperasi


secara isotermis. Harga-harga konstanta k1 dan k2 mengikuti

OPTIMASI 225
persamaan :
 E 
k1  A1 exp  1  (9.9.1)
 RT 
E 
k2  A2 exp 2 (9.9.2)
 RT 


Ingin dicari suhu optimum yang memberikan CB yang
maksimum untuk waktu τ tertentu. Gunakan MATLAB
untum memaksimasi CB = f(T) serta metode Runge Kutta
untuk menyelesaikan persamaan-persamaan diferensial yang
terbentuk. Data A1 = 0,145 (L/menit), A2 = 0,05 (L/menit),
E1 = 1167,8; E2 = 1580,9 (kal/gmol); CA0=2,0 gmol/L, τ =
60 menit, R = 1,987 cal/gmol/K, Kisaran suhu : 300 – 500
K.

Penyelesaian :
Neraca mol masing komponen adalah :

dCA
dt   k1CA (9.9.3)

dCB
k C k (9.9.4)
C
1 A 2 B
dt

dCC
 k 2 CB (9.9.5)
dt
Script program untuk soal di atas adalah sebagai berikut:

function
soal99 clc
Topt=fminbnd(@latihan99,300,500);
disp( 'HASIL PERHITUNGAN ')

226 OPTIMASI
disp(' ')
disp(['T optimum = '
num2str(Topt)]) disp(' ')

OPTIMASI 227
%
function CB=latihan99(T)
Y0=[2 0 0];
tspan=[0:5:100];
[t Y]=ode45(@sub_latihan99,tspan,Y0,[],[],T)
[t Y];
plot(t,Y(:,1),t,Y(:,2),t,Y(:,3))
xlabel('waktu (menit)');
ylabel('konsentrasi
(gmol/L)');
legend('CA','CB','CC')
CAt=Y(end,1);
CBt=Y(end,2);
Cct=Y(end,3);
CB=0-Y(end,2);
%
function dCdt=sub_latihan99(t,Y,flag,T)
CA=Y(1);CB=Y(2);CC=Y(3);
A1=0.145; %l/min
A2=0.05; %l/min
E1=1167;

%cal/gmol
E2=1580; %cal/gmol
%gmol/L R=1.987;
%cal/gmol/K
k1=A1.*exp(-E1./(R.*T));
k2=A2.*exp(-E2./(R.*T));
dCdt(1)=-k1.*CA;
dCdt(2)=k1.*CA-
k2.*CB;
dCdt(3)=k2.*CB;
dCdt=dCdt';

C =
2.0000 0 0
1.8054 0.1928 0.0017
1.6298 0.3636 0.0067
1.4712 0.5143 0.0145
1.3281 0.6472 0.0247
228 OPTIMASI
1.1989 0.7639 0.0372
1.0822 0.8662 0.0516
0.9769 0.9554 0.0677
0.8819 1.0328 0.0853
0.7961 1.0998 0.1041

OPTIMASI 229
0.7186 1.1573 0.1241
0.6487 1.2064 0.1449
0.5856 1.2478 0.1666
0.5286 1.2824 0.1889
0.4772 1.3110 0.2118
0.4308 1.3340 0.2352
0.3889 1.3522 0.2589
0.3510 1.3661 0.2829
0.3169 1.3760 0.3071
0.2860 1.3825 0.3315
0.2582 1.3859 0.3559

HASIL PERHITUNGAN

T optimum = 300.0001

Gambar 9.3. Grafik perubahan konsentrasi terhadap waktu


dengan

230 OPTIMASI
Contoh 9.10 Optimasi Suhu Masuk Reaktor Adiabatis
Bolak-Balik

Reaksi fasa gas bolak-balik eksotermis :

SO2 +O2 SO3

dijalankan dalam reaktor tabung adiabatis dengan ban-


tuan katalisator padat berbentuk butir-butir. Aliran gas
dianggap plug-flow. Konversi SO2 keluar reaktor diharap-
kan Xout : 0,64. Karena reaktor bekerja adiabatis, sedang-
kan reaksinya endotermis, maka sambil berjalan sepan-
jang reaktor suhu gas akan naik. Pada reaksi bolak-balik
eksotermis, suhu perlu dioptimumkan, karena jika suhu
terlalu rendah maka kecepatan reaksi akan sangat
lambat; sebaliknya, jika suhu terlalu tinggi, kesetimbang-
an reaksi akan bergeser ke kiri (prinsip kesetimbangan).
Karena reaktor adiabatis, yang bisa diatur hanyalah suhu
umpan reaktor (To). Jadi dalam hal ini ingin ditentukan
suhu optimum umpan reaktor, agar untuk mencapai kon-
versi SO2, Xout: 0,64, diperlukan jumlah katalisator (W)
yang minimum.

Kecepatan reaksi mengikuti persamaan (Froment and


Bischoff , 1990) :
 PSO3 
kP P 1
1 O 2 SO 2
 P  P1/ 2  K 
r 
  SO 2 O2 p 
(9.10.1)


2
22.414  1  K 2  P  K  P
SO 3 SO3
2


k 
5.473 
1 exp 12,16   (9. 10.2)
 T 
OPTIMASI 231
 8.619
K  exp  9,953 
(9. 10.3)
2  
 T 

232 OPTIMASI
 52.956
K  exp  71,745 
(9. 10.4)
3  
 11.300
T
K  exp 10,68  
(9. 10.5)
p  
 T 
Umpan reaktor berjumlah 55.000 kg/jam dengan kompisisi
mol SO2 = 7,8% O2, = 10,8% dan N2 = 81,4%. Tekanan
reaktor dianggap tetap 1 atm.

Penyelesaian :
Berdasarkan Sediawan dan Prasetya (1997) diperoleh
beberapa persamaan berikut :

Dari neraca massa diperoleh persamaan :


x0,64
 1 
W  137,3  dxr
(9. 10.6)

x0  
Tekanan parsial komponen :

PS 1 x
(9. 10.7)
O
2
 12,82  0,5xP t
P  1,3846  0,5x (9. 10.8)
2 P
O
12,82  0,5x t

P  x (9. 10.9)
S  12,82   t

P
Dari neraca energi diperoleh persamaan :
T  T0  241,7x (9. 10.10)

Script program untuk penyelesaian soal di atas diberikan


berikut:
OPTIMASI 233
function
contoh9_9
clc,clear
[Topt,f]=fminbnd(@optimasisuhu,600,750);
disp( 'HASIL PERHITUNGAN ')

234 OPTIMASI
disp(' ')
disp(['T optimum = ' num2str(Topt),'
K']) disp(['berat katalis = ' num2str(f),'
kg']) disp(' ')
%
function w=optimasisuhu(To)
w=137.3*quad(@sub_optimasisuhu,0,0.64,[],[],To);
%
function y=sub_optimasisuhu(x,To)
T=To+241.7.*x;
PSO2=(1-x)./(12.82-0.5.*x);
PO2=(1.3846-x)./(12.82-0.5.*x);
PSO3=x./(12.82-0.5.*x);
k1=exp(12.16-(5473./T));
K2=exp(-9.953+(8619./T));
K3=exp(-71.745-(52956./T));
Kp=exp(-10.68+(11300./T));
r1=k1.*PO2.*PSO2.*(1-(PSO3./(PSO2.*PO2.^0.5.*Kp)));
r2=22.414.*(1+K2.*PSO2+K3.*PSO3).^2;
r=r1./r2;
y=1./r;

Hasil perhitungan program adalah :

HASIL PERHITUNGAN

T optimum = 726.6269 K
berat katalis = 4073.9199 kg

Contoh 9.11 Menetukan Parameter Konstanta Laju


Reaksi

Suatu reaksi seri dijalankan dalam reaktor secara batch.


Reaksi yang terjadi dinyatakan dengan persamaan :

OPTIMASI 235
Neraca mol masing komponen adalah :

dCA
dt   k1CA (9.11.1)

dCR
dt  k1CA  k2 CR (9.11.2)

dCR
dt  k2 CR (9.11.3)

Berdasarkan hasil eksperimen, perubahan konsentrasi


komponen (mol/L) terhadap waktu reaksi, t (jam)
ditampilkan pada tabel di bawah:

t CA CR CS
0 1.0000 0 0
0.50 0.3624 0.3949 0.2427
1.00 0.1313 0.3077 0.5610
1.50 0.0476 0.1801 0.7723
2.00 0.0173 0.0939 0.8889
2.50 0.0063 0.0459 0.9478
3.00 0.0023 0.0216 0.9761
3.5 0.0008 0.0099 0.9893
4.0 0.0003 0.0045 0.9952
4.5 0.0001 0.0020 0.9979
5.0 0.0000 0.0009 0.9991
Tentukan konstanta laju reaksi diatas berdasarkan data
yang tersedia.

Penyelesaian :

Soal di atas diselesaikan dengan minimasi Sum Square of


Errors (SSE) antara konsentrasi yang terhitung dengan
konsentrasi data penelitian.

236 OPTIMASI
SSE  in 2


Ci,hitung  Ci,data (9.11.4)
i1

Penulisan program untuk soal di atas diberikan berikut.


Script untuk program utama:

function contoh9_11
%Program optimasi parameter2 pada proses
clc
clear
%tebakan awal
kr = [2 1];
khit =
fminsearch('estparkinetik',kr,optimset('TolX
',1e-3))

Script untuk Sub program:


%
function SSE = estparkinetik(kr)
% menyelesaikan PD ordiner
simultan k1 = kr(1);
k2 = kr(2);
Yo=[1 0 0];
%interval waktu
tspan=[0:0.5:5];
[t,Y]=ode45('sub_estparkinetik',tspan,Yo,[],k1,k2)
CAhitung=Y(:,1);
CRhitung=Y(:,2);
CShitung=Y(:,3);
CAdata=[1;0.3624;0.1313;0.0476;0.0173;0.0063;0.0023;0
.0080;0.0030;0.0010;0.0000];
CRdata=[0;0.3949;0.3077;0.1801;0.0939;0.0459;0.0216;0
.0099;0.0045;0.0020;0.0009];
CSdata=[0;0.2427;0.5610;0.7723;0.8889;0.9478;0.9761;0
.9893;0.9952;0.9979;0.9991];
SSE=sum(CAhitung-CAdata).^2+sum(CRhitung-
CRdata).^2+sum(CShitung-CSdata).^2;
plot(tspan,CAdata,'ob',tspan,CAhitung,'b',tspan,CRda
t a,'or',tspan,CRhitung,'-r',...
OPTIMASI 237
tspan,CSdata,'og',tspan,CShitung,'-g')

238 OPTIMASI
title('grafik C vs
waktu');
xlabel('waktu');
ylabel('C');
legend('CAdata','CAhit','CRdata','CRhit','CSdata','
CS hit')

Scriptuntuk sub_sub program :


function dCdt=sub_estparkinetik(t,Y,flag,k1,k2)
CA=Y(1);CR=Y(2);CS=Y(3);
dCdt(1) = -k1.*CA;
dCdt(2) = k1.*CA-
k2.*CR; dCdt(3) =
k2.*CR;
dCdt = dCdt';

Hasil perhitungan :

khit =

2.0141 1.7559

Grafik simulasi :

OPTIMASI 239
Gambar 9.4. Grafik perubahan konsentrasi terhadap waktu

240 OPTIMASI
Contoh 9.12 Pencocokan Data Kesetimbangan Uap-Cair
dengan Regresi Non Linier

Data kesetimbangan uap-cair sering dikorelasikan menggu-


nakan dua parameter yang dapat diatur pada campuran biner
(Edgar et al., 2001). Dalam banyak kasus, kesetimbangan
uap-cair multi komponen dapat diprediksi hanya dengan
parameter biner. Untuk tekanan rendah, persamaan
kesetimbangan adalah :
x  Psat  y P (9.12.1)
i i i i
Dengan :
P = tekanan total
sat
i
P = tekanan uap jenuh komponen i
xi = mol fraksi fasa cair komponen i
i = koefisien aktivitas komponen i
yi = fraksi mol fasa uap

Model van Laar untuk campuran biner adalah :


2

ln   A  A 21 x 2 
 (9.12.2)
1 12  x A x
A
 12 1 21 2 
2

ln   A  A x 
21 2  (9.12.3)
2 21  x A x
A
 12 1 21 2 

Dimana A12 A21 adalah konstanta biner yang dicari de-


dan
ngan optimasi untuk mencocokkan data perhitungan untuk
xi .
Data kesetimbangan uap-cair suatu campuran Air (1) dan 1,4
dioksan (2) diberikan Tabel 9.12.1 di bawah. Konstanta
OPTIMASI 241
untuk persamaan Antoine juga diberikan pada tabel.

242 OPTIMASI
Tentukan konstanta van A12 A21 berdasarkan data
Laar eksperimen tersebut. dan

Tabel 9.12.1 Data Ekperimen sistem (1) Air dan (2) 1,4
Dioksane pada suhu 20 oC
Data eksperimen Nilai Prediksi
x1 pexpt (mmHg) pcal p ycalc
0,00 28,10 28,10 0,00 0,00
0,10 34,40 34,20 -0,20 0,2508
0,20 36,70 36,95 0,25 0,3245
0,30 36,90 36,97 0,07 0,3493
0,40 36,80 36,75 -0,05 0,3576
0,50 36,70 36,64 -0,06 0,3625
0,60 36,50 36,56 0,06 0,3725
0,70 36,40 36,36 -0,04 0,3965
0,80 32,90 32,84 -0,06 0,4503
0,90 27,70 27,72 0,02 0,5781
1,00 17,50 17,50 0,00 1,0

a2
log Psat  a  psat : mmHg,T :o C
i T  a3
a1 a2 a3 Range
(1)Air 8,07131 1730,630 233,426 (1-100oC)
(2)1,4 Dioksan 7,43155 1554,679 240,337 (20-105oC)
Note : Data reported by Hororka et al. (1936)

Penyelesaian :

Tekanan total campuran dapat dituliskan :


P  y1 P  yi P (9.12.4)
Dengan menggunakan persamaan (9.12.1) - (9.12.3)
diperoleh persamaan :
  Ax 
2  A x 2

P  x exp A    
21 2 Psat  x exp
A 21 2 Psat (9.12.5)
   x A x   2
A x A x 
1 12
 1 2
 21

OPTIMASI 243
  12 1 21 2     12 1 21 2  

244 OPTIMASI
Tekanan jenuh komponen dapat diprediksi dengan per-
samaan Antoine. Untuk temperatur yang diberikan dan sis-
tem x2  (1  x2 ) tekanan adalah
biner : (9.12.6)
P  P(x1 , A12 , A21 )
Dua koefisien biner ditentukan dari nilai ekperimen P
terhadap x1 dengan regresi non liner yaitu dengan minimasi
fungsi objektif
:
2
(9.12.7)

f  P calc
j
exp t
P j


Program MATLAB yang digunakan untuk menyelesaikan
soal 9.12 diberikan berikut:
function
contoh9_12 clc
clear
%tebakan
awal x = [2
1];
A =
fminsearch(@activity,x,optimset('Display','iter'))
%
function f = activity(x)
A12=x(1);A21=x(2);
x1=[0:0.1:1]';
T=20;
x2=(1-x1);
Pdata=[28.1 34.4 36.7 36.9 36.8 36.7 36.5 35.4 32.9
27.7 17.5]';
a1w=8.07131;a1d=7.43155;a2w=1730.630;a2d=1554.679;a3w
=233.46;a3d=240.337;
p1=10.^(a1w-(a2w./(T+a3w)));p2=10.^(a1d-
(a2d./(T+a3d)));
gamma1=exp(A12.*(A21.*x2./(A12.*x1+A21.*x2)).^2);
gamma2=exp(A21.*(A12.*x1./(A12.*x1+A21.*x2)).^2);

OPTIMASI 245
Pcal=x1.*gamma1.*p1+x2.*gamma2.*p2;
f=sum(Pcal-Pdata).^2
y1=x1.*gamma1.*p1./Pcal;
plot(x1,x1,'-r',x1,y1,'-
b') title('grafik x1 vs
y1')

246 OPTIMASI
xlabel('x1')
ylabel('y1')

Hasil perhitungan :
A =
2.1405 1.5242

Setelah diperoleh nilai A12 = 2,1405 dan A21 = 1,5242


selanjutnya dihitung nilai
y1 dan di plot x1 . Hasil
terhadap
plot situnjukkan Gambar 9.5 di bawah

Gambar 9.5. Grafik perubaham fraksi fasa uap terhadap


fraksi fasa cair

Contoh 9.13 Optimasi Sistem Boiler-Steam Turbin


Generator

Desain dan operasi Sistem Boiler-Steam Turbin Generator


OPTIMASI 247
dalam industri kimia ditunjukkan gambar 9.6 (Edgar et al.,

248 OPTIMASI
2001). Gambar tersebut menunjukkan sistem steam dan
daya untuk power house kecil dengan bahan bakar pulp kayu.
Untuk memproduksi daya listrik, sistem ini memiliki dua
turbin generator yang karakternya tercantum pada Tabel
9.13.1. Turbin 1 berupa turbin double extraction dengan dua
aliran intermediate kelur pada 195 dan 62 psi, stage terakhir
menghasilkan kondensate yang digunakan sebagai air
umpan boiler. Turbin 2 adalah single extraction dengan satu
aliran intermediate pada 195 psi dan aliran keluar pada 62 psi
tanpa menghasilkan kondensate.

Gambar 9.6. Sistem Boiler -Steam Turbin Generation

Key : Ii = inlet flowrate for turbine i (lbm/h)


HEi = exit flow rate from turbin i to 195 header [lbm/h]
LEi = exit flow ratefrom turbin i to 62 psi header [lbm/h]
C = condensate flow rte from turbine 1 [lbm/h]
Pi = power generated by turbine i [kw]
BF1 = bypass flowrate from 635 psi to 195 psi header
[lbm/h]
BF2 = bypass flowrate from 195 psi to 62 psi header
[lbm/h]
HPS = flowrate through 635 psi header [lbm/h]
MPS = flowrate through 195 psi header [lbm/h]
LPS = flowrate through 62 psi header [lbm/h]

OPTIMASI 249
PP = purchased power [kw]
EP = excess power [kw]
PRV = pressure reducing valve

Turbin 1 lebih efisien karena pelepasan energi dari


kondensasi steam, namun tidak dapat menghasilkan power
seperti turbin kedua. Steam berlebih dapat melewati turbin
menjadi steam dua level melalui pressure reducing valve.

Tabel 9.13.2 berisi daftar informasi tentang perbedaan level


steam dan Tabel 9.13.3 memberikan data kebutuhan steam.
Untuk memenuhi kebutuhan daya listrik, kekurangan daya
listrik boleh dibeli dari produsen lain dengan minimum nilai
12.000 kW. Jika daya listrik yang diperlukan memenuhi
kebutuhan sistem lebih kecil dari nilai ini, daya yang tidak
digunakan akan dikenakan biaya pinalti. Tabel 9.13.4.
memberikan data biaya bahan bakar untuk boiler dan
tambahan daya listrik untuk mengoperasikan sistem utilitas.

Tabel 9.13.1 Data turbin


Turbin 1 Turbin 2
Maximum generative 6.250 kW Maximum 9.000 kW
capacity generative capacity
Minimum load 2.500 kW Minimum load 3.000 kW
Maxium inlet flow 192.000 lbm/h Maxium inlet flow 244.000 lbm/h
Maximum 62.000 lbm/h Maximum 62 psi 142.000 lbm/h
condensate flow exhaust
Maximum internal 132.000 lbm/h High pressure 192 psig
flow extraction at
High pressure 192 psig Low pressure 62 psig
extraction at extraction at
Low pressure 62 psig
extraction at

250 OPTIMASI
Tabel 9.13.2 Data steam header
Pressure Temperature Enthalpy
Header (psig) (oF) (Btu/lbm)
High pressure steam 635 720 1359,8
Medium pressure steam 195 130 superheat 1267,8
Low pressure steam 62 130 superheat 1251,4
Feedwater (codensate) 193,0

Tabel 9.13.3 Data kebutuhan sistem


SumberKebutuhan
Medium pressure steam (195 psig) 271.536 lbm/h
Low pressure steam (62 psig) 100.623 lbm/h
Electric power 24.550 kW

Tabel 9.13.4 Data Energi


SumberKebutuhan
Fuel Cost 271.536 lbm/h
Boiler eficiency 0,75
Steam Cost (635 psi) $2,24/106 Btu
$2,24(1359,8 -193)/106
$0,002614/lbm
Purchased electric power $0,0239/kWh averege
Demand penalty $0,009825/kWh
Base Purchased power 12.000 kW

Ingin dicari biaya minimum sistem dengan memilih laju alir


steam dan daya yang dibangkitkan atau dibeli terhadap
kebutuhan dan batasan sistem.

Fungsi objective adalah biaya operasi per jam :

minimasi : f  0,00261HPS  0,0239 PP  0,00983 EP (9.13.1)


Konstrain disusun ke dalam serangkaian persamaan berikut:

OPTIMASI 251
Turbin 1 :
P1 ≤ 6.250
P1 ≥ 2.500
HE1 ≤ 192.000 (9.13.2)
C ≤ 62.000
I1-HE1 ≤ 132.000
Turbin 2 :
P2 ≤ 9.000
P2 ≥ 3.000
HE1 ≤ 192.000 (9.13.3)
I2 ≤ 62.000

Neraca Massa LE2 ≤ 142.000


:

HPS – I1 – I2 - BF1 = 0
I1 + I2 + BF1 – C – MPS – LPS = 0
I1 – HE1 –LE1 – C = 0 (9.13.4)
I2 – HE2 – LE2 = 0
HE1 + HE2 + BF1 - BF2 - MPS = 0
LE1 + LE2 + BF2 – LPS = 0

Daya yang dibeli (Power purchased) :

EP + PP ≥ 12.000 (9.13.5)

Kebutuhan (Demands) :
MPS ≥ 271.536
LPS ≥ 100.623 (9.13.6)
P1 + P2 + PP ≥ 24.550

Neraca Energi
1.359,8 I1 – 1.267,8 HE1 -1.251,4 LE1 – 192 C – 3.413 P1 = 0 (9.13.7)
1.359,8 I2 – 1.267,8 I2 -1.251,4 LE2 – 192C – 3.413P2 = 0

252 OPTIMASI
Penyelesaian :
Persoalan ini diselesaikan dengan MATLAB menggunakan
fungsi linprog. Berikut langkah penyelesaian untuk soal
diatas.

Kombinasi variabel dalam satu vektor


Jumlah variabel sebanyak 16 yaitu : I1, I2, HE1, HE2, LE1, LE2, C,
BF1, BF2, HPS, MPS, LPS, P1, P2, PP, dan EP.
Buat variabel tersebut dalam satu vektor. Berikut kode
membuat vektor menggunakan cell array of strings. Maisng-
masing string adalah nama variabel.
variables =
{'I1','I2','HE1','HE2','LE1','LE2','C','BF1',...
'BF2','HPS','MPS','LPS','P1','P2','PP','EP'};
N = length(variables);
% create variables for
indexing for v = 1:N
eval([variables{v},' = ',
num2str(v),';']); end

Konstrain batas
Terdapat empat variabel dengan batas bawah dan enam
variabel dengan batas atas berdasarkan persamaan-
persamaan di atas.

Batas bawah adalah :


P1 ≥ 2.500
P2 ≥ 3.000
MPS ≥ 271.536
LPS ≥ 100.623
Juga semua variabel adalah positif, yang artinya memiliki
batas bawah nol.
Buat vektor batas bawah sebagai vektor 0, kemudian
tambahkan empat batas bawah lainnya.
lb =
zeros(size(variables));
lb([P1,P2,MPS,LPS]) = ...
OPTIMASI 253
[2500,3000,271536,100623];

254 OPTIMASI
Linear Inequality Constraints
Terdapat tiga linear inequalities dalam persamaan :
I1 - HE1 ≤ 132,000
EP + PP ≥ 12,000
P1 + P2 + PP ≥ 24,550.

Agar memiliki persamaan dalam bentuk A·x ≤ b, letakkan


semua variabel di sisi kiri inequality. Semua persamaan telah
memiliki bentuk tersebut. Pastikan bahwa setiap inequality
dalam bentuk lebih kecil dengan mengalikannya dengan (-1).
I1 - HE1 ≤ 132,000
-EP - PP ≤ -12,000
-P1 - P2 - PP ≤ -24,550.

Dalam lembar kerja MATLAB, buat matriks nol dengan 3 x


16, berkaitan 3 linier inequalities dalam 16 variabel. Buat
vektor b dengan tiga komponen.

A = zeros(3,16);
A(1,I1) = 1; A(1,HE1) = -1; b(1) = 132000;
A(2,EP) = -1; A(2,PP) = -1; b(2) = -12000;
A(3,[P1,P2,PP]) = [-1,-1,-1];
b(3) = -24550;

Linear Equality Constraints


Terdapat delapan persamaan linier yaitu persamaan (9.13.4)
dan persamaan (9.13.7). Bentuk persamaan adalah Aeq.x =
beq.
Selanjutnya tulis matrks Aeq dan vektor beq yang
berhubungan dengan persamaan ini. Dalam lembar kerja
MATLAB, buat matriks Aeq sebagai matriks nol dengan 8 x
16, berkaitan dengan 8 persamaan linier dalam 16 variabel.
Buat vektor beq dengan 8 komponen semuanya nol

OPTIMASI 255
Aeq = zeros(8,16); beq = zeros(8,1);
Aeq(1,[LE2,HE2,I2]) = [1,1,-1];
Aeq(2,[LE1,LE2,BF2,LPS]) = [1,1,1,-1];
Aeq(3,[I1,I2,BF1,HPS]) = [1,1,1,-1];
Aeq(4,[C,MPS,LPS,HPS]) = [1,1,1,-1];
Aeq(5,[LE1,HE1,C,I1]) = [1,1,1,-1];
Aeq(6,[HE1,HE2,BF1,BF2,MPS])= [1,1,1,-1,-1];
Aeq(7,[HE1,LE1,C,P1,I1])=
[1267.8,1251.4,192,3413,-1359.8];
Aeq(8,[HE2,LE2,P2,I2])=
[1267.8,1251.4,3413,-1359.8];

Objective
Fungsi objective adalah persamaan (9.13.1) yang dapat
dituliskan :
fTx = 0.002614∙HPS + 0.0239∙PP + 0.009825∙EP.
Tulis ekspresi ini sebagai vektor f dikali dengan vektor x.
f = zeros(size(variables));
f([HPS PP EP]) = [0.002614 0.0239 0.009825];

Solusi soal dengan linprog


Anda sekarang sudah memasukkan yang dibutuhkan linprog
solver. Panggil solver dan cetak keluaran dalam bentuk
format :
[x fval] = linprog(f,A,b,Aeq,beq,lb,ub);
for d = 1:N
fprintf('%12.2f \t%s\n',x(d),variables{d})
end

Berikut program lengkp dari penjelasan di atas.


function contoh9_13
clc,clear
%variabel
variables =
{'I1','I2','HE1','HE2','LE1','LE2','C','BF1'
,...

256 OPTIMASI
'BF2','HPS','MPS','LPS','P1','P2','PP','EP'}
;
N = length(variables);
% create variables for indexing
for v = 1:N
eval([variables{v},' = ',
num2str(v),';']);
end
%lower and upper bound
lb = zeros(size(variables));
lb([P1,P2,MPS,LPS]) = ...
[2500,3000,271536,100623];
ub = Inf(size(variables));
ub([P1,P2,I1,I2,C,LE2]) = ...
[6250,9000,192000,244000,62000,142000];
%linier inequality constraint
A = zeros(3,16);
A(1,I1) = 1; A(1,HE1) = -1; b(1) = 132000;
A(2,EP) = -1; A(2,PP) = -1; b(2) = -12000;
A(3,[P1,P2,PP]) = [-1,-1,-1];
b(3) = -24550;
%linier equality constraint
Aeq = zeros(8,16); beq = zeros(8,1);
Aeq(1,[LE2,HE2,I2]) = [1,1,-1];
Aeq(2,[LE1,LE2,BF2,LPS]) = [1,1,1,-1];
Aeq(3,[I1,I2,BF1,HPS]) = [1,1,1,-1];
Aeq(4,[C,MPS,LPS,HPS]) = [1,1,1,-1];
Aeq(5,[LE1,HE1,C,I1]) = [1,1,1,-1];
Aeq(6,[HE1,HE2,BF1,BF2,MPS]) = [1,1,1,-1,-
1]; Aeq(7,
[HE1,LE1,C,P1,I1]) =
[1267.8,1251.4,192,3413,-1359.8];
Aeq(8,[HE2,LE2,P2,I2]) =
[1267.8,1251.4,3413,-1359.8];
%objective function
f = zeros(size(variables));
f([HPS PP EP]) = [0.002614 0.0239 0.009825];
%solver
[x fval] = linprog(f,A,b,Aeq,beq,lb,ub);

OPTIMASI 257
for d = 1:N
fprintf('%12.2f \t%s\n',x(d),variables{d})
end
fval

Hasil simulasi:
Optimization terminated.
136328.74 I1
244000.00 I2
128159.00 HE1
143377.00 HE2
0.00 LE1
100623.00 LE2
8169.74 C
0.00 BF1
0.00 BF2
380328.74 HPS
271536.00 MPS
100623.00 LPS
6250.00 P1
7060.71 P2
11239.29 PP
760.71 EP

fval =

1.2703e+003

Hasil di atas adalah penyelesaian optimum terhadap


program linier yang disajikan persamaan 9.13.1 – 9.13.7.
Biaya minimum adalah $ 1.270/jam.

9.7 RUJUKAN

a. Thomas E. Edgar, Himmelblau, D., and Lasdon,


2001. Optimization of Chemical Processes. Mc. Graw
Hill. New York.
258 OPTIMASI
b. Arora, Jasbir, 2012, Introduction to Optimum Design, 3rd
ed. Elsevier. UK.
c. Steven C. Chapra. 2012. Applied Numerical Methods
With MATLAB For Engineers And Scientists. 3rd ed.
Mc. Graw Hill. New York.
d. Sediawan, Wahyudi Budi. 1997. Pemodelan Matematis
dan Penyelesaian Numeris dalam Teknik Kimia. Andi.
Yogyakarta

OPTIMASI 259
BAB 10

SIMULINK

10.1 PENDAHULUAN

Bab ini membahas tentang Simulink dan penggunaanya untuk


menyelesaikan persoalan-persoalan dalam Teknik Kimia.
Setelah menyelesaikan pokok bahasan ini mahasiswa
diharapkan akan mampu menggunakan Simulink untuk
menyelesaikan persoalan model matematis yang terbentuk dari
persoalan fisis dan kimia dalam perkuliahan maupun kejadian
nyata di lapangan.

10.2 SIMULINK LIBRARY

Apa itu Simulink? Simulink adalah paket software untuk


pemodelan, simulasi dan analisis sistem dinamis. Software ini
mendukung sistem linier dan nonliner, model waktu kontinyu,
waktu tersample (diskrit) atau gabungan keduanya. Sistem juga
dapat berupa multirate, yaitu memiliki bagian yang berbeda
antara yang tersample atau ter-update pada laju yang berbeda.

260 OPTIMASI 245


Pemodelan Simulink menyediakan Graphical User Interface
(GUI) untuk membuat model seperti blok diagram,
menggunakan operasi clik dan drag mouse. Dengan fasilitas ini
Anda dapat menggambar model seperti Anda akan
menggambar dengan pensil pada kertas. Hal ini jauh dari paket
simulasi sebelumnya dimana kita perlu memformulasikan
persamaan diferensial dan persamaan yang berbeda dalam suatu
bahasa atau program. Simulink memiliki block library of sinks,
sources, linear and nonlinear components, and connectors yang
lengkap. Anda dapat memodifikasi atau membuat blok sendiri.
Model adalah hirarkis, sehingga Anda dapat membuat model
menggunakan kedua pendekatan top-down atau bottom-up.
Setelah Anda mendefinisikan suatu model, Anda dapat
mensimulasikan menggunakan suatu pilihan metode integrasi,
juga dari menu Simulink atau dengan memasukkan perintah di
command window MATLAB.
Menu-menu sangat nyaman untuk kerja interaktif, sementara
pendekatan command line sangat bermanfaat/berguna untuk
menjalankan simulasi batch (misal, Jika Anda sedang
manjalankan simulasi Monte Carlo atau ingin menyapu
parameter pada kisaran nilai tertentu). Dengan menggunakan
Scope dan display blok lainnya, Anda dapat melihat hasil
simulasi saat simulasi sedang berjalan.
Tool analisis model terdiri linierisasi dan perangkat cepat yang
dapat diakses dari MATLAB Command line, ditambah banyak
tools dalam MATLAB dan aplikasi toolbox. Karena MATLAB
dan Simulink terintegrasi, anda juga dapat melakukan simulasi,
analisis dan revisi model dalam beberapa cara.
Memulai Matlab dan Simulink
Untuk memulai Simulink Anda dapat melakukan langkah-
langkah berikut:
1) Start MATLAB dan selanjutnya pada Command Window

246 SIMULINK
MATLAB ketik simulink. Maka akan muncul gambar
seperti di bawah:

Gambar 10.1 Tampilan command window MATLAB dan


Simulink library

2) Buka New Simulation Window dari menu file di pojok kiri

atas dengan cara klik pada tanda . Akan dihasilkan menu


seperti gamabar di bawah.

Gambar 10.2 Simulink library dan new worksheet window

SIMULINK 247
3) Anda dapat membuat block diagram sendiri dengan drag
dan dropping block yang sesuai dari jendela Simulink
utama. Beberapa block yang umumnya paling banyak
dipakai :
a. Commonly Used Bloks

Gambar 10.3. Tampilan Blok pada menu tree Commonly


Used Block

Dari Commonly Used Block kita dapat menggunakan


konstanta, perkalian dengan skalar, menampilkan beberapa
sinyal keluar menjadi satu sinyal atau membagi satu sinyal
input menjadi beberapa sinyal keluar dan lainnya.

248 SIMULINK
b. Continous

Gambar 10.4. Tampilan Blok pada menu tree Continous

Dari blok Continuous (klik dua kali pada tombol


Continuous) Anda dapat menggunakan tipe blok yang
sesuai untuk membuat sistem dinamis (misal fungsi transfer,
time delay dan lainnya).

c. Sink
Dari Sink kita sering menggunakan Scope untuk
menampilkan hasil simulasi.

SIMULINK 249
Gambar 10.5. Tampilan Blok pada menu tree Sink.

d. Source
Dari Sources suatu fungsi Step digunakan untuk
mensimulasikan perubahan step. Untuk mengetahui
parameter yang harus dimasukkan pada masing-masing
blok, Anda dapat melakukan drag pada worksheet window
Simulink yang baru dan klik dua kali pada blok tersebut.
Tampilan blok Source di tunjukan Gambar 10.6.

Membuat Model Sederhana


Contoh berikut menunjukkan bagaimana membuat suatu
model menggunakan banyak model perintah dak aksi yang
akan Anda gunakan untuk membuat model Anda sendiri.
Instruksi untuk membuat model sederhana akan dijelaskan di
bawah. Untuk penjelasan detail lainnya akan diberikan pada
bab berikutnya.

250 SIMULINK
Gambar 10.6. Tampilan Blok pada menu tree “Source”.

Model ini mengintegrasikan suatu gelombang sinus dan


menampilkan hasil sepanjang gelombang sinus. Blok diagram
untuk model seperti Gambar 10.7.

Gambar 10.7 Blok diagram integrasi gelombang sinus

Untuk membuat model, pertama ketik simulink dalam


MATLAB Command Window. Pada Microsoft Window akan
SIMULINK 251
muncul Simulink Library Browser Seperti Gambar 10.8.

Tombol
New Model

Gambar 10.8. Jendela Simulink Library Browser

Untuk membuat model baru pada Windows, pilih tombol New


Model pada toolbar Library Browser. Simulink membuka
jendela model baru seperti Gambar 10.9.

Gambar 10.9. Jendela Simulink baru


252 SIMULINK
Untuk membuat model, Anda perlu mengkopi blok ke dalam
model dari Simulink Bloks libarary berikut :
 Source library (blok Sine wave)
 Sink Library (blok Scope)
 Continous Library (blok Integrator)
 Signal & System libarry (blok Mux)

Gambar 10.9. Menu Source

Selanjutnya drag blok Sine Wave dari Source Window ke


jedela model Anda.

Gambar 10.10. Blok Sin wave

SIMULINK 253
Kopi blok yang lainnya dengan cara yang sama dari masing-
masing library ke model window sehingga tampak seperti
gambar di bawah.

Gambar 10.11. Beberapa blok Simulink

Jika Anda memperhatikan ikon blok, Anda melihat tanda


kurungdi sisi kanan Sine Wave dan dua di sisi kiri blok Mux.
Simbol “ > “ yang keluar dari suatu blok adalah output port dan
jika simbol menuju blok maka disebut input port. Sinyal keluar
dari ouput port dan masuk ke input port blok lainnya melalui
garis hubung. Saat blok terkoneksi, simbol tdk muncul.

Input port Output port

Gambar 10.12. Input dan output port suatu blok

Kini saatnya menyambungkan blok. Sambungkan blok Sine


Wave ke atas input port blok Mux. Posisi pointer di atas output
port sisi kanan blok Sine Wave. Catatan bahwa bentuk kursor
berubah melewati garis.

254 SIMULINK
Gambar 10.9. Susunan blok Simulink

Tahan tombol mouse dan pindahkan kursor ke input port blok


Mux, maka akan muncul garis putus-putus saat mouse di tekan.

Gambar 10.9. Drag koneksi blok

SIMULINK 255
Sekarang lepaskan mouse. Maka blok akan tersambung.

Gambar 10.9. Koneksi blok

Cara membuat garis cabang berbeda dari cara membuat garis


sebagaimana yang atelah Anda lakukan. Untuk menyambung-
kan dengan garis yang ada, ikuti langkah berikut:
1. Pertama, posisi pointer pada garis antara blok Sin wave dan
Mux.

Gambar 10.9. Koneksi blok Sin wave dan mux

256 SIMULINK
2. Tekan dan tahan tombol Ctrl. Tekan mouse dan drag
pointer ke input port blok Integrator.

Gambar 10.9. Membuat cabang blok Simulink

3. Lepaskan tombol mouse. Simulink menggambar suatu


garis antara titik awal dan input port blok Integrator.

Selesai membuat konensi blok. Jika sudah selesai, model Anda


akan terlihat seperti gambar di bawah.

Gambar 10.9. Model Simulink lengkap

SIMULINK 257
Selanjutnya, buka blok Scope untuk melihat output simulasi.
Jaga endela Scope tetap terbuka, atur Simulink untuk berjalan
selama 10 setik. Pertama, atur parameter simulasi dengan
memilih Parameters dari menu Simulation. Pada kotak dialog
yang muncul, tulis Stop time adalah 10.0.

Gambar 10.9. Menu Simulasi

Gambar 10.9. Pengaturan menu simulasi

258 SIMULINK
Keluar dari Configuration parameter dengan klik tombol OK.
Pilih Start Simulation untuk untuk melihat output simulasi
dari blok Scope.

Gambar 10.9. Jendela Simulink baru

Hasil simulasi terlihat seperti gambar berikut.

Gambar 10.9. Jendela Simulink baru


SIMULINK 259
Untuk mengatur skala grafik secara otomastis klik Autoscale.

Gambar 10.9. Jendela Simulink baru

Untuk menyimpan Simulasi klik Save as dari menu File dan


ketik nama file dan lokasi

Pada bagian selanjutnya akan diberikan beberapa contoh


pengunaan Simulink untuk menyelesaiakna beberapa kasus
dalam Teknik Kimia.

Contoh 10.1 Persamaan Diferensial


Selesaikan dua persamaan diferensial berikut dengan
Simulink.
dCA1
dt  C  CA1 (10.1.1)
A0

dCA2
dt   CA2 (10.1.2)
CA1

260 SIMULINK
Penyelesaian :
Untuk menyelesaikan kasus di atas, lakukan langkah yang
telah dijelaskan di atas sehingga dihasilkan moel blok
Simulink seperti Gambar 10.1.1.

Gambar 10.1.1. Model blok Simulink untuk Contoh 10.1

Hasil Simulasi dapat dilihat pada Gambar di bawah.

SIMULINK 261
Gambar 10.1.2. Hasil plot Simulink untuk Contoh 10.1

262 SIMULINK
Contoh 10.2 Persamaan Diferensial
Selesaikan seperangkat persamaan diferensail order biasa
berikut dengan konsentasi A awal 1 mol/L dan kosentrasi
awal B adalah nol.
dCA
 2C A
dt  CB (10.2.1)
dCB
 3(C
C ) (10.2.1) (10.2.
A B
dt

CA (0) = 1; CB(0) = 0
Penyelesaian :
Dengan cara yang sama dengan langkah pada Contoh 10.1
dihasilkan model blok Simulink seperti Gambar 10.2.1.

Selanjutnya klik dua kali pada blok Integrator dan


Integrator 1 dan atur initial condition masing-masing
dengan nilai 1 dan 0, seperti ditunjukkan Gambar 10.2.2

Gambar 10.2.1. Model Simulink untuk Contoh 10.2

SIMULINK 263
Gambar 10.2.2. Pengaturan initial condition

Klik Start Simulation dan selajutnya klik blok Scope dua


kali untuk melihat output simulasi. Grafik hasil simulasi dari
Scope terlihat seperti gambar di bawah.

Gambar 10.2.3. . Hasil plot Simulink untuk Contoh 10.2

264 SIMULINK
Contoh 10.3 Reaksi Multiple dalam Reaktor Batch
Berikut diberikan reaksi seri :
k k
→1B → C
A

dCA
dt  k1CA (10.3.1)
dCB
(10.3.2)
dt  k1CA  k2CB
dCC
dt  k2CB ( 10.3.3)

Penyelesaian :
Blok Simulink untuk kasus di atas ditunjukkan gambar di
bawah.

Gambar 10.3.1. Model Simulink untuk Contoh 10.3


SIMULINK 265
Dengan mengikuti cara sebelumnya akan diperoleh output
simulasi dari blok Scope seperti gambar di bawah.

Gambar 10.3.2. Hasil plot Simulink untuk Contoh 10.3

Contoh 10.4 Reaksi Katalisis Enzim


Suatu enzim E, mengkatalisis subtrat S untuk membentuk
produk P dengan formasi kompleks intermediat ES, seperti
ditunjukkan reaksi berikut :
S + E → ES → P + E
Gunakan neraca masssa untuk menyederhanakan reaksi
enzimatis untuk memperoleh persamaan diferensial yang
menggambarkan dinamika reaksi. Gunakan nilai awal
berikut dan konstana laju berikut untuk mengintegralkan
persamaan diferensial dan plot profil waktu untuk semua
vaiabel dalam model:

Kodisi awal : [S]0 = 1,0 μM [E]0 = 0,1 μM

266 SIMULINK
[ES]0 = 0 [P]0 = 0
Konstanta : k1 = 0,1 (μM)-1 s-1 k-1 = 0,1 s-1 k2 = 0,3 s-1
Tentukan waku (dalam detik) rekasi untuk mencapai
99,9% subtrat terkonversi.

Penyelesaian :

d S 
 k S E ES (10.4.1)
k

1 1
d Edt

 k S E k ES  ES (10.4.2)
k 
1
dt 1 2

d ES 
 k S E ES  k ES (10.4.3)
k 
dt 1 1 2

d  P
2 ES (10.4.4)
dt  k

Kita integralkan dari 0 sampai 1000 detik dengan mengatur
batas integrasi pada Configuration parameter.

SIMULINK 267
Gambar 10.4.1. Model Simulink untuk Contoh 10.4

268 SIMULINK
Gambar 10.4.2. Hasil plot Simulink untuk [S] dan [P]

Gambar 10.4.3. Hasil plot Simulink untuk [E] dan [S]

SIMULINK 269
Contoh 10.5. Respon Dinamis Open Loop Sistem Oder
Dua
Misalkan sutau manometer seperti ditunjukkan seperti
Gambar 10.5.1 digunakan untuk mengukur perbedaan
tekanan antara dua instrument pada suatu garis udara.
Fluida kerja dalam manometer adalah air. Tentukan respon
manometer terhadap step change dalam tekanan yang
melewati kaki manometer.

Data :

Gambar 10.5.1. Tekanan manometer

L : 200 cm, D : 0,11 cm; 0,21 cm; 0,32 cm


g : 980 cm/s2
μ : 1 cP = 0,01 g/cm.s
ρ : 1,0 g/cm3
P 0 untuk t  0
g 10 untuk t  0

Penyelesaian :
Persamaan diferensial untuk manometer adalah :
2L d 2h 16L dh
  P  P P (10.5.1)
h
1 2
3g dt 2 D2 g dt g g

Dalam bentuk variabel deviasi yang ditrasformasi menjadi:


τ2 s2Y(s) + 2ζ τY(s) + Y(s) = X(s) (10.5.2)

270 SIMULINK
dengan :
Y = h – hs dan
 P P 
X   
 g g  s
2L
  3g

8 3L
  ρD 2 2g

Time constant untuk manometer :


2L
  3g  2200 cm 3 980 
cm 2 /s s
 0,369 

Damping coeeficient utuk tiga dimeter tube yang berbeda :


8
  D2 80,001 g/cm  
3200 cm 2 9800,0443
cm2/s
2L s  
D2
3g  
 1,0 g/cm 3 D2


Diameter (cm) ζ

0,11 3,66

0,21 11,00

0,31 0,46

Dari data di atas jelas kita memiliki satu underdamped system


(ζ <1), satu critically damped system (ζ = 1) dan satu
overdamped system (ζ > 1).
Untuk memperoleh respon fungsi transfer Y/X terhadap
input X digunakan MATLAB dan Simulink .
SIMULINK 271
Y (s)
1 10
 2
da X s
X (s)  s  2 s 
2
n
1
Tiga fungsi transfer yang diperlukan sebagai berikut :
1
0,11 0,369 3,66 0,136 3,66
Diameter (cm) τ ζ τ2 2 ζτ Fungsi transfer
0,21 0,369 11,00 0,136 11,00 0,136s 2  2,700s  1
1
0,31 0,369 0,46 0,136 0,46 0,136s 2  0,738 s  1
1
0,136s 2  0,340s  1

Penyelesaian fungsi transfer di atas dengan Model Simulink


ditunjukkan pada langkah di bawah.
Pertama, Pada menu baru di lembar kerja drag dan drop
beberapa blok. Pada masing-masing klik dua kali sehingga
tampak seperti gambar di bawah.

Gambar 10.5.2. Pengaturan parameter blok

Kedua, hubungkan semua blok sehingga diperoh sistem


seperti gambar di bawah.

272 SIMULINK
Gambar 10.5.3. Model Simulink untuk contoh soal 10.5

Ketiga, pada menu simulasi diatur stop time 10 menit.

Gambar 10.5.4. Pengaturan parameter simulasi


Keempat, jalankan simulasi dengan menekan menu Start dan klik
Autoscale pada tampilan scope. Diperoleh output simulasi seperti

SIMULINK 273
gambar di bawah.

Gambar 10.5.5. Hasil plot simulink untuk Contoh 10.5

Contoh 10.6 Kontrol Temperatur Pemanas Tangki Alir


Berpengaduk
Tangki berpengaduk seperti Gambar 10.6.1, digunakan
untuk memanaskan aliran proses sehingga pencampuran
komponen mencapai seragam. Kontrol temperatur adalah
penting karena temperatur tinggi cenderung mendekom-
posisi produk, sementara temperatur rendah menghasilkan
pencampuran yang kurang sempurna. Tangki dipanaskan
dengan steam di sisi koil. Digunakan Poportional Integral
Derivative (PID) Controller untuk mengendalikan temperatur
dalam tangki dengan memanipulasi posisi valve steam.
Turunkan blok diagram lengkap dan fungsi transfer untuk
data desain berikut:

Proses. Umpan memiliki densitas, ρ sebesar 68 lb/ft3 dan


kapasitas panas, Cp adalah 0,8 Btu/lb-oF. Volume cairan
dalam tangki dijaga konstan pada 120 ft3. Koil terdiri atas
pipa dengan panjang 205 ft, ukuran 4 inchi schedule 40 yang

274 SIMULINK
beratnya 10,8 lb/ft, memiliki kapasitas panas 0,12 Btu/lb-
oF dan diameter luar 4,5 in. Koefisien tansfer panas

keseluruhan U, berdasarkan luas area bagian luar koil, dan


diperkirakan 2,1 Btu/min-ft2-oF. Steam yang tersedia
adalah steam jenuh pada tekanan 30 psia, dapat
diasumsikan bahwa panas laten kondensasi adalah konstan
pada 966 Btu/lb. Dapat juga diasumsikan bahwa temperatur
masuk Ti adalah konstan.

Umpan

F(t)
Ti(t) Tset(t)

TIC TT

TCV 01 01
01

Steam
w(t) T(t)
Ts(t) Panas, q V

Produk
Kondensat
F(t)
T(t)

Gambar 10.6.1 Kontrol temperatur pemanasan tangki


berpengaduk

Kondisi Desain. Aliran umpan F pada kondisi desain adalah


15 ft3/min, dan temperaturnya Ti adalah 100oF. Isi
tangki harus dijaga pada temperatur 150oF. Kemungkinan
gangguan adalah perubahan laju alir dan temperatur umpan.

Sensor Temperatur dan Transmitter. Sensor temperatur


memiliki kisaran kalibarasi 100-200oF dan time constant,
τ adalah 0,75 menit.
T

Control Valve. Control valve dirancang untuk 100%


overkapasitas dan perubahan hilang tekanan dapat

SIMULINK 275
diabaikan. Valve sama dengan persentase valve dengan

276 SIMULINK
parameter perubahan, α adalah 50. Aktuator memiliki time
constant, τv sebesar 0,2 menit.

Penyelesaian.

Pendekatan dilakukan dengan menurunkan persamaan yang


mendeskripsikan perilaku dinamis dalam tangki, control
valve, sensor/transmitter dan controller. Selanjutnya kita
akan mentransformasi Laplace persamaan untuk memper-
oleh loop blok diagram.

Proses. Neraca energi untuk cairan dalam tangki, asumsi


panas yang hilang diabaikan, pencampuran sempurna,
volume konstan dan densitas konstan diperoleh persamaan :

VC dT
 FρC (T  T ) T) (T  ) (10.6.1)
UA(T FρC T
p i ref p ref
p
dt s

Neraca energi pada koil, asumsi bahwa koil pada temperatur


sama seperti steam, dihasilkan persamaan :
dTs
C M
dt  w  T (10.6.2)
UA(Ts )
Untuk proses steady state:
0  FCp (Ti  Tref )  UA(Ts  T )  FCp  Tref (10.6.3)
(T )
(10.6.4)
0  w UA(Ts  T )

Persamaan (10.6.1) dikurang persamaan (10.6.3) diperoleh


persamaan :
VC
d (T  T )

(T  T )  (T  T ) UA(T  T )  (T  T (10.6.5)
)
FρC
p p i i s s
dt
Persamaan (10.6.2) dikurang persamaan (10.6.4) diperoleh
persamaan :
SIMULINK 277
d (Ts  Ts )
C  W  UA[(T  T )  (T  (10.6.6)
T )]
M s s
dt

278 SIMULINK
Variabel deviasi :
T '  (T  T )
T '  (T  T )
s s s

W  (w  w)
Persamaan (10.6.5) menjadi :
VC dT '
 (T '
 T ' )  UA(T '  T (10.6.7)
FρC
'
)
p s
dt
p i

dT '
VC   UA)T
'
'
 FρC T 
'
(10.6.8)
(FρC UAT
p p p i s
dt
VCp dT ' '
T FρCp ' UA ' (10.6.9)
(FρCp  UA) T  Ts
(FρCp  UA) i
(FρCp  UA)
dt
dT '
 T' KT'K
'
(10.6.10)
T
1 2 s
dt i

Dimana :
VCp (10.6.11)

(FρCp  UA)
FρCp
K  (10.6.12)
1
(FρC  UA)
p

UA
K  (10.6.13)
2
(FρC  UA)
p
Transformasi lapalace untuk persamaan (10.6.10)
T '(s)  K K
1
T '(s)  2 Ts '(s) (10.6.13)
s i s
1 1
Persamaan (10.6.6) menjadi :
dT ' ' '
CM s
 W UA(Ts  T d
)
SIMULINK 279
(10.6.14)
'

CM d s  UAT ' W UAT (10.6.15)


dt
 s 
'

C dT '
'  '
M s
 Ts  W (10.6.16)
T
UA dt UA
dT ' ' '
 c s  Ts  KwW  T (10.6.17)
dt

280 SIMULINK
Dimana :
CM
  (10.6.18)
c
UA
 (10.6.19)
Kw  UA

Transformasi lapalace untuk persamaan (10.6.17)

T ' (s)  K 1
w
W (s)  (10.6.20)
T '(s)
cs c s 1
s

1
Sensor Temperatur Dan Transmitter. Elemen pengukur
temperatur, yang yang membaca suhu dan mengirimkan
sinyal Tm ke controler, dapat menunjukkan dynamic lag.
Fungsi transfer untuk sensor dan transmiter adalah:
'
m
T  Gm (s)  1
(10.6.21)
T '(s)  ms
1
Control valve. Valve pneumatik selalu mempunyai dynamic
lag, yang artinya posisi sistem tidak merespon secara
instan terhadap suatu perubahan dalam tekanan dari
controller. Hubungan antara aliran dengan tekanan valve
untuk linier valve sering dinyatakan dengan fungsi transfer
untuk control valve order satu adalah :
W (s) Kv
 G (s)  (10.6.22)
M (s) v
s 1
v

Proporsional Integral Deriative (PD) Controller.


Kontrol mode ini adalah kombinasi mode proportional,
integral dan derivatif dan diberikan dengan persamaan :

PID Controller

SIMULINK 281
p  Kc ε  t
K ε dt  K  d  p (10.6.23)
 c D
s
I 0

282 SIMULINK
Dalam hal ini, Kc adalah controller gain,  adalah integral
I

time dan D adalah derivative time. Ketiga nilai tersebut


dapat diatur di dalam controller. Fungsi transfer untuk
controller ini adalah:

Fungsi Transfer PID controller

M (s)  
1
 (s)  Gc (s)  Kc 1  Ds (10.6.24)
Is

 

Blok Diagram Loop. Gambar 10.6.2 menunjukkan blok


diagram lengkap untuk control loop. Semua fungsi transfer
dalam diagram telah diturunkan. Dengan menggunakan
aturan untuk memodifikasi blok diagram, diperoleh diagram
yang lebih sederhana seperti Gambar 10.6.3.

K1
Ti(s)
 s 1

T ' (s) +
s
R(s) + E(s) M(s) W(s) Kw + Ts ' (s) K2 T '(s)
Gv(s)
Ksp Gc(s) c s 1  s 1+
- +

1
c s 1

Tm ' (s)
Gm(s)

Gambar 10.6.2 Blok diagram loop kontrol temperatur

SIMULINK 283
Ti(s)
Gd(s)

'
T (s) +
R(s) + E(s) M(s) W(s) T '(s)
s
Gc (s) Gv(s) Gp(s)
Ksp
+
-

T ' (s)
m
Gm(s)

Gambar 10.6.3 Penyerderhanaan loop kontrol temperatur

Fungsi Transfer dalam diagram adalah:


G (s) 
K 1 ( c s (10.6.25)
1)
d
( s 1)( s 1)  K
2
c

G (s) 
Kw K2 (10.6.26)
p
( s 1)( s 1)  K
2
c

Nilai numeris untuk parameter dalam fungsi transfer


diberikan pada Tabel 10.6.1 yang dihitung dari data yang
diberikan dalam soal.

Tabel 10.6.1 Nilai parameter untuk Contoh 10.6.1


A = 241,5 ft2 τ = 4,93 menit
CM = 265,7 Btu/oF τc = 0,524 menit
K1 = 0,62oF(ft3/min) Kw = 1,905 oF/(lb/min)
K2 = 0,383 oF/oF KT = 1,0 %TO/oF
Kv = 1,652 Ksp = 1,0%TO/oF
(lb/min)/%CO
τm = 0,75 menit τT = 0,20 menit

Blok diagram Simulink untuk menyelesaikan soal di atas dan


284 SIMULINK
plot hasil simulasi simulink ditunjukkan Gambar 10.6.4. dan
Gambar 10.6.5.

SIMULINK 285
Gambar 10.6.4 Blok diagram Simulink untuk kontrol
temperatur

Gambar 10.6.5 Plot hasil simulasi Simulink untuk kontrol


temperatur

286 SIMULINK
10.3 RANGKUMAN

a. Simulink adalah paket software untuk pemodelan,


simulasi dan analisis sistem dinamis
b. Pemodelan Simulink menyediakan Graphical User
Interface (GUI) untuk membuat model seperti blok
diagram, menggunakan operasi clik dan drag mouse.
c. Pemodelan Simulink banyak digunakan dalam bidang
Teknik Kimia untuk simulasi dan analisis sistem
dinamis dan kontrol proses kimia.

10.4 RUJUKAN

a. Mathworks. 1999. Simulink-Dynamic System Simulation


for MatLab Version 3. http://www.mathworks.com
b. Donald R. Coughanowr and Steven E. LeBlanc. 2008.
Process Systems Analysis And Control 3rd ed. Mc Graw
Hill. New York.
c. Karis, Steven T. 2008. Introduction to Simulink with
Engineering Applications 3rd. ed., Orchad publication.
www.orchardpublications.com
d. Carlos A. Smith and Amando B Corripio. 1997.
Principles and Practice of Automatic Process Control. John
Wiley . New York.

SIMULINK 287

Anda mungkin juga menyukai