Теоретико-графовый анализ информативности кинетических параметров механизмов химических реакций тема диссертации и автореферата по ВАК РФ 02.00.04, кандидат наук Хамидуллина Зульфия Абударовна

  • Хамидуллина Зульфия Абударовна
  • кандидат науккандидат наук
  • 2020, ФГБОУ ВО «Башкирский государственный университет»
  • Специальность ВАК РФ02.00.04
  • Количество страниц 142
Хамидуллина Зульфия Абударовна. Теоретико-графовый анализ информативности кинетических параметров механизмов химических реакций: дис. кандидат наук: 02.00.04 - Физическая химия. ФГБОУ ВО «Башкирский государственный университет». 2020. 142 с.

Оглавление диссертации кандидат наук Хамидуллина Зульфия Абударовна

Введение

Глава 1. Литературный обзор

1.1. Сложные химические реакции

1.2. Кинетика каталитических реакций

1.3. Обратные задачи химической кинетики и информативность кинетических параметров

1.4. Методы параметрической идентификации механизмов химических реакций

Глава 2. Теоретико-графовый метод определения базиса нелинейных параметрических функций

2.1. Общая теория анализа информативности химических реакций

2.2. Метод декомпозиции при анализе информативности кинетических параметров

2.3. Теорема о связи структуры механизма химической реакции с матрицей связей

2.4. Теоретико-графовый алгоритм определения базиса нелинейных параметрических функций

2.5. Программное обеспечение определения базиса нелинейных параметрических функций

Глава 3. Анализ информативности химических реакций большой размерности

3.1. Декомпозиция химической реакции большой размерности при определении базиса нелинейных параметрических функций

3.2. Алгоритм определения базиса нелинейных параметрических функций реакций большой размерности

3.3. Программное обеспечение определения базиса нелинейных параметрических функций сложных химических реакций

Глава 4. Исследование линейных механизмов химических реакций

4.1. Кинетические модели химических реакций с линейными механизмами

4.2. Теоретико-графовый метод анализа информативности химических реакций с линейными механизмами

4.3. Программное обеспечение для определения уравнения скорости по базисным маршрутам и кинетического уравнения реакции

Выводы

Литература

Приложение I. Свидетельства о регистрации программных продуктов

Приложение II. Листинг программы

Введение

Рекомендованный список диссертаций по специальности «Физическая химия», 02.00.04 шифр ВАК

Введение диссертации (часть автореферата) на тему «Теоретико-графовый анализ информативности кинетических параметров механизмов химических реакций»

Актуальность работы.

Детальные механизмы химических и нефтехимических процессов состоят из сотен стадий и реагирующих веществ [1-5].

Исследование информативности детальных механизмов химических реакций сопровождается физико-химическими и математическими аспектами.

Недоинформативность кинетических измерений по промежуточным веществам приводит к неоднозначному определению параметров моделей сложных химических реакций, в этом и заключается физико-химическая проблема. Возникает задача идентификации модели, т.е. построения теоретических моделей на основе анализа детальных механизмов химических реакций [6-12].

Анализ информативности заключается в определении базиса нелинейных параметрических функций кинетических параметров, которые приводят к однозначному оцениванию при известном типе экспериментальных данных. Возникает задача определения точного аналитического вида комбинаций кинетических констант - параметрическая идентификация.

В работах С.И. Спивака и В.Г. Горского [6,7] определены типы неоднозначности решения обратной задачи химической кинетики, разработаны алгоритмы выделения независимых комбинаций кинетических параметров (констант скоростей стадий и погрешностей измерения концентраций наблюдаемых веществ).

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

вычислениях. Большая размерность систем дополнительно повышает трудоемкость идентификации моделей химической кинетики.

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

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

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

Применение аппарата теории графов [16-21] позволяет рассмотреть исследование параметрической идентифицируемости механизмов химических реакций по-новому. Возникает задача выделения геометрической структуры механизма сложной химической реакции, относительно которой решение обратной задачи инвариантно относительно множества экспериментальных данных.

В работах С.И. Спивака и А.С. Исмагиловой [22-25] изложены теоретико-графовые методы определения базиса маршрутов химической реакции. Декомпозиция механизмов сложных химических реакций дает возможность перейти к задачам существенно меньшей размерности.

Объектами исследования настоящей работы являются гетерогенно-каталитические реакции, которые представляют собой многие промышленные химические процессы.

Цель диссертационной работы - определение функциональных связей кинетических параметров по геометрической структуре механизма гетерогенно-каталитической реакции.

Задачи исследования:

- разработка теоретико-графового метода для определения числа и

вида независимых комбинаций кинетических параметров;

5

- создание программного обеспечения для определения базиса нелинейных параметрических функций кинетических параметров;

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

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

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

Научная новизна:

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

- для механизмов химических реакций большой размерности успешно применен метод декомпозиции, разработано программное обеспечение теоретико-графового метода определения базиса нелинейных параметрических функций кинетических параметров;

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

Практическая значимость результатов работы:

- предложенный автором метод и программное обеспечение для анализа параметрической идентифицируемости становятся основой моделирования кинетики сложных каталитических реакций, имеющих промышленное значение: окисления водорода на платиновом катализаторе,

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

6

протия на дейтерий, дегидрирования бутана, паровой конверсии метана на никелевом катализаторе.

- теоретико-графовый метод для определения базиса нелинейных параметрических функций кинетических параметров внедрен в учебную программу кафедры математического моделирования факультета математики и информационных технологий ФГБОУ ВО «Башкирский государственный университет».

Личный вклад автора в получение научных результатов, изложенных в опубликованных работах:

- формулировка и доказательство теоремы о связи структуры графа механизма химической реакции с базисом нелинейных параметрических функций;

- разработка теоретико-графового алгоритма определения базиса нелинейных параметрических функций кинетических параметров;

- создание программного обеспечения определения базиса нелинейных параметрических функций для сложных химических реакций, в том числе при помощи декомпозиции исследуемого механизма;

- программная реализация алгоритма вывода стационарного уравнения скорости по базисным маршрутам и кинетического уравнения образования продуктов реакции линейной относительно промежуточных веществ;

- обсуждение результатов и формулировка защищаемых положений и выводов.

Апробация работы. Основные результаты диссертационной работы обсуждались на следующих международных и всероссийских конференциях:

- XIII,XIVInternational scientific conference «Differential equations and their applications in mathematical modeling» (Saransk, 2017, 2019);

- VII, VIII и IX Международные научно-практические конференции «Математическое моделирование процессов и систем» (Стерлитамак, 2017, 2018 и 2019);

- Всероссийская конференция по квантовой и математической химии (Уфа, 2017);

- Международная научная молодежная школа-семинар «Математическое моделирование, численные методы и комплексы программ» им. Е.В. Воскресенского (Саранск, 2018);

- Международная научно-методическая конференции «Роль математики в становлении специалиста» (Уфа, 2018);

- IX Международная научная конференция «Химическая термодинамика и кинетика» (Тверь, 2019);

- Всероссийская научно-практическая конференции «Перспективы и возможности использования информационных технологий в науке, образовании и управлении» (Астрахань, 2019);

- 1st International Conference on Control Systems, Mathematical Modeling, Automation and Energy Efficiency, SUMMA2019 (Lipetsk, 2019).

Работа также обсуждалась на научных семинарах кафедры математического моделирования ФГБОУ ВО «Башкирский государственный университет», лаборатории математической химии ФГБУН «Институт нефтехимии и катализа» РАН.

