PDE工具箱:使用不同的热导率随温度而变的
13 Ansichten(30天)的
Altere Kommentare anzeigen
我和PDE工具箱和解决问题与温度相关的热导率。我跟着这个例子
solving-a-heat-transfer-problem-with-temperature-dependent-properties
。使用R2018b,我建立了一个简单的两个区域几何形状只有一个温度梯度:
设备= createpde (“热”,“稳态”);
r1 = [3 4 0 0.5 0.5 e-6 e-6 0 0 0 0.5 0.5 e-6 e-6];
r2 = [3 4 0 0.5 0.5 e-6 e-6 0 0.5 0.5 e-6 e-6 e-6 1 e-6);
gdm = (r1, r2) ';
g = decsg (gdm,R1 + R2的,(R1的;R2的]“);
geometryFromEdges(设备,g);
thermalBC(设备,“边缘”2,“温度”,500);% 500 k狄利克雷
thermalBC(设备,“边缘”,1“温度”,300);% 300 k狄利克雷
generateMesh(设备,“Hmax”1 e);
现在,使用单一导热系数为常数这两个地区得到预期的结果和温度相关的热导率。
%例1:常数,相同的热导率
k1 = 100;
k2 = 100;
%例2:T-dep相同的热导率
% k1 = @(~、州)100 * (state.u / 300)。^ -1.3;
% k2 = @(~、州)100 * (state.u / 300)。^ -1.3;
% thermalIC(设备,400);
thermalProperties(设备,“ThermalConductivity”k1,“脸”1);
thermalProperties(设备,“ThermalConductivity”k2,“脸”2);
溶液=解决(设备);
temp = soln.Temperature;
我遇到的问题是当使用不同的热导率为每个地区:
%例1:常数,相同的热导率
k1 = 10;
k2 = 100;
%例2:T-dep相同的热导率
k1 = @(~,状态)10 * (state.u / 300)。^ -1.3;
k2 = @(~、州)100 * (state.u / 300)。^ -1.3;
thermalIC(设备,400);
在这种情况下,解决方案我得到与前面的仿真案例2是相同的,我使用了100的导热系数与温度有关的值。也许我指定一个属性不正确?
编辑与解决方案包括情节我期望:
0 Kommentare
Antworten (4)
拉维·库马尔
3月28日。2019年
当国家k1和k2收益率为零。u = 0,这是导致解决误解他们是相同的功能。你可以绕过这个限制,通过添加一个小噪声的功能:
k1 = @(~,状态)10 * (state.u / 300)。^ -1.3;
k2 = @(~、州)100 * (state.u / 300)。^ -1.3 +每股收益;
拉维·库马尔
3月29日。2019年
我没有意识到这一点在我的最初反应,你们的正当u = 0 k值。试试以下后,将下面的代码放入m文件并运行。
设备= createpde (“热”,“稳态”);
r1 = [3 4 0 0.5 0.5 e-6 e-6 0 0 0 0.5 0.5 e-6 e-6];
r2 = [3 4 0 0.5 0.5 e-6 e-6 0 0.5 0.5 e-6 e-6 e-6 1 e-6);
gdm = (r1, r2) ';
g = decsg (gdm,R1 + R2的,(R1的;R2的]“);
geometryFromEdges(设备,g);
thermalBC(设备,“边缘”2,“温度”,500);% 500 k狄利克雷
thermalBC(设备,“边缘”,1“温度”,300);% 300 k狄利克雷
generateMesh(设备,“Hmax”1 e);
%例1:常数,相同的热导率
k1 = 100;
k2 = 100;
thermalProperties(设备,“ThermalConductivity”,100);
%例2:T-dep相同的热导率
thermalIC(设备,400);
thermalProperties(设备,“ThermalConductivity”,@kFunc);
device.SolverOptions.ReportStatistics =“上”
溶液=解决(设备);
temp = soln.Temperature;
y = linspace (0 1 e - 6100);
x = 2 e *的(大小(y));
iTemp = interpolateTemperature(溶液,x, y);
情节(y, iTemp)
持有在
情节([0,1 e-6], [300500])
传奇(“非线性”,“线性”)
函数k = kFunc(地区、州)
如果地区。子域名= = 1
k = 10 * (state.u / 300)。^ -1.3;
其他的
k = 100 * (state.u / 300)。^ -1.3;
结束
结束