How to implement irregular, time-dependent boundary condition in PDEPE function?
8 views (last 30 days)
Show older comments
Hi
I am trying to use the MATLAB Partial Differential Equation solver, pdepe, for a simple 1D (one-dimensional) heat transfer in a space shuttle tile using Fourier's equation for heat transfer. All parameters are known, and I have organised the equation according to the MATLAB format.
However, the problem I have encountered is in the Boundary Conditions. For the shuttle tile, the outer surface (right hand boundary condition) varies in a time-dependent manner according to a predefined pattern that cannot be described mathematically. I can store the data in a vector, but I have thus far been unsuccessful in implementing this in the RHS boundary (pr).
Any help at all would be very much appreciated, a sample of my current code can be viewed below.
James
function pde1 % Function to perform parabolic PDE solver on Fourier's Heat transfer % equation in one dimension %
global rho cp k tinitial global n tempdata deltaT timedata
% tile properties
k = 0.141; % W/(m K)
rho = 352; % 22 lb/ft^3
cp = 1255; % 0.252 Btu/lb/F at 500F
n = 500;
tinitial = (60-32)*5/9; % intial temp throughout the tile
% Loads the outer surface temperature data in an array. % This data can then be extracted into a vector. load temp597.mat timedata tempdata
% properties required for Partial Differential Equation input
m = 0; % assume 'slab' shape
xmesh = linspace(0, 0.05, 21); % 21 spatial steps, up to 5cm
t = linspace(0, 4000, 500); % 250 time-steps over 2000 seconds
sol = pdepe(m, @pdef, @pdeic, @pdebc, xmesh, t);
u = sol(:,:,1);
% ========================================================================= % defines the properties of the PDE function
function[c,f,s] = pdef(x, t, u, DuDx)
c = rho*cp;
f = k*DuDx;
s = 0;
end % ========================================================================= % defines the Initial Conditions
function[u0] = pdeic(x)
u0 = tinitial;
end % ========================================================================= % defines the Boundary Conditions
function[pl,ql,pr,qr] = pdebc(xl, ul, xr, ur, t)
pl = 0;
ql = 1;
pr = ???;
qr = 1;
end end
end
0 Comments
Accepted Answer
Bill Greene
on 7 Apr 2014
I think that
pr = interp1(timedata, tempdata, t) - ur;
may be what you need. Assuming the lengths of timedata and tempdata are the same, this will do a piecewise linear interpolation for the temperature at time t.
Beyond that, if you want to prescribe the temperatures at the right and left ends to a prescribed value, you want ql and qr equal zero rather than 1.
Bill
3 Comments
More Answers (0)
See Also
Categories
Find more on Boundary Conditions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!