Публикации. По теме диссертации опубликовано 6 научных статей, из них 4 - статьи в изданиях, рекомендованных ВАК и входящих в базы цитирования Web of Science и Scopus, 3 - статьи, опубликованные в других изданиях. Получено 3 свидетельства о государственной регистрации программы для ЭВМ. Опубликовано 11 работ в сборниках трудов Международных и Всероссийских научных конференций.

Структура и объем диссертации. Материалы диссертации изложены на 142 страницах машинописного текста, включающего 40 рисунков и 2 таблиц. Работа состоит из введения, четырех глав, заключения и списка использованных источников из 102 наименований.

Глава 1. Литературный обзор

Настоящая глава посвящена литературному обзору кинетики сложных химических реакций. Сформулированы основные определения и понятия сложных химических реакций. Многие промышленные химические процессы протекают с образованием промежуточных веществ, концентрации которых невозможно измерить в ходе реакции [1,26-28]. Таким образом, для таких реакций возникает недоинформативность кинетических измерений.

Неединственность решения обратной задачи объясняется инвариантностью кинетических характеристик наблюдаемых веществ относительно некоторых преобразований искомых параметров модели. В результате могут быть определены не сами индивидуальные параметры, а некоторые параметрические функции, среди которых количество независимых меньше или равно количества искомых параметров.

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

При определении таких зависимостей невозможно избежать расчетов с нелинейными выражениями, так как механизмы химических промышленных реакций обычно нелинейные.

Приведен обзор мирового опыта в исследовании информативности кинетических измерений, идентификации кинетических моделей.

1.1. Сложные химические реакции

Большинство химических реакций, протекающих в технологических процессах, являются сложными. Сложными называются реакции, в ходе которых одновременно протекают несколько простых реакций, при этом хотя бы одно из исходных веществ или продуктов простых реакций является участником любой другой реакции. Простые реакции - реакции, которые

протекают в одном направлении и включают один химический этап.

9

Сложная химическая реакция представляет собой совокупность реакций [29-31]. Реакция состоит из двух стадий - прямой и обратной. Стадию можно записать в виде [32]:

алA +... + asnAn р Ai + ... + psnAn (1.1)

ks 0

где /3st, asi - стехиометрические коэффициенты, т.е. неотрицательные числа, которые указывают, сколько молекул вещества принимают участие в стадии: s - номер стадии; Ai - исходные вещества и продукты реакции; n - общее количество реагирующих веществ; ks, ks0 - константы скорости s-ой стадии в прямом и обратном направлениях соответственно.

Уравнение Аррениуса [39] описывает зависимость константы скорости от температуры по следующему выражению:

т т -E/RT

k — k0 • e ,

где T- абсолютная температура, k0, E - коэффициенты, не зависящие от T.

На стехиометрические коэффициенты стадий часто накладываются естественные ограничения [32]:

n n

£a„< 3, 3.

i-i i—

Т. е. рассматриваются только моно-, би- и (редко) тримолекулярные реакции. Сами коэффициенты J3si, asi могут принимать значения 0, 1, 2 и (редко) 3.

Механизм сложной химической реакции - совокупность стадий (1.1). Механизм химической реакции представляет собой детальное описание процесса, природы и строения реагирующих веществ [33]. По выражению (1.1 ) следует, что вещество может участвовать в стадии как в качестве исходного вещества, так ив качестве продукта реакции.

В зависимости от механизма сложной химической реакции подразделяют на основные типы [30]: - обратимые реакции: А р В.

Обратимыми называют химические реакции, которые могут самопроизвольно протекать как в прямом, так и в обратном направлении.

- параллельные реакции: А^В, А^С.

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

- последовательные реакции: А^-Б^-С.

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

Каждой стадии соответствует ее скорость [1]:

ws = ws- w

где ws- - соответственно скорости прямой и обратной стадии, указывающие число обратных актов (или их «молей») за единицу времени в единице объема или для реакций на поверхности, на единичной площади.

Поиску эффективного протекания процессов посвящено множество исследований механизма сложных химических реакций [33].

В соответствии с законом действующих масс [35,36]:

n

w := К П aj', w- = k, 0 П a Л'

s s X X J s s A J

j=1 j=1

Система дифференциальных уравнений кинетической модели

химической реакции, имеет вид [29, 37]:

da т

d= rw С1-2)

a(0)= a0,

где а=(а1,... ,ап)т- вектор концентраций реагирующих веществ, w=(wl,... ,wm)T - вектор скоростей стадий, т - количество стадий, а°=(а1°,...,ап°)т - вектор начальных концентраций реагирующих веществ, Г - матрица стехиометрических коэффициентов, элементы которой определяются по выражению:

Уэг , 1 <1<П, 1<8<т.

Анализ информативности кинетических параметров заключается в анализе системы дифференциальных уравнений, соответствующей механизму химической реакции.

1.2. Кинетика каталитических реакций

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

Катализ называется гомогенным, если реагенты и катализатор находятся в одной фазе, и гетерогенным, если - в разных фазах.

Многие промышленные химические процессы являются гетерогенно-каталитическими [38]. Гомогенный катализ встречается реже, это обусловлено с трудностью отделения фаз в непрерывно действующих реакторах.

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

Кинетика гетерогенно-каталитических реакций подчиняется тем же законам, что и кинетика сложных химических реакций, специфические ее особенности состоят в том, что реакция происходит в мономолекулярном слое на поверхности катализатора.

Кинетика гетерогенно-каталитических реакций сложна, так как на основную стадию накладывается ряд физических явлений [39]. Гетерогенно-каталитическая реакция состоит из следующих стадий [40]:

1) подведение реагирующих веществ к внешней поверхности катализатора;

2) диффузия реагирующих веществ в порах катализатора к внутренней поверхности;

3) адсорбция реагирующих веществ на поверхности катализатора;

4) химическая реакция на поверхности катализатора;

5) десорбция продуктов гетерогенно-каталитической реакции с поверхности катализатора;

6) диффузия продуктов гетерогенно-каталитической реакции с внутренней поверхности катализатора;

7) диффузия продуктов реакции с внутренней поверхности катализатора;

Катализатор активирует реагирующее вещество, что ускоряет протекание химической реакции. На границе фаз реакция происходит с высокой скоростью при низких температурах. Гетерогенный катализ происходит на поверхности катализатора. Площадь поверхности катализатора можно увеличить, например, за счет дробления катализатора. Гетерогенные катализаторы бывают в виде высокодисперсных тел, порошков, пористых зерен, различных форм и размеров.

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

Гетерогенно-каталитический процесс - это система параллельно-последовательных стадий, имеющих разные физико-химические свойства.

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

адсорбционном слое, которые в свою очередь пропорциональны долям поверхности, покрытым соответствующими реагентами.

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

Отсутствие экспериментальных данных о части реагирующих веществ записывает вектор концентраций в виде:

а = (х, у),

