ПОИСК Статьи Рисунки Таблицы Вывод системы дифференциальных уравнений из кинетической схемы реакции из "Компьютеры Применение в химии" Если вторая реакция — распад про 1ежуточного соединения, состоящего из двух молекул А, протекает быстро, то легко показать, что суммарная реакция подчиняется кинетическому уравнению третьего порядка по концентрации вещества А. [c.307] Интегрируя в аналитическом виде кинетические уравнения, описывающие тримолекулярную реакцию, также можно показать, что оба подхода кинетически неразличимы. Между прочим, для интегрирования кинетического уравнения, соответствующего стадийному механизму тримолекулярной реакции, можно использовать программу СИСТ-РКН . [c.308] Ниже приведена распечатка программы ЭС-КИН , использующая рассмотренный подход. [c.308] Программа ЭС-КИН предназначена для обработки кинетических схем, включающих не более 40 элементарных стадий, в которых участвует не более 20 веществ. Если необходимо обрабатывать более сложные кинетические схемы, то следует увеличить размеры массивов, описанных в строке 200. [c.311] Участок программы от строки 1000 до строки 1999 отводится для записи механизма реакции. Кинетическая схема вводится с помощью оператора DATA. Каждая элементарная стадия заключена в кавычки. Правая часть уравнения отделена от левой стрелкой. Если в одной элементарной стадии участвует несколько одинаковых исходных веществ или образуется несколько одинаковых продуктов реакции, то их надо записывать отдельно друг от друга, а не с помощью привычных стехиометрических коэффициентов. Разделительным знаком между веществами является знак -f- , поэтому знак -1- не может входить в формулы веществ, даже если в реакциях участвуют катионы. Каждое вещество должно иметь только одно определенное название например, нельзя внутри одной кинетической схемы использовать в качестве названий и СН4, и METHAN, иначе компьютер будет считать, что это названия разных веществ. Пробелы при записи элементарных стадий не играют никакой роли, поэтому, чтобы кинетическая схема была более наглядной, ими можно пользоваться без всяких ограничений. Запись схемы реакции должна заканчиваться оператором с ключевым словом КОНЕЦ (строка 1999). Эти довольно строгие правила позволяют сделать программу простой и короткой. Вообще говоря, чем меньше программа накладывает ограничений на форму записи входных данных, тем больще объем программы и больще трудностей при ее написании. [c.311] В строках 2000—2100 происходит ввод данных. Число элементарных стадий присваивается переменной N. Для запоминания уравнений реакций использован текстовой массив ER ( ). Считывание данных заканчивается, когда оператор условного перехода обнаружит слово КОНЕЦ. Поскольку слово КОНЕЦ не является элементарной стадией, N уменьшается на единицу. [c.311] После считывания каждого уравнения элементарной стадии вызывается подпрограмма 10000, которая делит это уравнение на правую и левую часть. В первой части этой подпрограммы со строки 10020 до 10100 из уравнения удаляются пробелы и оно выводится на экран. Для записи уравнения реакции без пробелов используется текстовая переменная Н , которая перед этим обнуляется. В строке 10030 с помощью нового оператора В = LEN (ER (N)) определяется число знаков в тексте, записанном в переменной ER (N), и это число присваивается переменной В. [c.312] В может быть текстовой переменной или текстовым выражением . LEN(B ) равно числу знаков в тексте, записанном в текстовой переменной В . [c.312] В строках 10040—10090 организован цикл по I с наибольшим значением параметра цикла, равным В. В этом цикле знак за знаком переписывается текст из переменной ER (N) в переменную Н , причем пробелы отбрасываются. 1-й знак значения текстовой переменной ER (N) можно определить с помощью оператора МГО (ER (N), I, 1). [c.312] А — текстовая переменная, из которой вырезается часть Р — позиция, с которой начинается эта часть текста L — длина этой части текста . [c.312] Во второй половине этой подпрограммы определяется число веществ в левой и правой части N-ro уравнения элементарной стадии, которое присваивается переменным L(N) и R(N) соответственно. Определяются также и названия веществ, которые присваиваются элементам двумерных массивов L (N, I) и R (N, I) соответственно. [c.313] В строках 10160—10180 последовательно просматриваются все знаки текста, присвоенного текстовой переменной Н , пока не встретится знак -1- или = (начало стрелки, отделяющей правую часть уравнения от левой). Если обнаружен знак -1- , то управление переходит к строке 10220 и часть текста, записанного в переменной Н , начиная с первого символа и до знака -(- , присваивается соответствующему элементу массива L (N, 1) как первое вещество левой части N-й элементарной стадии. [c.313] После того как отмечено положение знака -I- , управление возвращается строке 10160. Надо еще найти символ = от стрелки, которая означает конец левой части уравнения реакции. Если обнаружен символ = , то в строке 10250 часть текста, стоящего после знака -I- и перед знаком = , присваивается соответствующему элементу массива L (N, 2) или L (N, 1) в качестве названия вещества в зависимости от того, является ли это вещество первым или вторым исходным веществом в уравнении элементарной стадии. Здесь же определяется число исходных веществ в N-й элементарной стадии, которое присваивается элементу массива L(N). В строках 10280—10410 аналогичным образом проводится анализ правых частей элементарных стадий. Элементы массива R (N, 1), R (N, 2),. .. имеют значения названий веществ, входяищх в правую часть N-ro уравнения элементарной стадии, а значение переменной R(N) равно числу этих веществ. На этом заканчивается подпрограмма, которая устанавливает названия исходных и конечных веществ. В строке 10033 уравнения реакций вместе с их порядковыми номерами N выводятся на экран в том виде, в каком они записаны в операторах DATA. [c.313] Использование индексированной переменной (1) вместо названий веществ при выводе на экран системы дифференциальных уравнений делает выходные данные компактными и наглядными. Кроме того, записанную в таком виде систему дифференциальных уравнений можно без изменений вводить в программу для решения систем дифференциальных уравнений (см. гл. 9). [c.314] Если все выражения для скорости элементарных стадий выведены на экран, то основная программа вызывает подпрограмму 13000, которая составляет дифференциальные уравнения. Эта подпрограмма состоит из цикла по I, в котором поочередно рассматривается каждое из 8 веществ (строки 13040—13240). В него вложены два последовательных цикла по I (строки 13080—13120 и 13180—13220) для поиска всех исходных веществ (первый цикл) и продуктов (второй цикл). Если найдено исходное вещество, которое совпадает с 1-м веществом, то на экран выводится — К(1) (строка 13100) и соответственно для продукта -f-R(J) (строка 13200). После окончания этой подпрограммы заканчивается также и основная программа. В качестве примера рассмотрена кинетическая схема, которую мы проанализировали вручную. [c.315] Задание 179. Измените программу ЭС-КИН так, чтобы константы скорости и концентрации веществ фигурировали непосредственно в дифференциальных уравнениях. В отношении удобства обработки этой системы уравнений с помощью вычислительной техники такая форма записи неудачна, однако для химиков она привычна и наглядна. [c.315] Задание 181. Расширьте программу ЭС-КИН так, чтобы она проверяла, правильно ли расставлены стехиометрические коэффициенты в уравнениях реакции элементарных стадий. Для этого вместо названий вешеств надо пользоваться их брут-то-формулами. Во всех уравнениях реакций число атомов каждого элемента с обеих сторон от стрелки должно быть одинаково. [c.315] Вернуться к основной статье