laporan praktikum.doc

download laporan praktikum.doc

of 24

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