Лайфхаки Ansys Mechanical: как экспортировать несколько результатов за раз в параметрических расчётах

Лайфхаки Ansys Mechanical: как экспортировать несколько результатов за раз в параметрических расчётах

Когда мы обрабатываем результаты параметрических расчётов, то обычно имеем дело с отдельными значениями числовых параметров, которые показывают обобщённую картину результатов. Но иногда возникает необходимость более подробно изучить распределения, которые не выводятся в итоговую таблицу. Один из способов это сделать – поставить галочку в столбце “Retain” (сохранить) для интересующей нас точки в таблице конфигураций модели (Table of Design Points), как показано на рисунке ниже.

необходимость более подробно изучить распределения

ANSYS Mechanical

Дальше всё просто – открываем ANSYS Mechanical и смотрим результаты для ранее выбранной конфигурации. Недостатком такого варианта является то, что для каждой конфигурации будут сохраняться объёмные файлы результатов.

Если же вы просто хотите экспортировать некоторые данные в текстовый файл для каждой конфигурации, не сохраняя все файлы результатов, можно воспользоваться APDL-командами (APDL – Ansys Parametric Design Language). В качестве примера рассмотрим нестационарный тепловой расчёт простой модели, показанной на рисунке ниже:

В качестве примера рассмотрим нестационарный тепловой расчёт простой модели

В этой модели заданы три системы координат, определяющие точки, для которых мы хотим вывести изменение температуры с течением времени:

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

Отдельный расчёт (без параметров)

В случае отдельного расчёта для этих целей можно воспользоваться встроенным инструментом Temperature Probe, как показано ниже:

В случае отдельного расчёта для этих целей можно воспользоваться встроенным инструментом Temperature Probe

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

Во-первых, для этого нам нужно задать ряд подготовительных настроек: для каждой системы координат определяем “APDL Name”, как показано на рисунке ниже. Это понадобится для экспортирования значений температуры в интересующей точке.

для этого нам нужно задать ряд подготовительных настроек: для каждой системы координат определяем “APDL Name”

Использование APDL-команд

В представленном ниже примере APDL-команд я использовал обозначения систем координат “cs1”, “cs2” и “cs3”, чтобы было удобно реализовать цикл.

В разделе “Solution” необходимо добавить APDL-команды (Insert > Commands) такого содержания:

/post26                                     ! Входим в постпроцессор.
file,file,rth                                  ! Читаем файл результатов file.rth.
*do,i,1,3                                    ! Цикл по трём системам координат (СК):
csys,cs%i%                             ! Сменить активную СК на cs1, cs2, cs3.
mynode=node(0,0,0)                  ! Найти номер узла, ближайшего к началу СК.
nsol,2,mynode,temp                  ! Задать номер переменной (2) для значения
                                               ! температуры в узле.
store,merge                              ! Сохранить результат в базе данных.
*get,size,vari,,nsets                   ! Получить число шагов нагрузки.
*dim,temps_cs%i%,array,size    ! Создать массив.
vget,temps_cs%i%(1),2             ! Сохранить переменную 2 в массиве.
*enddo                                     ! Конец цикла по системам координат.
*dim,timearr,array,size              ! Задать массив для значений времени.
vget,timearr(1),1                       ! Сохранить время в массиве.

! Поиск строки «\dp» в названии рабочей папки расчёта.
dpFolder = '\dp'
dpLoc = STRPOS(_wb_SolverFiles_dir(1),dpFolder)
! Получаем 6 знаков после строки «\dp».
CutPath = STRSUB(_wb_SolverFiles_dir(1),dpLoc+3,6)
! Поиск расположения «\» (конец названия папки).
DirSepLoc = STRPOS(CutPath,'\')
! Выделяем название папки (конфигурации).
dpNb = STRSUB(CutPath,1,DirSepLoc-1)
! Создаём файл *.csv в папке «user_files» проекта Workbench.
*cfopen,'%_wb_userfiles_dir(1)%\Temperature_curves_dp%dpNb%',csv
! Запись данных в файл в выбранном формате.
*vwrite
('Time',';','Temp_cs1',';','Temp_cs2',';','Temp_cs3')
*vwrite,timearr(1),temps_cs1(1),temps_cs2(1),temps_cs3(1)
(f12.3,';',f12.3,';',f12.3,';',f12.3)
*cfclose

Первая часть команд служит для получения результатов, а вторая – для записи их в *.csv файл

Первая часть команд служит для получения результатов, а вторая – для записи их в *.csv файл. Команды в начале второй части получают номер конфигурации, который затем добавляется к названию создаваемого файла с результатами. Файл сохраняется в папке “user_files” нашего проекта. И, когда всё посчитается, мы получим несколько файлов с сохранёнными результатами:

Файл сохраняется в папке “user_files” нашего проекта

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

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

Если вы хотите узнать больше о моделировании в Ansys Mechanical и хотите пройти обучение, узнать условия лицензирования Ansys продуктов, свяжитесь пожалуйста с официальным дистрибьютером Ansys в Украине, компанией Софт Инжиниринг Групп. Чтобы не пропустить статьи Ansys, рекомендуется подписаться на Fb страницу.

Нам важно получить от вас обратную связь – это поможет нам лучше подготавливать материалы. Оставляйте свои комментарии, вопросы и предложения под статьей или можете написать на E-mail:

Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

 

Источник: www.ansys.soften.com.ua


Печать   E-mail