х = (х , . . . , хщ ), у = (У1 Уп2 X (1.3)

п1 + п2 = п,

где х - вектор наблюдаемых веществ, у-вектор промежуточных веществ.

Кинетическая модель гетерогенно-каталитической реакции с учетом

(1.2), (1.3):

^ = Л (х, У, к),

& (1.4)

= /2 (х> У> к)5 х (0)= х0.

где х, у - вектора концентраций измеряемых и ненаблюдаемых веществ, к=(к1..^$) - вектор кинетических параметров, х(°)=х° - начальное условие, функции /1, / выписываются согласно закону действующих масс.

Фундамент кинетики гетерогенных каталитических реакций заложен в классических работах Лэнгмюра [41,42]. При описании кинетики гетерогенно-каталитических реакций часто применяется теория Ленгмюра адсорбированных слоев [43], обобщенная Темкиным [44] на случай сложных стационарных химических реакций. Предполагается, что по теории абсолютных скоростей реакций определяются константы стадий от температур [45].

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

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

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

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

Различают стационарный, квазистационарный режимы протекания химических реакций, при осуществлении которых расчеты упрощаются.

В открытой системе может установиться стационарный режим протекания реакции. В стационарном режиме считается, что скорости образования и расходования всех промежуточных веществ одинаковы: ёу/&=0, где у - вектор концентраций промежуточных веществ в момент времени!.

Стационарный режим протекания реакции возможен при достаточной активности промежуточных веществ, т.е. продолжительность их жизни должна быть более быстротечной, чем время протекания реакции. Цепные и гетерогенно-каталитические реакции в открытых системах часто протекают в стационарном режиме [30]. При этом кинетическая модель относительно промежуточных веществ представляет собой систему алгебраических

15

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

Данный метод называется методом стационарных концентраций Боденштейна-Семенова [30].

В закрытой системе концентрация исходных веществ уменьшаются со временем, поэтому концентрации промежуточных веществ не могут оставаться неизменными. В связи с этим, закрытых системах вводится понятие квазистационарного режима протекания реакции. Концентрации промежуточных веществ в каждый момент времени соответствуют условиям стационарности по отношению к изменяющимся концентрациям наблюдаемых веществ, т.е. отношение концентраций промежуточных и наблюдаемых веществ остается постоянным. Таким образом, условие ёу/ё1=0 применимо и для квазистационарного режима протекания реакции.

Требование к высокой активности промежуточных веществ, непродолжительности их жизни и низкой концентрации для квазистационарного режима более значимо, чем при стационарном протекании реакции [30].

Метод Боденштейна-Семенова допускает уменьшить число дифференциальных уравнений, представляющих химическую реакцию.

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

^ = /1 (х, У, к), (1.5)

0 = /2 (х, у, к), (1.6)

х'(0)= х 0. (1.7)

Условие квазистационарности позволяет выражать концентрацию промежуточных веществ через концентрации исходных веществ,

используется при построении кинетических моделей и для определения индивидуальных констант или их комбинаций для последующей оценки их значений по экспериментальным данным.

1.3. Обратные задачи химической кинетики и информативность

кинетических параметров

При анализа кинетических моделей ставятся и решаются прямая и обратная задачи [11,12,31,47]. Прямая задача — это расчет концентраций реагирующих веществ и скорости реакции на основе заданной математической модели. Обратная задача кинетики химического процесса — это определение механизма химического процесса, констант скоростей стадий на основе экспериментальных данных.

Решением обратной задачи является определение констант стадий из системы (1.5)-(1.7), при подстановке которых обратно в систему воспроизведутся измеренные концентрации. Другими словами, обратная задача — это восстановление математической модели на основе экспериментальных данных. Одним из методов решение обратной задачи является перебор серии прямых задач. При этом перед математической обработкой необходимо провести качественный анализ экспериментальных данных. В результате качественного анализа должно резко сократиться количество рассматриваемых гипотез. [32]

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

Исключение концентраций промежуточных веществ преобразует систему так, что между кинетическими параметрами будут существовать функциональные зависимости.

Для некоторого класса механизмов каталитических реакций, все константы стадий не могут быть оценены принципиально, исходя из особенностей класса. Примером являются Христиансеновские каталитические реакции [48].

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

Определение числа и вида функциональных зависимостей кинетических параметров - информативность кинетических параметров [4951].

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

1.4. Методы параметрической идентификации механизмов химических

реакций

Идентификация математической модели - определение параметров теоретических моделей в результате проведенного анализа детальных кинетических механизмов. Анализ информативности кинетических параметров занимает важное место при идентификации математических моделей. Выделение независимых комбинаций кинетических параметров необходимо для определения структуры теоретических моделей, также приводит к уменьшению общего количества параметров модели, что благоприятно для моделирования технологических процессов. Последующая оценка численных значений независимых комбинаций кинетических

параметров по доступному массиву экспериментальных данных увеличивает достоверность прогнозирующих построенных моделей.

В нашей стране и за рубежом многие исследователи занимаются идентификацией механизмов химических процессов. Большое количество методов идентификации кинетических параметров предложено на основе исследования детальных механизмов реакций [52-56]. При исследовании механизмов химических реакций часто используются методы анализа матрицы чувствительности концентраций веществ [52] и анализа скорости образования продуктов химической реакции [54]. Для параметрической идентификации модели и упрощения детальных механизмов в работах [55, 56] применены составные методы.

Приведенные методы решения задач идентификации механизмов заключаются в исключении стадий и/или участников реакции, которые слабо влияют на выходные характеристики математической модели.

Похожие диссертационные работы по специальности «Физическая химия», 02.00.04 шифр ВАК

Список литературы диссертационного исследования кандидат наук Хамидуллина Зульфия Абударовна, 2020 год

Литература

1. Слинько М.Г. Задачи кинетики гетерогенных каталитических реакций для моделирования химических реакторов // Кинетика и катализ. - 1981. -T. XXII. - Вып. 1. - С. 5-14.

2. Бесков В.С., Флокк В. Моделирование каталитических процессов и реакторов - Москва: Химия, 1991. - 256 с.

3. Слинько М.Г. Нам необходима новая стратегия развития промышленного катализа // Катализ в промышленности.

- 2007. - № 7. - С. 3-8.

4. Крылов О.В. Гетерогенный катализ - Москва: Академкнига, 2004. - 679 с.

5. Слинько М.Г. Основы и принципы математического моделирования каталитических процессов - Новосибирск, 2004. - 488 с.

6. Спивак С.И., Горский В.Г. Неединственность решения задачи восстановления кинетических констант // Доклады Академии наук СССР.

- 1981. - Т. 257. - № 2. - С. 412-415.

7. Спивак С.И., Горский В.Г. Исследование идентифицируемости - один из важнейших этапов построения математических моделей в химии // Журнал структурной химии. - 1988. - Т. 29. - № 6. - С. 119-125.

8. Ермакова А., Гудков А.В., Аникеев В.И. Идентификация кинетических моделей // Кинетика и катализ. - 1977. - Т.3 8. - № 2. - С. 309-318.

9. Kalman R.E. Mathematical description of linear dynamical systems // SIAM J. Control. - 1963. - Ser. A. - V. 1. - № 2. - P. 152-192.

10. Яблонский Г.С., Спивак С.И Математические модели химической кинетики - Москва: Знание, 1977. - 64 с.

11. Быков В.И. Прямые и обратные задачи в химической кинетике -Новосибирск: Наука, 1993. - 288 с.

12. Павлов Б.В., Брин Э.Ф. Обратные задачи химической кинетики // Химическая физика. - 1984. - Т. 3. - № 3. - С. 393-404.

13. Бахитова Р.Х. Идентификация параметров математических моделей химической кинетики, полученных в условиях асимптотического приближения: автореф. дис. ... канд. физ.-мат. наук - Уфа, 1990. - 14 с.

14. Кацман Е.А. Экспериментальное определение кинетических и термодинамических параметров сложных химических реакций и численный анализ их идентифицируемости: автореф. дис. ... д-ра хим. наук - Москва, 2008. - 32 с.

15. Писаренко В. Н. Анализ и моделирование каталитических процессов // Теоретические основы химической технологии. - 1998. - Т. 32. - № 4. - С. 441-459.

16. Яблонский Г.С., Евстигнеев В.А., Быков В.И. Графы в химической кинетике. Применение теории графов в химии - Новосибирск: Наука, 1988. - С. 70-143.

17. Клибанов М.В., Слинько М.Г., Спивак С.И., Тимошенко В.И. Применение теории графов к построению механизма и кинетических уравнений сложной химической реакции // Управляемые системы. Вып. 7.

- Новосибирск: Наука, 1970. - С. 64-69.

18. Яцимирский К.Б. Применение метода графов в химии - Киев: Наукова Думка, 1971. - 71 с.

19. Темкин М.И. Графический метод вывода кинетических уравнений сложных реакций // Доклады Академии Наук СССР. - 1965. - Т. 16. - № 3.

- С. 615-618.

20. Вольперт А.И. Дифференциальные уравнения на графах // Математический сборник. - 1972. - Т. 88(130). - № 4(8). - С. 578-588.

21. Спивак С.И., Исмагилова А.С., Ахмеров А.А. Компьютерный анализ графов сложных химических реакций // Химия высоких энергий. - 2015. -Т. 49. - № 4. - С. 247-252.

22. Спивак С.И., Исмагилова А.С., Гибаева Р.А. Теоретико-графовый метод анализа информативности кинетических экспериментов при определении

параметров // Вестник Башкирского университета. - 2014. - Т. 19. - № 4. -С. 1126-1130.

23.Спивак С.И., Исмагилова А.С. Декомпозиция систем дифференциальных уравнений химической кинетики на основе теории графов // Журнал Средневолжского математического общества - 2013. - Т. 15. - № 1. - С. 23-27.

24. Спивак С.И., Исмагилова А.С., Хамитова И.А. Теоретико-графовый метод определения маршрутов сложных химических реакций // Доклады Академии наук. - 2010. - Т. 434. - № 4. - С. 499-501.

25. Спивак С.И., Исмагилова А.С., Пыжьянова Л.Р. Автоматизация анализа информативности кинетических параметров // Химия высоких энергий. -2015. - № 6. - С. 8-12.

26. Слинько М.Г. Научные основы теории каталитических процессов и реакторов // Кинетика и катализ. - 2000. - Т. 41. - № 6. - С. 933-946.

27. Захаров В. А. Механизм катализа. Ч. 2. Методы исследования каталитических реакций - Новосибирск: Наука, 1984. - 223 с.

28. Волин Ю.М., Островский Г.М., Садовский А.Е., Слинько М.Г., Чесноков Б.Б. Моделирование и оптимизация каталитических процессов - Москва: Наука, 1965.

29. Киперман С.Л. Введение в кинетику гетерогенных каталитических реакций - Москва: Наука, 1964. - 608 с.

30. Стромберг А.Г., Семченко Д.П. Физическая химия - Москва: Высшая школа, 1999. - 527 с.

31. Эмануэль Н.М., Кнорре Д.Г. Курс химической кинетики. Учебник для химических факультетов университетов, 4-е издание, переработанное и дополненное - Москва: Высшая школа, 1984. - 463 с.

32. Яблонский Г.С., Быков В.И., Горбань А.Н. Кинетические модели каталитических реакций - Новосибирск: Наука, 1983. - 255 с.

33. Мазурек В. В. Полимеризация под действием соединений переходных металлов - Л.: Наука, 1974. - 253 с.

112

34. Эмануэль Н.М., Денисов Е. Т., Майзус З. К. Цепные реакции окисления углеводородов в жидкой фазе. - Москва: Наука, 1965. - 375 с.

35. Краснов К.С, Воробьев Н.К., Годнев И.Н. и др. Физическая химия. Электрохимия. Химическая кинетика и катализ: учебник для вузов. -Москва: Высшая школа, 1995. - 319 с.

36. Посыпайко В.И., Козырева Н.А., Логачева Ю.П. Химические методы анализа: Учеб. Пособие для хим.-технол. вузов - Москва: Высшая школа, 1989. - 448 с.

37. Вольперт А.И., Худяев С.И. Анализ в классах разрывных функций и уравнения математической физики - Москва: Наука, 1975. - 394 с.

38. Краснов К.С., Годнев И.Н., Воробьев Н.К. и др. Физическая химия: Учеб. Пособие для хим.-тех. спец. Вузов - Москва: Высшая школа, 1982. - 687 с.

39. Ворожцов Н.Н. Основы синтеза промежуточных продуктов и красителей: Учеб. пособие для хим.-технол. вузов - Москва: Госхимиздат, 1955. - 840 с.

40. Стромберг А.Г., Семченко Д.П. Физическая химия: Учеб. для хим. спец. вузов - Москва : Высшая школа, 2011. - 527 с.

41. Кирпичников П.А., Лиакумович А.Г., Попова Л.М., Победимский Д.Г. Химия и технология мономеров промышленности синтетического каучука: Учеб. пособие - Казань, 1976. - 142 с.

42. Ковалев В.Л. Гетерогенные каталитические процессы в аэротермодинамике - Москва: Физматлит, 2002. - 223 с.

43. Langmuir I. Monolayers on Solids // J. Chem. Soc, 1940. -V. 4. - P. 511-540.

44. Темкин М.И. Кинетика реакций на поверхностях твердых тел и проблема катализатора наибольшей активности // Журнал физизической химии. 1957. - Т. 31. - № 1. - С. 3-26.

45. Глесстон С., Лейдер К., Эйринг Г. Теория абсолютных скоростей реакций - Москва: ИЛ. 1948. - 584 с.

46. Колпакова Н.А., Романенко С.В., Колпаков В.А. Сборник задач по химической кинетике - Томск: Изд-во Томского политехнического университета, 2008. - 280 с.

47. Пурмаль А.П. А, Б, В... химической кинетики - Москва: ИКЦ «Академкнига», 2004. - 277 с.

48. Писаренко Е.В., Писаренко В.Н. Анализ и моделирование нелинейной кинетики химических реагирующих систем // Теоретические основы химической технологии. - 2013. - Т. 47. - № 2. - С. 173-181.

49. Спивак С.И. Информативность эксперимента и проблема неединственности решения обратных задач химической кинетики: автореф. дис. ... д-ра физ.-мат. наук - Черноголовка, 1984. - 30 с.

50. Горский В.Г. Планирование кинетических экспериментов - Москва: Наука, 1984. - 241 c.

51. Бердникова М.Л., Спивак С.И. Анализ однозначности решения обратных задач химической кинетики с учетом погрешности измерений // Доклады Академии наук. - 1996. - Т. 351. - № 4. - С. 482-484.

52. Nancy J. Brown, Guoping Li Mechanism Reduction Via Principal Component Analysis // Int J Chem Kinet. -1997. - V. 29. - P. 393-414.

53. Pepiot P., Pitsch H. Systematic Reduction of Large Chemical Mechanisms // Comb. and Flame. - 2008. - P. 67-81.

54.Valorani M., Creta F. CSP-based skeletal mechanism generation procedure: auto-ignition and premixed laminar flames in nheptane/air mixtures // Comb. and Flame. - 2006. - V. 146. - P. 29-51.

55.Gou X., Sun W. A dynamic multi-timescale method for combustion modeling with detailed and reduced chemical kinetic mechanisms// Comb. and Flame. -2010. - V. 157. - P. 1111-1121.

56. Лебедев А.В., Окунь М.В., Баранов А.Е. и др. Упрощение кинетических механизмов физико-химических процессов на основе комбинированных математических методов // Химическая физика и мезоскопия. - 2011. - Т. 13. - № 1. - С. 43-52.

57. Damian V., Sandua A., Damian M., Potra F., Carmicha) el G.R. // The kinetic preprocessor KPP-a software environment for solving chemical kinetics // Computers & Chemical Engineering. - 2002. - V. 26. - P. 1567.

