使用有限差分求解PDE

时间:2018-12-27 03:29:06

标签: matlab pde

我正在尝试使用有限差分法来求解热失控反应的耦合PDE。我有两个变量,温度(T)和浓度(Cbulk),它们随时间(t)和距离(x)的变化而变化。我已经解决了一个变量(T)的PDE,同时保持Cbulk不变。

但是,当我尝试用温度和浓度作为变量来求解方程时,我得到了一个不合理的答案。解决温度和浓度时,我附上了温度与x的关系图。谁能建议我可以做些什么来纠正这个问题?实际答案应该是一条平滑的温度和浓度曲线。

也请参阅我的MATLAB代码

% fd_rhs.m 
function ydot=fd_rhs(time,y) 
global nt R delH E A rho cp h k delr Cbulk s

T = y(1:2:2*nt);
c = y(2:2:2*nt);


for i=1:nt-1
if i == 1
       dT(i) = k/(rho*cp*4.184*1000)*2*(s+1)*(T(i+1)-   
       T(i))/(delr*delr)+delH*A*exp(-E*1000./(R*T(i)))*c(i)/(rho*cp*1000);
       dc(i)= -A*exp(-E*1000./(R*T(i)))*c(i);
else 
dT(i) = k/(rho*cp*4.184*1000)*((T(i+1)-2*T(i) +T(i-1))/(delr*delr))+(s/R)* 
        (T(i+1)-T(i-1))/(delr*delr)+delH*A*exp(- 
        E*1000./(R*T(i)))*Cbulk/(rho*cp*1000); 
dc(i)= -A*exp(-E*1000./(R*T(i)))*c(i); 
end 
end

dT(nt)= (k/delr)/(h+(k/delr))*(k/(rho*cp*4.184*1000)*((T(nt)-2*T(nt-1) 
        +T(nt-2))/(delr*delr)))+(s/R)*(T(nt)-T(nt-1))/(delr*delr);
dc(nt)= -A*exp(-E*1000./(R*T(i)))*c(nt); 
ydot = [dT';dc']
end

Temp vs distance Concentration vs distance

谢谢

0 个答案:

没有答案