Skip to main content
13 октября, 2025

Оптимизация инженерных расчётов в ЛОГОС на базе DT Seven

В современном инженерном проектировании особое место занимает использование систем CAE, которые позволяют моделировать сложные физические процессы, проводить расчет прочности, тепловых и гидродинамических характеристик. Одним из мощных инструментов в этой области является программный продукт ЛОГОС — отечественное мультифизическое программное обеспечение, разработанное в ФГУП «РФЯЦ-ВНИИЭФ» (Росатом). ЛОГОС предназначен для решения задач статического и динамического нагружения, теплообмена, гидродинамики и электромагнетизма.

Для эффективной автоматизации расчетных процессов и интеграции различных инженерных задач используется DT Seven — десктопное кроссплатформенное приложение компании DATADVANCE.

DT Seven позволяет строить автоматизированные расчетные схемы, объединять различные инженерные приложения в единую цепочку расчетов, проводить оптимизацию и создавать предиктивные модели на основе встроенных алгоритмов машинного обучения. Интеграция DT Seven и ЛОГОС предоставляет возможность инженерам оперативно получать точные и надежные результаты, эффективно управлять сложными проектами и существенно сокращать затраты времени и ресурсов на проведение расчетов.

Возможности программного продукта DT Seven

DT Seven включает в себя различные инструменты для автоматизации инженерных расчетов, позволяя объединять различные программы и решения в единую расчетную цепочку. Основные возможности DT Seven включают:

Интеграция и построение расчетных схем

Рис. 1. Расчетная цепочка в DT Seven

Построение расчетных схем в DT Seven позволяет объединять отдельные расчеты в единую цепочку. Каждый блок схемы выполняет конкретную задачу: запуск решателя, перестройка геометрии, анализ данных и т.д. Расчетная цепочка обеспечивает интеграцию с CAD, CAE-пакетами, такими как ЛОГОС для автоматической передачи данных между различными этапами расчета. Это избавляет инженера от ручного выполнения многочисленных шагов, сокращает вероятность ошибок и ускоряет весь процесс.

Выполнение оптимизационных расчётов

Оптимизация — это процесс поиска наилучших значений входных параметров модели, которые обеспечивают достижение заданной цели при соблюдении всех ограничений. В DT Seven для этого используется блок Design Space Exploration (DSE), который позволяет:

Рис. 2. Планирование эксперимента в DT Seven
  • Оценивать отклики системы;
  • Проводить различные типы оптимизации:
  • Однокритериальная и многокритериальная оптимизация: для точных и детализированных расчётов.
  • Робастная оптимизация: учитываются неопределённости и вариации во входных данных.
  • Оптимизация на основе мета-моделей: используются аппроксимирующие модели для ускорения расчётов.
Автоматический выбор техники планирования эксперимента в блоке DSE с помощью SmartSelection

В DT Seven также используется техника SmartSelection, которая автоматически выбирает оптимальный метод планирования эксперимента в зависимости от типа задачи и данных. Это позволяет эффективно исследовать пространство возможных решений и находить оптимальные параметры без необходимости углубляться в алгоритмы планирования эксперимента.

Практический пример интеграции расчетных цепочек ЛОГОС в DT Seven

Рассмотрим пример построения расчетной цепочки ЛОГОС по передаче нагрузок из Логос Аэро-Гидро в Логос Прочность на базе DT Seven. В качестве примера возьмем T-образную модель, в которой происходит смешивание метана и бензола при различных температурах. Соединение подвержено тепловой нагрузке и давлению от смешивающихся потоков. В таблице 1 представлены входные параметры модели, значения которых будут варьироваться в заданном диапазоне.

Оптимизация инженерных расчётов в ЛОГОС DT Seven
Рис. 3. Модель T-образного трубопровода

Таблица 1. Входные параметры модели

Входные параметры:Скорость на входе Inlet1 Vel1Скорость на входе Inlet2 Vel2Температура потока на входе Inlet1 T1Температура потока на входе Inlet2 T2
Диапазон изменения параметров0.1 м/c < Vel1 < 1 м/c1 м/c < Vel2 < 15 м/c280 К < T1 < 300 К350К < T2 < 400 К

На данной модели выполним оптимизацию по нескольким критериям:

  • Температура потока в выходном отверстии T_out → Max
  • Максимальные напряжения Stress → Min
  • Uniformity Index (коэффициент перемешивания см. формула 1) в выходном отверстии → Max
  • Ограничение на объемную долю метана на выходе 0.78 < φch4< 0.82

где φi – локальное значение объемной доли метана;
φch4 – среднее значение объемной доли метана на выходе Outlet;
UI – индекс перемешивания, принимающий значения от 0 (полностью неравномерное распределение) до 1 (идеально равномерное распределение);
Ai– площадь ячейки.

