化學反應是生成新物質的過程,包括舊鍵斷裂和新鍵生成兩個過程,是實現從原料到產品的必經之路。縱觀合成氨工藝的變革不難看出,化學反應是化工生產操作彈性的核心所在,而該過程的發生必然離不開一個特定的場所——反應器,其結構參數和操作條件直接影響反應時間、轉化率和選擇性等關鍵的化學反應指標。想要對反應器有個深入的了解和認識,必須從研究其內部具體行為開始,也就是今天的主角——化工動力學計算。
問題提出
求一個50dm3 的等溫理想平推流反應器中各組分濃度變化隨體積變化曲線,已知進行下列液相反應:
其動力學方程可以表示為:
其中初始流股信息為:
求解思路
1.根據反應器類型,選擇合適摩爾衡算方程形式;
2.確定每個反應速率方程;
3.確定每個組分淨反應速率;
4.建立組分濃度關係式;
5.求解上述方程組。
濃度關係式確立
MATLAB求解
面對上述微分方程組,一般情況下難以求得解析解,但藉助龍格-庫塔方法等數值分析算法可以十分方便地獲得數值解,下面演示用MATLAB內置的ode45函數求解這個微分方程組,源碼如下:
主程序部分:
[v,c] =ode45('func',[0:0.01:50],[1.5;2;0;0;0;0]); % 調用函數
plot(v,c,'LineWidth',2); % 繪圖部分
title('組分濃度隨反應體積變化圖');
legend('C_A','C_B','C_C','C_D','C_E','C_F');
xlabel('反應體積');ylabel('組分濃度');
子程序部分:
function dc = func(v,c)
k1 = 0.125;k2 = 0.050;k3 = 2.500; % 反應速率常數設置
r1 = k1 * c(1) * c(2) * c(2); % 方程1反應速率
r2 = k2 * c(1) * c(4); % 方程2反應速率
r3 = k3 * c(2) * c(3) * c(3); % 方程3反應速率
dc = zeros(6,1);
u = 1 / 5.0; % 體積流率的倒數
dc(1) = u * (-r1 - 3 * r2); % A組分的淨生成速率
dc(2) = u * (-2 * r1 - r3); % B組分的淨生成速率
dc(3) = u * (2 * r1 + r2 - 2 * r3); % C組分的淨生成速率
dc(4) = u * (r1 - 2 * r2 + r3); % D組分的淨生成速率
dc(5) = u * r2; % E組分的淨生成速率
dc(6) = u * r3; % F組分的淨生成速率
end
結果顯示
各組分濃度隨體積變化如圖所示:
結語
這裡只針對一個簡單體系做出完整分析過程,實際過程可能遠比這個例子複雜,但是萬變不離其宗,在這個模板上進行不斷完善就可以適應更複雜的現實體系。