Оцените поток тепла теплового решения в узловых или произвольных пространственных местоположениях
[ возвращает поток тепла для тепловой проблемы в 2D точках, заданных в qx,qy]
= evaluateHeatFlux(thermalresults,xq,yq)xq и yq. Этот синтаксис допустим и для установившихся и для переходных тепловых моделей.
[___] = evaluateHeatFlux( возвращает поток тепла для тепловой проблемы в 2D или 3-D точках, заданных в thermalresults,querypoints)querypoints. Этот синтаксис допустим и для установившихся и для переходных тепловых моделей.
[___] = evaluateHeatFlux(___, возвращает поток тепла для тепловой проблемы во времена, заданные в iT)iT. Можно задать iT после входных параметров в любом из предыдущих синтаксисов.
Первая размерность qxqy , и, в 3-D случае, qz соответствует точкам запроса. Второе измерение соответствует временным шагам iT.
[ возвращает поток тепла для 2D проблемы в узлах треугольной mesh. Первая размерность qx,qy]
= evaluateHeatFlux(thermalresults)qx и qy представляет индексы узла. Второе измерение представляет временные шаги.
[ возвращает поток тепла для 3-D тепловой проблемы в узлах четырехгранной mesh. Первая размерность qx,qy,qz]
= evaluateHeatFlux(thermalresults)qxqy , и qz представляет индексы узла. Второе измерение представляет временные шаги.
Для 2D установившейся тепловой модели оцените поток тепла в узловых местоположениях и в точках, заданных x и y координаты.
Создайте тепловую модель для установившегося анализа.
thermalmodel = createpde('thermal');Создайте геометрию и включайте ее в модель.
R1 = [3,4,-1,1,1,-1,1,1,-1,-1]'; g = decsg(R1,'R1',('R1')'); geometryFromEdges(thermalmodel,g); pdegplot(thermalmodel,'EdgeLabels','on') xlim([-1.5 1.5]) axis equal

Предположение, что эта геометрия представляет железную пластину, теплопроводность .
thermalProperties(thermalmodel,'ThermalConductivity',79.5,'Face',1);
Примените постоянную температуру 500 K к нижней части пластины (ребро 3). Кроме того, примите, что верхняя часть пластины (ребро 1) изолируется, и примените конвекцию на две стороны пластины (ребра 2 и 4).
thermalBC(thermalmodel,'Edge',3,'Temperature',500); thermalBC(thermalmodel,'Edge',1,'HeatFlux',0); thermalBC(thermalmodel,'Edge',[2 4], ... 'ConvectionCoefficient',25, ... 'AmbientTemperature',50);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel); results = solve(thermalmodel)
results =
SteadyStateThermalResults with properties:
Temperature: [1541x1 double]
XGradients: [1541x1 double]
YGradients: [1541x1 double]
ZGradients: []
Mesh: [1x1 FEMesh]
Оцените поток тепла в узловых местоположениях.
[qx,qy] = evaluateHeatFlux(results);
figure
pdeplot(thermalmodel,'FlowData',[qx qy])
Создайте сетку, заданную x и y координаты, и оценивают поток тепла к сетке.
v = linspace(-0.5,0.5,11); [X,Y] = meshgrid(v); [qx,qy] = evaluateHeatFlux(results,X,Y);
Измените qTx и qTy векторы и график получившийся поток тепла.
qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); figure quiver(X,Y,qx,qy)

В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.
querypoints = [X(:) Y(:)]'; [qx,qy] = evaluateHeatFlux(results,querypoints); qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); figure quiver(X,Y,qx,qy)

Для 3-D установившейся тепловой модели оцените поток тепла в узловых местоположениях и в точках, заданных xY, и z координаты.
Создайте тепловую модель для установившегося анализа.
thermalmodel = createpde('thermal');Создайте следующую 3-D геометрию и включайте ее в модель.
importGeometry(thermalmodel,'Block.stl'); pdegplot(thermalmodel,'FaceLabels','on','FaceAlpha',0.5) title('Copper block, cm') axis equal

Предположение, что это - медный блок, теплопроводность блока приблизительно .
thermalProperties(thermalmodel,'ThermalConductivity',4);Применяйтесь постоянная температура 373 K к левой стороне блока (столкнитесь 1), и постоянная температура 573 K к правой стороне блока (столкнитесь 3).
thermalBC(thermalmodel,'Face',1,'Temperature',373); thermalBC(thermalmodel,'Face',3,'Temperature',573);
Примените граничное условие потока тепла к нижней части блока.
thermalBC(thermalmodel,'Face',4,'HeatFlux',-20);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel); thermalresults = solve(thermalmodel)
thermalresults =
SteadyStateThermalResults with properties:
Temperature: [12691x1 double]
XGradients: [12691x1 double]
YGradients: [12691x1 double]
ZGradients: [12691x1 double]
Mesh: [1x1 FEMesh]
Оцените поток тепла в узловых местоположениях.
[qx,qy,qz] = evaluateHeatFlux(thermalresults);
figure
pdeplot3D(thermalmodel,'FlowData',[qx qy qz])
Создайте сетку, заданную xY, и z координаты, и оценивают поток тепла к сетке.
[X,Y,Z] = meshgrid(1:26:100,1:6:20,1:11:50); [qx,qy,qz] = evaluateHeatFlux(thermalresults,X,Y,Z);
Измените qxqy , и qz векторы и график получившийся поток тепла.
qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); qz = reshape(qz,size(Z)); figure quiver3(X,Y,Z,qx,qy,qz)

