Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

WB. Подбор свойств материала с учетом экспериментальных полей температур.

16 сообщений / 0 новое
Последняя публикация
DmitryB
Аватар пользователя DmitryB

Есть задача: Стержень нагревается с одного и охлаждается с другого торца, с боков он теплоизолирован. По длине стержня установлены термопары (3 шт) в заданых координатах. Требуется найти зависимость от температуры для коэф. теплопроводности материала стержня при котором расчетные температуры дают лучшее совпадение с экспериментальными в местах размещения термопар. Вопрос: как решить такую задачу в пакете Workbench?

Sergey Khrulev
Аватар пользователя Sergey Khrulev

Здравствуйте!

Коэффициент теплопроводности, как и другие свойства материала, как правило, являются входными данными для тепловой задачи в ANSYS. Результатом является распределение температур.

Обратную задачу можно решить при помощи параметров (Parameter Set или еще дальше - DesignExplorer), правда, к сожалению, параметром в Engineering Data может быть только постоянный коэффициент теплопроводности. Думаю, что можно попробовать задать табличную зависимость данного коэффициента от температуры через командную вставку на APDL, а уже в ней использовать параметризацию. 

Gennady
Аватар пользователя Gennady

Еще подумайте над целевой функцией. Как вариант - минимизация свреднеквадратичного отклонения температур по точкам размещения термопар. 

DmitryB
Аватар пользователя DmitryB

Наверняка для решения такой задачи потребуется создать цикл (запуск- изменение модели- запуск). Возникает вопрос: как в  Workbench из скрипта запускать и останавливать расчет и узнавать о его завершении ?

Gennady
Аватар пользователя Gennady

Скрипт не нужен. WB совместно с DX автоматически изменяет набор параметров и запускает новый расчет. Посмотрите видео:
http://cae-club.ru/videos/parametricheskaya-optimizaciya-v-ansys-workbench

 

DmitryB
Аватар пользователя DmitryB

Я тоже думал использовать МНК(метод наименьших квадратов), что и предложил ув. Gennady. Я хочу коэф. теплопроводности(КТ) материала задавать в виде полинома N-й степнеи, где N- число температурных точек в зависимости КТ от темп-ры. Тогда число параметров будет N. Реально мне требуется 12 точек. 

Ув. Sergey Khrulev , предположил, что " можно попробовать задать табличную зависимость данного коэффициента от температуры через командную вставку на APDL, а уже в ней использовать параметризацию.

Можно подробней про вариант от Sergey Khrulev . В какой узел дерева модели ее добавлять? Какой у нее может быть вид ? И еще как правильно объявить переменную-параметр для ее использования в DX и скрипте APDL ? 

DmitryB
Аватар пользователя DmitryB

На часть своих вопросов выше я нашел ответы: 

1. Скрипт APDL с заданием свойств теплопроводности добавлять в узел Geometry для требуемого тела типа Solid.

2. Чтобы параметры в скриптах APDL были понятны Менеджеру параметров Ansys нужно придерживаться соглашения по их наименованию: все выходные параметры должны начинаться с “Output Search Prefix”( по умолчанию это символы "my_"). Этот префикс можно изменить в разделе "Definition". Он доступен в окне просмотра свойств объекта командного скрипта APDL при его выборе в дереве модели. А все входные задаются системными переменными из диапазона: (ARG1-ARG9). 

3. Свойства материалу можно задать скриптом вида:

/PREP7

!Цикл задания значений для свойства LAM
*DO,m,sti,mRows,1                                                               !цикл по строкам в массиве MATERIAL_A
    MPTEMP,m,MATERIAL_A(m,mat_temper_Col)                !температура m-lam
    MPDATA,KXX,1,,LAM_MINA(m)                                        !значение lam при m-температуре 
*ENDDO

FINISH

Массив MATERIAL_A  содержит список из температурных точек в которых задаются значения теплопроводности lam. Массив LAM_MINA содержит расчитанные через полином N-й степени значения lam. Тут возникает несколько вопросов:

1. Если для входных параметров выделен диапазон (ARG1-ARG9), т.е. я могу задать с их помощью полином 8 степени. У меня N=12. Можно как то это обойти?

2. Мне нужно в скрипт APDL передать значения температурных точек для расчета lam в них. Как это сделать? Может, можно из внешнего файла их прочитать ?

3. Возможно в скриптах APDL получать доступ к объектам нагрузок задаваемых стандартными средствами Workbench ? Например, я создал в дереве модели свои температурные датчики(описываемые объектами типа Temperature) и хочу в скрипте APDL прочитать табличные значения температур из них. Как это сделать ?

4. Ув. Gennady обратил внимание на вид целевой ф-ции для DX. А как ее можно задать в самом DX ? К сожалению, я не увидел, из упомянутого Вами ролика пример ее задания. Может, я упустил этот момент ?

Благодарю всех за оказываемую помощь.

dvolkind
Аватар пользователя dvolkind

Здравствуйте! Мои 5 копеек:

Цитата:
1. Если для входных параметров выделен диапазон (ARG1-ARG9), т.е. я могу задать с их помощью полином 8 степени. У меня N=12. Можно как то это обойти?

Ограничение с девятью аргументами в командной вставке непреодолимо. Хелп не должен врать. Можно, конечно, заморочиться через ACT, но это геморройно. 

Вместо ответов на вопросы 2-4:

По-моему искать зависимость теплопроводности от температуры в виде полинома 12 степени - неблагодарное дело. Во-первых, полиномов 12 степени, дающих заданную температуру в трёх точках, может быть over9000. Во-вторых, оптимизатор устанет подбирать коэффициенты вследствие их высоконелинейного влияния на целевую функцию. Хотя, конечно, можно попробовать генетический алгоритм или нейронную сеть. На тот случай, если я во всём не прав, предлагаю решение для параметризации коэффициентов полинома любой степени без командных вставок, СМС и регистрации:

1) В Engineering Data ставим параметризующую галку напротив теплопроводности:

2) В менеджере параметров объявляем дополнительные входные параметры, которые будут соответствовать коэффициентам полинома;

3) В поле ввода параметризованного значения теплопроводности составляем выражение из этих параметров.

Будет примерно так:

В общем, этим

Цитата:
параметром в Engineering Data может быть только постоянный коэффициент теплопроводности

Сергей вас немного дезориентировал. Он сожалеет.

Целевую функцию можно задать аналогичным образом, создав Probe для каждой из трёх точек и напечатав выражение для вычисления суммы квадратов отклонений на основе трёх выходных параметров.

DmitryB
Аватар пользователя DmitryB

Ув. dvolkind, спасибо Вам за развернутый ответ на мои вопросы. Я согласен с представленными аргументами и постараюсь их обдумать. По целевой ф-ии: я верно понял, что эти 3 объекта Probe задаются в роли выходных параметров в секции "Result"(пометкой "P"). Т.е. если их пометить "P", то они отобразяться в менеджере параметров в секции "Ouput Parametrs" ? И тогда их можно использовать в секции "Expression" для целевой ф-ии, да ?

Пытаюсь задать полином 3-й степени с коэф. из секции "Input Parametrs". Сами коэф. - параметры вводятся. Когда пишу выражение для полинома в секции "Expression" получаю ошибку:

"Replace power with an operation that can be used with a number and a quantity with units 'W m^-1 C^-1'".

Ввожу такую строку: P3+P4*P2+P5*P2**2+P6*P2**3 [W m^-1 C^-1]

Я пробовал ввести строку "P3" и "P3 [W m^-1 C^-1]" и постоянно пишет про нарушение синтаксиса ввода единиц.

Как правильно ее ввести ?
 

dvolkind
Аватар пользователя dvolkind

Цитата:
3 объекта Probe задаются в роли выходных параметров в секции "Result"(пометкой "P"). Т.е. если их пометить "P", то они отобразяться в менеджере параметров в секции "Ouput Parametrs" ? И тогда их можно использовать в секции "Expression" для целевой ф-ии, да ?

Да.

Цитата:
Как правильно ее ввести ?

Проще всего все параметры сделать безразмерными, всё выражение взять в скобки и умножить на 1 [W m^-1 C^-1].

Но всё это напрасно - я осознал, что ошибся. СЕРГЕЙ БЫЛ ПРАВ!!! Полином-то задать можно, но для каждой расчётной точки теплопроводность всё равно будет константой, т.к. локальная температура не передастся в качестве аргумента в полученное выражение. Я ещё подумаю, как это обойти, но, скорее всего, придётся городить командные вставки. Либо перейти на CFX - там это всё элементарно делается.
 

dvolkind
Аватар пользователя dvolkind

В общем, через Engineering Data никак не получится, зря вам голову заморочил. На мой взгляд, если задача чисто теплопроводности, то проще всего её решить в CFX. Там своя система работы с выражениями, и параметризовать можно практически всё, что угодно.

Тема закрыта