Тепловое моделирование светодиодов (как решить уравнение теплопроводности с постоянным источником тепла)

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

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

Температура перехода светодиода должна поддерживаться ниже определенной температуры. Тепловая система будет состоять из соединения светодиода с термопрокладкой, печатной платы и механической конструкции. Тепловое сопротивление указано для соединения с термопрокладкой (около 10 К/Вт), и производитель предлагает несколько различных конструкций печатных плат, каждая из которых имеет свое собственное тепловое сопротивление. Наилучшая конструкция может достигать 3-4 кВт/Вт, но возможна и менее дорогая конструкция. Поэтому мне нужно тепловое сопротивление механического корпуса, которое уже существует и не может быть изменено, кроме как прикрепить светодиоды к корпусу.

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

Итак, скажем, я прикрепляю радиатор к концу блока напротив светодиодов с достаточно низким тепловым сопротивлением окружающей среде, чтобы конец блока с радиатором находился на температуре окружающей среды. Термическое сопротивление алюминиевого блока составляет L/(кА), где L – длина, k – теплопроводность (0,25 Вт/(мм*K)), а A – площадь поперечного сечения. Таким образом, если длина равна 20 мм (по оси X), площадь поперечного сечения составляет около 300 мм ^ 2 (около 6 мм x 50 мм, 6 мм по оси Y и 50 мм по оси Z), тепловое сопротивление составляет около 0,27 К/Вт. Мощность светодиода на единицу площади составляет 0,0896 Вт/мм^2 (общая мощность 26,88 Вт, распределенная по 300 мм^2).

Примечание: мне нравится работать в мм для этой задачи.

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

Δ Т знак равно л п / ( к А ) знак равно 7.17 К .

Я хочу иметь возможность смоделировать это и получить тот же результат.

Поскольку окончательная геометрия более сложная, я считаю, что мне нужно использовать метод конечных элементов для окончательного решения, но для начала было бы неплохо знать, как начать с уравнения теплопроводности и закончить с результатом, полученным из уравнения Фурье. закон (поскольку первое может быть получено из второго).

