⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 semibatchreactor.m

📁 Matlab在化学工程中的应用
💻 M
字号:
function Semi_BatchReactor
% 半连续反应器—苯的氯化
%
%   Author: HUANG Huajiang
%   Copyright 2003 UNILAB Research Center, 
%   East China University of Science and Technology, Shanghai, PRC
%   $Revision: 1.0 $  $Date: 2002/07/16 $

clear all
clc
global k1 k2 k3 V nB0 F
k1 = 510;       % [m3/kmol.h]
k2 = 64;        % [m3/kmol.h]
k3 = 2.1;       % [m3/kmol.h]
nB0 = 50;       % kmol
V = 1.46*50;    % m3
F = 1.44*nB0;
n0 = [nB0 0 0 0 0];
[t,y] = ode45(@MassBalances,[0:0.01:2.0],n0);
tOpt4M = t(find(y(:,2)==max(y(:,2))))
tOpt4D = t(find(y(:,3)==max(y(:,3))))
plot(t,y(:,1),'k-',t,y(:,2),'b--',t,y(:,3),'k-.',t,y(:,4),'r--',t,y(:,5),'b-')
xlabel('Time (hr)')
ylabel('Concentration (moles)')
legend('n_B','n_M','n_D','n_T','n_C')
str = {'B','M','D','T','C'};
for i=1:5
    gtext(str{i})
end
fprintf('\t氯苯达到最大产量所对应的最优时间为: %.2f %s\n',tOpt4M,'hr')
fprintf('\t二氯苯达到最大产量所对应的最优时间为: %.2f %s',tOpt4D,'hr')

% ------------------------------------------------------------------
function dydt = MassBalances(t,y)
global k1 k2 k3 V nB0 F
nB = y(1);
nM = y(2);
nD = y(3);
nT = y(4);
nC = y(5);
if nC > 0.12*nB0
    nC = 0.12*nB0;
    dnCdt = 0;
else
    dnCdt = F - k1*nB*nC/V - k2*nM*nC/V - k3*nD*nC/V;
end
dnBdt = -k1*nB*nC/V;
dnMdt = k1*nB*nC/V - k2*nM*nC/V;
dnDdt = k2*nM*nC/V - k3*nD*nC/V;
dnTdt = k3*nD*nC/V;
dydt = [dnBdt; dnMdt; dnDdt; dnTdt; dnCdt];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -