Задача на теплорасчет

diras

Добрый день!
Есть среди форумчан уверенные пользователи пакетов расчета теплопередачи ?
Есть небольшая задачка, но поскольку такими пакетами я ни разу не пользовался есть вопросы.
Спасибо!

sashok01

выкладывай, что за задача. Может там простая геометрия и какой-нибудь ансис её запросто посчитает.

diras

На стеклянном столе лежит длинный металлический брусок на котором выделяется N ватт.
Необходимо посчитать поток тепла который идет в стол.
Затем к торцам бруска пододвигают два больших металлических куба.
Нужно посчитать поток тепла идущий в них.
Наконец при изменении длины бруска оценить как меняются эти потоки.

sashok01

нужно ли учитывать конвекцию, наличие воздуха? Передаётся ли тепло излучением, или только теплопроводностью?

diras

в первом приближении конвекции и излучения нет, только теплопроводность, а температура подложки и массивных кубов комнатная.

sashok01

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

diras

все верно, но т.к. потом в задачу добавляются кубы, вероятно имеет смысл сразу считать 3d.
правильно я понял, что Ansys такое умеет ?
пошел скачивать..)

sashok01

ну вообще должен уметь решать, просто кмк он больше заточен под мдтт/гидродинамику. Наверняка для тепловых расчетов есть более специфичный софт.

diras

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

sashok01

Вот простенький скрипт для ансиса-классики:
 
  
/PREP7
!*
/NOPR
KEYW,PR_SET,1
KEYW,PR_STRUC,0
KEYW,PR_THERM,1
KEYW,PR_FLUID,0
KEYW,PR_ELMAG,0
KEYW,MAGNOD,0
KEYW,MAGEDG,0
KEYW,MAGHFE,0
KEYW,MAGELC,0
KEYW,PR_MULTI,0
KEYW,PR_CFD,0
/GO
!*
/COM,
/COM,Preferences for GUI filtering have been set to display:
/COM, Thermal
!*
!*
ET,1,SOLID87
!*
KEYOPT,1,1,0
KEYOPT,1,5,0
!*
!*
MPTEMP
MPTEMP,1,0
MPDATA,KXX,10.85
MPTEMP
MPTEMP,1,0
MPDATA,KXX,218

BLOCK,0,2,0,0.05,0,2,
/VIEW,1,1,1,1
/ANG,1
/REP,FAST
BLOCK,0.7,1.3,0.05,0.15,0.95,1.05,

VGLUE,ALL

VSEL, , , , 3
VATT, 1, , 1, 0
VSEL,ALL

VSEL, , , , 2
VATT, 2, , 1, 0
VSEL,ALL

SMRT,1
ESIZE,0.025,0,
MSHAPE,1,3D
MSHKEY,0
!*

VMESH,ALL

ASEL,S,AREA1,2
ASEL,A,AREA5,6
DA,ALL,TEMP,296.15
ASEL,ALL

ASEL,S,AREA9
SFA,ALL, ,HFLUX,10
ASEL,ALL
FINISH

/SOL
!*
ANTYPE,0
/STATUS,SOLU
SOLVE
FINISH
/POST1
!*
/EFACET,1
PLNSOL, TEMP 0


Что получается:

