Структура ФРУНДа

Рассмотрим более подробно систему ФРУНД. За счет доступности исходных кодов этой системы архитектура ее была исследована более подробно (рисунок 1). Как и почти все MBS системы ФРУНД состоит из модулей ядра и пользовательского интерфейса. Ядро пакета составляют два основных компонента: модуль синтеза программного кода для описания уравнений движения и модуль сборки расчетной программы. Каждый из этих модулей состоит из транслятора структуры модели, полученной из построенной в пользовательском интерфейсе геометрии, и части, осуществляющей синтез кода на языке ФОРТРАН для расчетной программы. Математическая часть ядра хранится в библиотеке rasv4db.lib. Библиотека содержит численные методы для расчета дифференциально-алгебраических уравнений (ДАУ) и основную исполнимую программу. Модуль символьного синтеза формирует исходный код для расчета правых частей (fprav*.for), коэффициентов матрицы связей и сил в соединительных элементах (fas*.for). Перед сборкой расчетного модуля в исходные коды можно включать пользовательские подпрограммы, в которых можно использовать функции интерфейса библиотеки rasv4db.lib.

После этого коды обрабатываются препроцессорами, которые добавляют директивы компилятора для повышения точности вещественных переменных. Расчетный модуль формируется при компиляции исходных кодов в библиотеки и их сборке вместе с библиотекой ядра в исполнимый файл rashet32.exe. Это решатель, при запуске которого начинается процесс моделирования. Начальные условия и параметры интегрирования передаются в расчетный модуль в виде файлов ico и upr. В результате расчета вычисляются параметры тел: перемещения, скорости, ускорения и реакции в шарнирах в каждый момент времени. Эти результаты записываются в файл rezr, который потом обрабатывается модулями постпроцессора. Постпроцессор формирует анимацию модели и строит графики измеряемых параметров, которые описаны в файле upr. Анимация формируется в модуле пользовательского интерфейса, графики строятся программой anaz.exe, а воспроизводятся программой benafin.exe. Процесс моделирования в системе представляет собой последовательный вызов различных модулей, зависимых по входным параметрам. Управляющая часть реализована скриптами командной строки Windows, которые при необходимости тоже можно модифицировать.

Таким образом, в системе ФРУНД есть целый ряд возможностей добавления пользовательских расширений даже без вмешательства в исходные коды системы.

архитектура CAE ФРУНД

—-

Рисунок 1 – Архитектура пакета ФРУНД

К недостаткам архитектуры системы относятся:

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

Для разработки новой версии системы с использованием существующего ядра необходимо, в первую очередь обособить модули ядра и создать фасад для их использования оболочкой (рисунок 2, FRUND CORE). Параллельно с этим, надо избавиться от избытка файлов, которые оказывают негативное воздействие на жесткие диски при работе с системой и замедляют скорость работы с моделью.


Рисунок 2 – Зависимость базовых модулей по входным и выходным данным

Идея переработки архитектуры - перекомпиляция модулей на языке ФОРТРАН из FRUND CORE в DLL-библиотеки и их подключение к одному интерфейсному модулю (фасаду), написанному на С++. Этот модуль можно будет использовать как консольное приложение или как DLL-библиотеку, используемую новой версией GUI.

ФРУНД работает в соответствии с диаграммами последовательности (рис. 3-5):


Рисунок 3 – Диаграмма последовательностей шага генерации модели


Рисунок 4 – Диаграмма последовательностей шага расчета модели


Рисунок 5 – Диаграмма последовательностей анализа результатов расчета