Материал: otchet3_2

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Российский химико-технологический университет

им. Д.И.Менделеева

Кафедра кибернетики химико-технологических процессов

Отчет к лабораторной работе 3.2

«Расчет фазового равновесия в тройной смеси

ацетон-вода-этанол»

Выполнили: студенты гр. К-41

Головкина А. И. Григорьева Н. В. Эбергард А. В.

Проверил: д.т.н., проф.

Дудоров А.А.

Москва

2019

Цель работы

Отработать практические навыки методов расчёта равновесных концентраций компонентов многокомпонентной смеси (на примере смеси ацетон-этанол-вода) по методу Вильсона.

Исходные данные

Состав жидкой фазы

ха = 0,3 мол.доли

хэ = 0,2 мол.доли

хв = 0,5 мол.доли

Расчет коэффициентов активности в трехкомпонентной смеси по уравнению Вильсона

Расчет коэффициентов активности осуществляется по формулам:

lnγ1=1-ln(x1+x2Λ12+x3Λ13)-(x1/(x1+ x2Λ12+ x3Λ13)+ x2Λ21/( x1Λ21+x2+ x3Λ23)+ x3Λ31/( x1Λ31+ x2Λ32+x3))

lnγ2=1-ln(x1Λ21 + x2 + x3Λ23)-(x1Λ12/(x1 + x2Λ12 + x3Λ13) + x2/( x1Λ21 + x2 + x3Λ23) + x3Λ32/( x1Λ31+ x2Λ32+x3))

lnγ1=1-ln(x1Λ31 + x2Λ32 + x3)-(x1Λ13/(x1 + x2Λ12 + x3Λ13) + x2Λ23/( x1Λ21 + x2 + x3Λ23) +x3/( x1Λ31+ x2Λ32+x3))

Давление компонентов находится по уравнению Риделя:

pio = exp(C1i + C2i/T+ C3i·T + C3iln(T))

Λij = vj/vi·exp(-(λijii)/RT)

Полученные значения:

Вывод: при заданном составе жидкой фазы по модели Вильсона были рассчитаны состав паровой фазы и температура кипения системы.

Приложение 1

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button1: TButton;

Edit4: TEdit;

Label4: TLabel;

Label5: TLabel;

Edit5: TEdit;

Label6: TLabel;

Edit6: TEdit;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

dla12,dla21,dla13,dla31,dla23,dla32,v1,v2,v3,r,t0,c11,c12,c13,c14,c21,c22,c23,c24,c31,c32,c33,c34,p,x1,x2,x3,eps,fi:real;

implementation

{$R *.dfm}

procedure temp(t:real;var y1,y2,y3:real);

var la12,la21,la13,la31,la23,la32,gamma1,gamma2,gamma3,p1,p2,p3:real;

begin

la12:=(v2/v1)*exp(-dla12/(r*t));

la21:=(v1/v2)*exp(-dla21/(r*t));

la13:=(v3/v1)*exp(-dla13/(r*t));

la31:=(v1/v3)*exp(-dla31/(r*t));

la23:=(v3/v2)*exp(-dla23/(r*t));

la32:=(v2/v3)*exp(-dla32/(r*t));

p1:=exp(c11+c12/t+c13*t+c14*ln(t));

p2:=exp(c21+c22/t+c23*t+c24*ln(t));

p3:=exp(c31+c32/t+c33*t+c34*ln(t));

gamma1:=exp(1-ln(x1+x2*la12+x3*la13)-x1/(x1+x2*la12+x3*la13)-x2*la21/(x1*la21+x2+x3*la23)-x3*la31/(x1*la31+x2*la32+x3));

gamma2:=exp(1-ln(x1*la21+x2+x3*la23)-x1*la12/(x1+x2*la12+x3*la13)-x2/(x1*la21+x2+x3*la23)-x3*la32/(x1*la31+x2*la32+x3));

gamma3:=exp(1-ln(x1*la31+x2*la32+x3)-x1*la13/(x1+x2*la12+x3*la13)-x2*la23/(x1*la21+x2+x3*la23)-x3/(x1*la31+x2*la32+x3));