В качестве альтернативы можно задать сетку при помощи матрицы точек запроса.
querypoints = [X(:) Y(:) Z(:)]'; [qx,qy,qz] = evaluateHeatFlux(thermalresults,querypoints); qx = reshape(qx,size(X)); qy = reshape(qy,size(Y)); qz = reshape(qz,size(Z)); figure quiver3(X,Y,Z,qx,qy,qz)

Решите 2D переходную задачу теплопередачи на квадратной области и вычислите тепловой поток через конвективный контур.
Создайте тепловую модель для этой проблемы.
thermalmodel = createpde('thermal','transient');
Создайте геометрию и включайте ее в модель.
g = @squareg; geometryFromEdges(thermalmodel,g); pdegplot(thermalmodel,'EdgeLabels','on') xlim([-1.2 1.2]) ylim([-1.2 1.2]) axis equal

Присвойте следующие тепловые свойства: теплопроводность , массовая плотность , и удельная теплоемкость .
thermalProperties(thermalmodel,'ThermalConductivity',100, ... 'MassDensity',7800, ... 'SpecificHeat',500);
Примените изолированные граничные условия на три ребра и свободное граничное условие конвекции на правом краю.
thermalBC(thermalmodel,'Edge',[1 3 4],'HeatFlux',0); thermalBC(thermalmodel,'Edge',2,... 'ConvectionCoefficient',5000, ... 'AmbientTemperature',25);
Установите начальные условия: универсальная комнатная температура через доменную и более высокую температуру на верхнем краю.
thermalIC(thermalmodel,25);
thermalIC(thermalmodel,100,'Edge',1);Сгенерируйте mesh и решите задачу с помощью 0:1000:200000 как вектор времен.
generateMesh(thermalmodel); tlist = 0:1000:200000; thermalresults = solve(thermalmodel,tlist)
thermalresults =
TransientThermalResults with properties:
Temperature: [1541x201 double]
SolutionTimes: [1x201 double]
XGradients: [1541x201 double]
YGradients: [1541x201 double]
ZGradients: []
Mesh: [1x1 FEMesh]
Создайте сетку, заданную x и y координаты, и оценивают поток тепла к сетке.
v = linspace(-1,1,11); [X,Y] = meshgrid(v); [qx,qy] = evaluateHeatFlux(thermalresults,X,Y,1:length(tlist));
Измените qx и qy, и постройте получившийся поток тепла для 25-го шага решения.
tlist(25)
ans = 24000
figure
quiver(X(:),Y(:),qx(:,25),qy(:,25));
xlim([-1,1])
axis equal
Решите задачу теплопередачи для следующей 2D геометрии, состоящей из квадрата и ромба, сделанного из различных материалов. Вычислите поток тепла и постройте его как векторное поле.
Создайте тепловую модель для анализа переходных процессов.
thermalmodel = createpde('thermal','transient');
Создайте геометрию и включайте ее в модель.
SQ1 = [3; 4; 0; 3; 3; 0; 0; 0; 3; 3]; D1 = [2; 4; 0.5; 1.5; 2.5; 1.5; 1.5; 0.5; 1.5; 2.5]; gd = [SQ1 D1]; sf = 'SQ1+D1'; ns = char('SQ1','D1'); ns = ns'; dl = decsg(gd,sf,ns); geometryFromEdges(thermalmodel,dl); pdegplot(thermalmodel,'EdgeLabels','on','FaceLabels','on') xlim([-1.5 4.5]) ylim([-0.5 3.5]) axis equal

