偏微分方程的数值解系列博文:
偏微分方程的数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法
偏微分方程的数值解(三): 化工应用实例 ----------触煤反应装置内温度及转换率的分布
偏微分方程的数值解(四): 化工应用————扩散系统之浓度分布
偏微分方程的数值解(五): 二维状态空间的偏微分方程的 MATLAB 解法
偏微分方程的数值解(六): 偏微分方程的 pdetool 解法
题意解析:
(a) 因气体 A 与液体 B 不发生反应,故其扩散现象的质量平衡方程如下:
(b) 在气体 A 与液体 B 会发生一次反应的情况下,其质量平衡方程需改写为
而起始及边界条件同上。
在获得浓度分布后,即可以 Fick’s law
计算流通量。
MATLAB 程序设计: 此问题依旧可以利用 pdepe 迅速求解。现就各状况的处理过程简述如下
利用以上的处理结果,可编写 MATLAB 参考程序如下:
function ex20_3_2
%*****************************
% 扩散系统之浓度分布
%*****************************
clear
clc
global DAB k CA0
%******************************
% 给定数据
%******************************
CA0=0.01;
L=0.1;
DAB=2e-9;
k=2e-7;
h=10*24*3600;
%*******************************
% 取点
%*******************************
t=linspace(0,h,100);
z=linspace(0,L,10);
%*******************************
% case (a)
%*******************************
m=0;
sol=pdepe(m,@ex20_3_2pdefuna,@ex20_3_2ic,@ex20_3_2bc,z,t);
CA=sol(:,:,1);
for i=1:length(t)
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,:),0);
NAz(i)=-dCAdz_i*DAB;
end
figure(1)
subplot(211)
surf(z,t/(24*3600),CA)
title('case (a)')
xlabel('length (m)')
ylabel('time (day)')
zlabel('conc. (mol/m^3)')
subplot(212)
plot(t/(24*3600),NAz'*24*3600)
xlabel('time (day)')
ylabel('flux (mol/m^2.day)')
%************************************
% case (b)
%************************************
m=0;
sol=pdepe(m,@ex20_3_2pdefunb,@ex20_3_2ic,@ex20_3_2bc,z,t);
CA=sol(:,:,1);
for i=1:length(t)
[CA_i,dCAdz_i]=pdeval(m,z,CA(i,:),0);
NAz(i)=-dCAdz_i*DAB;
end
%
figure(2)
subplot(211)
surf(z,t/(24*3600),CA)
title('case (b)')
xlabel('length (m)')
ylabel('time (day)')
zlabel('conc. (mol/m^3)')
subplot(212)
plot(t/(24*3600),NAz'*24*3600)
xlabel('time (day)')
ylabel('flux (mol/m^2.day)')
%********************************************
% PDE 函数
%********************************************
% case (a)
%********************************************
function [c,f,s]=ex20_3_2pdefuna(z,t,CA,dCAdz)
global DAB k CA0
c=1;
f=DAB*dCAdz;
s=0;
%*********************************************
% case (a)
%*********************************************
function [c,f,s]=ex20_3_2pdefunb(z,t,CA,dCAdz)
global DAB k CA0
c=1;
f=DAB*dCAdz;
s=k*CA;
%**********************************************
% 初始条件函数
%**********************************************
function CA_i=ex20_3_2ic(z)
CA_i=0;
%************************************************
% 边界条件函数
%************************************************
function [pl,ql,pr,qr]=ex20_3_2bc(zl,CAl,zr,CAr,t)
global DAB k CA0
pl=CAl-CA0;
ql=0;
pr=0;
qr=1/DAB;
偏微分方程的数值解系列博文:
偏微分方程的数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法
偏微分方程的数值解(三): 化工应用实例 ----------触煤反应装置内温度及转换率的分布
偏微分方程的数值解(四): 化工应用————扩散系统之浓度分布
偏微分方程的数值解(五): 二维状态空间的偏微分方程的 MATLAB 解法
偏微分方程的数值解(六): 偏微分方程的 pdetool 解法