Свойства материала T-образного трубопровода: E = 2 ×10^11 Па, μ = 0.3, λ = 16.27 Вт / (м2×K),
ρ = 8030 кг/м3. В качестве модели турбулентности для CFD-региона выбрана модель k-omega SST, заданы физические модели: модель многофазности – односкоростная VOF модель, модель энергии, модель гравитации, постановка задачи стационарная.
Давление на выходе Poutlet = 10^5 Па.

Расчетная цепочка. Схема расчетной цепочки состоит из двух основных блоков – блок DSE и блок Composite (ниже переименован как Logos_Solver):

Рис. 4. Расчетная цепочка

Далее подробнее рассмотрим блок Composite. Этот блок является контейнером для других блоков, тем самым, группирует вложенные блоки в соответствии с логикой построения расчетной схемы. Расчет в цепочке блоке Composite состоит из нескольких этапов: [0] – входные [In] и выходные порты [Out] блока Composite, в нем определяются входные параметры Vel1, Vel2, T1, T2 и выходные параметры T_out, Stress, Uniformity Index, φch4; блок прямой интеграции Logos для расчетного модуля Логос Аэро-Гидро и блок Text yaml_reader для изменения параметров модели, недоступных в блоке Logos; [2] – блоки постобработки данных, полученных в ходе CFD расчета и передачи нагрузок из Логос Аэро-Гидро в Логос Прочность (передача осуществляется через файл command.xml); [3] – блок общей интеграции Program для запуска расчета в Логос Прочность; [4] – блоки Program для постобработки прочностной задачи в ScientificView. Блоки между собой связаны логическими портами do-done.

Рис. 5. Расчетная цепочка блока Composite

Группа блоков [1]

В блоке yaml_reader определим входные параметры в разделе Configuration, также зададим text Encoding Windows-1251 в разделе Options, определим рабочую директорию в разделе Sandbox: .\CFD_task\CFD_task_model1_files. Для чтения/записи yaml-файла можем определить рабочую директорию, отличную от рабочей директории, указанной в Sandbox.

Рис. 6. Блок yaml_reader

В блоке прямой интеграции Logos будем считывать значения с мониторов температуры потока, объемную долю метана и коэффициент перемешивания на выходе (для этого предварительно в проекте Логос Аэро-Гидро нужно создать соответствующие мониторы величин). Поскольку значения с мониторов представляют собой 2-D массивы, необходимо в блоке Python считать значения на последнем шаге итерации.

Рис. 7. Блок прямой интеграции Logos

Группа блоков [2]

Ниже представлен листинг кода для считывания значений с мониторов на последнем шаге итерации блока Python Result A-G и листинг кода для передачи нагрузок из Логос Аэро-Гидро в Логос Прочность Python A-G_to_SA.

Листинг 1. Блок Result A-G

temp_out = temp_out_arr[-1][-1]
uniformity_index = uniformity_index_arr[-1][-1]
vf = vf_arr[-1][-1]

Для блока Result A-G выходными портами являются переменные temp_out, uniformity_index и vf; входными temp_out_arr, uniformity_index_arr, vf_arr.

Листинг 2. Блок Result A-G

import pandas as pd
import os
import re
from shutil import copy

folder_path = “CFD_task\\CFD_task_model1_files”
# Шаблон для поиска нужных файлов
pattern = re.compile(r’model1_PatchData_(\d+)\.Int_fluid.dat$’)

latest_file = None
max_number = -1

# Перебираем файлы в папке
for filename in os.listdir(folder_path):
    result_match = pattern.match(filename)

if result_match:
        number = int(result_match.group(1))
        if number > max_number:
            max_number = number
           latest_file = filename

            number_000 = result_match.group(1)

file_path = os.path.join(folder_path, latest_file)
               df = pd.read_csv(file_path, delim_whitespace=True)

# Удалим указанные колонки
df_cleaned = df.drop(columns=[“Step”, “Sf”, “Yplus”]

# Удалим первые строки очищенного DataFrame
df_cleaned.head()

# Функция форматирования в экспоненциальный стиль с фиксированной длиной
def format_row(row):
    return ‘  ‘.join([f”{x: .7E}” for x in row])

# Путь до проекта в Логос Прочность
output_path = “SA\\SA_model1_files\\model1-solution-1”
out_file = os.path.join(output_path, “pressure_data.dat”)

with open(out_file, ‘w’) as f:
    for _, row in df_cleaned.iterrows():
        f.write(format_row(row) + ‘\n’)

# Выполнение копирования lkg файлов в проект Логос Прочность
lgk_file_name = f”T_{number_000}.lgk”
file_path_lgk = os.path.join(folder_path, lgk_file_name)
copy(file_path_lgk, os.path.join(output_path, “lgk_last_results.lgk”))

Блок [3]

В блоке Logos SA определим путь до исполняемого файла решателя в разделе Configuration. В разделе Sandbox определим путь до директории проекта: .\SA\SA_model1_files\model1-solution-1

Рис. 8. Блок Logos SA

Группа блоков [4]

В блоке Program ScientificView определим путь до исполняемого файла постобработчика ScientificView с указанием следующих ключей: -i @{sandbox}\model1.yaml – путь до входного файла Логос Прочность (рабочая директория в Sandbox – директория проекта Логос Прочность), -screen – ключ закрывает окно ScientificView после выполнения команд по обработке данных, -script_f Find_Maximum.py – путь до файла с макрокомандами ScientificView на ЯП python. Скрипт Find_Maximum.py можно расположить либо в директории проекта Логос Прочность, либо указать путь для Prototype до директории со скриптом в разделе Sandbox. После выполнения команд по постобработке сохраняем максимальные напряжения и перемещения в блок Text reader, затем эти значения передаются на выходные порты блока Composite.

Рис. 9. Блок ScientificView
Листинг 3. Скрипт макрокоманд ScientificView.

#находим количество временных шагов
timestep = getTimeStepCount()

#Получаем доступ к нерег. мат. области
irregArea= getElemByName(‘Нерегулярная область 1’)
nameArea = irregArea.getName();
TimeStep=2
setTimeStep(TimeStep)

resMax = []

#Устанавливаем отображаемую величину
ArrayName = “Displacement”
vec = 4
irregArea.showArray(ArrayName, vec, “node”)

tmp_max = findMax( ArrayName, vec, nameArea)
resMax += [tmp_max, ]

#Устанавливаем отображаемую величину
ArrayName = “Stress”
vec = 7
irregArea.showArray(ArrayName, vec, “cell”)

tmp_max = findMax( ArrayName, vec, nameArea)
resMax += [tmp_max, ]

fieldNames = [‘timeStep’, ‘findMax’];
saveToFile(…\\SA\\SA_model1_files\\Results.dat’, resMax);

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

В блоке Design Space Exploration определим входные и выходные данные с указанием желаемого числа точек для проведения оптимизации. Для переменных укажем диапазон варьирования параметров, для откликов укажем их тип и зададим ограничение на объемную долю метана на выходе. Поскольку по умолчанию работает техника SmartSelection, автоматически выбирается техника суррогатной оптимизации.

Рис. 10. Блок DSE для оптимизации

Необходимо соединить порты между блоками DSE и Logos_Solver, как показано на рисунке 11.

Рис. 11. Соединение портов между блоками DSE и Logos_Solver (Composite)

Результаты оптимизационного расчета

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

Рис. 12. Таблица данных, сформированная входе проведения оптимизации
Оптимизация инженерных расчётов в ЛОГОС DT Seven
Рис. 13. Графическое представление сгенерированного облака данных и определение коэффициент корреляции между входными и выходными параметрами

Для визуализации полученных оптимальных точек в многомерном пространстве можно воспользоваться инструментом «Parallel coordinates». При выделении ЛКМ интересующего диапазона данных те точки, которые выходят за этот диапазон, окрашиваются в бледные цвета, что облегчает интерпретацию результатов.

Оптимизация инженерных расчётов в ЛОГОС DT Seven
Рис. 14. Оптимальные точки полученные в ходе выполнения оптимизации по нескольким критериям

Заключение

В рамках статьи был рассмотрен пример построения оптимизационной расчетной схемы с использованием модулей Логос Аэро-Гидро, Логос Прочность и постобработчика ScientificView на базе «DT Seven». Для выполнения оптимизации необходим комплексный подход, включающий автоматизацию расчетов, методы планирования экспериментов и современные алгоритмы поиска оптимальных решений. Инструменты «DT Seven» позволяют реализовать этот подход, снижая вероятность ошибок и сокращая сроки проектирования.

         Можно выделить следующие основные преимущества и функциональные возможности при работе с оптимизационными задачами в «DT Seven»:

  • Автоматизация инженерных расчётов. Построение расчётных схем обеспечивает полный цикл — от подготовки данных до анализа результатов. Это исключает необходимость ручного перебора параметров и снижает вероятность ошибок.
  • Однокритериальная и многокритериальная оптимизация. Блок Design Space Exploration позволяет одновременно учитывать несколько целевых показателей и ограничений. Такой подход помогает находить баланс между конкурирующими параметрами и формировать набор оптимальных решений, из которых инженер может выбрать наиболее подходящее.
  • Техника SmartSelection. Этот инструмент автоматически подбирает наиболее эффективные алгоритмы планирования эксперимента, что избавляет инженера от необходимости глубоко погружаться в математический аппарат и позволяет быстрее находить качественные решения.

Таким образом, использование DT Seven предоставляет инженеру универсальный и надежный инструмент, который сочетает автоматизацию, гибкость в работе.

Подробное рассмотрение данных видов расчётов, включая их теоретические основы и практическое применение, представлено в вебинаре “Создание автоматизированных расчетных схем Логос на базе DT Seven”

Получить консультацию

Заполните форму прямо сейчас, и мы свяжемся с Вами!

* Обязательные поля для заполнения

13 октября, 2025
# Темы