На нижней поверхности бруска задан поток тепла 10 Вт/м^2, на боковых гранях пластины - температура 296.15 К. Теплопроводность бруска 18 Вт/(м*К пластины - 0.85 Вт/(м*К). Пластина размерами 2м x 2м x 0.05м , брусок - 0.6м x 0.1м x 0.1м

sashok01

И вот скрипт для второго случая:
 

/PREP7
!*
/NOPR
KEYW,PR_SET,1
KEYW,PR_STRUC,0
KEYW,PR_THERM,1
KEYW,PR_FLUID,0
KEYW,PR_ELMAG,0
KEYW,MAGNOD,0
KEYW,MAGEDG,0
KEYW,MAGHFE,0
KEYW,MAGELC,0
KEYW,PR_MULTI,0
KEYW,PR_CFD,0
/GO
!*
/COM,
/COM,Preferences for GUI filtering have been set to display:
/COM, Thermal
!*
!*
ET,1,SOLID87
!*
KEYOPT,1,1,0
KEYOPT,1,5,0
!*
!*
MPTEMP
MPTEMP,1,0
MPDATA,KXX,10.85
MPTEMP
MPTEMP,1,0
MPDATA,KXX,218

BLOCK,0,2,0,0.05,0,2,
/VIEW,1,1,1,1
/ANG,1
/REP,FAST
BLOCK,0.7,1.3,0.05,0.15,0.95,1.05,

BLOCK,1.5,1.6,0.05,0.15,0.95,1.05,

BLOCK,0.4,0.5,0.05,0.15,0.95,1.05,


VGLUE,ALL

VSEL, , , , 5
VATT, 1, , 1, 0
VSEL,ALL

VSEL, , , , 2,4
VATT, 2, , 1, 0
VSEL,ALL

SMRT,1
ESIZE,0.025,0,
MSHAPE,1,3D
MSHKEY,0
!*

VMESH,ALL

ASEL,S,AREA1,2
ASEL,A,AREA5,6
ASEL,A,AREA16
ASEL,A,AREA22
DA,ALL,TEMP,296.15
ASEL,ALL

ASEL,S,AREA9
SFA,ALL, ,HFLUX,10
ASEL,ALL
FINISH

/SOL
!*
ANTYPE,0
/STATUS,SOLU
SOLVE
FINISH
/POST1
!*
/EFACET,1
PLNSOL, TEMP 0

Вот что получается:
Температура:

Составляющая притока тепла по Y на поверхности пластины:

Полный приток тепла на поверхности пластины:

Температура 296.15 К задана на верхних поверхностях кубов и боковой поверхности пластины, на нижней поверхности бруска задан тот же поток тепла 10 Вт/(м^2). Проводимость кубов такая же, как у бруска, 18 Вт/(м*К у пластины - 0.85 Вт/(м*К)
ПС. Если что, я не спец в тепловых расчетах, лучше проконсультируйся ещё с кем-то. Программа - это хорошо, но тут самое главное - интерфейс между программой и реальной задачей, то есть человек. Я в ансисе теплопроводность раньше не считал (как-то больше мдтт занимаюсь задачу машине ставил из соображений разумности и того, что помню из курса мсс про теплопроводность. Например, мне непонятно, почему в решении поток тепла от нагревателя получается неравномерный и максимальный у границы - должно ли быть так на самом деле или нет.

diras

Спасибо!
чуть поправил геометрию
 /PREP7  
!*
/NOPR
KEYW,PR_SET,1
KEYW,PR_STRUC,0
KEYW,PR_THERM,1
KEYW,PR_FLUID,0
KEYW,PR_ELMAG,0
KEYW,MAGNOD,0
KEYW,MAGEDG,0
KEYW,MAGHFE,0
KEYW,MAGELC,0
KEYW,PR_MULTI,0
KEYW,PR_CFD,0
/GO
!*
/COM,
/COM,Preferences for GUI filtering have been set to display:
/COM, Thermal
!*
!*
ET,1,SOLID87
!*
KEYOPT,1,1,0
KEYOPT,1,5,0
!*
!*
MPTEMP
MPTEMP,1,0
MPDATA,KXX,10.85
MPTEMP
MPTEMP,1,0
MPDATA,KXX,218

BLOCK,0,2,0,0.05,0,2,
/VIEW,1,1,1,1
/ANG,1
/REP,FAST
BLOCK,0.5,0.7,0.05,0.15,0.95,1.05,

BLOCK,0.7,1.0,0.05,0.25,0.85,1.15,

BLOCK,0.2,0.5,0.05,0.25,0.85,1.15,


VGLUE,ALL

VSEL, , , , 5
VATT, 1, , 1, 0
VSEL,ALL

VSEL, , , , 2,4
VATT, 2, , 1, 0
VSEL,ALL

SMRT,1
ESIZE,0.025,0,
MSHAPE,1,3D
MSHKEY,0
!*

VMESH,ALL

ASEL,S,AREA1,2
ASEL,A,AREA5,6
ASEL,A,AREA16
ASEL,A,AREA22
DA,ALL,TEMP,296.15
ASEL,ALL

ASEL,S,AREA9
SFA,ALL, ,HFLUX,10
ASEL,ALL
FINISH

/SOL
!*
ANTYPE,0
/STATUS,SOLU
SOLVE
FINISH
/POST1
!*
/EFACET,1
PLNSOL, TEMP 0


Подскажи пожалуйста в каком месте задается поверхность через которую разрешена теплопередача и где можно посмотреть величину потоков ?

diras

аа, стоп, нашел, что поток задается, а ведь мне его наоборот надо вычислить..

sashok01

а что тогда задается? первоначально ты говорил о выделяемой нагревателем мощности. Сейчас в скрипте задаётся как раз величина размерности Вт/м^2 на нижней поверхности нагревателя. Это тут:
 
ASEL,S,AREA9
SFA,ALL, ,HFLUX,10
ASEL,ALL

diras

задана выделяемая мощность в бруске, материалы бруска, стола и куба, наличие только теплопроводности,
начальная температура стола и кубов равна 25С, они достаточно массивные и на их внешних гранях (нижней поверхности стола и дальних торцах кубов, не соприкасающихся с бруском) температура постоянна.
необходимо посчитать поток тепла в стол через нижнюю сторону бруска и поток тепла через боковую грань в куб и сравнить их.

sashok01

Я что-то не до конца понимаю. Поток тепла имеет как раз размерность мощности же, я вот его и задаю, что не так? Вопрос только в локализации места выделения этой мощности? То есть например, ты хочешь всю мощность нагревателя "размазать" по всей боковой поверхности нагревателя? Или выделять тепло где-то внутри нагревателя, скажем, в небольшом шаре около центра масс нагревателя? Или вообще в одном расчетном узле?

diras

на самом деле это джоулево тепло, которое определяется протекающим по бруску током.
поток будет разным т.к. в одном случае это граница металл-металл а в другом металл-стекло.
т.е. задача сравнить отводимое тепло по этим двум каналам при изменении длины бруска.

sashok01

Как ты предлагаешь задавать "нагрузку"?

diras

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

sashok01

Можно задать приток тепла не на границе нагревателя, а внутри - в одном или нескольких узлах (а может даже во всех). Тогда это будут задаваться не граничные условия, а правая часть уравнения теплопроводности. А куда сколько потечёт - смотреть по решению. Так пойдёт?
Вообще, мне кажется, что нужно сначала сформулировать задачу математически. Уравнение теплопроводности - второго порядка, поэтому граничные условия могут быть или в виде условий на температуру (1-го рода или в виде условий на производные от температуры (2-го рода или комбинация первых двух условий (смешанные граничные условия, иногда называются как условия 3-го рода). По умолчанию там, где ничего не задано, ансис ставит условия 2-го рода (нулевой поток тепла через границу). Нужно понять, как правильно задавать условия, какой вариант ближе к реальности.

diras

думаю да, т.е. можно на бруске задать выделяющееся тепло, а потом в центре кубов и на нижней границе стола сделать "черную дыру" в которой бесконечно это тепло поглощается и по решению посотреть сечения потоков ? так ?
вроде то, что надо

sashok01

Черную дыру? Т.е правую часть уравнения, но с отрицательным знаком? А откуда ты узнаешь, куда сколько потечёт - понятно, что в кубы потечёт одинаково, но как относительно стола?
Кмк правильнее задавать правую часть только в нагревателе, а остальное не трогать.

diras

вероятно так и надо.
вообще по идее в кубы должно быть эффективнее, там теплопроводность в 300 раз лучше, т.к. тот же материал.

sashok01

Вот переделанный скрипт:
 
  
/PREP7
!*
/NOPR
KEYW,PR_SET,1
KEYW,PR_STRUC,0
KEYW,PR_THERM,1
KEYW,PR_FLUID,0
KEYW,PR_ELMAG,0
KEYW,MAGNOD,0
KEYW,MAGEDG,0
KEYW,MAGHFE,0
KEYW,MAGELC,0
KEYW,PR_MULTI,0
KEYW,PR_CFD,0
/GO
!*
/COM,
/COM,Preferences for GUI filtering have been set to display:
/COM, Thermal
!*
!*
ET,1,SOLID278
!*
ET,2,SOLID87
!*
KEYOPT,1,3,0
KEYOPT,1,8,0
!*
KEYOPT,2,1,0
KEYOPT,2,5,0
!*

MPTEMP
MPTEMP,1,0
MPDATA,KXX,10.85
MPTEMP
MPTEMP,1,0
MPDATA,KXX,218

BLOCK,0,2,0,0.05,0,2,
/VIEW,1,1,1,1
/ANG,1
/REP,FAST
BLOCK,0.5,0.7,0.05,0.15,0.95,1.05,

BLOCK,0.7,1.0,0.05,0.25,0.85,1.15,

BLOCK,0.2,0.5,0.05,0.25,0.85,1.15,


VGLUE,ALL

VSEL, , , , 7
VATT, 1, , 2, 0
VSEL,ALL

VSEL, S,VOLU , , 2,
VATT, 2, , 1, 0
VSEL,ALL

VSEL, S,VOLU , , 5,6
VATT, 2, , 2, 0
VSEL,ALL

SMRT,1
ESIZE,0.025,0,

MSHAPE,0,3D
MSHKEY,1
VMESH,2

VSEL,S,VOLU5,7
MSHAPE,1,3D
MSHKEY,0
VMESH,ALL
VSEL,ALL

ASEL,S,AREA1,2
ASEL,A,AREA5,6

!* нужно это раскомментировать, если задаём температуру на внешних границах кубов
!*ASEL,A,AREA19,20
!*ASEL,A,AREA22,23

!*ASEL,A,AREA13,14
!*ASEL,A,AREA16
!*ASEL,A,AREA18

DA,ALL,TEMP,296.15
ASEL,ALL

VSEL,S,VOLU2
NSLV,S,1
*GET,NUM_NODES,NODE,0,COUNT
F,ALL,HEAT,100/NUM_NODES
NSEL,ALL
VSEL,ALL

FINISH

/SOL
!*
ANTYPE,0
/STATUS,SOLU
SOLVE
FINISH
/POST1
!*
/EFACET,1
PLNSOL, TEMP 0

Если на внешних сторонах кубов ничего не задавать, то получается так:

Если же раскомментировать участок кода и задавать на границах кубов комнатную температуру, то получается так:

Нагрузка задаётся тут:
 
 
VSEL,S,VOLU2
NSLV,S,1
*GET,NUM_NODES,NODE,0,COUNT
F,ALL,HEAT,100/NUM_NODES
NSEL,ALL
VSEL,ALL

То есть выбирается объём номер 2 (нагреватель выбираются все узлы, принадлежащие ему, в переменную NUM_NODES записывается их количество, в каждый узел задаётся приток тепла 100/NUM_NODES, то есть нагреватель работает в режиме 100 Вт.
Притоки тепла смотреть так:
 
/POST1
VSEL,S, , , 2
ESLV,S
EPLOT
!* смотреть компоненту притока тепла по X:
PLESOL, TF,X, 0
/REPLO

diras

Спасибо!
Буду разбираться.
Оставить комментарий
Имя или ник:
Комментарий: