laporan praktikum.doc
-
Upload
agustinhidayah -
Category
Documents
-
view
44 -
download
6
Transcript of laporan praktikum.doc
KOMPUTASI TEKNIK KIMIA(MATLAB)
Disusun oleh:
Nama: Ika R
NIM: 121012014
Jurusan: Teknik Kimia
LABORATORIUM KOMPUTER III
INSTITUT SAINS & TEKNOLOGI AKPRIND
YOGYAKARTA
2013
KATA PENGANTARPuji syukur penyusun panjatkan kehadirat Allah SWT karena berkat, rahmat, dan karunia-Nya penyusun dapat menyelesaikan laporan resmi Komputasi Teknik Kimia (Matlab).Pada kesempatan ini penyusun juga mengucapkan terima kasih kepada pihak pihak yang telah membantu, sehingga penyusunan laporan resmi ini dapat diselesaikan. Penyusun mengucapkan terima kasih kepada:
1. Ani Purwanti,ST,M.Eng, selaku dosen Komputasi Teknik Kimia Akprind Yogyakarta.2. Ian Sofyan, ST, selaku dosen praktikum Komputasi Teknik Kimia Akprind Yogyakarta.3. Teman teman Teknik Kimia Institut Sains & Teknologi Akprind Yogyakarta dan semua pihak yang tak dapat disebutkan satu per satu.
Penyusun menyadari bahwa penyusunan laporan ini masih memiliki kekurangan, sehingga saran dan kritik yang membangun dari para pembaca sangat diharapkan.
Akhir kata, penyusun berharap semoga laporan ini dapat bermanfaat untuk kita semua.
Yogyakarta, Januari 2013Penyusun
PENDAHULUAN
Matlab
Matlab merupakan bahasa komputasi teknik yang lebih mudah dan canggih dalam penggunaannya dibandingkan dengan bahas teknik pendahulunya seperti FORTRAN, BASIC, PASCAL. Sebetulnya MATLAB tidaklah berbeda dengan kalkulator scientific yang sehari-hari kita (orang teknik) kenal. Bedanya MATLAB adalah kalkulator yang super canggih karena MATLAB:
1. Menghitung sampai dengan ketelitian 16 angka di belakang koma, sehingga perhitungan lebih akurat.
2. Menyediakan fasilitas untuk membuat program sesuai dengan kebutuhan kita.
3. Mampu menampilkan data-data dalam grafik 2-D hingga 3-D dengan pewarnaan yang akan memudahkan interpretasi data yang kita miliki.
4. Menyediakan perintah-perintah praktis untuk menyelesaikan berbagai macam persoalan matematis seperti persamaan pangkat tinggi (polinomial), persamaan linier, persamaan tak linier, optimasi fungsi, persamaan differensial biasa, persamaan differensial parsial, fungsi integral, interpolasi data, operasi aljabar, operasi matrik dan masih banyak lagi.
5. Memiliki kemudahan dalam mengelola data-data yang sangat banyak dalam bentuk vektor/matrik.
Sekali kita mendefinisikan sebuah variabel MATLAB akan menyimpan dalam ingatannya (workspace). Untuk menghapus atau menghilangkan seluruh variabel yang telah dibuat dapat digunakan perintah clear. Variabel a, b dan c yang telah tersimpan akan hilang. Jika hanya ingin membersihkan layar command window saudara dapat menggunakan perintah clc.
Beberapa nama variabel yang telah didefinisikan oleh MATLAB
epsBilangan yang jika ditambahkan dengan suatubilangan lain tidak mengubah besar bilangan lain itu. Epsilon berharga 2.2204e-016
pi3.1416....
infTak berhingga (Infinity). Simbol matematika =~
NaNBilangan tak tentu (Not a Number) contoh 0/0
ISI
PERCOBAAN I
1. Persamaan Antoine
Di M-File
%persamaan antoine.mA=14.0568;B=2825.42;C=-42.7089;T=25:100;lnP=A-B./(T+C)P=exp(lnP)plot(P,T)xlabel('tekanan uap murni[kPa]')ylabel('temperatur [K]')Setelah di run, hasil di command window
lnP =
1.0e+003 *
Columns 1 through 10
0.1736 0.1832 0.1939 0.2061 0.2202 0.2364 0.2554 0.2779 0.3051 0.3385
Columns 11 through 20
0.3806 0.4352 0.5090 0.6141 0.7759 1.0571 1.6674 3.9997 -9.6920 -2.1743
Columns 21 through 30
-1.2192 -0.8444 -0.6444 -0.5199 -0.4351 -0.3735 -0.3267 -0.2900 -0.2605 -0.2362
Columns 31 through 40
-0.2158 -0.1985 -0.1836 -0.1707 -0.1594 -0.1493 -0.1404 -0.1324 -0.1252 -0.1186
Columns 41 through 50
-0.1127 -0.1073 -0.1023 -0.0977 -0.0934 -0.0895 -0.0858 -0.0824 -0.0792 -0.0762
Columns 51 through 60
-0.0734 -0.0708 -0.0683 -0.0660 -0.0638 -0.0617 -0.0597 -0.0579 -0.0561 -0.0544
Columns 61 through 70
-0.0528 -0.0512 -0.0497 -0.0483 -0.0470 -0.0457 -0.0445 -0.0433 -0.0421 -0.0410
Columns 71 through 76
-0.0400 -0.0390 -0.0380 -0.0370 -0.0361 -0.0353
P =
1.0e+266 *
Columns 1 through 10
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 11 through 20
0.0000 0.0000 0.0000 4.8849 Inf Inf Inf Inf 0 0
Columns 21 through 30
0 0 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 31 through 40
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 41 through 50
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 51 through 60
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 61 through 70
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Columns 71 through 76
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
2. Kapasitas Panas Campuran
Di M-File
%Kap_panas_camp.my = [0.45 0.55];Cp = [1.2 0.02 0.0033 0.0000032 3.2 0.01 0.0047 0.0000044];T = 300; %KCpc = 0for i=1:length(y) Cpi = 0 for j=1:length(Cp) Cpi = Cpi + Cp(1,j)*T^(j-1) end; Cpc = Cpc + y(i)*Cpiend;Cpc
Setelah di run, di command window muncul:
Cpc =
0
Cpi =
0
Cpi =
1.2000
Cpi =
7.2000
Cpi =
304.2000
Cpi =
390.6000
Cpc =
175.7700
Cpi =
0
Cpi =
1.2000
Cpi =
7.2000
Cpi =
304.2000
Cpi =
390.6000
Cpc =
390.6000
Cpc =
390.6000
Percobaan II
PENYELESAIAN PERSAMAAN LINIER SILMUTAN
Di M-File
%latihan2.mclearclcA=[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]B=[100;0;0;0;0;0;0;0;0]x=A\BSetelah di run, di command window muncul:
A =
1.0000 0 0 0 -1.0000 0 0 0 0
0 1.0000 0 0 0 -1.0000 0 0 0
-1.0000 0 1.0000 0 0 0 0 0 1.0000
0 -1.0000 0 -1.0000 0 0 0 0 -1.0000
0 0 -1.0000 0 1.0000 0 1.0000 0 0
0 0 0 -1.0000 0 1.0000 0 1.0000 0
0 0 0.8000 0 1.0000 0 0 0 0
0 0 0 -0.4000 0 1.0000 0 0 0
1.0000 -5.0000 0 0 0 0 0 0 0
B =
100
0
0
0
0
0
0
0
0
x =
42.3729
8.4746
72.0339
21.1864
-57.6271
8.4746
129.6610
12.7119
-29.6610
Percobaan III
Penyelesaian Akar Persamaan Non-Linier (1)
Di M-File 1 (Bangun/tulis fungsi biseksi)
%biseksi.mfunction x=biseksi(fungsi,a,b,tol)%a=tebakan awal pertama, b=tebakan awal kedua%tol=toleransiwhile abs((a-b)/a)>1e-6 fa=feval(fungsi,a); fb=feval(fungsi,b); if fa*fb>0 error('masukan tebakan a dan b yang berbeda') end m=(a+b)/2; fm=feval(fungsi,m); if fm*fa>0; a=m; else b=m; endendx=(a+b)/2;Di M-File 2 (tulis persamaan yang akan dicari)
%kuadrat.mfunction y=kuadrat(x)y=x^2+4*x+3;Kemudian di command window, tulis:
>> biseksi('kuadrat',-2,1,1e-6)
ans =
-1.0000
(angka -2,1,dan 1e-6 adalah angka tebakan kita)
Percobaan IV
Penyelesaian Akar Persamaan Non-Linier (2)
Di M-File 1 (tulis atau bangun persamaan newton raphson)
%NewRap.mfunction [x iter]=NewRap(fungsi,dfungsi,x0,tol)%fungsi=fungsi yang akan dicari akar-akarnya%dfungsi=turunan pertama fungsi%x0=tebakan awal%tol=toleransiitermax=100;iter=0;x=x0;x0=x+1;%loop iterasiwhile abs((x-x0)/x)>tol&iter> [x iter]=NewRap('kuadrat','dkuadrat',2,1e-6)
x =
-1.0000
iter =
6
Latihan 2
Dikerjakan dengan menggunakan NewRap
Di M-File 1
%van der waals.mfunction f=polinom(v)R=0.08206;Tc=405.5;Pc=111.3;P=56;T=450;Pr=1,2,4,10,20;a=(27/64)*(R^2*Tc^2/Pc)b=(1/8)*R*Tc/PcPr=P/PcZ=P*v/(R*T)f=(P*v^3)-(P*b+R*T)*v^2+a*v-a*b;Di M-File 2
%dvanderwaals.mfunction df=dfungsi(x)R=0.08206;Tc=405.5;Pc=111.3;P=56;T=450;Pr=1,2,4,10,20;a=(27/64)*(R^2*Tc^2/Pc);b=(1/8)*R*Tc/Pc;Pr=P/Pc;Z=P*x/(R*T);df=(P*((1/4)*x^4))-((P*b+R*T)*((1/3)*x^3))+a*((1/2)*x^2)-a*b;Di command window, tulis:
>> [x iter]=NewRap('polinom','dvanderwaals',2,1e-6)
x =
18.6156
iter =
101
Percobaan V
Persamaan Diferensial Ordiner (1)
Latihan 1
Di M-File (bangun/tulis persamaan euler)
function [tvals,yvals]=euler(func,tspan,startval,step)%nama file: euler.msteps=(tspan(2)-tspan(1))/step+1;y=startval;t=tspan(1);yvals=startval;tvals=tspan(1);for i=2;steps; y1=y+step*feval(func,t,y);t1=t+step; tvals=[tvals,t1];yvals=[yvals,y1]; t=t1;y=y1;endDi M-File 2 (tulis fungsi yang akan dicari)
%fungsieuler.mfunction v=fungsieuler(t,y)v=y-20;Kemudian d command window ditulis:
[t y]=euler(fungsi,tspan,startval,step)
>> [t y]=euler('fungsieuler',[0 20],2,0.5)
t =
0 0.5000
y =
2 -7
>> [t y]=euler('fungsieuler',[0 20],2,0.2)
t =
0 0.2000
y =
2.0000 -1.6000
>> [t y]=euler('fungsieuler',[0 20],2,0.1)
t =
0 0.1000
y =
2.0000 0.2000
Metode Range-Kutta
Di M-File 1 (tulis persamaan rkgen)
function [tvals,yvals]=rkgen(func,tspan,startval,step)%nama file: rkgen.mb=[];c=[];d=[];order=4;b=[1/6 1/3 1/3 1/6];d=[0 0.5 0.5 1];c=[0 0 0 0;0.5 0 0 0;0 0.5 0 0;0 0 1 0];steps=(tspan(2)-tspan(1))/step+1;y=startval;t=tspan(1);yvals=startval;tvals=tspan(1);for j=2:steps; k(1)=step*feval(func,t,y); for i=2:order k(i)=step*feval(func,t+step*d(i),y+c(i,1:i-1)*k(1:i-1)'); end;y1=y+b*k';t1=t+step;tvals=[tvals,t];yvals=[yvals,y1];t=t1;y=y1;end;Di M-File 2 (tulis persamaan yang akan dicari)
function v=fungsirkgen(t,y)v=2*t*y%nama file: fungsirkgen.mDi command window, tulis:
[t y]=rkgen('fungsirkgen',[0 2],2,0.25)
v =
0
v =
0.5000
v =
0.5156
v =
1.0645
v =
1.0645
v =
1.6965
v =
1.7558
v =
2.5679
v =
2.5680
v =
3.6113
v =
3.7743
v =
5.2674
v =
5.2650
v =
7.2942
v =
7.7381
v =
10.8890
v =
10.8715
v =
15.2880
v =
16.5302
v =
23.9207
v =
23.8423
v =
34.4224
v =
38.0593
v =
57.1553
v =
56.8559
v =
84.6916
v =
95.9999
v =
150.3318
v =
149.2485
v =
229.8693
v =
267.6603
v =
438.2300
t =
0 0 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000 1.7500
y =
2.0000 2.1290 2.5680 3.5100 5.4357 9.5369 18.9520 42.6424 108.5815
Percobaan VI
Persamaan Diferensial Ordiner (2)
Di M-File 1
%main program: mix_heat.m%program terkait: mix_heat_ode_fun.m%pencampuran cairan dalam tangki berpengaduk dengan koil pemanasclear allclc%definisi global variabelglobal Fv1 Fv2 Fv C1 C2global T1 T2 Ts Tref U A Cp%input dataC1=10;%kg/m3C2=2;%kg/m3C0=8;%kg/m3T1=35+273;%KT2=95+273;%KTs=120+273;%KT0=35+273;%KFv1=5;%m3/jamFv2=3;%m3/jamFv=5;%m3/jamFs=60;%m3/jamV=1;%m3U=15;%watt/m2/CA=25;%m2Cp=3;%J/kg/Ctf=3;%jamTref=298;%K%menyelesaikan ode simultan dengan ode45[t,y]=ode45(@mix_heat_ode_fun,[0,tf],[V,C0,T0])Di M-File 2
%subroutine:mix_heat_ode_fun.m%main program terkait: mainmix.mfunction dydt=mix_heat_ode_fun(t,y)global Fv1 Fv2 Fv C1 C2global T1 T2 Ts Tref U A CpV=y(1);C=y(2);T=y(3);dydt=zeros(3,1);dydt(1)=(Fv1+Fv2-Fv);dydt(2)=(Fv1.*C1+Fv2.*C2-Fv.*C-C.*dydt(1))./V;dydt(3)=(Fv1.*C1.*(T1-Tref)+Fv2.*C2.*(T2-Tref)+U.*A.*(Ts-T)./Cp-Fv.*C.*(T-Tref)-T.*(C.*dydt(1)+V.*dydt(2)))./V./C;Kemudian di command window ditulis:
>> [t y]=ode45(@mix_heat_ode_fun,[0,3],[1,8,308])
t = 0
0.0167
0.0335
0.0502
0.0670
0.0806
0.0941
0.1077
0.1213
0.1421
0.1629
0.1838
0.2046
0.2330
0.2613
0.2896
0.3180
0.3614
0.4048
0.4482
0.4916
0.5631
0.6347
0.7062
0.7777
0.8527
0.9277
1.0027
1.0777
1.1527
1.2277
1.3027
1.3777
1.4527
1.5277
1.6027
1.6777
1.7527
1.8277
1.9027
1.9777
2.0527
2.1277
2.2027
2.2777
2.3527
2.4277
2.5027
2.5777
2.6527
2.7277
2.8027
2.8777
2.9083
2.9389
2.9694
3.0000
y =
1.0000 8.0000 308.0000
1.0502 7.8774 318.7153
1.1005 7.7746 325.5761
1.1507 7.6877 329.7255
1.2010 7.6137 332.3465
1.2417 7.5615 333.8899
1.2824 7.5152 334.9524
1.3231 7.4740 335.6639
1.3638 7.4372 336.1349
1.4263 7.3879 336.5668
1.4888 7.3460 336.7431
1.5514 7.3101 336.7500
1.6139 7.2790 336.6759
1.6989 7.2433 336.5378
1.7839 7.2136 336.3599
1.8689 7.1887 336.1610
1.9539 7.1676 335.9705
2.0841 7.1411 335.7264
2.2143 7.1200 335.5131
2.3445 7.1031 335.3220
2.4747 7.0893 335.1611
2.6893 7.0715 334.9644
2.9040 7.0582 334.8131
3.1186 7.0482 334.6897
3.3332 7.0403 334.5930
3.5582 7.0339 334.5183
3.7832 7.0288 334.4585
4.0082 7.0247 334.4097
4.2332 7.0213 334.3699
4.4582 7.0186 334.3373
4.6832 7.0163 334.3102
4.9082 7.0144 334.2874
5.1332 7.0128 334.2681
5.3582 7.0114 334.2517
5.5832 7.0102 334.2376
5.8082 7.0092 334.2255
6.0332 7.0083 334.2149
6.2582 7.0075 334.2057
6.4832 7.0068 334.1976
6.7082 7.0062 334.1906
6.9332 7.0057 334.1843
7.1582 7.0053 334.1787
7.3832 7.0048 334.1737
7.6082 7.0045 334.1693
7.8332 7.0041 334.1653
8.0582 7.0038 334.1617
8.2832 7.0036 334.1585
8.5082 7.0033 334.1556
8.7332 7.0031 334.1529
8.9582 7.0029 334.1505
9.1832 7.0027 334.1483
9.4082 7.0025 334.1463
9.6332 7.0024 334.1444
9.7249 7.0023 334.1437
9.8166 7.0023 334.1430
9.9083 7.0022 334.1424
10.0000 7.0022 334.1417
Percobaan VII
Integrasi Numerisa. Trapezoidal Rule
Distilasi Batch di Laboratorium
Di M-File 1
%input dataF=10;%lbmol/jamD=10;%lbmol/jamM=20;%lbmolXf=0.32;Xw0=0.32;alpha=2.48;yDn=0.4;n=100;%yDn=alpha*Xwn/(1-(alpha-1)*Xwn);Xwn=yDn./(alpha-(alpha-1)*yDn);Xw=linspace(Xw0,Xwn,100);yD=alpha.*Xw./(1-(alpha-1).*Xw);ti=M./(F.*Xf-D.*yD);t=trapz(Xw,ti)kemudian dirun, dan di command window akan muncul:
>> t=trapz(Xw,ti)
t =
0.2983
b. Simpsons Rule
Di M-File 1 (integrasi integ_fun)
%subroutine terkait%nama file: integ_fun.mfunction t=integ_fun(h)global Fin D d g h%input datag=10;D=3;d=0.03;h=0.5;Fin=0.00416;A=((1/4)*pi*D^2);A0=((1/4)*pi*d^2);v=sqrt(2*g*h);Fout=(A0*v);t=A./(Fin-Fout)Di M-File 2 (subroutine)
%subroutine terkait%nama file: integ_fun.mfunction t=integ_fun(h)global Fin D d g h%input datag=10;D=3;d=0.03;h=0.5;Fin=0.00416;A=((1/4)*pi*D^2);A0=((1/4)*pi*d^2);v=sqrt(2*g*h);Fout=(A0*v);t=A./(Fin-Fout)Kemudian M-File 2 di run dan akan muncul hasil:
t =
3.6725e+003
Percobaan VIII
Optimasi Suatu Variabel Dengan Golden-Section
Ekstraksi Asam Benzoat dari Limbah Industri
Di M-File 1
function [f,a]=golden(func,p,tol)if p(1)tol x=[a+(1-g)*r a+g*r]; y=feval(func,x); if y(1)> [f,x]=golden('ekstraksi_benzoat',[2400 2550],10^-5)
f =
0.9702
x =
2.4971e+003
Aplikasi Perhitungan (Optimasi Konversi pada Reaktor Batch)
Di M-File 1
%nama file: run_batch.mglobal Ca0 k tpCa0=2;k=0.025;tp=45;x0=0.01;xn=0.99;x_opt=fminbnd('batch',x0,xn)tr=x_opt./(k*Ca0*(1-x_opt))Kemudian dirun, dan di command window akan muncul:
x_opt =
0.6000
tr =
29.9998