Одной из наиболее инновационных отраслей является производство химических волокон. Объем его составляет несколько десятков миллионов тонн в год. Основная задача отрасли – создание волокон с заданными свойствами, которая решается посредством различных технологий. Для исследования существующих и разработки новых технологий применяется моделирование. Оно позволяет определять количественные зависимости между условиями процессов получения материала, структурой его волокон и свойствами. Свойства волокон в основном обусловлены их структурой. Моделирование позволяет определять технологические режимы, минимизируя дорогостоящие опытные работы. Стадия предпроектных исследований и расчетов является определяющей при разработке современных технологических процессов формования химических волокон. Эти исследования основаны на взаимосвязанном рассмотрении комплекса одновременно действующих сложных физико-химических явлений при элонгационном течении тонких неизотермических струй расплавов и растворов полимеров.
Реализовать и использовать математические модели технологических процессов формования химических волокон возможно только в программной системе. Это обусловлено следующим: во-первых, процессы формования описываются нелинейными уравнениями с подвижной границей, что требует их исключительно численного решения [1, 2]; во-вторых, решение ряда отдельных повторяющихся вычислительных задач при моделировании в форме унифицированных программных модулей обусловило их объединение в систему; в-третьих, необходимо использовать БД для структурирования данных различных видов формования, используемых элементов схем технологического процесса, свойств полимеров растворов и расплавов и других исходных данных.
Основная функция разработанной програм- мной системы ForcesResearch – моделирование и анализ сил, воздействующих на формуемое волокно при классическом формовании волокон (КФВ) из расплава с приемным устройством [3] и аэродинамическом формовании волокон (АФВ) [4]. Отметим актуальность исследования динамики при формовании, так как при вытягивании струи расплава полимера его молекулы ориентируются и вследствие этого приобретают основные пользовательские свойства, например прочность.
Приложение написано на языке Java (версия jre 1.7) в интегрированной среде разработки IntelliJIdea 13.1 CommunityEdition [5] и является desktop-приложением. Для создания графических интерфейсов использовалась библиотека Swing [6]. При разработке архитектуры приложения реализована концепция Model-view-controller (MVC, «модель–представление–поведение»), согласно которой модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента так, чтобы модификация одного из них оказывала минимальное воздействие на остальные [7].
Основные функции приложения:
– схематичное отображение технологического процесса;
– хранение в БД программы значений по умолчанию всех элементов технологического процесса и расчетной схемы;
– редактирование параметров схемы;
– сохранение проекта в файл с целью его последующей загрузки;
– моделирование по созданной модели;
– отображение результатов моделирования сил в виде графиков;
– экспорт результатов в csv-файл.
Графический интерфейс пользователя поясняет технологическую схему процесса формования и показывает в условном виде связи между его элементами и их характеристиками. Интерфейс позволяет выбирать один из видов моделируемого процесса: классическое формование из расплава или аэродинамическое формование.
Рассмотрим диаграмму состояний приложения (рис. 1) [8]. После запуска программы пользователю предлагается либо создать новый проект, либо открыть ранее созданный. Далее возможно редактирование параметров элементов, участвующих в технологическом процессе (ТП). Набор элементов ТП определяется типом формования. После редактирования схемы возможно выполнение расчета по сконфигурированной модели. Из-за применения итеративных алгоритмов расчет будет занимать некоторое время. При этом возможно зацикливание при задании несогласованных значений параметров ТП. Чтобы во время расчета интерфейс приложения не «замирал», процедура расчета выполняется в потоке, отдельном от потока-диспетчера событий (EventDispatchThread (EDT)) [9]. EDT обслуживает взаимодействие пользователя с интерфейсом приложения.
После завершения расчета приложение строит графики сил. На этом этапе можно отредактировать внешний вид графиков: цвет кривой, коэффициент масштабирования и т.д. Пользователю доступен экспорт рассчитанных данных в файл в csv-формате для их анализа в других програм- мных средствах. С этого этапа можно снова перейти к редактированию схемы.
На этом основной цикл работы с приложением завершается.
Приложение проектировалось в соответствии с основными принципами объектно-ориентированного программирования (ООП): инкапсуляция, наследование, полиморфизм [10]. Анализ предметной области позволил выделить из нее классы объектов. При этом классы были сгруппированы по своему назначению. Каждый объект какого-либо класса является по возможности самостоятельной единицей, внутренняя реализация которой максимально сокрыта внутри нее. Широко применялось наследование классов. Например, классы элементов схем наследовались от общего класса, а схемы процессов, солверы для разных типов формования наследовались от общего предка, перенимая общие элементы (свойства и ме- тоды) и расширяя их. Это способствовало вы- ражению специализации и генерализации. При реализации солвера использовался принцип полиморфизма, позволяя единообразно ссылаться на объекты классов-потомков, реализующих специфику конкретного расчета.
Рассмотрим подробно диаграмму классов [11], которые условно можно разделить на две группы. Первая группа содержит классы, описывающие элементы схемы ТП (СТП) и их характеристики (рис. 2), и классы так называемого солвера, который реализует алгоритмы, используемые для моделирования сил (рис. 3). Вторая группа содержит классы, необходимые для создания графического интерфейса и управления моделью.
СТП представлена абстрактным классом TechnologyScheme и двумя дочерними классами TechSchemeClassicFF и TechSchemeAeroFF. Класс TechnologyScheme содержит элементы, общие для обоих типов формования (классическое и аэродинамическое). Дочерние классы содержат дополнительные элементы схемы, участвующие только в соответствующих типах формования.
Набор элементов схемы для КФВ состоит из фильеры, полимера, приемного устройства, окружающей среды; для АФВ добавляются термошахта, эжектор и приемный стол. Родительский класс, SchemeElement, содержит в себе общие для всех элементов данные и методы.
Для хранения параметров элементов схемы созданы специальные классы. Параметр класса FileraTypeAttribute содержит информацию о типе фильеры. Параметр класса DistributionAttribute содержит массив точек, который может представлять распределение температур или скорости эжектора. Параметр класса DoubleAttribute хранит вещественное значение. Параметр класса StringAttribute используется для строковых характеристик, например название полимера.
Для расчета сил необходимо выделить и такой элемент схемы, как вычислительная схема (класс CalculationScheme), где задаются необходимые граничные значения для вычислительных алгоритмов: шаг по пути формования, шаг сетки, максимальное и минимальное начальные значения градиента скорости, точность расчета.
СТП процесса выступает в качестве исходных данных для расчета. Сам расчет в отдельном потоке выполняет так называемый солвер – класс Computer (рис. 3). Специфика расчетов КФВ и АФВ учитывается в соответствующих классах-наследниках ComputerClassicFF, ComputerAeroFF.
По окончании работы солвер выдает результат расчета в виде объекта класса CalculationResult. Специфика выходных данных для определенного вида формования учитывается в классах-наследниках ComputingResultClassicFF и ComputingResultAeroFF. Результат расчета содержит набор графиков данных, каждый из которых представ- лен классом Curve, содержащим информацию для построения кривой: набор точек, название для легенды, подпись на координатной плоскости и т.д. Для визуализации графиков использовалась java-библиотека XChart [12].
В результате расчетов КФВ и АФВ форми- руются разные наборы графиков, но некоторые величины совпадают: скорость волокна, первая производная скорости волокна, температура полимера, температура окружающей среды, реологическая сила, сумма сил, гравитационная сила, аэродинамическая сила, инерционная сила, сила поверхностного натяжения. Реализована возможность экспортирования результатов расчета в виде csv-файла.
Вторую группу образуют классы, участвующие в создании графического интерфейса пользовате- ля и управлении СТП и расчетом (рис. 4). Класс основного окна приложения – MainForm. Здесь используются панели MyXChartPanel, DrawableJPanel для отображения СТП и графиков. Диалоги MyProgressDialog и SelectExtrusionTypeDialog используются для организации взаимодействия с пользователем.
В приложении реализована возможность сохранения проекта в файл для его последующего прочтения и работы над ним.
На одном из главных окон приложения в условном виде показывается схема ТП в зависимости от типа формования. Например, для КФВ схема ТП состоит из фильеры, полимера, среды, вычислительной схемы. Каждый элемент схемы отображает его параметры. Например, для фильеры это тип фильеры, радиус отверстия, массовый расход полимера, начальная скорость. На рисунках 5 и 6 представлены окна приложения, где показаны примеры визуализации результатов моделирования КФВ и АФВ.
Солвер приложения содержит программно реализованные численные методы решения системы нелинейных обыкновенных дифференциальных уравнений (ОДУ), метод сеток (конечно-разностный) для решения уравнений в частных производных в цилиндрических координатах, численное интегрирование, интерполяцию кубическими сплайнами экспериментальных зависимостей.
При численном решении уравнения движения, являющегося ОДУ второго порядка, y¢¢(y¢, y, x)=0, необходимы начальные условия y(0) и y¢(0). Однако из условий известны только значения y(0) и y(L). Поэтому предложен алгоритм нахождения y¢(0) по известному значению y(L). Известно, что y(x) – непрерывная, дифференцируемая, монотонно возрастающая функция на всем пути формования [0, L]. Тогда ее производная больше нуля на всем участке формования: y¢(x) > 0. Учитывая это, значение скорости в конечной точке можно рассчитывать через ряд вида y(L) ≈ y(0) + y¢(x)L + …
Значение y(L) имеет конкретное значение, значит, ряд сходится. Членами ряда, идущими после второго, можно пренебречь. Их вклад в y(L) несущественен. То есть получается y(L) ≈ y(0) + y¢(x)L, y¢(x)≈ (y(L) – y(0))/L.
Величины y(0), y(L) и L нам известны.
Шаг 1. Рассчитываем y¢(x) ≈ (y(L) – y(0))/L.
Шаг 2. Численным методом решаем исходное ОДУ. Получаем значение конечной скорости yi(L).
Шаг 3. Сравниваем рассчитанное значение yi(L) со значением из начальных условий y(L). Анализируем возможные варианты.
1. Условие |yi(L) – y(L)|
2. yi(L) > y(L), то y¢i+1(0) = y¢i(0) – ai. Переход на шаг 2.
3. yi(L) < y(L), то y¢i+1(0) = y¢i(0) + ai. Переход на шаг 2.
ai – значение приращения, рассчитываемое на каждом шаге.
На практике количество шагов до сходимости не превышает нескольких десятков.
В связи с использованием нескольких и многократно повторяющихся численных методов возникает вопрос верификации полученного решения, для чего используется проверка решения системы ОДУ. Суть его в том, что ОДУ получается из исходного уравнения баланса сил, действующих на волокно. Решениями системы ОДУ являются v(x) – продольная скорость и T(x) волокна. Используя эти функции, вычисляются силы, входящие в уравнение баланса сил, и проверяется выполнение исходного уравнения, что свидетельствует о корректности проведенных вычислений.
Работоспособность разработанной програм- мной системы предпроектных исследований технологических процессов формования химических волокон подтверждается результатами моделирования [3, 4], которые удовлетворительно согласуются с экспериментальными данными. Проведены расчеты сил, действующих на волокно при формовании из расплава, как функций от пути формования при различных скоростях намотки. На основе расчетов определены значения параметров при разработке новых технологических процессов. В перспективе планируется модифицировать данную разработку в элемент экспертной системы.
Литература
1. Калабин А.Л., Керницкий А.В., Пакшвер Э.А. Программная система предпроектных исследований технологических процессов формования химических волокон // Програм- мные продукты и системы. 2008. № 1. C. 34–36.
2. Зябицкий А. Теоретические основы формования волокна. М.: Химия, 1979. 504 c.
3. Kalabin A.L., Udalov E.V. Dynamic characteristics of filament melt-spinning. Fibre Chemistry, 2013, vol. 44, no. 6, рр. 356–360.
4. Kalabin A.L., Udalov E.V. Modeling the Dynamics of the Aerodynamic Forming of Fibers. FibreChemistry, 2014, vol. 46, no. 1, pp. 10–15.
5. Cреда разработки InelliJ IDEA. URL: https://www.jetbrains.com/idea/ (дата обращения: 10.09.2014).
6. Хорстманн К.С., Корнелл Г. Java 2. Библиотека профессионала. Т. 1. Основы; [пер. с англ.]. М.: Вильямс, 2012. 816 с.
7. Model-View-Controller. URL: https://ru.wikipedia.org/wiki/Model-View-Controller (дата обращения: 10.09.2014).
8. Фаулер M. UML. Основы; [пер. с англ.]. СПб: Символ-Плюс, 2004. 192 с.
9. The Java Tutorials. Concurrency in Swing. URL: http:// docs.oracle.com/javase/tutorial/uiswing/concurrency/index.html (дата обращения: 15.10.2014).
10. Sierra K., Bates B. SCJP Sun Certified Programmer for Java 6 Exam 310-065 Study Guide. McGraw-Hill Osborne Media, 2008, 851 p.
11. Сущности на диаграмме классов. URL: http://book. uml3.ru/sec_3_2 (дата обращения: 23.09.2014).
12. XChart. Basic Charts for Java Applications. URL: http://xeiam.com/xchart/ (дата обращения: 16.10.2014).