58. Victor Martinez-Luaces // Chemical Kinetics and Inverse Modelling Problems. In: Chemical Kinetics, edited by Vivek Patel. ISBN 978-953-51-0132-1. http:// www.intechopen.com/books/chemical-kinetics/chemical-kinetic-an-inverse-modelling-problems

59. Погорелов А.Г. Обратные задачи нестационарной химической кинетики -Москва: Наука, 1988. - 392 с.

60. Евстигнеев В.А., Яблонский Г.С. Неопределенность параметров кинетической модели, как следствие негамильтоновой структуры графа сложной реакции (многомаршрутный линейный механизм) // Теоретическая и экспериментальная химия. - 1982. - Т. 18. - № 6. - С. 688-694.

61. Лазман М.З., Яблонский Г.С., Вдков В.И. Химическая физика. -1983. - Т. 2 - № 3. - С. 413-419.

62. Айзенберг Л. А. "Многомерные вычеты и их приложения. Глава 2. Многомерный логарифмический вычет и его приложения", Комплексный анализ - многие переменные - 2, Итоги науки и техн. Сер. Соврем. пробл. мат. Фундам. направления, 8, ВИНИТИ, М. - 1985. - С. 29-45.

63. Шакуров И.Р., Асадуллин Р.М. Идентификация параметров систем нелинейных дифференциальных уравнений на примере модели Лотки -Вольтерра // Биофизика. - 2014. - Т. 59. - № 2. - С. 414-415.

