Лабораторная работа по курсу «Оптимизация технологических процессов»

Автор работы: Пользователь скрыл имя, 02 Мая 2015 в 12:51, лабораторная работа

Описание работы

Задание:
При аммонолизе метанола в случае необратимости записанных реакций, равновесие устанавливается за счет протекания реакций диспропорционирования:
Реакцию проводят при 50 ата и 623 К.
Найти мольное соотношение метанола к аммиаку при котором достигается максимальный выход диметиламина в равновесной смеси на выходе из реактора.

Файлы: 1 файл

Оптимизация.docx

— 66.07 Кб (Скачать файл)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

НАУЧНО - ИССЛЕДОВАТЕЛЬСКИЙ

«ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

 

Институт природных ресурсов

Направление Химическая технология

Кафедра: Общая химическая технология

 

 

 

 

 

 

 

 

 

Лабораторная работа №2

По курсу «Оптимизация технологических процессов»

 

Вариант № 11

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30.03.2015

Задание:

При аммонолизе метанола

,

в случае необратимости записанных реакций, равновесие устанавливается за счет протекания реакций диспропорционирования:

;

;

.

Реакцию проводят при 50 ата и 623 К.

Найти мольное соотношение метанола к аммиаку при котором достигается максимальный выход диметиламина в равновесной смеси на выходе из реактора.

Теоретическая часть:

В подавляющем большинстве реальных процессов органического синтеза одновременно протекают несколько реакций (сложная реакция). Такие  процессы  характеризуются  несколькими  стехиометрическими уравнениями и соответственно несколькими константами равновесия.

Расчет  равновесных  концентраций  (равновесного  состава),  удовлетворяющего  всем  константам  равновесия  простых  реакций  можно проводить  несколькими  способами.  Рассмотримтрадиционный подход к решению задачи нахождения равновесного состава сложной реакции.

Расчет констант равновесия:

Для упрощения расчетов во многих термодинамических таблицах приводят величины стандартных энергий Гиббса образования соединений:

    (1)   

или логарифмов стандартных констант равновесия образования соединений:

. (2)

По величинам или компонентов реагирующей смеси легко найти или для реакции ,  (3)  

и далее ,   (4) 

Решение:

  1. Составляем таблицу материального баланса сложной равновесной реакции:

За Х1 обозначим количество метиламина, Х2 – диметиламина, Х3 – триметиламина в равновесной смеси; α – количество вещества метилового спирта.

Таблица1 -  Материальный баланса сложной равновесной реакции

Компонент

В исходной смеси

В состоянии равновесия

Мольная доля

Парциальное давление, ат

NH3

1

1- X1 – X2 – X3

(1- X1 – X2 – X3)/(1+α)

Po(1- X1 – X2 – X3)/(1+α)

CH3OH

α

α – X1 – 2X2 – 3X3

(α – X1 – 2X2 – 3X3)/( 1+α)

Po (α – X1 – 2X2 – 3X3)/( 1+α)

CH3 NH2

0

X1

X1/( 1+α)

Po X1/( 1+α)

H2O

0

X1+ 2X2 +3X3

(X1+ 2X2 + 3X3)/( 1+α)

Po (X1+2 X2 + 3X3)/( 1+α)

(CH3)2NH

0

X2

X2/( 1+α)

Po X2/( 1+α)

(CH3)3N

0

X3

X3/( 1+α)

Po X3/( 1+α)

Сумма

1+α

1+α

1

Po(1+α)


 

  1. Составляем систему уравнений для расчета неизвестных переменных:

 

Kp,1 =

 

Kp,2 = =

 

Kp,3 =

 

  1. Решение системы нелинейных уравнений можно провести каким-либо из описанных в литературе способами. Наиболее часто для этой цели используют метод Ньютона-Рафсона.

Расчет констант равновесия:

Энергии Гиббса при заданной температуре находим по табличным значениям, используя метод интерполяции. 

Таблица 2 - Значения энергии Гиббса (кДж/моль) для заданных веществ

Вещество

Температура

NH3

CH3OH

CH3 NH2

(CH3)2NH

(CH3)3N

H2O

600 К

16,07

-119,33

92,88

162,30

230,91

-214,05

623 К

18,68

-115,79

97,78

169,85

241,41

-212,86

700 К

27,41

-103,93

114,18

195,14

276,56

-208,87


 

Затем, пользуясь уравнением (3) найдем суммарную энергию Гиббса для каждой реакции:

∆Gоr1 = -17,97 кДж

∆Gоr2 = -25,0 кДж

∆Gоr3 = - 25, 51  кДж

Подставив полученные величины в уравнение (4) получим значение логарифма констант равновесия и сами значения констант равновесия:

ln(Kp1) = 3,469

Kp1 = 32,11

ln(Kp2) = 4,826

Kp2 = 124,78

ln(Kp3) = 4,925

Kp3 = 137,699

 

Программа на языке Pascal, реализующая данный алгоритм вычислений:

 

program dehydratation1;

Type massiv=array[1..20] of real;

     massiv2=array[1..20,1..2] of real;

     matrix=array[1..20,1..20] of real;