Для квадратной области присвойте следующие тепловые свойства: теплопроводность , массовая плотность , и удельная теплоемкость .
thermalProperties(thermalmodel,'ThermalConductivity',10, ... 'MassDensity',2, ... 'SpecificHeat',0.1, ... 'Face',1);
Для ромбовидной области присвойте следующие тепловые свойства: теплопроводность , массовая плотность , и удельная теплоемкость .
thermalProperties(thermalmodel,'ThermalConductivity',2, ... 'MassDensity',1, ... 'SpecificHeat',0.1, ... 'Face',2);
Примите, что ромбовидная область является источником тепла с плотностью .
internalHeatSource(thermalmodel,4,'Face',2);Примените постоянную температуру сторонам квадратной пластины.
thermalBC(thermalmodel,'Temperature',0,'Edge',[1 2 7 8]);
Установите начальную температуру на .
thermalIC(thermalmodel,0);
Поймайте в сети геометрию и решите задачу.
generateMesh(thermalmodel);
Динамическое для этой проблемы очень быстро: температура достигает устойчивого состояния приблизительно за 0,1 секунды. Чтобы получить интересную часть динамики, установите время решения на logspace(-2,-1,10). Это дает 10 логарифмически расположенных с интервалами раз решения между 0,01 и 0.1. Решите уравнение.
tlist = logspace(-2,-1,10); thermalresults = solve(thermalmodel,tlist); temp = thermalresults.Temperature;
Вычислите плотность потока тепла. Постройте решение с изотермическими линиями с помощью контурного графика и постройте поток тепла векторное поле с помощью стрел.
[qTx,qTy] = evaluateHeatFlux(thermalresults); figure pdeplot(thermalmodel,'XYData',temp(:,10),'Contour','on', ... 'FlowData',[qTx(:,10) qTy(:,10)], ... 'ColorMap','hot')

thermalresults — Решение тепловой проблемыSteadyStateThermalResults возразите | TransientThermalResults объектРешение тепловой проблемы, заданной как SteadyStateThermalResults возразите или TransientThermalResults объект. Создайте thermalresults использование solve функция.
Пример: thermalresults = solve(thermalmodel)
xq — x - координирует точки запросаx- точки запроса, заданные как действительный массив. evaluateHeatFlux оценивает поток тепла в 2D точках координаты [xq(i) yq(i)] или в 3-D координате указывает [xq(i) yq(i) zq(i)]. Так xqyq , и (если есть) zq должен иметь то же количество записей.
evaluateHeatFlux преобразует точки запроса в вектор-столбцы xq(:)yq , и (если есть) zq(:). Это возвращает поток тепла в форме вектор-столбца, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, используйте reshape. Например, используйте qx = reshape(qx,size(xq)).
Типы данных: double
yq — y - координирует точки запросаy- точки запроса, заданные как действительный массив. evaluateHeatFlux оценивает поток тепла в 2D точках координаты [xq(i) yq(i)] или в 3-D координате указывает [xq(i) yq(i) zq(i)]. Так xqyq , и (если есть) zq должен иметь то же количество записей.
evaluateHeatFlux преобразует точки запроса в вектор-столбцы xq(:)yq , и (если есть) zq(:). Это возвращает поток тепла в форме вектор-столбца, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, используйте reshape. Например, используйте qy = reshape(qy,size(yq)).
Типы данных: double
zq — z - координирует точки запросаz- точки запроса, заданные как действительный массив. evaluateHeatFlux оценивает поток тепла в 3-D точках координаты [xq(i) yq(i) zq(i)]. Так xqyq , и zq должен иметь то же количество записей.
evaluateHeatFlux преобразует точки запроса в вектор-столбцы xq(:)yq , и (если есть) zq(:). Это возвращает поток тепла в форме вектор-столбца, одного размера. Чтобы гарантировать, что размерности возвращенного решения сопоставимы с размерностями точек исходного запроса, используйте reshape. Например, используйте qz = reshape(qz,size(zq)).
Типы данных: double
querypoints — Точки запросаТочки запроса, заданные как действительная матрица с двумя строками для 2D геометрии или тремя строками для 3-D геометрии. evaluateHeatFlux оценивает поток тепла в точках координаты querypoints(:,i), так каждый столбец querypoints содержит точно одну 2D или 3-D точку запроса.
Пример: Для 2D геометрии, querypoints = [0.5 0.5 0.75 0.75; 1 2 0 0.5]
Типы данных: double
iT — Индексы времениИндексы времени, заданные как вектор положительных целых чисел. Каждая запись в iT задает индекс времени.
Пример: iT = 1:5:21 задает каждый пятый такт до 21.
Типы данных: double
qx — x - компонент потока теплаx- потока тепла, возвращенного как массив. Первое измерение массива представляет индекс узла. Второе измерение массива представляет временной шаг.
Для точек запроса, которые являются вне геометрии, qx = NaN.
qy — y - компонент потока теплаy- потока тепла, возвращенного как массив. Первое измерение массива представляет индекс узла. Второе измерение массива представляет временной шаг.
Для точек запроса, которые являются вне геометрии, qy = NaN.
qz — z - компонент потока теплаz- потока тепла, возвращенного как массив. Первое измерение массива представляет индекс узла. Второе измерение массива представляет временной шаг.
Для точек запроса, которые являются вне геометрии, qz = NaN.
SteadyStateThermalResults | ThermalModel | TransientThermalResults | evaluateHeatRate | evaluateTemperatureGradient | interpolateTemperature
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.