64. Асадуллин P.M., Бахтизин Р.Н. Анализ решений обратных задач химической кинетики // Кинетика и катализ. - 1990. - Т. 31. - № 3. - С. 755-759.

65. Horiuti, J. Stoichiometrische Zahlen und die Kinetik der chemischen Reactionen // J. Res. Inst.Catal., Hokkido University. - 1957. -V. 5. - № 1. - P. 1-26.

66. Хориути, Дз. Как найти кинетическое уравнение обратной реакции? // Проблемы физ. химии. - Москва: Госхимиздат, 1959. - С. 39-49.

67. Темкин М.И. Механизм и кинетика сложных каталитических реакций // Лекции, прочитанные на первом симпозиуме Международного конгресса по катализу. - Москва: Наука, 1970. - С. 57- 76.

68. Темкин М.И. Кинетика стационарных реакций // Доклады Академии наук СССР. - 1963. - Т. 152. - № 1. - С. 156-159.

69. Спивак С.И., Исмагилова А.С., Ахмеров А.А. Анализ информативности кинетических измерений при решении обратных задач химической кинетики для многомаршрутных реакций // Кинетика и катализ. - 2014. -Т. 55. - № 5. - С. 566-576.

70. Спивак С.И., Исмагилова А.С. Обратные задачи химической кинетики и декомпозиция кинетической модели на основе независимых маршрутов сложной реакции // Известия УНЦ РАН. - 2014. -№ 2. - С. 50-54.

71. Спивак С.И., Исмагилова А.С. Информативность кинетических измерений и обратные задачи химической кинетики // Доклады Академии наук. - 2013. - Т. 451. - № 3. - С. 296-298.

72. Спивак С.И., Горский В.Г. О полноте доступных кинетических измерений при определении констант скоростей сложной химической реакции // Химическая физика. - 1982. - Т. 1. - № 2. - С. 237-243.

73. Кудашев В.Р., Спивак С.И. Информативность кинетических измерений при определении параметров математических моделей нестационарной химической кинетики // Теоретические основы химической технологии. -1992. - Т. 26. - № 6. - С. 872-879.

74. Спивак С.И., Исмагилова А.С., Ахмеров А.А. Математическое и программное обеспечение решения обратных задач химической кинетики // Журнал Средневолжского математического общества. - 2013. - Т. 15. -№ 2. - С. 86-95.

75. Спивак С.И., Исмагилова А.С. Информативность кинетических измерений при идентификации механизмов сложных реакций // Химия высоких энергий. - 2014. - Т. 48. - № 6. - С.431-435.

76. Исмагилова А.С., Хамидуллина З.А., Спивак С.И., Морозкин Н.Д. Теоретико-графовая интерпретация обратных задач химической кинетики // Химия высоких энергий. - 2019. - Т. 53. - № 6. - С. 423-427. (A.S. Ismagilova, Z.A. Khamidullina, S.I. Spivak, N.D.Morozkin Graph-Theoretic Interpretation of Inverse Problems of Chemical Kinetics // High Energy Chemistry. - 2019. - V. 53. - N 6. - P. 421-424.)

77. Хамидуллина З.А. Функциональная зависимость кинетических параметров каталитических реакций // Материалы IX Международной научной конференции «Химическая термодинамика и кинетика». - Тверь, 2019. - С. 361-362.

78. Исмагилова А.С., Спивак С.И, Хамидуллина З.А. Анализ информативности многомаршрутных каталитических реакций // Материалы Всероссийской научно-практической конференции «Перспективы и возможности использования информационных технологий в науке, образовании и управлении». - Астрахань, 2019. - C. 14-17.

79. Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Анализ информативности кинетических параметров сложных химических реакций // Вестник Тверского государственного университета. Серия: Химия. - 2020. - № 1. - С. 70-80.

80. Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Определение базиса нелинейных параметрических функций химических реакций // Вычислительные технологии. - 2020. - Т. 25. - № 3. - С. 29-34.

81. Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Разработка и автоматизация алгоритма определения базиса нелинейных параметрических функций кинетических констант // Катализ в промышленности. - 2019. - Т. 19. - № 4. - С. 252-257.

117

82. Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Теоретико-графовый метод нахождения базиса нелинейных параметрических функций // Материалы VII Международной научно-практической конференции «Математическое моделирование процессов и систем». - Стерлитамак: РИЦ СФ БашГУ, 2017. - С. 365-369.

83. Хамидуллина З.А. Анализ информативности кинетических параметров на графах Вольперта // Материалы Международной научно-методической конференции «Роль математики в становлении специалиста». - Уфа: УГНТУ, 2018. - С. 27-31.

84. Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Теоретико-графовый алгоритм определения функциональных зависимостей кинетических параметров // Материалы VIII Международной научно-практической конференции «Математическое моделирование процессов и систем». -Стерлитамак: РИЦ СФ БашГУ, 2018. - С. 215-219.

85. Khamidullina Z.A., Ismagilova A.S., Spivak S.I. Inverse problems of chemical kinetics on Volpert's graph // SUMMA2019, 1st International Conference on Control Systems, Mathematical Modeling, Automation and Energy Efficiency. - Lipetsk, 2019. - P. 311-314.

