Решение PDE с использованием конечных разностей - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь найти связанный PDE для реакции теплового убегания, используя метод конечных разностей.У меня есть 2 переменные: температура (T) и концентрация (Cbulk), которые зависят от времени (t) и расстояния (x).Я уже решил этот PDE для одной переменной (T), сохраняя 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

Спасибо

...