Uploaded by Borrowed Time

Решение МО методом Ньютона-Рафсона

advertisement
МАТЕМАТИЧЕСКОЕ ОПИСАНИЕ ХТП, ПРОТЕКАЮЩЕГО В
ПОТОКЕ ИДЕАЛЬНОГО СМЕШЕНИЯ
Цель работы: Составить математическое описание ХТП,
протекающего в потоке идеального смешения, и решить его методом
Ньютона-Рафсона.
Краткая теоретическая часть. В общем случае математическое
описание химико-технологического процесса (ХТП), протекающего в
потоке идеального смешения (ИС), представляет собой систему
нелинейных алгебраических уравнений.
Решение такого математического описания может выполняться
методами, используемыми для решения одного нелинейного
алгебраического уравнения. При этом выбранный метод
последовательно применяют к каждому из уравнений системы, с
контролем сходимости каждой переменной к корню с заданной
погрешностью.
Наиболее распространенным методом решения систем нелинейных
алгебраических уравнений является метод Ньютона-Рафсона. Он
…
реализуется следующим алоритмом:
)
)
1. Для всех факторов xi математического описания Fi(x1, x2,…, xn)=0
…
задают
начальные приближения xi0 (x10, x20,…,xn0).
2. На основе исходной системы уравнений формируют матрицу
Якоби
(Якобиан):
…
При этом частные производные находят
)
численно по формуле:
где Hi – малое приращение xi (Hi=ε(xi)),
ε
–
точность
поиска
решения
(погрешность).
3.Решают следующую систему линейных
уравнений относительно приращений Δxi:
алгебраических
Решение этой системы дает значения приращений Δxi (Δx1, Δx2, …, Δxn).
4. Вычисляют новые (уточненные) значения Δxi по формуле:
5. Для всех Δxi проверяют условие: если ‫׀‬Δxi‫>׀‬ε, то переходят к п. 2,
если нет, решение найдено.
(3.6)
Рассмотрим ХТП,
протекающий в потоке ИС, в изотермических
условиях по схеме:
)
Математическое описание процесса представляет собой систему
уравнений материального баланса, каждое из которых имеет вид:
Ci ,0 − Ci + t Wi = 0
Представим сложную реакцию в виде
отдельных стадий:
1. A ⎯⎯
⎯→ 2 B
1 A, k1
2.B ⎯⎯
⎯→ C + 2 D
2 B ,k2
3.C + 2 D ⎯⎯ ⎯
⎯→ B
1C ,1D , k 3
Скорости отдельный стадий
по основному постулату
химической кинетики:
1.W1 = k1C A
2.W2 = k 2C
2
B
3.W3 = k3CC C D
Скорость реакции по веществам
(скорости превращения веществ):
1.WA = −W1
2.WB = 2W1 − W2 + W3
3.WC = W2 − W3
4.WD = 2W2 − 2W3
1.W A = −W1
1.W1 = k1C A
2.W2 = k 2C
2.WB = 2W1 − W2 + W3
2
B
3.WC = W2 − W3
3.W3 = k3CC C D
4.WD = 2W2 − 2W3
Ci ,0 − Ci + t Wi = 0
C A, 0 − C A + t  W A = 0
C A,0 − C A + t  (−k1C A ) = 0
C B ,0 − C B + t  (2k1C A − k 2C + k3CC C D ) = 0
2
B
2
CС ,0 − CС + t  (k2CB
+ k3CC CD ) = 0
2
C D , 0 − C D + t  ( 2 k 2C B
− 2k3CC CD ) = 0
Для решения этой системы нелинейных алгебраических уравнений
воспользуемся методом Ньютона-Рафсона, алгоритм которого
рассмотрен выше.
Задание
1.Решить математическое описание для реакции изомеризации
пентана, протекающей в потоке ИС в изотермических условиях.
Сравнить полученные профили концентраций с профилями
концентраций для потока ИВ.
2. Решить математическое описание для ХТП, протекающего в потоке
ИС в изотермических условиях, по схеме:
.5)
если k1 = 2 мин-1; k2 = 3 л/моль/мин; k3 = 1 л/моль/мин;
СА0 = 2 моль/л; СВ0 = СС0 = СD0 = 0.
Рассчитать профили концентраций всех участников процесса с
шагом не более 0,1 мин, если максимальное время контакта равно 2
мин.
Результаты расчетов представить в виде таблиц и графиков
зависимости концентраций участников реакций от времени.
Оформление результатов расчета:
МОДЕЛЬ ИДЕАЛЬНОГО СМЕШЕНИЯ
Исходные данные:
Константы скорости
Число уравнений …
реакций:
Концентрации участников:
k1
YA = … YC
=…
k2
YB = … YD
=…
k
3
…
t, мин
0,00
0,10
0,20
…
2,00
Число реакций
YA
YB
YC
YD
Решение систем нелинейных алгебраических уравнений в
MATLAB
.
Решение нелинейных алгебраических уравнений и их систем в среде
программирования MATLAB осуществляется с помощью процедуры
fsolve, входящей в пакет Optimization Toolbox. Процедура fsolve
решает уравнения вида
F ( x) = 0
или системы n нелинейных алгебраических уравнений c n неизвестными
F1 ( x1 ,..., xn ) = 0
F2 ( x1 ,..., xn ) = 0
.........................
Fn −1 ( x1 ,..., xn ) = 0
Fn ( x1 ,..., xn ) = 0
Для решения системы нелинейных алгебраических уравнений в
MATLAB создают 2 функции: функцию SystNonlinear, которая
содержит систему нелинейных алгебраических уравнений, и
функцию SystNonlinear1, выполняющую решение этой системы
уравнений для заданного диапазона значений X (где X – время или
др. переменная). Результаты решения выводятся в командном окне
MATLAB.
В первой функции задают массивы значений констант скоростей
реакций и начальных концентраций реагентов. Например, для
реакции изомеризации пентана (см. лаб. работу 2), протекающей в
потоке ИС, текст функции SystNonlinear имеет вид:
function F=SystNonlinear(Y,X)
%Система нелинейных алгебраических уравнений
%Содержит три уравнения с тремя неизвестными Y(1),
Y(2), Y(3)
K=[5 2.5] %Массив констант скоростей реакций
Y0=[1 0 0] %Массив исходных значений концентраций
реагентов
F(1)=Y0(1)-Y(1)-X*K(1)*Y(1);
F(2)=Y0(2)-Y(2)+X*(K(1)*Y(1)-K(2)*Y(2));
F(3)=Y0(3)-Y(3)+X*K(2)*Y(2);
end
https://octave-online.net/?s=MLTPlOyeOIkAORaNALAwDniftkKyYpfvpwgwjHscVkNnzHVr
Ссылка на Octave-online net token 3jCe9hhuUGC
Текст функции SystNonlinear1 (Matlab) приведен ниже:
function F=SystNonlinear1(Y,X)
%Решение системы нелинейных алгебр. Уравнений
%для диапазона значений X от 0 до 1 с шагом 0.1
X=0:0.1:1
M=length(X); %Число значений X
for i=1:M
c=X(i)
options=optimset('Display','on');
%Опция
выходного
отображения
[Y]=fsolve(@SystNonlinear,[1
0
0],options,c)%вызов
оптимизатора
Z1(i)=Y(1)%Массив значений Y1 для диапазона значений X
Z2(i)=Y(2)%Массив значений Y2 для диапазона значений X
Z3(i)=Y(3)%Массив значений Y3 для диапазона значений X
end
end
function F=SystNonlinear2(Y,X)
%Решение системы нелинейных алгебр. Уравнений
%для диапазона значений X от 0 до 1 с шагом 0.1 и выводом
%таблицы значений Y
X=0:0.1:1
M=length(X); %Число значений X
for i=1:M
c=X(i)
options=optimset('Display','on'); %Опция выходного отображения
[Y]=fsolve(@SystNonlinear,[1 0 0],options,c)%вызов оптимизатора
for
j=1:3
Z(i,j)=Y(j)
end
end
end
В тексте функции SystNonlinear1 для решения системы нелинейных
алгебраических уравнений использованы следующие параметры вызова
процедуры fsolve:
options=optimset('Display','on'); %Опция выходного отображения
[Y] = fsolve(@SystNonlinear,Y0,options,variable) % вызов оптимизатора.
[Y] – означает вывод значений Y при заданном значении X;
fsolve – вызов программы для численного решения системы нелинейных
алгебраических уравнений; @SystNonlinear – ссылка на функцию, содержащую
систему уравнений, Y0 – массив исходных значений Y, необходимых для
решения системы уравнений; options – используемые опции, variable – значения
переменной X.
Для получения решения системы уравнений в командном окне набирают
команду
>> SystNonlinear1,
которая запускает решение системы алгебраических уравнений, описанных в
тексте функции SystNonlinear.
Решение системы выводится в конце командного окна в массивах
Z1, Z2 и Z3, которые содержат массивы значений концентраций
реагентов Y1, Y2 и Y3 (при значениях X=0; 0,1; 0,2;…; 1,0),
соответственно:
Для получения решения системы уравнений в командном окне
набирают команду
>> SystNonlinear1,
которая запускает решение системы алгебраических уравнений,
описанных в тексте функции SystNonlinear.
Решение системы выводится в конце командного окна в массивах
Z1, Z2 и Z3, которые содержат массивы значений концентраций
реагентов Y1, Y2 и Y3 (при значениях X=0; 0,1; 0,2;…; 1,0),
соответственно:
Z1 =
Columns 1 through 6
1.0000 0.6667 0.5000 0.4000 0.3333 0.2857
Columns 7 through 11
0.2500 0.2222 0.2000 0.1818 0.1667
Z2 =
Columns 1 through 6
0 0.2667 0.3333 0.3429 0.3333 0.3175
Columns 7 through 11
0.3000 0.2828 0.2667 0.2517 0.2381
Z3 =
Columns 1 through 6
0 0.0667 0.1667 0.2571 0.3333 0.3968
Columns 7 through 11
0.4500 0.4949 0.5333 0.5664 0.5952
Download