var  n            : integer;

     f,x          : massiv;

     intX         : massiv2;

     Kp1,Kp2,Kp3,p,e,A,Aopt,X2max,X1opt,X3opt:real;

 

procedure systemUraw;

begin

  f[1]:=Kp1*(1-x[1]-x[2]-x[3])*(A-x[1]-2*x[2]-3*x[3])-x[1]*(x[1]+2*x[2]+3*x[3]);

  f[2]:=Kp2*x[1]*(A-x[1]-2*x[2]-3*x[3])-x[2]*(x[1]+2*x[2]+3*x[3]);

  f[3]:=Kp3*x[2]*(A-x[1]-2*x[2]-3*x[3])-x[3]*(x[1]+2*x[2]+3*x[3]);

end;

procedure  noLineUraw(n: integer; e: real; intX: massiv2; var f,x: massiv);

label nachalo, fin;

var

     b,dX,Xopt,Xold  : massiv;

     a               : matrix;

     i,j,iteration,m : integer;

     xps,h,r,eps,sb  : real;

     SummaSqr,MinSqrF: real;

     xmin,ssF        : real;

PROCEDURE BoundaryConditions;

var   i            : integer;

BEGIN

 (*1*)  Randomize;

  for i:=1 to n do

   begin

    if (x[i]<intx[i,1]) then x[i]:=intx[i,1]+(3+Random(10))*e;

    if (x[i]>intx[i,2]) then x[i]:=intx[i,2]-(3+Random(10))*e;

   end;

(*2*)

END;

procedure MinSqrFunc;

var       i: integer;

begin

   SummaSqr:=0;

   for i:=1 to n do SummaSqr:=SummaSqr+f[i]*f[i];

   if SummaSqr<MinSqrF then

     begin

       MinSqrF:=SummaSqr;

       for i:=1 to n do  Xopt[i]:=x[i];

     end;

end;

Procedure FuncGoldMin(var FGold, xGold:real; NF:integer);

var  i: integer;

begin

  case NF of

    1: begin

         for i:=1 to n do  x[i]:=Xold[i]+dx[i]*xGold;

         BoundaryConditions;

         systemUraw; MinSqrFunc;

         FGold:=SummaSqr;

       end;

   end;

end;

Procedure MinimumGold (A, B, E:real; var xGold,FGold:real; NF:integer);

 

var interval,t1,t2,xGold0,xGold1,xGold2,xGold3,F1,F2     :real;

begin

   t1:=0.3819660113; t2:=1 - t1;

   xGold0:=A; xGold1:=A + t1*(B - A);

   xGold2:=A + t2*(B - A); xGold3:=B;

   FuncGoldMin(F1, xGold1, NF);

   FuncGoldMin(F2, xGold2, NF);

   interval:=xGold3 - xGold1;

   While (interval>E*(B-A)) do begin

      If F2 < F1 then begin

         interval:=xGold3 - xGold1; xGold0:=xGold1;

         xGold1:=xGold2; xGold2:=xGold0 + t2*interval; F1:=F2;

         FuncGoldMin(F2, xGold2, NF);

         end {end then}

         else begin

         interval:=xGold2 - xGold0; xGold3:=xGold2;

         xGold2:=xGold1; xGold1:=xGold0 + t1 * interval; F2:=F1;

         FuncGoldMin(F1, xGold1, NF);

      end; {end if}

   end; {end while}

   xGold:=xGold1; FGold:=F1;

END;

procedure rmatr(n:integer; var a:matrix);

var x      :array [1..20] of real;

     s      :array [1..21] of real;

     K1     :integer;

procedure revers;

label L4,L5,L8;

var i,j,index,K2: integer;

begin

 if a[K1,K1]<>0 then goto L5;

for i:=K1 to n do

  begin

   index:=i; if a[i,K1]<>0 then begin K2:=i; goto L4; end { end if }

  end;

if index=n then begin

    writeln('ранг матрицы = 0');

    Halt;

 end;

L4:

 for i:=1 to n do begin

  s[n+1]:=a[K1,i];

  a[K1,i]:=a[K2,i];

  a[K2,i]:=s[n+1];

 end;(* end for *);

L5:s[n+1]:=a[K1,K1];

 for i:=1 to n do begin;

  s[i]:=a[i,K1];

  x[i]:=a[K1,i];

 end;{ end for }

 for i:=1 to n do

  for j:=1 to n do

   begin

    if i=K1 then

      if j=K1 then

        begin a[i,j]:=1/s[n+1]; goto L8; end

      else

        begin a[i,j]:=-a[i,j]/s[n+1]; goto L8;

      end

    else

      if j=K1 then

        begin a[i,j]:=a[i,j]/s[n+1]; goto L8; end

      else

        a[i,j]:=a[i,j]-s[i]*x[j]/s[n+1];

L8:

  end; { end for i,j }

end;(* end revers *)

begin

     K1:=1;

     while K1<=n do begin

       revers;

       K1:=K1+1;

     end { end while }

end; { end rmatr }

  begin

    iteration:=0; m:= 50; MinSqrF:=1.0E+37; eps:=e*20;

