我正在尝试计算基于pdepe的绝缘导线上的导热。但由此产生的温度很低。基于其他仿真工具,我预计稳态温度为128Grad,但温度为20.2Grad(环境温度为20Grad)。可以假设使用的参数是正确的。误差必须在方程的数学建模内,即边界/初始条件的定义。 x(xmesh)和t(tspan)以及pdepe选项(reltol,abstol,...)的变化对解决方案没有任何影响。
function PDE_Waermeleitung_Zyl_Wire_Support
global rho_c c_c beta_c lambda_c...
c_i beta_i lambda_i...
r_c r_i l A_c R_0 alpha alpha_Con_Rad...
T_ref T_u T_Initial
%% Parameter
% Conductor c
rho_c = 1.7241e-8; % spezifischer Widerstand Kupfer
c_c = 433; % Waermekapazitaet
density_c = 7800; % Dichte Kupfer
beta_c = density_c*c_c;
lambda_c = 401; % Waermeleitfaehigkeit
% Insulation i
c_i = 1640; % Waermekapazitaet
density_i = 900; % Dichte PVC-Isolierung
beta_i = density_i*c_i;
lambda_i = 0.4; % Waermeleitfaehigkeit
alpha_Con_Rad = 15; % Strahlung-Konvektion
% Cable with a conductor size of 0.5 mm² and an insulation thickness of 0.35mm
r_c = 0.4e-3; % Radius Leiter
r_i = 0.75e-3; % Radius Isolierung
l = 4e-2; % Laenge Leiter
A_c = pi*r_c^2; % Oberflaeche Leiter Zylinder
R_0 = rho_c*l/A_c; % Widerstand
alpha = 3.0e-3; % Temperaturkoeffizient
T_ref = 20; % Referenztemperatur Temperaturkoeffizient
T_u = 20; % Umgebungstemperatur
T_Initial = 20; % Anfangstemperatur
m = 1; % Zylinder-Symmetrie
x = linspace(0,r_i,200);
t = linspace(0,400,100);
%% PDE-Solution
sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t);
% Extract the first solution component as u.
u = sol(:,:,1);
% A surface plot is often a good way to study a solution.
surf(x,t,u)
xlabel('Distance x')
ylabel('Time t')
end
% --------------------------------------------------------------
function [c,f,s] = pdex1pde(x,t,u,DuDx)
global beta_c
global lambda_c
global beta_i
global lambda_i
global R_0
global alpha
global T_ref
global A_c
global l
global r_c
% Case sensitive for Conductor/Insulation
if x <= r_c
lambda = lambda_c;
beta = beta_c;
I = 20;
Pe = I^2*R_0*( 1 + alpha * ( u - T_ref ) );
s = Pe/(lambda_c*A_c*l);
else
lambda = lambda_i;
beta = beta_i;
s = 0;
end
c = beta/lambda;
f = DuDx;
end
% --------------------------------------------------------------
function u0 = pdex1ic(x)
global T_Initial
u0 = T_Initial;
end
% --------------------------------------------------------------
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t)
global T_u
global lambda_i
global alpha_Con_Rad
pl = 0;
ql = 1;
pr = alpha_Con_Rad*( T_u - ur );
qr = -lambda_i;
end