Структура ФРУНДа
Рассмотрим более подробно систему ФРУНД. За счет доступности исходных кодов этой системы архитектура ее была исследована более подробно (рисунок 1). Как и почти все MBS системы ФРУНД состоит из модулей ядра и пользовательского интерфейса. Ядро пакета составляют два основных компонента: модуль синтеза программного кода для описания уравнений движения и модуль сборки расчетной программы. Каждый из этих модулей состоит из транслятора структуры модели, полученной из построенной в пользовательском интерфейсе геометрии, и части, осуществляющей синтез кода на языке ФОРТРАН для расчетной программы. Математическая часть ядра хранится в библиотеке rasv4db.lib. Библиотека содержит численные методы для расчета дифференциально-алгебраических уравнений (ДАУ) и основную исполнимую программу. Модуль символьного синтеза формирует исходный код для расчета правых частей (fprav*.for), коэффициентов матрицы связей и сил в соединительных элементах (fas*.for). Перед сборкой расчетного модуля в исходные коды можно включать пользовательские подпрограммы, в которых можно использовать функции интерфейса библиотеки rasv4db.lib.
После этого коды обрабатываются препроцессорами, которые добавляют директивы компилятора для повышения точности вещественных переменных. Расчетный модуль формируется при компиляции исходных кодов в библиотеки и их сборке вместе с библиотекой ядра в исполнимый файл rashet32.exe. Это решатель, при запуске которого начинается процесс моделирования. Начальные условия и параметры интегрирования передаются в расчетный модуль в виде файлов ico и upr. В результате расчета вычисляются параметры тел: перемещения, скорости, ускорения и реакции в шарнирах в каждый момент времени. Эти результаты записываются в файл rezr, который потом обрабатывается модулями постпроцессора. Постпроцессор формирует анимацию модели и строит графики измеряемых параметров, которые описаны в файле upr. Анимация формируется в модуле пользовательского интерфейса, графики строятся программой anaz.exe, а воспроизводятся программой benafin.exe. Процесс моделирования в системе представляет собой последовательный вызов различных модулей, зависимых по входным параметрам. Управляющая часть реализована скриптами командной строки Windows, которые при необходимости тоже можно модифицировать.
Таким образом, в системе ФРУНД есть целый ряд возможностей добавления пользовательских расширений даже без вмешательства в исходные коды системы.
Рисунок 1 – Архитектура пакета ФРУНД
К недостаткам архитектуры системы относятся:
- сильная файловая зависимость исполнимых модулей, использование модулей как отдельных программ, а не как подключаемых к системе плагинов;
- сильная функциональная нагрузка на пользовательский интерфейс, который осуществляет трансляцию геометрических моделей, подготовку входных данных и часть постобработки результатов.
Тем не менее, наличие среды проектирования и отделенного от интерфейса расчетного ядра делают эту систему перспективной для доработки и создания расширений. Благодаря возможности использовать отдельные модули пакета и наличию открытого интерфейса эта система подходит в качестве платформы для расширения
Для разработки новой версии системы с использованием существующего ядра необходимо, в первую очередь обособить модули ядра и создать фасад для их использования оболочкой (рисунок 2, FRUND CORE). Параллельно с этим, надо избавиться от избытка файлов, которые оказывают негативное воздействие на жесткие диски при работе с системой и замедляют скорость работы с моделью.
Рисунок 2 – Зависимость базовых модулей по входным и выходным данным
Идея переработки архитектуры — перекомпиляция модулей на языке ФОРТРАН из FRUND CORE в DLL-библиотеки и их подключение к одному интерфейсному модулю (фасаду), написанному на С++. Этот модуль можно будет использовать как консольное приложение или как DLL-библиотеку, используемую новой версией GUI.
ФРУНД работает в соответствии с диаграммами последовательности (рис. 3-5):
Рисунок 3 – Диаграмма последовательностей шага генерации модели
Рисунок 4 – Диаграмма последовательностей шага расчета модели
Рисунок 5 – Диаграмма последовательностей анализа результатов расчета
Свежие комментарии