86. Определение базиса нелинейных параметрических функций для сложных каталитических реакций: свидетельство о государственной регистрации программы для ЭВМ / Хамидуллина З.А., Исмагилова А.С. // ФСИС (Роспатент) № 2018614581, дата рег. 10.04.2018.

87. Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Программная реализация алгоритма выписывания базиса НПФ из графа Вольперта // Материалы VIII Международной научной молодежной школы-семинар «Математическое моделирование, численные методы и комплексы программ» им. Е.В. Воскресенского. - Саранск: МГУ им. Н.П. Огарева, 2018. - С. 99-101.

88. Киперман С.Л. Основы химической кинетики в гетерогенном катализе. -М.: Химия, 1979. - 350 с.

89.Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Декомпозиция сложной химической реакции при идентификации кинетических параметров // Химическая промышленность сегодня. 2019. - № 5. - С. 36-39.

90.Исмагилова А.С., Хамидуллина З.А., Спивак С.И. О методе декомпозиции при анализе информативности кинетических параметров // Материалы XIV Международной научной конференции «Дифференциальные уравнения и их приложения в математическом моделировании». -Саранск: МГУ им. Н.П. Огарева, 2019. - С. 42-44.

91. Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Декомпозиция по независимым маршрутам при определении базиса нелинейных параметрических функций // Материалы IX Международной научно-практической конференции «Математическое моделирование процессов и систем». - Стерлитамак: РИЦ СФ БашГУ, 2019. - С. 382-388.

92.Балаев А.В., Коншенко Е.В., Спивак С.И. и др. Моделирование процесса парциального окисления сероводорода на металлоксидных катализаторах // Доклады Академии наук. - 2001. - Т. 376. - № 1. - С. 69-72.

93. Хамидуллина З.А., Исмагилова А.С. Анализ информативности кинетических параметров при помощи декомпозиции по независимым маршрутам // ФСИС (Роспатент) № 2019665171, дата рег. 20.11.2019.

94.Страуструп Б. Язык программирования С++. Специальное издание. Пер. с англ. - М.: Издательство Бином, 2011 г. - 1136 с.

95.Элджер Дж. C++. Библиотека программиста: Пер. с англ. - СПб.: Питер, 2000. - 320 с.

96.Сидорина Т. Самоучитель Microsoft Visual Studio C++ и MFC - М.: БХВ-Петербург, 2012. - 342 с.

97.Яблонский Г.С., Быков В.И. Упрощенная форма записи кинетического уравнения n-стадийной одномаршрутной каталитической реакции // Доклады Академии наук СССР. - 1977. - Т. 233. - № 4. - С. 642-645.

98.Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Разработка программного обеспечения для определения уравнения скорости

119

линейного механизма реакции по базисным маршрутам // Вестник Башкирского университета. - 2017. - Т. 22. - № 3. - С. 586-589.

99.Хамидуллина З.А., Исмагилова А.С., Спивак С.И. Программная реализация алгоритма определения кинетического уравнения химической реакции // Журнал Средневолжского математического общества. - 2018. -Т. 20. - № 1. - С. 97-104.

100. Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Разработка программного обеспечения для составления уравнений скоростей по базисным маршрутам // Материалы XIII Международной научной конференции «Дифференциальные уравнения и их приложения в математическом моделировании». - Саранск: МГУ им. Н.П. Огарева, 2017. // http://ceur-ws.org/

101. Исмагилова А.С., Хамидуллина З.А., Спивак С.И. Идентификация параметров математических моделей химической кинетики // Сборник тезисов докладов Всероссийской конференции по квантовой и математической химии. - Уфа: РИЦ БашГУ, 2017. - С. 55.

102. Хамидуллина З.А., Исмагилова А.С., Галиахметова Р.Р. Определение скорости сложной химической реакции, линейной относительно промежуточных веществ, по базисным маршрутам: свидетельство о государственной регистрации программы для ЭВМ // ФСИС (Роспатент) № 2017616465, дата рег. 07.06.2017.

Приложение I. Свидетельства о регистрации программных продуктов

Приложение II. Листинг программы

Основная часть модуля интерпретации графа Вольперта механизма химической реакции:

>Cells[j]->Value);

for (int i = 0; i < Asizel; i++)

for (int j = 0; j < Asize2; j++)