Я нашел freefem++ ( http://www.freefem.org/ff++/index.htm ), который может аппроксимировать решение уравнения теплопроводности с помощью метода конечных элементов, но вариационная формулировка находится за пределами моего понимания, и ни один из примеров не касается с постоянным источником тепла.

Я хочу настроить уравнение теплопроводности и граничные условия. Мне особенно нужен стационарный результат, но меня также интересует изменение температуры в зависимости от времени. (3-D) уравнение теплопроводности:

ты т знак равно α 2 ты + Вопрос с р ,
куда

ты знак равно ты ( Икс , у , г , т ) = температура ( К )

α знак равно к с р = температуропроводность ( м м 2 с )

с = удельная теплоемкость ( Дж к грамм К )

р = массовая плотность ( к грамм м м 3 )

Вопрос = мощность на единицу объема ( Вт м м 3 )

Поскольку простая блочная задача является одномерной, уравнение теплопроводности принимает вид:

ты т знак равно α 2 ты Икс 2 + Вопрос с р

или же

ты т знак равно α ты Икс Икс + Вопрос с р

Обратите внимание, Q является функцией ( Икс , т ) . В этой статье представлено аналитическое решение этой одномерной задачи: http://people.math.gatech.edu/~xchen/teach/pde/heat/Heat-Duhamel.pdf .

Чтобы использовать принцип Дюамеля, я сначала переформулирую задачу так, чтобы источник тепла находился на л / 2 температура при Икс знак равно 0 а также Икс знак равно л удерживается равным нулю (будь то ноль или температура окружающей среды, решение остается тем же). Тогда источником тепла является дельта-функция Дирака при Икс знак равно л / 2 , и проблема становится:

ты т знак равно α ты Икс Икс + Вопрос я с р дельта ( Икс л 2 ) , 0 < Икс < л , т > 0

и граничные условия:

ты ( 0 , т ) знак равно 0 , ты ( л , т ) знак равно 0 , т > 0
ты ( Икс , 0 ) знак равно 0 , 0 Икс л

Здесь, Вопрос я знак равно 0,896 Вт / м м 3 является источником тепла. Я смог аппроксимировать решение, приведенное в статье, с помощью Matlab (см. Ниже), и как г с 0 , решение становится ближе к функции треугольника с центром в Икс знак равно л / 2 и увеличивается асимптотически со временем примерно до 7 К. Обратите внимание, что, поскольку источник тепла находится в центре, я удвоил мощность и длину блока, и решение вышеуказанной задачи составляет половину блока ( Икс л / 2 ).

Итак, что происходит, когда я перехожу в 2-D? Как я уже сказал, реальная геометрия сложна (но может быть смоделирована как двумерная задача, поскольку геометрия вдоль оси z практически постоянна), поэтому я не ожидаю аналитического решения. Возможно, моего простого одномерного примера недостаточно, чтобы продемонстрировать, как решить задачу с помощью метода конечных элементов.

Что, если бы источник тепла поступал слева, а нижняя часть блока поддерживалась при постоянной температуре?

Распространяется ли принцип Дюамеля на 2D? Если да, и я аппроксимирую вспомогательную однородную задачу с помощью МКЭ, то как мне преобразовать это приближение в неоднородное решение?

В качестве альтернативы, как бы я сформулировал неоднородную задачу, используя вариационную постановку, чтобы иметь возможность напрямую использовать анализ FEM?

Приближение Matlab к одномерному аналитическому решению

Вот мой код Matlab, который приближает решение с использованием принципа Дюамеля. Я сделал приближение, используя как ряд Фурье, так и функцию Грина.

% Approximate the analytical solution of the heat equation with a heat
% source in the center of a block.

% System parameters.
H = 6;               % the block height (mm)
L = 40;              % the block length (mm)
W = 50;              % the block width (mm)
kAl = 0.25;          % Aluminum thermal conductivity (W/(mm*K))
c = 897;             % Aluminum specific heat capacity (J/(kg * K)).
rho = 2.7E-6;        % Density (kg/mm^3).
alpha = kAl / (c * rho);   % Thermal diffusivity (mm^2/s).
Qi = 2 * 27 / 300;          % Input power per unit volume length (?).

dx = 0.2;
dt = .2;
x = 0:dx:L;
tmax = 10;
t = 0:dt:tmax;

% Approximate heat equation using Fourier series and Duhamel's Principle.
ds = 0.1;
N = 200;
n = 1:N;
b = 2*Qi*sin(n*pi/2)/(c*rho*L);
% As N goes to infinity, the solution
% approximates a triangle function centered on L/2.  Because we can't go to
% infinity, there will always be a sharp spike at x = L/2.
u = zeros(length(x), length(t));
for xi = 1:length(x)
   for ti = 1:length(t)
      tc = t(ti);
      for ni = 1:length(n)
         s = 0:ds:tc;
         sint = 0;
         for si = 1:length(s)
            sint = sint + b(ni)*exp(-alpha*(n(ni)*pi/L)^2*(tc-s(si)))*ds;
         end
         u(xi, ti) = u(xi, ti) + sin(n(ni)*pi*x(xi)/L) * sint;
      end
   end
end

figure;
mesh(t, x, u);
ylabel('x (mm)');
xlabel('t (s)');
zlabel('Temperature (deg C)');
title('Approximation to heat equation solution with constant heat source at L/2, using Fourier series');

% Approximate solution using Green's function.  Note that as ds -> zero,
% the solution approximates a triangle function centered at L/2, and
% increasing asymptotically over time.
u = zeros(length(x), length(t));
N = 40;
n = -N:N;
ds = 0.01;
for xi = 1:length(x)
   for ti = 1:length(t)
      tc = t(ti);
      if tc == 0
         continue;
      end
      s = 0:ds:(tc-ds);
      for si = 1:length(s)
         nint = 0;
         for ni = 1:length(n)
            nint = nint + exp(-(x(xi)-2*n(ni)*L-L/2)^2/(4*alpha*(tc-s(si)))) - ...
               exp(-(x(xi)-2*n(ni)*L+L/2)^2/(4*alpha*(tc-s(si))));
         end
         u(xi, ti) = u(xi, ti) + ...
            (Qi/(c*rho)) * nint * ds / sqrt(4*pi*alpha*(tc-s(si)));
      end
   end
end

figure;
mesh(t, x, u);
ylabel('x (mm)');
xlabel('t (s)');
zlabel('Temperature (deg C)');
title('Approximation to heat equation solution with constant heat source at L/2, using Green''s function');
Я знаю, что сделал бы Эдисон. Просто создайте один и измерьте. У вас есть некая сборка, горячая с одного конца и холодная с другого, передающая определенное количество тепловой энергии в секунду, линейно зависящее от разницы температур. Я могу придумать несколько способов измерить это. Есть история о том, как он спросил у будущих инженеров объем лампочки. У некоторых была вся математика, но один просто налил немного воды и налил ее в мерный стакан. Как вы думаете, кто получил работу?
Патрик, когда ты будешь рядом, не мог бы ты проверить последнее изменение, внесенное в этот вопрос, и проверить, верно оно или нет?
@David Дэвид Похоже, кто-то закомментировал объявление функции, не удаляя оператор возврата. Я склонен помещать все свои скрипты Matlab в функции по привычке - таким образом я не завишу от переменных, которые могут существовать в рабочей области, но о которых я забыл после удаления их инициализации в моем скрипте. Если мне нужно выполнить отладку, я просто установлю точку останова в подходящем месте сценария. Но это правда, функциональная строка не нужна, и ваше исправление должно заставить ее снова работать.
Патрик: Да, я внес изменения в файл сценария, но забыл прокрутить вниз и проверить, что там был возврат, чтобы прокомментировать. Я нигде не видел в скрипте, что вызывалась функция. Спасибо, что поймали это.
@night owl Весь сценарий — это функция. Я «вызываю» его, нажимая F5 в Matlab или вызывая его из командной строки. Как я уже говорил в другом своем сообщении, это просто моя привычка, чтобы не смешивать переменные рабочей области с теми, что используются в скрипте. Для целей этого поста функция необязательна.
Хорошо, я не слишком уверен, что это допустимо (возможно) в Matlab, но я не могу сказать, потому что я не такой большой пользователь. Просто использую его, когда мне нужно. Но обычно у меня есть .mфайл функции только для функции, которую я создаю, а затем создаю .mфайл сценария (основная программа), в котором я вызываю функцию. Но казалось, что вы хотели сделать и то, и другое в одном скрипте, и я не слишком уверен, что вы можете использовать функции таким образом. Если вы снова запустите этот скрипт в Matlab с помощью функции и вернетесь внутрь него, вы получите сообщение об ошибке в командной строке, как я говорил.

Ответы (3)

@user3533030 user3533030 Очень хорошее замечание, но это может быть преуменьшением.

«Эти проблемы нелегко решить аналитически».



Прошло 5 лет с тех пор, как был задан этот вопрос. И не сильно улучшилось. Т-образный переход уже должен был уйти в прошлое. Дела потихоньку улучшаются.


Теперь производители публикуют разность температур между Т-образным переходом и Т-образной термопрокладкой, обычно около 15°C. Некоторые их рекомендуемые значения температуры относятся к температуре корпуса светодиода, а не к Т-переходу. Для согласованности некоторые производители теперь включают «точку» температуры на корпус светодиода, где вы измеряете температуру с помощью термопары.

На изображении ниже точка измерения температуры помечена как Tc.

введите описание изображения здесь

Проблема подхода с имитацией моделирования заключается в том, что светодиоды не имеют коэффициента «k». Ни одна из их характеристик не является постоянной, а минимальная/максимальная дельта слишком велика для получения смоделированных результатов с достаточной точностью, чтобы иметь смысл. Светодиоды кажутся простыми оптоэлектронными компонентами, но это не так.

Пока я пишу это, я провожу эксперимент с новым радиатором на печатной плате 12 x 0,7 дюйма с 16 светодиодами мощностью 3 Вт (Cree XPE и Lumiled Rebel ES). Результаты такого моделирования будут малоценными.

введите описание изображения здесь

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

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

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

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

введите описание изображения здесь

Это сработало так хорошо для меня, что я создал новую проблему. Конденсат на радиаторе и плате.

Печатная плата сильно нагревается без терморегулирования. После сборки первой тестовой платы я прокачал 1 Ампер через светодиоды. Я не знаю температуру, потому что плата так быстро нагревалась, что я не успел измерить температуру до того, как плата сгорела.

введите описание изображения здесь

введите описание изображения здесь

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

* PAR = активное фотосинтетическое излучение

введите описание изображения здесь

Результаты сегодня вечером выглядят очень хорошо с новым радиатором, разработанным с готовыми товарными деталями, где общая стоимость деталей составляет 3,50 доллара за фут.

По сравнению с отсутствием управления температурой при 350 мА = 125 °C, я думаю, что могу добиться чего-то без моделирования теплового перехода.

Current=700mA
Thermal Pad °C
11:00 PM    28
11:05 PM    22
11:15 PM    23
11:25 PM    21.5
11:35 PM    21.3
11:55 PM    22.9
12:15 AM    22.4

Раньше я решал задачи такого типа как экспериментально, так и численно. Эти задачи нелегко решить аналитически. Я не рекомендую аналитический подход, кроме как обеспечить некоторую интуицию.

Чтобы использовать численный подход, рассмотрите http://www.amazon.com/Transfer-Mcgraw-Hill-Series-Mechanical-Engineering/dp/0073529362 . В этом тексте есть методологии конечных разностей, которые довольно легко понять. Идея состоит в том, чтобы составить конечно-разностные уравнения и решить их с помощью обращения матриц. В задаче эволюции времени вы просто увеличиваете время и решаете матрицу снова и снова.

При таких специализированных проблемах у вас есть несколько вариантов. Один из них — построить простую конечно-разностную модель и отладить ее с помощью известных решений (опять же обратиться к Холлману). Другое решение представляет собой более экзотическое конечно-элементное решение. Будьте осторожны, легко ошибиться и потратить много времени на построение геометрической сетки.

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

http://spie.org/Publications/Proceedings/Paper/10.1117/12.842043

http://spie.org/Publications/Proceedings/Paper/10.1117/12.842881

Настоящее удовольствие заключается в переходных задачах! Эти модели были созданы в Nastran и очень хорошо соответствуют экспериментальным данным. Чтобы получить хорошее совпадение с экспериментом, обратите особое внимание на граничные условия (полностью изолированные ванны и ванны с идеальной температурой).

Если ваша цель практическая и вы ищете численный ответ, почему бы не использовать какой-нибудь численный метод для решения уравнения? У Mathematica, Maple и Matlab (я думаю) есть инструменты для этого.

Что касается стационарного решения, вы можете значительно упростить задачу, поскольку, когда t стремится к бесконечности, производная u по t стремится к нулю, что дает вам простое уравнение Пуассона.

В прошлый раз, когда у меня была двухмерная тепловая задача, я хотел сопоставить функции Грина на разных границах, но это сложно (с точки зрения алгебры и программирования), т.е. вероятность ошибки кодирования была слишком велика. Поскольку современные компьютеры являются удивительно быстрыми машинами грубой силы, последовательная релаксация на сетке настолько тривиальна для программирования, что вы почти не можете ее испортить, а время решения минимально.
Я отредактировал свой вопрос, чтобы (надеюсь) уточнить, о чем я спрашиваю. Я ожидаю, что мне нужно будет решить задачу численно, но я не уверен, как сформулировать задачу для этого. Я понимаю, что временной член исчезает, когда t стремится к бесконечности, но я хотел бы включить его, если это возможно.
@Пэт. Многие задачи, не зависящие от времени, решаются путем запуска моделирования во времени до тех пор, пока не будет достигнуто равновесие, поэтому вполне приемлемо формулировать/решать ее как задачу, зависящую от времени.