книги / Моделирование физико- химических процессов нефтепереработки и нефтехимии
..pdfГлава V
Методы проведения расчетов и исследования
математических описаний
Выше показано, что математические описания химико-техноло гических процессов представляют собой системы алгебраических или дифференциальных уравнений. Здесь приведем описание не которых численных методов, позволяющих выполнять расчеты таких систем. Далее рассмотрим существенные для математиче ского моделирования методы исследования таких систем: опреде ление чувствительности решения к величинам параметров и, если число возможных решений больше одного, — определение устой чивого решения и на его основе — устойчивого режима работы химико-технологического процесса.
1- ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ СИСТЕМ АЛГЕБРАИЧЕСКИХ УРАВНЕНИИ
Укажем вначале, что решением системы алгебраических урав нений
/х (*1» ••• •» xk) —О
(V .4 )
f p ( xi i •••> x k) —О
является такой набор (наборы) чисел oslt ..., ak, который в случае замены ими х г, ..., хк обращает систему (V.1) в тождество.
Наиболее обстоятельно разработаны методы решения системы
(V.1) для случая, когда / х, ..., fp — линейные функции х |
1 &k* |
Для решения линейной системы |
|
al l xl -f ®12*2"Н •••Н"alkxk =>d\ |
(V.2) |
|
aplxl"t* арЗх2~Ь * •* Н“ apkxk— dp
когда р > к, обычно применяют описанный в главе I метод наи меньших квадратов, который позволяет свести ее к нормальной системе (при р = к). Если р = к и система (V.2) является опре деленной, т. е. имеет одно решение, его можно найти описанным в главе I методом, по которому х,- = Аг/А. Здесь А — определи
ли
тель, составленный из коэффициентов левой части системы (V.2)', a получается из А заменой г-того столбца на столбец d :
д= |
«и |
а12 •••aik |
di |
а12 • |
aki |
■ |
dk. |
• |
|
|
ak2 * ••akk |
aki • •<4ik |
Пример такого расчета дан в главе I. Укажем, что по извест ной теореме Крамера, система (V.2) является определенной, если А Ф 0. Другой метод точного решения системы линейных уравне ний (Гаусса) приведен ниже (стр. 201).
Для сложных систем (V.2) при больших к нахождение точ ного решения потребует выполнения большого числа расчетов; поэтому часто ищут не точное, а приближенное решение этой системы, используя различные итерационные методы. Как пра вило, программы для ЭВМ при использовании итерационных мето дов значительно компактнее и время вычислений гораздо меньше. Известен [1] ряд итерационных методов решения системы (V.2), однако каждый из них применим лишь в ограниченной области условий, позволяющих быстро свести итерационным процессом «плохое» решение к хорошему. Вне этой области сходимость решения будет медленной.
Проиллюстрируем часто используемый метод простой итера
ции, |
который целесообразно |
использовать [2], если I аи |> |
|
£> 2 |
1ац I при i Ф U т. е. если в матрице коэффициентов левой |
||
части |
Oji |
|
•alk |
|
a12 |
||
|
А = |
|
|
|
aki |
ak% • |
•Ш |
диагональные элементы (подчеркнуты) по модулю больше суммы модулей недиагональных элементов строки. Запишем систему (V.2) в матричной форме: А х = d- Решая ее относительно х , перейдем' к эквивалентной системе вида:
#=2?#-}“ф |
(V.3) |
Для перехода к этой системе г-тое уравнение системы (V.2) нужно решить относительно xt, так чтоx
|
o |
д 12 |
_ a X k ' |
r |
' |
|
|
V/ |
Д11 |
al \ |
|
al i |
|
|
|
(p=. |
||||
B = - |
|
|
|
• |
||
_ |
gfel |
gfe2- |
0 |
|
d k |
|
‘ |
a k k |
Ш |
^ |
a k k ' |
||
|
Выберем начальное приближение — вектор-столбец х 0:
(*01
#0= ' x0kd
142
Можно, например, принять ж0[- = 0 или x Qi = dt. Далее по уравнению (V.3) определим улучшенное решение
x i — В х о ~(~ ф
и т. д., так что в результате г итераций получим:
а>+1= Я®г+ф
Если точное решение се может отличаться от найденного на величину меньшую или равную е, то необходимое число итераций
п рд + и> r - In (i- p )
где р, q, w — максимальные из величин |ац!аи [, |ж01|, \di!aii\. Ряд других итерационных методов описан в монографии [1]. Отметим, что при небольших к итерационный процесс теряет
смысл.
Рассмотрим теперь возможные методы решения системы (V. 1) для случая, когда среди функций / есть нелинейные. При этом возможно несколько решений этой системы, причем определить их можно в общем случае только численными методами.
Пусть, например, решается одно уравнение с одним неизвест ным и изменение х допустимо в интервале от а до Ъ. Проверяем /(a ), f (а-\-Ы 2), f (Ь) и выбираем для дальнейшего поиска ту половину начального интервала, на концах которой / (я) имеет противоположные знаки. Повторяя такой поиск, сузим интервал неопределенности до сколь угодно малой величины е. Число ите раций при этом
|
In [(Ь—а)/е] |
г = |
In 2 |
Укажем, что решение нелинейного уравнения с одним неизвест ным / (ж) — 0 можно рассматривать как задачу поиска минимума функции F (я), для которой / (я) = dF (x)ldx. Такая задача ре шается поисковыми методами (половинного деления, золотого сечения, стохастической аппроксимации), рассмотренными в главе VI.
Понятно, что решение системы (V.1) значительно сложнее решения одного нелинейного уравнения, но и для нее можно пред ложить итерационную процедуру. Прибавив я, к правой и левой части каждого i-того уравнения системы (V.1), перейдем к системе вида (р = к):
xl = xi - f /i (*1» |
.> Ч) = Ф1 fa» |
Sfc) |
• • |
|
( V .4 ) |
xk= x k-\-fk (хи • |
•» xk)= Фа(ai! |
••»i xk) |
143
Система (V.4) похожа на аналогичную (V .3), использованную
вметоде простой итерации для линейных уравнений. Применим
ив этом случае ту же итерационную процедуру. Пусть после г
итераций найдены хи , .... хкг. Тогда |
для г + 1 итерации А |
|
х1, r+x= (Pi {Х1Г |
. ■• x kr) |
|
хк, г+1 — Ф/г(Х1г |
•• |
хкг) |
Для нелинейных функций фх, ..., срк уже не приходится выби рать, быстро или медленно сходится итерационный процесс. Важно, чтобы он вообще сходился. Показано [2], что сходимость будет выполняться, если начальное приближение достаточно близко к точному решению (а х ... ак) и если имеет место хотя бы одна из систем неравенств
d<p/ |
|+~ |
•+ |
йф/1 |
|
(*1*®®!» |
•» |
3— 1» •• |
ft) |
|
dxi |
dxx \l<* |
||||||||
|
|
|
|
|
|||||
или |
|
|
|
|
|
|
|
|
|
d<Pi |
H— •+ |
dq>k |
<i |
|
•» xke=‘&ki |
3—1» |
ч ft) |
||
dxj |
dxj |
|
Поскольку, однако, осх ... ak заранее неизвестны, то лишь реализация итерационного процесса может^выявить его эффектив ность.
Другой возможный метод нахождения решения нелинейной систем ы '(V .1) заключается в переходе к поиску экстремума функ
ции многих переменных. Если ввести такую функцию F , что
&F |
др |
-faT = c o n s t . fx (z x . . Xk), . |
as C o n st •fk ( z x , . . Xk) |
T O F = F {x± ... Xk), и ее минимум достигается при таком наборе
величин otj, ..., <хк, заменяющих x v ... xk, который одновременно удовлетворяет решению системы (V.1). Методы поиска экстре мума функции многих переменных рассмотрены в главе VI.
Отметим, что хотя методы решения систем нелинейных алге браических уравнений, описывающих стационарные процессы в аппаратах идеального перемешивания, не вызывают принци пиальных сложностей, такое решение достаточно трудоемко. Поэтому иногда может оказаться целесообразным переход к реше нию нестационарной модели, описываемой дифференциальными уравнениями. Например, вместо решения алгебраической системы (см. табл. П-3)
Д (SvCi) = —w (С,) V |
i = l, , ..» Р | |
A(GcT) = -qnvW (Ci)V + lcTF (Тва~ Т ) )
144
можно перейти к решению системы дифференциальных уравнений:
dCi
~ а г = - Д (SvCi) ~ w (Ci) v i = i, . . р- |
Ci (0) = Ci о |
dT |
T (О) = Т 0 |
— = _ Д (G c T ) - q npw (Ci) V + k TF (TB„—.T) |
причем при достаточно больших т получим решение стационарной задачи.
2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
Рассмотрим вначале метод интегрирования одного дифферен циального уравнения
dy/dx = f ( x , у) у (х о) = i/о
с использованием разложения в ряд Тейлора. Задав небольшое
изменение |
х —Ах — h, |
так |
что |
хк±х—хк = |
хк—хк_х = ... |
= h, |
|
запишем |
ряд Тейлора |
в окрестности точки к (х = х 0 + |
kh): |
||||
|
Ук*1 = Ук+ byk + |
. |
|
hз |
|
|
|
|
~2 \ ^ |
+ |
+ |
|
|
||
где Ук+1 = |
У (Хк+1)> Ук — dy (xk)/dx |
и |
т. д.; |
0к — пренебрежимо |
|||
малые члены высших порядков. |
|
|
|
|
Производные порядка выше первого можно вычислить по
первой производной |
у' — f (х , |
у). |
Например |
„ |
df (хк, Ук) . |
, , |
,3 / (хк, ук) |
Ук = |
----- дх-------+/ |
|
Ук)---------------- |
дУ
пли
V l - f x l k + fkf’y.k
Однако такое определение высших производных и нахождение по ним итеративным методом у при к =*= 1, 2 ,... неудобно, так как численное дифференцирование связано со значительными труд ностями. Поэтому ряд Тейлора используют лишь для оценки точности других методов, в которых ограничиваются вычислением производной только первого порядка, т. е. / (ж, у).
При численном решении систем дифференциальных уравнений наиболее часто используют методы Эйлера и Рунге — Кутта. С другими методами можно ознакомиться в книгах по вычисли тельной математике [2, 3]. Оба эти метода удобны при програм мировании решения на ЭВМ для тех случаев, когда все граничные (начальные) условия заданы при одном и том же значении аргу мента. Охарактеризуем кратко эти методы.
По методу Эйлера, производная в дифференциальном уравне нии заменяется отношением конечных разностей. Пусть нужно решить уравнение
dy/dx —f (х, у) У Ш = Уо
145
Перейдем к уравнению, где dx заменяется конечным постоян ным шагом к. Тогда на шаге к
Ук+1~Ук |
j / |
ч |
------Л------= /(«*. Ук) |
||
ИЛИ |
|
|
У к * х = У к + М (Xk, |
У к) |
причем yk = у (®0 + кк).
По этому соотношению, начиная от у 0 и придавая к последо вательно значения 0, 1, 2, ..., можно найти у для любой заданной величины х.
Приведенный метод может быть без каких-либо изменений использован и для систем дифференциальных уравнений; в этом случае в приведенных соотношениях величины у и / следует рас сматривать как векторы или использовать их для любого из у(, образующих систему:
Vi, fc+1 ~У1, k~\~hifi ixk> |
yiki , |
• •» |
Viki |
•) |
|
Оценим ошибку расчета по методу |
Эйлера. Из |
разложения |
|||
в ряд Тейлора ясно, что замена |
<р (х |
+ |
к) — q> (х) |
на ф'к при |
малых к дает ошибку, пропорциональную к2, т. е. равна const•к2. Если интервал х 0—х разбит на п частей и к — (х —х 0)/п, то такая ошибка совершается п раз, и суммарная ошибка будет пропорцио нальна ( а я 0)2/гс. Таким образом, увеличение точности в п раз требует увеличения в то же число раз точек деления. Именно этот недостаток ограничивает применение метода Эйлера. Если, од нако, зависимость у (х) близка к линейной (что довольно часто имеет место в прикладных расчетах), то коэффициент пропорцио нальности const мал, и метод Эйлера даже при небольших п даст точное решение.
Метод Рунге,— Кутта позволяет получить более высокую точ
ность, чем метод |
Эйлера при меньших п. В этом методе итера |
ционная формула |
имеет вид: |
где |
Ук*1 = У к -\ -Ь а к |
|
a*=/|j*fc-1—l " ’ Ук+ Н хЬ
т. е. производная определяется не в начальной, а в средней точке интервала (при х = xk -f- hi2)..
Для такого расчета найдем, пренебрегая-членами с к3, к* и т. д.,
что
№
t ^ . У k , _ yk*1—У к = У ф - \ - ^ 2Т ^ 8
т. е. суммарная (а не на одном шаге) ошибка пропорциональна А2 или обратно пропорциональна /г2. Таким образом, если при расчете по методу Эйлера с увеличением числа шагов в п раз ошибка уменьшается также в п раз, то по методу Рунге — Кутта она уменьшается в п 2 раз.
146
Точность расчета можно увеличить, если перейти к интерполя ционной формуле
1
Ук*1 — Ук +*б" [/ fob У*Ч-2об* + 2р*-|-Y*)1А
где ак — то же, что и выше; рА = / (xk |
hl2, ук + cckhl2); yk = |
= f (*к + hy yk + pfefc). |
|
Интерполяционная формула дает суммарную ошибку, пропор циональную № или обратно пропорциональную п4 [3]. Как и прежде, соотношения для систем дифференциальных уравнений останутся теми же; в интерполяционных формулах у и / можно рассматривать как векторы или записывать их для каждого из уп образующих систему:
Vi, к+1 —Уik~h hi&ik |
Г |
h |
h |
а ik = fe [ f k |
|
Vik+ h fob Ук) - f • |
|
|
hli |
"I |
|
|
Угк "i“f 2 iJ'k’ Ук) 2 |
J |
Подчеркнем, |
что |
метод Рунге — Кутта эффективнее метода |
|
Эйлера только |
для |
«искривленных» |
функций. |
В расчетной практике необходимая точность достигается про ведением расчета при h t и h z = (1/2) h v Если результаты расчетов
близки, в дальнейшем пользуются шагом |
если результаты |
различны, вновь уменьшают шаг. |
|
Поскольку при описании процессов дифференциальными урав нениями второго и более высоких порядков * граничные условия могут быть заданы в разных точках (так называемая краевая задача), численные методы для этих случаев должны быть моди фицированы. Например, химический процесс в зерне пористого катализатора радиусом R , описываемый уравнением D (diCldxi) =
— f (С), обычно характеризуют краевыми условиями для концен
трации у внешней поверхности: С (R)X^R = |
С 0 и в центре |
зерна: |
(idC/dx)x=0 = 0. Поскольку одно уравнение |
/с-го порядка |
можно |
заменить эквивалентной системой к уравнений первого порядка [например, приведенное уравнение второго порядка можно заме
нить системой dCtdx = у, |
D dy/dx = |
/ (С)], рассмотрим систему |
dt/i |
, . |
. |
— /1 Vе» Ul' |
• •» Ук) |
|
. . . |
|
(V.5) |
dyk |
fk fo </H . |
Ук) |
~fa~ = |
* Напомним, что порядком дифференциального уравнения называется максимальный порядок производной; для системы дифференциальных урав нений он соответствует числу уравнений первого порядка, содержащих про изводные различных функций. Число граничных (начальных) условий должно быть равно порядку.
147
где х меняется от |
а до |
Ъ и краевые условия имеют вид: |
|
Ф< IaiJ/i (а)Н“* * * |
(а)> |
Pi9i (Ь)+ •••“ЬРйУй (Ь)] = 0 |
1 = 1, . . к |
|
|
|
(УЛ |
Будем считать, что эта система имеет решение, притом един ственное. Наиболее часто такое решение находят численными методами, которые сводят краевую задачу к задаче с граничными условиями на одном конце (задача Коши). Если, например, к—р граничных условий заданы при х = а, а р условий — при х = b (фиксированные условия), то, выбрав р произвольных условий при х = а, будем решать задачу с к условиями при х = а (при этом р условий при х = Ъ не используются). Произвольные условия при х = а меняют таким образом, чтобы рассчитываемые У (b) удовлетворяли отброшенным фиксированным условиям.
Созданы и более эффективные, чем такой «пристрелочный», методы. В частности, широко используется метод конечных раз ностей. Проиллюстрируем его на примере решения уравнения
второго порядка |
|
у"+р (х) у'+ g (х) y= f (х) |
i = 1, . . ., к |
сдвухточечными краевыми условиями у (а) = а , у (Ь) = р.
Заменим производные у " и уг конечными разностями для участка
h = |
(Ъ— а)1п. Для точек / —1, / |
и / |
+ |
1, отстоящих на расстоя |
||||||||
нии |
h , |
имеем: |
|
|
|
|
|
|
|
|
||
|
|
|
Уh i — 2i// - f |
yj-i |
|
yj+1— |
уh i |
, |
, ч |
4 |
||
|
|
---------P -----------ЬP (*/)------2h-------+ £ |
(*) |
(*/) |
||||||||
ИЛИ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2— hpj) y j- i— 2 {2 — h?gj) y j + ( 2 i-h p i) yj+1 = |
2 №fj |
||||||||
|
Обозначив |
величины |
в скобках соответственно через а;-, Ър |
|||||||||
Cj, |
a 2h2fj |
— через |
д}, |
имеем: |
|
|
|
|
|
|||
|
|
|
|
|
ajVj-i —2biVi+ ЧУh i = 9/ |
|
(V.7) |
|||||
причем |
у0 = |
ос, уп — р. |
|
|
|
|
|
|
|
|||
|
Если обозначить |
|
|
|
|
|
|
|
|
|||
|
|
У1 |
' |
|
И |
» |
С2 |
0 . |
. 0 |
|
|
\ q i — а |
|
|
|
- Ь % |
с3 • |
. 0 |
|
92 |
|||||
|
|
|
|
|
1 |
ал |
|
|||||
|
|
Уп-1, |
л 1 - |
|
|
|
|
|
|
? rt-2 |
||
|
|
|
1 |
0 |
0 |
0 . - *brl _ i , |
|
|
||||
|
|
|
|
|
|
|
||||||
ТО |
/ |
|
|
|
|
|
А у = д |
|
|
|
(V.8) |
|
|
|
|
|
|
|
|
|
|
|
и система уравнений (V.5), (V.6) — краевая задача — заменяется
алгебраической линейной |
системой (V .8), |
в которой |
содержится |
|
п —1 неизвестных уj в точках 1, 2, |
..., п— 1 и столько же уравне |
|||
ний. Хотя систему (V-8) |
можно |
решить |
методами, |
описанными |
148
выше (етр. 143), для ее решения созданы специальные методы, например метод прогонки. В этом методе уравнение типа (V.8) преобразуется в уравнение
yj = Mjyj+i+ Nj
где, как можно убедиться (подробнее см. [3]), Mj и Nj равны:
_Ч_____ |
ai-xNj-i-qi |
Mi= ~bj a i- iM J-1 |
bi-ai-yMj-x |
причем М 0 = О и iV0 = а .
Теперь легко осуществить итерационную программу вычисле ний Mj, Nj, а затем по ним и у/ в точках 1, 2, ..., п—1. Создан ряд вариантов сочетания методов конечных разностей и прогонки, когда краевые условия заданы не только в виде чисел, но и в виде функций.
3. МЕТОДЫ ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ
Нестационарные процессы в проточных аппаратах с ограничен ным перемешиванием или без него описываются системами уравне ний в частных производных. Эти уравнения содержат первую производную по времени и различные производные по простран ственным координатам. В общем случае их можно записать в виде:
dyk |
Ук, yk, |
y”k) + f k ( y u |
• • •» Ур) к = 1, . . р |
;(У.9) |
|
~fa---- F k { x , |
|||||
Граничные и начальные |
условия |
имеют вид: |
|
||
Ук (0, |
х) = у0к (я) |
для'любых X от (£до I |
|
||
|
|
У к {ч , |
0) = |
уik (т) |
|
Ук(*, |
i) = г/eft (^) |
Для любых т от (Гдо t* |
|
Возможно и задание более сложных граничных условий, например, вида
Фх |Ук, у к |ж=0 = 0 ф2 |ук,у'к = 0 для любых т
Уравнения типа (V.9) относят к параболическим и, как и лю бые уравнения в частных производных, решают методом сеток. По этому методу всю область изменения х и х делят сеткой (рис. V-1). В узлах сетки рассматриваются функции дискретного аргумента (сеточные функции); на сетке производные заменяют отношением конечных разностей. Точность метода зависит от выбора сетки и способа аппроксимации производных. Координаты узла сетки в точке if, очевидно, следующие:
т= т0-|-7* |
x= XQ-{-ih |
где t и h — шаги сетки по т |
и х. |
149
Функцию в точке ij обозначим у\. Достаточно ясно, что для
расчета первой производной dyidx в точке ij можно использовать две точки линии сетки при неизменном ту:
( дУ \ |
_ ( |
У1— уi-i |
^ |
( д у \ |
— ( lb lZ Z lL \ |
/т/ |
|
\ дх /т/ |
\ |
А |
/т/ |
\ дх /т/ |
\ |
А |
( ду\ |
_ ( |
Vi+x — Vl-1 \ |
|
V дх J х/ |
V |
2Л |
/т/ |
Рис. V-l. Сетка для численного интегрирования функции двух пе ременных: т и х.
|
(xj>b-)) |
(fyiJj-ii |
|
|
||
Для |
вычисления |
второй |
производной |
нужно рассчитать у |
||
в трех |
точках. Так |
|
|
|
|
|
|
/ д2У \ |
= ( |
y u i — t y i + y i - 1 \ |
_ |
||
|
\ |
; т/ |
^ |
k2 |
j xj |
- |
|
1 / |
А2 |
|
А2 |
|
\ |
= |
а2" ^ |
|
|
Щ + -2Т |
------- } т/ = (^1)т/ |
При расчете суммы различных производных нужно использо вать несколько точек сетки, находящихся на разных линиях. Например, для расчета вблизи точки ij величины |ду/дх—д2у1дх21;/ можно использовать у в четырех близлежащих точках сетки: (£—1» j) (*> j)i (2 + 1> j) и (г, / + 1) — так называемый четырех точечный шаблон:
ду |
д*у |
_ |
у[+х~ у[ |
У т ~ 2И + И - 1 |
|
дх |
дх% |
|
t |
~ |
р |
Производные, входящие в уравнение (V .9), рекомендуется вычислять по следующим разностным уравнениям четырехточеч ного шаблона:
(ду_\ _ |
y ^ - y j |
(ду_\ _ |
v U - y j - i |
\ d x j t j |
t |
V дх J i j |
2А |
|
( д * у \ |
_ у\+1 - М + у[ - 1 |
|
|
\dx2jij |
А2 |
|
150