【发布时间】:2015-04-16 16:58:47
【问题描述】:
`sol = pdepe(m,@ParticleDiffusionpde,@ParticleDiffusionic,@ParticleDiffusionbc,x,t);
% Extract the first solution component as u.
u = sol(:,:,:);
function [c,f,s] = ParticleDiffusionpde(x,t,u,DuDx)
global Ds
c = 1/Ds;
f = DuDx;
s = 0;
function u0 = ParticleDiffusionic(x)
global qo
u0 = qo;
function [pl,ql,pr,qr] = ParticleDiffusionbc(xl,ul,xr,ur,t,x)
global Ds K n
global Amo Gc kf rhop
global uavg
global dr R nr
sum = 0;
for i = 1:1:nr-1
r1 = (i-1)*dr; % radius at i
r2 = i * dr; % radius at i+1
r1 = double(r1); % convert to double precision
r2 = double(r2);
sum = sum + (dr / 2 * (r1*ul+ r2*ur));
end;
uavg = 3/R^3 * sum;
ql = 1;
pl = 0;
qr = 1;
pr = -((kf/(Ds.*rhop)).*(Amo - Gc.*uavg - ((double(ur/K)).^2).^(n/2) ));`
dq(r,t)/dt = Ds( d2q(r,t)/dr2 + (2/r)*dq(r,t)/dr )
q(r, t=0) = 0
dq(r=0, t)/dr = 0
dq(r=dp/2, t)/dr = (kf/Ds*rhop) [C(t) - Cp(at r = dp/2)]
q = solid phase concentration of trace compound in a particle with radius dp/2
C = bulk liquid concentration of trace compound
Cp = trace compound concentration at particle surface
我想用给定的初始和边界条件来解决上述 pde。尝试了 Matlab 的 pdepe,但效果不佳。也许边界条件给我带来了问题。我还使用这个等温方程来平衡:q = K*Cp^(1/n)。这是对流扩散方程,但我找不到任何可以正确解决此类方程的文章。
【问题讨论】:
-
什么是
C(t)和Cp(r)?已知的、指定的函数或与q或其他东西非线性相关? -
感谢您的回复。 Cp = 颗粒表面的痕量化合物浓度,即 dp/2。我认为,这取决于时间而不是 r。 C = 散装液体中痕量化合物的浓度。 Cp 与 q 相关,即 q = K*Cp^(1/n) 并且还与时间相关。还有另一个公式可用于计算 C,即:C(t) = Co (at t =0) - (mp/Vp)*qavg(t)。所以 C 和 Cp 与 q 有关。这是颗粒碳颗粒吸附痕量化合物的问题。
-
好的。似乎
pdepe是在这种情况下使用的正确实用程序。你能发布你使用的产生不令人满意的输出的代码吗?没有MWE,我无法继续前进。 -
我有一个无法链接的用于数据输入的 excel 文件,因此我提供了基本代码的大纲。我在想我是否可以使用crank-nicholson的有限差分法,然后在matlab而不是pdepe中求解?
-
任何人请帮助我/指导我!