nachalo:

    systemUraw; MinSqrFunc;

    if (iteration>3) and (SummaSqr>sb) then

      begin

        MinimumGold(0.1, 1.618, 0.1, xmin, ssF, 1);

      end;

    for i:=1 to n do b[i]:= -f[i]; sb:=SummaSqr;

    for j:=1 to n do

     begin

      xps:=x[j]; h:=eps*abs(xps);

      x[j]:=xps+h;

      systemUraw;

      for i:=1 to n do a[i,j]:=(f[i]+b[i])/h;

      x[j]:=xps;

     end; { end for j }

    iteration:= iteration+1;

    case iteration of

       7,13,17,23,

       27,31,37,47    : begin

        for i:=1 to n do  x[i]:=Xopt[i];

        eps:=eps*0.6180339887; goto nachalo; end;

    end;

    if iteration = m+1 then begin

      writeln(‘Сделано максимальное число иттераций', iteration-1);

      goto fin; end;

        rmatr(n,a);

    for i:=1 to n do

     begin

      dx[i]:=0;

      for j:=1 to n do

         dx[i]:=dx[i]+a[i,j]*b[j];

      Xold[i]:=x[i];

      x[i]:=x[i]+dx[i];

     end;

    r:=0;

    for i:=1 to n do

        if abs(dx[i]/x[i])>e then r:=r+1;

    if r=0  then exit;

    BoundaryConditions;

    goto nachalo;

fin: for i:=1 to n do  x[i]:=Xopt[i];

end;

 

begin

  Kp1:=32.11; Kp2:=124.78; Kp3:=137.70; p:=50;

  n:=3; e:=0.000001;

  X2max:=0;

  intx[1,1]:=0.0;intx[1,2]:=1.0;

  intx[2,1]:=0.0;intx[2,2]:=1.0;

  intx[3,1]:=0.0;intx[3,2]:=1.0;

  x[1]:=0.85;

  x[2]:=0.005;

  x[3]:=0.01;

  A:=1.5;

  while A<=3 do

  begin

  A:=A+0.1;

 

  noLineUraw(n,e,intX,f,x);

  writeln(A:10:5, x[1]:10:5, x[2]:10:5, x[3]:10:5);

  if X2max<=x[2] then begin

    Aopt:=a; X2max:=x[2]; X1opt:=x[1];X3opt:=x[3];

    end;

  end;

  writeln(‘Максимальный выход диметиламина’,X2max:10:5);

  writeln('Мольная доля аммиака в равновесной смеси',(1-x[1]-x[2]-x[3])/(1+A):10:5);

  writeln(‘Мольная доля метанола в равновесной смеси’,(A-x[1]-2*x[2]-3*x[3])/(1+A):10:5);

  writeln('Мольная доля метиламина в равновесной смеси',x[1]/(1+A):10:5);

  writeln('Мольная доля диметиламина в равновесной смеси',x[2]/(1+A):10:5);

  writeln('Мольная доля триметиламина в равновесной смеси',x[3]/(1+A):10:5);

  writeln(‘Мольная доля воды в равновесной смеси’,(x[1]+2*x[2]+3*x[3])/(1+A):10:5);

end.

 

 

 

 

 

 

Результаты расчета:

Максимальный выход диметиламина = 0.21386

Мольная доля аммиака в равновесной смеси = 0.00204

Мольная доля метанола в равновесной смеси = 0.04096

Мольная доля метиламина в равновесной смеси = 0.00378

Мольная доля диметиламина в равновесной смеси = 0.02727

Мольная доля триметиламина в равновесной смеси = 0.21691

Мольная доля воды в равновесной смеси = 0.70904

Таблица 3 - Зависимость выхода продуктов от соотношения метилового спирта к аммиаку (α ).

α

Х1

Х2

Х3

1,6

0,12896

0,20198

0,34908

1,7

0,12403

0,20668

0,38007

1,8

0,11846

0,21028

0,41191

1,9

0,11229

0,21271

0,44463

2

0,10553

0,21386

0,47827

2,1

0,09817

0,2136

0,51288

2,2

0,09025

0,2118

0,54851

2,3

0,08176

0,20823

0,58526

2,4

0,07273

0,20266

0,62317

2,5

0,0632

0,19476

0,66234

2,6

0,05325

0,18414

0,70278

2,7

0,04302

0,17035

0,74441

2,8

0,03283

0,153

0,78679

2,9

0,02325

0,13214

0,82872

3

0,01513

0,10908

0,86763


Max = 0,21386 при α = 2

 

График зависимости выхода диметиламина от количества метилового спирта.

 

Вывод:

В ходе данной работы был проделан расчет равновесного состава сложной реакции аммонолиза метанола и найдено мольное соотношение метанола к аммиаку = 2, при котором достигается максимальный выход диметиламина = 0,21386.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы

  1. В.В. Бочкарев, А.А. Троян – Оптимизация химико-технологических процессов: методические указания по выполнению индивидуальных домашних заданий по курсу «Оптимизация химико-технологических процессов» для магистрантов, обучающихся по направлению 240100 «Химическая технология». Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2012. – 100 с.

 

 

 


Информация о работе Лабораторная работа по курсу «Оптимизация технологических процессов»