Modul 3 edit

Gratis

1
17
54
2 years ago
Preview
Full text
MODUL 3 Sistem Persamaan Tak-Linier OLEH : H A F I D A LW A N JURUSAN TEKNIK KIMIA U N I V E R S I TA S S U LTA N A G E N G T I R TAYA S A Persamaan Tak-Linier Persamaan matematika yang bukan persamaan linier. y y yx LINIER x y  exp( x) NON-LINIER x Contoh Persamaan Tak-Linier    Persamaan Keadaan (Soave-Redlich-Kwong) α = f(T)  a dan b adalah konstanta dan spesifik untuk jenis gas tertentu  Persamaan diatas merupakan persamaan polynomial orde 3 yang dapat disusun dan disederhanakan menjadi  dimana Z=PV/RT (faktor kompresibilitas) dan A=αaP/R2T2 dan B=bP/RT. Persamaan Tak-Linier dalam Teknik Kimia Aplikasi Pers. Tak Linier Neraca Massa dan Energi, Termodinamika Persamaan gas nyata/kubik, Kesetimbangan reaksi kimia, Contoh H  N o 0 Tout out C � out P ,i dT  N To Tin in C � in P ,i 0 To RT a P  2 V b V (1 o T T C po dT G0o  H 0o H 0o 1 C p ln K    dT  � 0 RT0 RT T T� R R T T0 0 Operasi Teknik Kimia, dll. 1) 2) �n  j z jF F � � � �j 1  j   �  F (1  q )  0 � � � Persamaan kubik tersebut diusulkan oleh Johannes Diderik van der Waals (1873), Fisikawan Belanda, peraih nobel Fisika pada tahun 1910. Persamaan Underwood pada distilasi multikomponen (2 Klasifikasi Persamaan TakLinier Klasifikasi Persamaan Tunggal Persamaan Serentak / Sistem Persamaan Contoh f ( x ) 0 f 1  x1 , x 2 ,..., x N  0 f 2  x1 , x 2 ,..., x N  0 ... f N  x1 , x 2 ,..., x N  0 Persamaan Tunggal   Contoh Penyelesaian persamaan Tak linier tunggal ? Mencari harga x yang menyebabkan f(x) = 0 Persamaan Serempak Persamaan Serempak Contoh Penyelesaian persamaan Tak linier tunggal ? Mencari harga x yang menyebabkan f(x) = 0 Solusi Persamaan TakLinier  Metode Penyetengahan Interval  Pers. tak linier tunggal  Metode substitusi Berurut  Metode Weigstein  Metode Interpolasi Linier  Metode Newton-Raphson  Pers. tak linier tunggal  Metode Newton  Pers. tak linier serentak Metode Penyetengahan Interval  Interval Halving Method  Bisection Method  Algoritma Bolzano Keunggulan  Sederhana, Tangguh, pasti konvergen Kelemahan  Tebakan awal [a,b] harus memiliki nilai f(a)*f(b)<0  Laju konvergensi relatif lebih lambat f(x) f(xL) xL f(XR) x* XR x f(x) f(xL) f(xm) xL xm x* f(xR) ab m 2 xR x f(x) f(xL) xL x* f(xR) xR x Algoritma Penyelesaian 1 2 xm=(xL+xR)/2 x*=(xL+xR)/2 mulai Nyatakan: f(x), tol Periksa nilai: f(xm) masukan: xL dan xR Periksa nilai: f(xL), f(xR) tidak f(xL)*f(xR)<0 f(xL)*f(xm)>0 ya xL=xm f(xL)=f(xm) tidak tidak xR=xm f(xR)=f(xm) |(xL-xR)/xL| 1 error('argumen yang kedua haruslah bilangan skalar') end while abs((xL - xR)/xL) > 1e-6 fxL = feval(fungsi,xL,varargin{:}); fxR = feval(fungsi,xR,varargin{:}); if fxL*fxR > 0 error('masukan tebakan xL dan xR yang berbeda') end xm = (xL + xR)/2; fxm = feval(fungsi,xm,varargin{:}); if fxm*fxL > 0; xL = xm; else xR = xm; end end x=(xL+xR)/2; FVAL=feval(fungsi,x,varargin{:}); fungsi.m function y=fungsi(x) y=exp(x)-x^2-10; Eksekusi fungsi fungsi.m Masukkan dan hasil di Command Window >> bisection('fungsi',2.8,3.1,1e-6) ans = 2.9188 Pemrograman MATLAB Metode Newton-Raphson Keunggulan Hanya butuh satu tebakan awal.  Laju konvergensi cepat.  Kelemahan  Kekonvergenan adakalanya gagal dicapai. f(x) f(x0) f ( xn ) xn 1  xn  f '( xn ) x0 x* x f(x) f(x0) f ( xn ) xn 1  xn  f '( xn ) f(x1) x0 x1 f ( x0 ) x1  x0  f '( x0 ) x* x f(x) f(x0) f ( xn ) xn 1  xn  f '( xn ) f(x1) f(x2) x0 x1 x2 x* f ( x1 ) x2  x1  f '( x1 ) x Formula Iterasi NewtonRaphson Kegagalan Metode Newton-Raphson Lanjutan Lanjutan  λ adalah faktor peredaman langkah (dumping factor, relaxation factor) 0<λ≥1 Algoritma Newton-Raphson mulai masukan: f(x),x0, tol Nyatakan: x = x0 x0 = x + 1 1 1 |(x-x0)/x|>tol tidak ya Nyatakan: x0 = x Hitung nilai: f(x0) dan f’(x0) Hitung nilai: x=x0-f(x)/f’(x0) Tampilkan: X* = x Selesai  Pertama buat fungsi yang ingin diselesaikan pada m-file dan simpan dengan nama Fungsi.m fungsi.m Pemrograman MATLAB function y = fungsi(x) %fungsi yang ingin diselesaikan y = exp(x)-x^2-10;  definisikan fungsi turunan yang ingin diselesaikan dengan menuliskannya dalam bentuk m-file dan disimpan dengan nama Turunan.m turunan.m function ftur = turunan(x) h = abs((x)*eps^0.5); % fungsi turunan ftur = (fungsi(x+h) - fungsi(x))/h; Pemrograman MATLAB  Setelah itu baru kita tuliskan rutin untuk metode NewtonRapshon dalam bentuk m-file dan simpan dengan nama nr.m nr.m Pemrograman MATLAB clc x0 = input('masukkan nilai tebakan awal, x0= '); % memasukkan input tebakan awal xtol = input('masukkan nilai toleransi x yang diinginkan, xtol= '); ftol = input('masukkan nilai toleransi fungsi yang diinginkan, ftol= '); %memanggil fungsi baru yang diselesaikan fx0 = fungsi(x0); %memanggil fungsi turunan fturx0 = turunan(x0); %Relaxation factor a = 1; %mendefinisikan x1 x1 = x0 - a*(fx0/fturx0); %mendefinisikan nilai fx1 fx1 = fungsi(x1); %syarat pengulangan while abs(fx1) >= abs(fx0) a = a/2; x1 = x0 - a*(fx0/fturx0); fx1 = fungsi(x1); end nr.m Pemrograman MATLAB %syarat pengulangan while abs((x1 - x0)/x0) > xtol | abs(fx1) > ftol x0 = x1; fx0 = fungsi(x0); fturx0 = turunan(x0); x1 = x0 - a*(fx0/fturx0); fx1 = fungsi(x1); end %mendefinisikan hasil xhasil = x1  dengan menjalankan m-file nr.m, pada Command Window akan muncul sbb : awal, x0= 2 masukkan nilai tebakan masukkan nilai toleransi x yang diinginkan, xtol= 1e-6 masukkan nilai toleransi fungsi yang diinginkan, ftol= 1e-6 xhasil = 2.9188 >> Subrutin dalam MATLAB untuk Pers. Tak-Linier Tunggal Rutin roots.m Keunggulan 1. 2. fzero.m 1. Kelemahan Seluruh akar dapat diketahui dengan hanya sekali menjalankan rutin. Tidak membutuhkan tebakan mula. 1. Hanya untuk pers. kuadrat dan polinomial. Solusi bagi segala jenis pers tak linier. 1. Hanya satu buah akar yang dapat diketahui sekali menjalankan rutin. Membutuhkan tebakan mula. 2. Penulisan perintah Roots Penulisan perintah roots di command window MATLAB c(1) xn + . . . + c(n) x + c(n+1) c = [c(1),c(2),. . .,c(n+1)] roots(c) Contoh : persamaan kuadrat x2 + 4x - 5 = 0 MATLAB command window >> C=[1 4 -5] C = 1 4 -5 >> roots(C) ans = -5 1 Kasus 2 : Aplikasi subrutin roots Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar.Hitunglah volume molar uap jenuh dan cair jenuh n-butana pada Kondisi tersebut dengan menggunakan persamaan gas Van der Waals. (R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar) Jawaban   Persamaan Van der Waals dan Ditransformasikan kedalam persamaan polynomial Program MATLAB vdwroots.m Pemrograman MATLAB clear clc %input data P = 9.4573e5; %Pa T = 350; %K R = 8314; %J/(kmol.K) Pc = 37.96e5; %Pa Tc = 425.1; %K %Hitung konstanta a & b a = (27/64)*R^2*Tc^2/Pc; b = (1/8)*R*Tc/Pc; %definisikan koefisien polinomial vdw = [P,-(P*b+R*T),a,-a*b]; vol=roots(vdw); % Tampilkan volume spesifik n-butana fprintf('\nVolume spesifik n-butana,(liter/mol)=%5.4f', vol) Eksekusi program vdwroots.m , hasil di Command Window Volume spesifik n-butana,(liter/mol)=2.6669 Volume spesifik n-butana,(liter/mol)=0.3354 Volume spesifik n-butana,(liter/mol)=0.1910>> Penulisan perintah fzero Penulisan perintah fzero di command window MATLAB x = fzero (‘fungsi’,x0) Contoh : x2 + 4x + 3 =0 Penulisan pada command window >> fzero('x^2+4*x+3',0) ans = -1 Untuk keteraturan dan kemudahan pemanggilan akan lebih baik mendefinisikan fungsi pada m-file %kuadrat.m function y = kuadrat(x) y = x^2+4*x+3 Baru kemudian kita panggil fungsi dari MATLAB Command window >> x = fzero('kuadrat',0) x = -1 Untuk mencari akar lainnya, ubah tebakan awalnya >> x = fzero('kuadrat',-4) x = -3.0000 Kasus 3 : Aplikasi subrutin fzero Diketahui sebuah persamaan kapasitas panas sbb. 15.04 Cp  0.716  4257 x10 T  T 6 �kJ � � � kg.K � � Tentukan temperatur pada saat Cp = 1 kJ/kg.K !  definisikan fungsi persamaan tak-linier yang akan dinolkan, simpan dengan nama heatcap.m heatcap.m Pemrograman MATLAB function f = heatcap(T,cp) %persamaan tak linier yang akan dinolkan f = cp - 0.716 + 4257e-6*T - 15.04/T^0.5;  input data dan definisikan rutin fzero, simpan dengan nama runheatcap.m runheatcap.m Pemrograman MATLAB clear clc cp = 1; %kJ/kg.K % subrutin fzero T = fzero(@(T) heatcap(T,cp),100); % Tampilkan temperatur fprintf('\nTemperatur,(K)=%5.4f', T) Eksekusi program runheatcap.m , hasil di Command Window Temperatur,(K)=189.7597>> Kasus 4 Tekanan uap n-butana pada temperatur 350 K adalah 9.4573 bar. Volume molar uap jenuh dan cair jenuh n-butana pada kondisi tersebut dapat dihitung dengan menggunakan persamaan kubik Redlich-Kwong-Soave sebagai berikut: RT a P  V  b V (V  b) Dalam bentuk persamaan polinomial menjadi sebagai berikut: Z 3  Z 2  ( A  B  B 2 ) Z  AB  0 Dengan; Z a 2 2 C 0.4278 R T PC b PV RT 0.0867 RTC PC A  aP R 2T 2 B bP RT 2 � � � T �  � 1 S � 1  � S  0.48508  1.55171  0.15613 2 � � T � � � � C � (R=8.314j/mol.K ;Tc=425.1 K; Pc=37.96 bar; ω = 0.1931). Hitunglah volume molar uap jenuh dan cair jenuh n-butana pada kondisi tersebut Metode Newton f ( x1 , x2 )  0 f ( x1 , x2 )  0 Metode Newton f1 (1) �� |x � � x1 � � f 2 (1) � |x � � x1 � � f1 (1) � | x � (1) (1) � x2 � � � �  f 1 1 �� �  � � (1) � f 2 (1) �� �(1) f | x � 2 � �2 � � x2 � J   f Faktor relaksasi 0< λ<1 Biasanya λ = 0.5   Subrutin dalam MATLAB untuk pers. Tak-Linier Serentak fsolve Kasus 5 : Aplikasi subrutin fsolve Reaksi reformasi kukus berlangsung menurut rangkaian reaksi kesetimbangan berikut: Pada suhu 2000 K harga konstanta kesetimbangan untuk masing-masing reaksi adalah 1,930x10-4 dan 5,528. Tentukan komposisi kesetimbangan komponen-komponen apabila Gas umpan berkomposisi 20% CH4(g) dan 80% H2O(g) berada pada kondisi suhu 2000 K dan tekanan 1 atm. Jawaban   Lanjutan Substitui fraksi mol kesetimbangan pada konstanta kesetimbangan sehingga dihasilkan :  e1  e2   3e1  e2  2  2  e1   8  e1  e2   10  2e1  3  K1 e2  3e1  e2   K2  e1  e2   8  e1  e2   definisikan fungsi persamaan tak-linier yang akan dinolkan, simpan dengan nama keq.m keq.m Pemrograman MATLAB function y = keq(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))) - k2];  input data dan definisikan rutin fzero, simpan dengan nama runheatcap.m runheatcap.m Pemrograman MATLAB clear clc k1 = 1.93e-4; k2 = 5.528; %Pencari nol fungsi keq.m e = fsolve(@(e) keq(e,k1,k2),[1 0.5]); % Tampilkan harga epsilon fprintf('\nepsilon =%3.3f', e) Eksekusi program runheatcap.m , hasil di Command Window epsilon =0.748 epsilon =0.692>> Kasus 7 Suatu reaksi elementer A B + C berlangsung dalam sebuah reaktor tangki berpengaduk kontinu. Laju umpan murni A, 12 mol/s pada temperatur 25 oC. Reaksi bersifat eksotermik, untuk itu digunakan air pendingin bertemperatur 50 oC untuk menyerap kalor yang dibebaskan reaksi. Asumsi konstanta kapasitas panas sama baik di sisi reaktan maupun produk, neraca energi untuk sistem ini dirumuskan sebagai berikut:  FAo X H R  FAoCP , A (T  T0 )  UA(T  Ta ) FA0 = laju molar umpan, mol/s. X = konversi ∆HR = Kalor reaksi, J/(mol.K) CP,A = kapasitas panas A, J/(mol.K) T = temperatur reaktor, oC T0 = temperatur referensi, 25 oC Ta = temperatur air pendingin, oC U = koefisien pindah panas total, W/(m 2.K) A = luas pindah panas, m 2 Untuk reaksi orde pertama konversi dirumuskan sebagai berikut: X k 1 k Dengan τadalah waktu tinggal dalam sekon, dan k adalah laju reaksi spesifik dalam s -1 dihitung dengan menggunakan persamaan Arrhenius: k  650 exp[3800 /(T  273)] Hitunglah harga temperatur reaktor dan konversinya!. (∆HR=-1500 kJ/mol; τ=10 s; CP,A = 4500 J/(mol.K); UA/FA0 =700 W.s/(mol.K).

Dokumen baru