y1:=gamma1*p1*x1/p;

y2:=gamma2*p2*x2/p;

y3:=gamma3*p3*x3/p;

end;

procedure TForm1.Button1Click(Sender: TObject);

var t,t1,t2,la12,la21,la13,la31,la23,la32,gamma1,gamma2,gamma3,p1,p2,p3,y1,y2,y3,y1t1,y2t1,y3t1,y1t2,y2t2,y3t2,a,b:real; i:integer;

begin

eps:=0.01;

fi:=(1+sqrt(5))/2;

dla12:=-226.89; dla21:=704.87; dla13:=180.31;

dla31:=1722.1; dla23:=99.76; dla32:=1074.66;

v1:=104; v2:=49.6; v3:=18.7;

r:=1.987; t0:=329.1; p:=1;

x1:=StrtoFloat(Edit1.Text);

x2:=StrtoFloat(Edit5.Text);

x3:=1-x1-x2;

c11:=34.61307; c12:=-4873.446; c13:=-0.000000003249502; c14:=-3.422;

c21:=50.70924; c22:=-6784.604; c23:=-0.000000001042392; c24:=-5.36;

c31:=30.79802; c32:=-5966.069; c33:=-0.000000001030134; c34:=-2.5;

t:=t0;

a:=t0;

b:=373;

la12:=(v2/v1)*exp(-dla12/(r*t));

la21:=(v1/v2)*exp(-dla21/(r*t));

la13:=(v3/v1)*exp(-dla13/(r*t));

la31:=(v1/v3)*exp(-dla31/(r*t));

la23:=(v3/v2)*exp(-dla23/(r*t));

la32:=(v2/v3)*exp(-dla32/(r*t));

p1:=exp(c11+c12/t+c13*t+c14*ln(t));

p2:=exp(c21+c22/t+c23*t+c24*ln(t));

p3:=exp(c31+c32/t+c33*t+c34*ln(t));

gamma1:=exp(1-ln(x1+x2*la12+x3*la13)-x1/(x1+x2*la12+x3*la13)-x2*la21/(x1*la21+x2+x3*la23)-x3*la31/(x1*la31+x2*la32+x3));

gamma2:=exp(1-ln(x1*la21+x2+x3*la23)-x1*la12/(x1+x2*la12+x3*la13)-x2/(x1*la21+x2+x3*la23)-x3*la32/(x1*la31+x2*la32+x3));

gamma3:=exp(1-ln(x1*la31+x2*la32+x3)-x1*la13/(x1+x2*la12+x3*la13)-x2*la23/(x1*la21+x2+x3*la23)-x3/(x1*la31+x2*la32+x3));

y1:=gamma1*p1*x1/p;

y2:=gamma2*p2*x2/p;

y3:=gamma3*p3*x3/p;

t1:=b-(b-a)/fi;

t2:=a+(b-a)/fi;

while abs(y1+y2+y3-1)>=eps do begin

temp(t1,y1t1,y2t1,y3t1);

temp(t2,y1t2,y2t2,y3t2);

if abs(y1t1+y2t1+y3t1-1)>abs(y1t2+y2t2+y3t2-1) then

begin

t:=t2;

a:=t1;

t1:=t2;

t2:=a+(b-a)/fi;

y1:=y1t2;

y2:=y2t2;

y3:=y3t2;

end

else begin

t:=t1;

b:=t2;

t2:=t1;

t1:=b-(b-a)/fi;

y1:=y1t1;

y2:=y2t1;

y3:=y3t1;

end;

end;

Edit2.Text:=FloatToStrf(y1, ffgeneral, 4, 2);

Edit3.Text:=FloatToStrf(y2, ffgeneral, 4, 2);

Edit6.Text:=FloatToStrf(y3, ffgeneral, 4, 2);

Edit4.Text:=FloatToStrf(t-273, ffgeneral, 4, 2);

end;

end.