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)
Penulis:
HERI RUSTAMAJI, S.T., M.Eng.
Penerbit
AURA
CV. Anugrah Utama Raharja
Anggota IKAPI
No.003/LPU/2013
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
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.
HERI RUSTAMAJI
vi KATA PENGANTAR
DAFTAR ISI
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
1.1 PENDAHULUAN
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.
tes =
1.2.3 M-files
function y = nama_fungsi(a,b,c,d)
a b c a b a c
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.
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
2 3
4 5
6 7
C =
28 34
64 79
function R = contoh2(P,Q)
% contoh2.m : Menghitung perkalian
matriks R = P*Q
» A = [1 2 3; 4 5 6];
C =
28 34
64 79
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
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.
if a == 0
disp('a sama dengan
nol'); elseif a < 0
disp('a
negatif'); else
disp('a positif');
% 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
% 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
»
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'
» 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
» A = [5 6 7]
A =
5 6 7
» B = [1 2 3]
» A - B
ans = 4
4 4
» 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 =
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
» A = [1 2 3];
» B = [4 5 6];
» A*B'
ans = 32
» A.*B
» A./B
ans = 0.2500
0.4000 0.5000
(pembagian elementer)
» A.^2
ans =
14
9 ( [1^2 2^2 3^2] )
» B.^A
ans =
» x = [1 2 3];
» y = x.^2 + 2*x + 4
7 12 19
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 :
% test1.m
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 =
% 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 =
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
3.1 PENDAHULAN
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.
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
1 1.5 2 2.5 3 3.5 4
Outgo
5
2
1 1.5 2 2.5 3 3.5 4
>> 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
>> 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
>> pcolor(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> shading interp
>> colorbar
D =
Columns 1 through 9
Columns 19 through 20
66.5000 68.4000
ans =
71
ans =
63.1000
ans =
67.4800
ans =
67.7000
ans =
2.0023
Columns 1 through 7
Columns 8 through 14
Columns 15 through 20
ans =
1.3496e+003
ans =
3.8006e+036
1.0e+003 *
Columns 1 through 7
Columns 8 through 14
Columns 15 through 20
1.0123 1.0772 1.1468 1.2147 1.2812
1.3496
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
Columns 8 through 14
Columns 15 through 16
2.8000 3.0000
> y
y =
Columns 1 through 7
Columns 8 through 14
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)
Columns 1 through 7
Columns 8 through 14
Columns 15 through 16
50.049758.4916
50
40
30
y
20
10
0
0 0.5 1 1.5 2 2.5 3
x
> 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
> roots(
P) ans =
-1.6506
-0.1747 + 1.5469i
-0.1747 - 1.5469i
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
4.1 PENDAHULUAN
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
V1 y1i L0 z jF F x
(4.4)
1
D x1i D x1i 1
A1i L
j
(4.8)
K jVj
x1 = Ao + 1
-A1x1 + x2 =1
-A2x2+ x3 =1 (4.12)
-A3x3 + x4 + =1
-A4x4 + x5 + =1
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.
𝑥1
𝖥 1
I𝑥 I
2
I I
𝑥= . (4.16)
I I
I .I
I .I
[𝑥𝑛 ]
» 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
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
%9x1 matriks B
b=[100 0 0 0 0 0 0 0 0]'
x =
227.272
7
45.4545
159.0909
113.6364
127.2727
45.4545
31.8182
1,17 x3 –x 6 =0 (4.3.2a)
x5 +x 7 - x8 - x9 – x1 0 +x 1 5 = y 7 +y 8 - y3 =99, 1 (4.3.4a)
-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)
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.
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.
Ax = c (4.3.15)
(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
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
Penyelesaian:
Untuk menyelesaikan soal di atas, neraca massa ditulis pada
tray representative, ke-n, yang ditunjukkan gambar di bawah.
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
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);
x2=A\B2
x2 =
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)
%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
5.1 PENDAHULUAN
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)
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)
f(x) = x3 – 2x – 5,
Penyelesaian:
Tulis dalam m-file :
function
Untuk mendapatkan nol mendekati 2, tuliskan :
y=f(x)
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)
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 :
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
V, yi
Flash drum
F, zi
valve
L, xi
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:
x = yi
i1
i
i1
1
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
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
2 2
a 27 R c (5.5.2)
64 Pc RT
b c
80 PERSAMAAN NON-LINIER TUNGGAL
8Pc
(5.5.3)
(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 :
plot(result(:,1),result(:,3),'or-')
title('Grafik Hubungan Faktor Kompresibilitas Terhadap Tekanan
Hasil Program
===================================
PredMolar Vol faktor Z
===================================
2.5
2
Faktor Kompresibilitas,
1.5
0.5
0
0 2 4 68101214161820
Tekanan Reduksi, Pr
2 P = P2
z = z2
1 P = P1 z =z1
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
Re
fF 1
(5.6.4)
/ D 5,02 / 5,022
D
16 log log 3,
7 Re
3,7
Re
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
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)
5.3 RANGKUMAN
5.4 RUJUKAN
6.1 PENDAHULUAN
masuk
Cj,in
keluar
Cj
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
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
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.
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
x1 2x2 e x2 0
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
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
Jawaban
Misal ditetapkan basis perhitungan 10 mol gas umpan .
1 = tingkat reaksi dari reaksi pertama
2 = tingkat reaksi dari reaksi kedua
yCO 1 2
10 2 y H 2 3 1 2
10 21
1
1 2
y H 2O 810 2
1
y CO2 2 y CH 4 2 1
10 21 10 21
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
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])
FAO
CAO FBO
CBO
Penyelesaian:
Terdapat empat komponen dalam sistem ini, sehingga empat
neraca komponen dapat dituliskan:
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);
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
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)
Penyelesaian :
Fungsi objective untuk meminimalkan energi Gibss diberikan
dengan :
G c Go n
min n i
ln i
i
ni RT i1
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:
RT
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')
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);
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
Latihan 6.1
Selesaikan persamaan berikut:
x1 13 x2 0
x1 x2 1 2
Latihan 6.2.
Beberapa reaksi setimbang berlangsung dalam reaktor batch
(volume konstan) dengan persamaan reaksi sebagai berikut :
ABCD
BC X
Y
AX Z
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
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
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
7.1 PENDAHULUAN
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
Rate of
Reaction Rate Accumulation (7.3)
of
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:
VXS
Fout
Xout
Sout
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 :
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
1 max
SX
r (7.11)
Y KS
S
8 L/s
4 L/s
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)')
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)
rA
k CA (7.2.2)
KC
A
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
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)')
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
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
W1 = 100 kg/min
TO = 20 oC T1 T2
T1 T2 T3
T3
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 UaT 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 UaTsteam T1
(7.3.3)
dt MCp
Analog untuk tangki 2 :
dT WC p T1 T2 UaTsteam
T2 2 (7.3.4)
dt MCp
Untuk tangki 3 :
dT 3 WC p T2 T3 UaTsteam (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';
T
50 1
45
40
T
35
30
25
20
0 10 20 30 40 50 60 70 80 90
waktu (min)
k5
k3
G + CH3OH DG + ME
k6
k7
TG + 3CH3OH DG + ME
k8
Penyelesaian :
Persamaan neraca massa untuk masing-masing komponen
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
')
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)
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
U = 110 J/s.m2.K
Penyelesaian :
dX rA
(7.5.2)
FA0
dV
rA k CA (7.5.3)
C A0 1 X
CT0 (7.5.4)
A
1 X T
ε = ya0δ =1 (1+1-1) =1
C A0 1 X
r k (7.5.5)
T0
A
1 X T
4. Neraca Energi :
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:
rxn rxn
R R R
2 3
Kapasitas Panas komponen:
H o
T H T H o T
o
H T
o
rxn R B R C R A R
= 80,77 kJ/mol
7.850 kg/jam 1
FA0
58 kg/kmol 1000 tube 0,135 kmol/jam mol/detik
0,0376
F 3 1 m3 0,001 m3
v A0
2 dm /detik, V
0 CA0 1000 tube tube
Ua = 16.500 x 0
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
Ua = 16.500 J/m3/s/K
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)
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)
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)
(1) A + 2B → C r k C C2
1A 1A A B
(2) 2A + 3C → D r
k C 2C 3
2C 2C A C
CpD = 12 cal/mol/K
Penyelesaian :
Neraca mol :
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
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
y1 (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
Neraca Energi :
F Cp
j j FACpA FBCpB FCCpC (7.6.24)
FDCpD
Qr Ua T Ta
(7.6.25)
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)
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)
dTa
dV Ua T Ta *
0
mCCpCO
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)
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)
2A C
Gas masuk reaktor pada suhu 450 K.
HR 1 1
K C KT 450K exp (7.7.3)
T T
R
156 PERSAMAAN DIFERENSIAL BIASA
0
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
H R
4 1 (7.7.6)
1
K C 2,510 exp
R T0 T
Stoikiometri :
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 :
Ua T H
T
r
a A rxn
dT (7.7.9)
dW FA0 i C pi X Cp
c
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
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)
' 0,1176
rSO k 0,848 (7.8.2)
2
Kp 2
Diberikan data :
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
Penyelesaian :
Neraca
mol:
dX r'
A (7.8.9)
dW FAO
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
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
R R R R R
2 3
β
1 2β β SO2 (9,517 103 ) 1
(2,323 103 ) (5,633 103 )
β SO3 2
O
2
0,738 106
Δγ γ
SO3 1 2γ 2
γ SO (2,325 106 ) 1 (4,886 107 ) (1,343 106 )
2
O
2
6
0,738 10
Subtitusi ke persamaan (7.9.9) dengan TR = 1260o R diperoleh :
H (T ) 42.471 1,563T 1260 1,36 103 T 2 12602
R
(2,459 107 ) T 3 12603
∆HR dalam Btu/lb mol, T dalam R
C i pi
57,23 0,014T 1,94 106 T (7.8.16)
2
UπD 4U
4 10 Btu/h ft 2 o R
c Ac c D 33,8lb/ft 2,78/12ft
2
dW 0,188 i C pi A X CR p
Pressure drop :
Dimana :
G Fi0 / 1307,6 lb/ft 2 h
Ac
Mi
A crosssectional area : D2 / 4
c
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
dP
1,12 106 1 0,055X T
5500μ 2288 (7.8.20)
dW P
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)
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 AT T (7.9.2)
Neraca Panas pada elemn volume sepanjang ∆x pada batang :
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
dz 2h
T T
PERSAMAAN DIFERENSIAL BIASA 171
(7.9.5)
(7.9.5)
dx kr
(7.9.
(7.9.
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';
380
360
temperatur,
340
320
300
280
0 1 2 3 4 5 6 7 8 9 10
jarak, z (meter)
dT
dx z (7.9.5) (7.9.
dz 2h
T T 4 T 4 (7.9.5)
T
(7.9.1
dx kr
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)
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.
∆r
dC
2 dC A
D 4 r 2 D 4 r r
A
k C a 4 r 2r
e
e
d
A (7.10.3)
d r
r r
dC
r r
2
dCA ka 2 (7.10.4)
A r r
dr
r r C 0
r De A
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
-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)
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.
8.1 PENDAHULUAN
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
(x,y,z)
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.
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
a . 2b 2u c 2u
(8.14)
2
u x . 0
. x2
y y
2
2u
u (8.18)
t
Persamaan gelombang : x2
2u 2u
(8.18) (8.1
2
x 2 2
t
T
2
T (8.1.1)
t x
2
0 1
x x0
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)
n1
n n1
t
x2
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 2x
yang dapat diselesaikan untuk T11 menghasilkan :
T11
4T10 T9 (8.1.8)
3 0
Penyelesaian kasus di atas dengan proram MATLAB disusun dan
70
60
temperatur,
50
40
30
20
10
0 1000 2000 3000 4000 5000 6000
waktu, t (detik)
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
x0
x
dan disubtitusikan ke pers (8.1.5) menghasilkan :
T3 4T2 3T1
h T0 T1 k
2x (8.1.10)
Persamaan terdahulu dapat diselesaikan untuk memperoleh T1 :
2hT0 x kT3
T 2
4kT (8.1.11)
1
3k 2hx
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;%
70
60
temperatur,
50
40
30
20
10
0
0 1000 2000 3000 4000 5000 6000
waktu, t (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 CAn1 k CAn untuk (2 ≤ n ≤ 10)
t x 1 An
2
(8.2.5)
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
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)
8.4 RUJUKAN
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).
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
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.
196 OPTIMASI
algorithm used to solve the problem (output algorithm),
etc.
OPTIMASI 197
9.3 OPTIMASI TANPA KONSTRAIN
(UNCONSTRAINT OPTIMIZATION)
Global minimum
Local 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.
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);
x =
1.3863
fval =
0.4548
exitflag =
1
output =
iterations: 21
funcCount: 42
algorithm: [1x33 char]
message: [1x196 char]
OPTIMASI 199
Gambar 9.2. Contoh berikut menunjukkan kemampuan
MATLAB untuk menvisualisasikan gambar fungsi dua
variabel.
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
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]
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;
fval =
0.7500
exitflag =
OPTIMASI 203
output =
iterations: 3
funcCount: 15
stepsize: 1
firstorderopt: 1.4901e-008
algorithm: [1x38 char]
message: [1x438 char]
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
OPTIMASI 205
Terhadap konstrain:
0 ≤ x1 + 2.x2 + 2x3 ≤ 72 (9.3.2)
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)
206 OPTIMASI
Contoh 9.4 Optimasi dengan nonlinier inequality
constraint dan bound constraint
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 :
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);
1 1
x =
0 1.5000
fval =
8.5000
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
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
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]
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)
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
aX b (9.4.1)
X0
dimana :
x1 b1 c1
X 2 b 2 2
x b c c
, ,
x b c
n m n
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
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
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
218 OPTIMASI
options =
optimset('LargeScale','off','Simplex', 'on');
[x,fval,exitflag,output] =
linprog(f,A,b,Aeq,beq,lb,[],[],...
optimset('Display','iter'))
Hasil simulasi :
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
A→B
Dengan persamaan kecepatan reaksi :
r kC2 (9.7.1)
A A
Dengan
E
k A exp (9.7.2)
RT
220 OPTIMASI
Penyelesaian :
T T f CA0 H R
x (9.7.4)
Cp A
P V R C A0 xR (9.7.4)
siklus batch
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
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 :
T T0 CA0 H R
(x A x0 ) (9.8.5)
Cp
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
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
230 OPTIMASI
Contoh 9.10 Optimasi Suhu Masuk Reaktor Adiabatis
Bolak-Balik
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 :
x0
Tekanan parsial komponen :
PS 1 x
(9. 10.7)
O
2
12,82 0,5xP 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)
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
T optimum = 726.6269 K
berat katalis = 4073.9199 kg
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)
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 :
236 OPTIMASI
SSE in 2
Ci,hitung Ci,data (9.11.4)
i1
function contoh9_11
%Program optimasi parameter2 pada proses
clc
clear
%tebakan awal
kr = [2 1];
khit =
fminsearch('estparkinetik',kr,optimset('TolX
',1e-3))
238 OPTIMASI
title('grafik C vs
waktu');
xlabel('waktu');
ylabel('C');
legend('CAdata','CAhit','CRdata','CRhit','CSdata','
CS hit')
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
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
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 :
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
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.
OPTIMASI 249
PP = purchased power [kw]
EP = excess power [kw]
PRV = pressure reducing valve
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
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
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
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.
Konstrain batas
Terdapat empat variabel dengan batas bawah dan enam
variabel dengan batas atas berdasarkan persamaan-
persamaan di atas.
254 OPTIMASI
Linear Inequality Constraints
Terdapat tiga linear inequalities dalam persamaan :
I1 - HE1 ≤ 132,000
EP + PP ≥ 12,000
P1 + P2 + PP ≥ 24,550.
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;
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];
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
9.7 RUJUKAN
OPTIMASI 259
BAB 10
SIMULINK
10.1 PENDAHULUAN
246 SIMULINK
MATLAB ketik simulink. Maka akan muncul gambar
seperti di bawah:
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
248 SIMULINK
b. Continous
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.
250 SIMULINK
Gambar 10.6. Tampilan Blok pada menu tree “Source”.
Tombol
New Model
SIMULINK 253
Kopi blok yang lainnya dengan cara yang sama dari masing-
masing library ke model window sehingga tampak seperti
gambar di bawah.
254 SIMULINK
Gambar 10.9. Susunan blok Simulink
SIMULINK 255
Sekarang lepaskan mouse. Maka blok akan tersambung.
256 SIMULINK
2. Tekan dan tahan tombol Ctrl. Tekan mouse dan drag
pointer ke input port blok Integrator.
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.
258 SIMULINK
Keluar dari Configuration parameter dengan klik tombol OK.
Pilih Start Simulation untuk untuk melihat output simulasi
dari blok Scope.
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.
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.
SIMULINK 263
Gambar 10.2.2. Pengaturan initial condition
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.
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]
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 :
Penyelesaian :
Persamaan diferensial untuk manometer adalah :
2L d 2h 16L dh
P P P (10.5.1)
h
1 2
3g dt 2 D2 g dt g g
270 SIMULINK
dengan :
Y = h – hs dan
P P
X
g g s
2L
3g
8 3L
ρD 2 2g
Diameter (cm) ζ
0,11 3,66
0,21 11,00
0,31 0,46
272 SIMULINK
Gambar 10.5.3. Model Simulink untuk contoh soal 10.5
SIMULINK 273
gambar di bawah.
274 SIMULINK
beratnya 10,8 lb/ft, memiliki kapasitas panas 0,12 Btu/lb-
oF dan diameter luar 4,5 in. Koefisien tansfer panas
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)
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.
VC dT
FρC (T T ) T) (T ) (10.6.1)
UA(T FρC T
p i ref p ref
p
dt s
278 SIMULINK
Variabel deviasi :
T ' (T T )
T ' (T T )
s s s
W (w w)
Persamaan (10.6.5) menjadi :
VC dT '
(T '
T ' ) UA(T ' T (10.6.7)
FρC
'
)
p s
dt
p i
dT '
VC UA)T
'
'
FρC T
'
(10.6.8)
(FρC UAT
p p p i s
dt
VCp 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 :
VCp (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)
'
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
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
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
M (s)
1
(s) Gc (s) Kc 1 Ds (10.6.24)
Is
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)
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)
G (s)
Kw K2 (10.6.26)
p
( s 1)( s 1) K
2
c
SIMULINK 285
Gambar 10.6.4 Blok diagram Simulink untuk kontrol
temperatur
286 SIMULINK
10.3 RANGKUMAN
10.4 RUJUKAN
SIMULINK 287