【Peng-Robinson状态方程】计算纯组分系统的z因子和逸度系数、计算多组分系统的z因子和逸度系数、计算泡点压力、计算露点压力研究(Matlab代码实现)

张开发
2026/4/13 0:26:39 15 分钟阅读

分享文章

【Peng-Robinson状态方程】计算纯组分系统的z因子和逸度系数、计算多组分系统的z因子和逸度系数、计算泡点压力、计算露点压力研究(Matlab代码实现)
欢迎来到本博客❤️❤️博主优势博客内容尽量做到思维缜密逻辑清晰为了方便读者。⛳️座右铭行百里者半于九十。本文目录如下⛳️赠与读者‍做科研涉及到一个深在的思想系统需要科研者逻辑缜密踏实认真但是不能只是努力很多时候借力比努力更重要然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览免得骤然跌入幽暗的迷宫找不到来时的路它不足为你揭示全部问题的答案但若能解答你胸中升起的一朵朵疑云也未尝不会酿成晚霞斑斓的别一番景致万一它给你带来了一场精神世界的苦雨那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。或许雨过云收神驰的天地更清朗.......1 概述Peng-Robinson状态方程PR状态方程在化学工程领域中有着广泛的应用特别适用于描述含有轻烃、重烃、醇类和其他含氢键分子的复杂流体系统。以下是关于PR状态方程在计算纯组分系统、多组分系统的z因子和逸度系数以及泡点压力和露点压力方面的详细研究文档PR状态方程简介PR状态方程的形式为PRT/(V−b)−a/(V22Vb−b2)其中P为压力T为温度R为气体常数V为摩尔体积a为偏分子体积b为偏摩尔体积。该方程能够较好地模拟液体和蒸汽之间的相变过程比经典的范德华斯方程在处理非理想气体行为时更为准确。计算纯组分系统的z因子和逸度系数z因子计算z因子是实际气体压缩性与理想气体压缩性的比值计算公式为ZPV/(nR*T)。在PR状态方程中通过给定的P、T以及物质的临界参数临界温度Tc、临界压力Pc和偏心因子ω可以求解出摩尔体积V进而计算出z因子。逸度系数计算逸度系数是衡量一个组分在混合物中相对于理想气体行为偏离的程度。在PR状态方程中逸度系数φ通常通过迭代方法求解它依赖于系统的压力、温度和组分的临界参数。计算多组分系统的z因子和逸度系数z因子计算对于多组分系统z因子是各组分z因子的平均值或加权平均值这取决于系统的具体条件和计算方法。在PR状态方程中多组分系统的z因子计算通常需要考虑组分间的相互作用这可以通过引入二元作用系数来实现。逸度系数计算对于多组分系统每个组分的逸度系数都需要单独计算。在PR状态方程中多组分系统的逸度系数计算通常涉及复杂的迭代过程需要同时考虑系统的压力、温度、组分的临界参数以及组分间的相互作用。计算泡点压力和露点压力泡点压力计算泡点压力是指在一个恒定温度下液体开始转变为蒸汽时的压力。在PR状态方程中泡点压力可以通过逐步降低系统的压力并观察相变的发生来确定。这通常涉及复杂的迭代过程以找到满足相平衡条件的压力值。露点压力计算露点压力是在恒定温度下蒸汽开始转变为液体时的压力。与泡点压力类似露点压力也可以通过逐步降低系统的压力并观察相变的发生来确定。在PR状态方程中这同样需要复杂的迭代过程来找到满足相平衡条件的压力值。主要功能如下。(1) 计算纯组分系统的z因子和逸度系数。fugcoef_purecomp.m如果找到多个根则返回使吉布斯自由能最小化的z因子。fugcoef_purecomp_liquid.m如果找到多个根则返回最小z因子。fugcoef_purecomp_vapor.m如果找到多个根则返回最大z因子。(2)计算多组分系统的z因子和逸度系数。fugcoef_multicomp.m如果找到多个根则返回使吉布斯自由能最小化的z因子。fugcoef_multicomp_liquid.m如果找到多个根则返回最小z因子。fugcoef_multicomp_vapor.m如果找到多个根则返回最大z因子。(3) 计算泡点压力。pressbub_purecomp_ss.m用于纯组分系统。采用连续替代法。pressbub_purecomp_newton.m用于纯组分系统。使用牛顿法。pressbub_multicomp.m用于多组分系统。采用连续替代法。(4) 计算露点压力。pressdew_multicomp.m用于多组分系统。采用连续置换法。一、Peng-Robinson状态方程基本形式与参数定义Peng-RobinsonPR方程是立方型状态方程其形式为注Tc为临界温度Pc​为临界压力ω为偏心因子TrT/Tc为对比温度。二、纯组分系统的z因子与逸度系数计算1.z因子计算z因子定义为实际气体摩尔体积与理想气体摩尔体积的比值根的选择原则气相选择最大实根对应低密度状态。液相选择最小实根对应高密度状态。多根情况通过比较吉布斯自由能最小化原则确定稳定相态。2.逸度系数计算逸度系数ϕ由积分公式导出结合PR方程推导出具体表达式注此公式通过状态方程参数A、B和Z直接计算逸度系数。三、多组分系统的z因子与逸度系数计算1.混合规则多组分系统的aa和bb参数通过混合规则计算van der Waals混合规则其中kij为二元相互作用参数需通过实验拟合。2.z因子计算多组分系统的压缩因子方程与纯组分形式相同但参数AA和BB需替换为混合值根的选择原则与纯组分相同优先选择吉布斯自由能最小的解。3.逸度系数计算组分ii的逸度系数ϕi由下式计算注需结合混合参数和压缩因子迭代求解。四、泡点压力计算1.理论依据泡点压力是液相开始汽化的压力需满足2.迭代步骤五、露点压力计算1.理论依据露点压力是气相开始冷凝的压力需满足六、Matlab代码实现要点1.函数模块纯组分系统fugcoef_purecomp.m自动选择吉布斯自由能最小的ZZ。fugcoef_purecomp_liquid.m强制返回最小ZZ液相。fugcoef_purecomp_vapor.m强制返回最大ZZ气相。多组分系统fugcoef_multicomp.m基于混合规则计算逸度系数。pressbub_multicomp.m泡点压力迭代计算。pressdew_multicomp.m露点压力迭代计算。2.核心算法function [fugcoef, zfactor] fugacitycoef_multicomp(comp, press, temp, pressc, tempc, acentric, BIP) [A, B] calcab_multicomp(press, temp, pressc, tempc, acentric); [Amix, Bmix, Amix2] calcabmix(comp, A, B, BIP); zfactor calczfactor(Amix, Bmix); if size(zfactor,1) 1 zfactor choosezfactor(zfactor, comp, A, B, Amix, Bmix, Amix2); end fugcoef calcfugcoef_multicomp(zfactor, A, B, Amix, Bmix, Amix2); end注通过choosezfactor函数选择最优ZZ确保计算稳定性。七、应用案例与误差分析1.案例CO₂-H₂O系统使用PR方程结合Wong-Sandler混合规则在273–623 K和0.1–200 MPa下CO₂和H₂O的互溶度计算误差小于7.5%。2.高压天然气系统PR方程在压力高于4 MPa时露点压力预测误差达4.36%建议改用GERG2008方程以提高精度。八、总结与展望PR方程因其简洁性和通用性广泛应用于工程相平衡计算但在高压、强极性体系中需结合混合规则改进。未来研究可探索引入量子化学参数优化二元相互作用参数kijkij​。结合机器学习方法加速迭代收敛。2 运行结果2.1 fugacitycoef2.2 phasefraction2.3 pressbub2.4 tpdss2.5 vaporliquideq部分代码“%% CALCULATE THE FUGACITY COEFFICIENT AND Z-FACTOR OF MULTI-COMPONENT SYSTEMS% -------------------------------------------------------------------------% The Definition of Variables.% comp : composition% press : pressure% temp : temperature% pressc : critical pressure% tempc : critical temperature% acentric: acentric factor% BIP : binary interaction parameter% fugcoef : fugacity coefficient% zfactor : compressibility factor% -------------------------------------------------------------------------% In this function, an appropriate z-factor is automatically chosen% according to gibbs free energy if multiple roots are found.function [fugcoef, zfactor] fugacitycoef_multicomp(comp, press, temp, pressc, tempc, acentric, BIP)[A, B] calcab_multicomp(press, temp, pressc, tempc, acentric);[Amix, Bmix, Amix2] calcabmix(comp, A, B, BIP);zfactor calczfactor(Amix, Bmix);if (size(zfactor,1) 1)zfactor choosezfactor(zfactor, comp, A, B, Amix, Bmix, Amix2);endfugcoef calcfugcoef_multicomp(zfactor, A, B, Amix, Bmix, Amix2);end%% SEARTCH AND RETURN AN APPROPRIATE Z-FACTOR% Calculate dimensionless excess gibbs free energy, and return the z% factor which minimizes the gibbs free energy.function minzfactor choosezfactor(zfactor, comp, A, B, Amix, Bmix, Amix2)gibbsenergy [];3参考文献文章中一些内容引自网络会注明出处或引用为参考文献难免有未尽之处如有不妥请随时联系删除。(文章内容仅供参考具体效果以运行结果为准)[1]刘夏天.天然气压缩机多组分混合工质物性计算研究[D].大连理工大学,2015.[2]姚佩芳,朱炳辰.应用修正R—K状态方程计算中压下一氧化碳变换反应中各反应组分的逸度系数[J].化工厂设计, 1989, 9(1):6.[3]褚红蕊,解国珍,刘蕾.混合工质热力参数特性与脉动热管适应性研究[J].制冷与空调(四川), 2011.4Matlab代码实现资料获取更多粉丝福利MATLAB|Simulink|Python资源获取

更多文章