A[i][j] = Convert::ToInt32(sekhMatrGr->Rows[i]-

int subC = Convert::ToInt32(Asize2);//количество вершин double cH = myPictureBox->Height / (subC+3);//радиус вершины

double h = myPictureBox->Height;//высота области рисования

double midHeinght = 3*h/6 - cH/2;

double midHeinghtW = h/8 - cH/2+5;

double midHeinghtW0 = h - cH-20;

// Create start and sweep angles on ellipse, float startAngle = 180.0F; float sweepAngle = 180.0F;

//рисуем на pictureBox

PenA myPen = gcnew Pen(Color::Black);

GraphicsA formGraphics = myPictureBox->CreateGraphics(); formGraphics->Clear(Color::White); PenA myPenl = gcnew Pen(Color::Red); myPen1->Width = 3.0F;

//вывод на экран вершин if (V == 1) {

for (int i = 0; i < Asize2-Asize3; i++) {

StringA drawString = "Х" + Convert::ToString(i + 1); formGraphics->DrawEllipse(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH +5+ cH/4, midHeinght+cH/4);//вывод названий вершин

}

for (int i = Asize2-Asize3; i < Asize2; i++) {

StringA drawString = "Y" + Convert::ToString(i + 1-

Asize2+Asize3);

formGraphics->DrawEllipse(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinght+cH/4);//вывод названий вершин

}

for (int i = 0; i < Asizel; i++) {

StringA drawString = "W" + Convert::ToString(i + 1); formGraphics->DrawRectangle(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW, (float)1.1*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinghtW+cH/4);//вывод названий вершин

}

for (int i = 0; i < Asizel; i++) {

if (Convert::ToString(wStageGr->Rows[l]-

>Cells[i]->Value) != "0") {

StringA drawString = "W" + Convert::ToString(i + 1)+

"0";

formGraphics->DrawRectangle(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW0, (float)l.l*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinghtW0+cH/4);//вывод названий вершин

}

}

for (int j = 0; j < Asize2; j++){ float k =0;

for (int i = 0; i < Asizel; i++){

if (A[i][j] < 0 && Convert::ToString(wStageGr->Rows[1]-

>Cells[i]->Value) != "0"){

float r1=2*i*cH + cH+5; float r2=2*j*cH+25+ cH/3+ k; formGraphics->DrawLine(myPen, r2, (float)midHeinght-k+cH,r1, (float)midHeinghtW0 );

float yl = midHeinght+cH-k-5; array<PointF>A curvePointsl = {PointF(r2, yl),PointF(r2+4.0F,yl+5.0F),PointF(r2-4.0F,yl+5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl); k +=7;

} }

}

for (int i = 0; i < Asizel; i++){

if (V[i] == 0)

continue;

float k =7;

for (int j = 0; j < Asize2; j++){

if (A[i][j] > 0 && Convert::ToString(wStageGr->Rows[l]-

>Cells[i]->Value) != "0"){

float rl=2*i*cH + k+5 ; float r2=2*j*cH+cH/2-2; formGraphics->DrawLine(myPen, r2, (float)midHeinght+3*cH/4+cH/6+l, rl, (float)midHeinghtW0 -5 );

float yl = midHeinghtW0; array<PointF>A curvePointsl = {PointF(rl, yl),PointF(rl-4.0F,yl-5.0F),PointF(rl+4.0F,yl-5.F)};

>FillPolygon(drawBrush, curvePointsl);

formGraphics-

k +=8;

} }

}

for (int i = 0; i < Asizel; i++){

if (V[i] == 0)

continue;

float k =7;

for (int j = 0; j < Asize2; j++){ if (A[i][j] < 0){

float r1=2*i*cH + k+5 ; float r2=2*j*cH+5 + cH/6; formGraphics->DrawLine(myPen,r1, (float)midHeinghtW + 3*cH/4 +5, r2, (float)midHeinght+cH/6);

float y1 = midHeinghtW + 3*cH/4; array<PointF>A curvePointsl = {PointF(rl, yl),PointF(rl-4.0F,yl+5.0F),PointF(rl+4.0F,yl+5.F)};

formGraphics-k +=8;

>FillPolygon(drawBrush, curvePointsl);

}

}

}

for (int j = 0; j < Asize2; j++){ float k =0;

for (int i = 0; i < Asizel; i++){ if (V[i] == 0) continue; if (A[i][j] > 0 ){

float r1=2*i*cH + cH+5; float r2=2*j*cH+5 + cH/2+ k; formGraphics->DrawLine(myPen,r1, (float)midHeinghtW + 3*cH/4 , r2, (float)midHeinght-5+k/2);

float yl = midHeinght+k/2; array<PointF>A curvePointsl = {PointF(r2, yl),PointF(r2+4.0F,yl-5.0F),PointF(r2-4.0F,yl-5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl); k +=7;

} }

} }

if (V == 0) {

for (int i = 0; i < Asize2-Asize3; i++) { for (int j=0; j < Asizel; j++){ if (A[j][i] < 0 || (A[j][i] > 0 && Convert::ToString(wStageGr->Rows[l]->Cells[j]->Value) != "0")){

StringA drawString = "Х" + Convert::ToString(i

+ l);

formGraphics->DrawEllipse(myPenl, Rectangle((float)2.0F*i*cH+5, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrushl, 2*i*cH +5+ cH/4, midHeinght+cH/4);//

}

}

StringA drawString = "Х" + Convert::ToString(i + l); formGraphics->DrawEllipse(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH +5+ cH/4, midHeinght+cH/4);//вывод названий вершин

for (int i = Asize2-Asize3; i < Asize2; i++) {

StringA drawString = "Y" + Convert::ToString(i + 1-

Asize2+Asize3);

formGraphics->DrawEllipse(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinght+cH/4);//вывод названий вершин

}

for (int i = 0; i < Asizel; i++) {

for (int j=0; j < Asize2-Asize3; j++){ if (A[i][j] < 0 ){

StringA drawString = "W" + Convert::ToString(i

+ 1);

formGraphics->DrawRectangle(myPen1, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW, (float)1.1*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrushl, 2*i*cH+5 + cH/4, midHeinghtW+cH/4);

}

}

StringA drawString = "W" + Convert::ToString(i + 1); formGraphics->DrawRectangle(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW, (float)1.1*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinghtW+cH/4);//вывод названий вершин

}

for (int i = 0; i < Asizel; i++) {

if (Convert::ToString(wStageGr->Rows[1]-

>Cells[i]->Value) != "0") {

StringA drawString = "W" + Convert::ToString(i + 1)+

"0";

for (int j=0; j < Asize2-Asize3; j++){ if (A[i][j] > 0 && Convert::ToString(wStageGr->Rows[1]->Cells[i]->Value) != "0"){

formGraphics->DrawRectangle(myPen1, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW0, (float)1.1*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrush1, 2*i*cH+5 + cH/4, midHeinghtW0+cH/4);//

}

}

formGraphics->DrawRectangle(myPen, Rectangle((float)2.0F*i*cH+5, (float)midHeinghtW0, (float)1.1*cH, (float)3*cH/4));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH+5 + cH/4, midHeinghtW0+cH/4);//вывод названий вершин

}

}

for (int j = 0; j < Asize2; j++){ float k =0;

for (int i = 0; i < Asizel; i++){

if (A[i][j] < 0 && Convert::ToString(wStageGr->Rows[l]-

>Cells[i]->Value) != "0"){

float r1=2*i*cH + cH+5; float r2=2*j*cH+25+ cH/3+ k; formGraphics->DrawLine(myPen, r2, (float)midHeinght+2-k+cH,rl, (float)midHeinghtW0 );

float yl = midHeinght+cH-k-3; array<PointF>A curvePointsl = {PointF(r2, yl),PointF(r2+4.0F,yl+5.0F),PointF(r2-4.0F,yl+5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl); k +=7;

} }

}

for (int i = 0; i < Asizel; i++){ float k =7;

for (int j = 0; j < Asize2-Asize3; j++){ if (A[i][j] > 0 && Convert::ToString(wStageGr->Rows[l]-

>Cells[i]->Value) != "0"){

float rl=2*i*cH + k+5 ; float r2=2*j*cH+cH/2-2; float yl = midHeinghtW0; formGraphics->DrawLine(myPenl, r2, (float)midHeinght+3*cH/4+cH/6+l, rl, (float)midHeinghtW0 -5 );

array<PointF>A curvePoints2 = {PointF(rl, yl),PointF(rl-6.0F,yl-8.0F),PointF(rl+6.0F,yl-8.F)};

formGraphics-

>FillPolygon(drawBrushl, curvePoints2);

formGraphics->DrawLine(myPen, r2, (float)midHeinght+3*cH/4+cH/6+l, rl, (float)midHeinghtW0 -5 );

array<PointF>A curvePointsl = {PointF(rl, yl),PointF(rl-2.0F,yl-3.0F),PointF(rl+2.0F,yl-3.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl);

k +=9;

} }

for (int j = Asize2-Asize3; j < Asize2; j++){ if (A[i][j] > 0 && Convert::ToString(wStageGr->Rows[l]-

>Cells[i]->Value) != "0"){

float rll=2*i*cH + k+5 ; float r2l=2*j*cH+cH/2-2; float yll = midHeinghtW0; formGraphics->DrawLine(myPen, r2l, (float)midHeinght+3*cH/4+cH/6+l, rll, (float)midHeinghtW0 -5 );

array<PointF>A curvePointsll = {PointF(rll, yll),PointF(rll-4.0F,yll-5.0F),PointF(rll+4.0F,yll-5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsll);

k +=8;

} }

for (int i = 0; i < Asize1; i++){ float k =7;

for (int j = 0; j < Asize2-Asize3; j++){ if (A[i][j] < 0){

float r1=2*i*cH + k+5 ; float r2=2*j*cH+5 + cH/6; formGraphics->DrawLine(myPen1,r1, (float)midHeinghtW + 3*cH/4 +5, r2, (float)midHeinght+cH/6);

float y1 = midHeinghtW + 3*cH/4; array<PointF>A curvePoints1 = {PointF(r1, y1),PointF(r1-6.0F,y1+8.0F),PointF(r1+6.0F,y1+8.F)}; formGraphics->FillPolygon(drawBrush1, curvePoints1); formGraphics->DrawLine(myPen,r1, (float)midHeinghtW + 3*cH/4 +5, r2, (float)midHeinght+cH/6);

array<PointF>A curvePoints2 = {PointF(r1, y1),PointF(r1-2.0F,y1+3.0F),PointF(r1+2.0F,y1+3.F)}; formGraphics->FillPolygon(drawBrush, curvePoints2); k +=8;

} }

for (int j = Asize2-Asize3; j < Asize2; j++){ if (A[i][j] < 0){

float r11=2*i*cH + k+5 ; float r21=2*j*cH+5 + cH/6;

float y11 = midHeinghtW + 3*cH/4;

formGraphics-

>DrawLine(myPen,r11, (float)midHeinghtW + 3*cH/4 +5, r21, (float)midHeinght+cH/6);

array<PointF>A curvePoints21 = {PointF(r11, y11),PointF(r11-4.0F,y11+5.0F),PointF(r11+4.0F,y11+5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePoints21);

k +=8;

} }

}

for (int j = 0; j < Asize2; j++){ float k =0;

for (int i = 0; i < Asize1; i++){ if (A[i][j] > 0 ){

float r1=2*i*cH + cH+5; float r2=2*j*cH+5 + cH/2+ k; formGraphics->DrawLine(myPen,r1, (float)midHeinghtW + 3*cH/4 , r2, (float)midHeinght-5+k/2);

float y1 = midHeinght+k/2; array<PointF>A curvePoints1 = {PointF(r2, y1),PointF(r2+4.0F,y1-5.0F),PointF(r2-4.0F,y1-5.F)};

formGraphics-

>FillPolygon(drawBrush, curvePoints1); k +=7;

} }

} }

for (int i = 0; i < Asize1; i++)

delete [] A[i]; delete [] A;

}; }

delete myPen; delete formGraphics;

Основная часть модуля интерпретации графа Темкина линейного механизма химической реакции:

#pragma endregion

public: void Initialize(int *aV, int Asizel, int Asize2, int Asize3, DataGridViewA aDatal, DataGridViewA aData2) {

V = aV;

sizel = Asizel; size2 = Asize2; size3 = Asize3; DataGridViewl = aDatal; DataGridView2 = aData2;

}

public: void static printGraph(PictureBoxA myPictureBox, int *V, const int Asizel, const int Asize2, const int Asize3, DataGridViewA sekhMatrGr, DataGridViewA wStageGr) {

int **A = new int*[Asizel]; for (int i = 0; i < Asizel; i++) A[i] = new int[Asize3];

for (int i = 0; i < Asizel; i++)

for (int j = Asize2 - Asize3; j < Asize2; j++) A[i][j - Asize2 + Asize3] = Convert::ToInt32(sekhMatrGr->Rows[i]->Cells[j]->Value);//!?

int subC = Convert::ToInt32(Asize3);//количество вершин double cH = myPictureBox->Height / (subC+3);//радиус вершины

double h = myPictureBox->Height;//высота области рисования double midHeinght = h/2 - cH/2;

// Create start and sweep angles on ellipse, float startAngle = l80.0F; float sweepAngle = l80.0F;

//рисуем на pictureBox

PenA myPen = gcnew Pen(Color::Black);

GraphicsA formGraphics = myPictureBox->CreateGraphics(); formGraphics->Clear(Color::White);

// Create font and brush.

System::Drawing::FontA drawFont = gcnew System::Drawing::Font(

"Arial", 8);

SolidBrushA drawBrush = gcnew SolidBrush(Color::Black);

for (int i = 0; i < Asize3; i++) {

Boolean isEmptyNode = true; for (int c = 0; c < Asizel; c++) { if (V[c] != 0) {

if (A[c][i] != 0) {

isEmptyNode = false; break;

//вывод на экран вершин if (!isEmptyNode) {

StringA drawString = "Y" + Convert::ToString(i + l); formGraphics->DrawEllipse(myPen, Rectangle((float)2.0F*i*cH, (float)midHeinght, (float)cH, (float)cH));

formGraphics->DrawString( drawString, drawFont,

drawBrush, 2*i*cH + cH/4, midHeinght+cH/4);//вывод названий вершин

}

else continue;

int count_one_ver = 0; //линии

for (int j = 0; j < Asizel; j++) { if (V[j] == 0)

continue; if (A[j][i] != 0) {

for (int k = i + l; k < Asize3; k++) { if (A[j][k] != 0) {

count_one_ver++; if (A[j][k] < 0) { if

(Convert::ToString(wStageGr->Rows[l]->Cells[j]->Value) != "0") {

float xl =

2*i*cH+cH/2 + (k-i)*cH+2.5;

2*i*cH+cH/2 + (k-i)*cH-2.5;

midHeinght+cH/2-count_one_ver*20+cH+count_one_ver*40; midHeinght-cH/2-count_one_ver*20;

float x2 =

float yl = float y2 =

array<PointF>A

curvePointsl = {PointF(xl, yl),PointF(xl-5.0F,yl+4.0F),PointF(xl-5.0F,yl-4.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl);

array<PointF>A

curvePoints2 = {PointF(x2, y2),PointF(x2+5.0F,y2+4.0F),PointF(x2+5.0F,y2-4.0F)};

formGraphics-

>FillPolygon(drawBrush, curvePoints2);

//линия снизу formGraphics-

>DrawArc(myPen, Rectangle(2*i*cH+cH/2, midHeinght+cH/2-count_one_ver*20, (2*(k-i))*cH, cH+count_one_ver*40), startAngle-l80.0F, sweepAngle);

//линия сверху formGraphics-

>DrawArc(myPen, Rectangle(2*i*cH+cH/2, midHeinght-cH/2-count_one_ver*20, (2*(k-i))*cH, cH+count_one_ver*40), startAngle, sweepAngle);

formGraphics-

>DrawString(Convert::ToString(wStageGr->Rows[l]->Cells[j]->Value), drawFont, drawBrush, xl, у1);//вывод весов

formGraphics-

>DrawString(Convert::ToString(wStageGr->Rows[0]->Cells[j]- >Value), drawFont, drawBrush, x2, у2);//вывод весов

}

}

//MessageBox::Show(Convert::ToString(count_one_ver));

}

else {

float x =

2*i*cH+cH/2 + (k-i)*cH-2.5;

float y =

midHeinght-cH/2-count_one_ver*20;//+cH+count_one_ver*40;

array<PointF>A

curvePoints = {PointF(x, y),PointF(x+5,y+4),PointF(x+5,y-4)};

formGraphics-

>FillPolygon(drawBrush, curvePoints);

//одинарная верхняя линия formGraphics-

>DrawArc(myPen, Rectangle(2*i*cH+cH/2, midHeinght-cH/2-count_one_ver*20, (2*(k-i))*cH, cH+count_one_ver*40), startAngle, sweepAngle);

formGraphics-

>DrawString(Convert::ToString(wStageGr->Rows[0]->Cells[j]->Value), drawFont, drawBrush, x, у);//вывод весов

}

}

else {

if

(Convert::ToString(wStageGr->Rows[l]->Cells[j]->Value) != "0") {

float xl =

2*i*cH+cH/2 + (k-i)*cH+2.5;

float x2 =

2*i*cH+cH/2 + (k-i)*cH-2.5;

float yl =

midHeinght-cH/2-count_one_ver*20;

float y2 =

midHeinght+cH/2-count_one_ver*20+cH+count_one_ver*40;

array<PointF>A

curvePointsl = {PointF(xl, yl),PointF(xl-5.0F,yl+4.0F),PointF(xl-5.0F,yl-4.F)};

formGraphics-

>FillPolygon(drawBrush, curvePointsl);

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