实际气体状态方程:Peng-Robinson(P-R)方程计算指南

 

实际气体状态方程:Peng-Robinson(P-R)方程计算指南

一、P-R方程基本原理

Peng-Robinson(P-R)方程是立方型状态方程的代表之一,由Peng和Robinson于1976年提出,用于描述实际气体的压力()、体积()、温度()关系,考虑了分子间作用力(通过参数)和分子固有体积(通过参数),比理想气体方程()更准确。

二、P-R方程数学表达式

对于任意物质的量的气体,P-R方程的摩尔体积形式为:

其中:

三、参数的计算

参数由气体的临界性质:临界温度,:临界压力)和偏心因子)决定:

1. 参数(分子固有体积)

2. 参数(温度依赖的吸引力参数)


其中:

四、P-R方程求解步骤

实际应用中,常需根据已知条件(,或)解方程。由于P-R方程是关于的三次多项式,需通过代数或数值方法求解实根。

步骤1:整理为三次方程标准形式

将P-R方程展开并整理为关于的三次方程:

令:

则方程简化为无量纲形式(压缩因子):

步骤2:求解三次方程实根

三次方程可能有1个或3个实根,物理意义如下:

求解方法

五、计算实例(以甲烷为例)

已知条件:甲烷()的临界参数,偏心因子;当前状态。求摩尔体积

1. 计算参数

2. 计算参数
3. 代入P-R方程求

将已知参数代入P-R方程:

通过牛顿迭代法求解(初值取理想气体体积),最终得(气相)。

六、Matlab代码实现

以下代码实现P-R方程计算,支持已知已知

function result = peng_robinson(T, P, Tc, Pc, omega, mode, Vm)
    % P-R方程计算函数
    % 输入:
    %   T: 温度(K), P: 压力(Pa), Tc: 临界温度(K), Pc: 临界压力(Pa), omega: 偏心因子
    %   mode: 'V' (已知T,P求Vm) 或 'P' (已知T,Vm求P)
    %   Vm: 摩尔体积(m³/mol) (mode='P'时需输入)
    % 输出:
    %   result: 摩尔体积(m³/mol) 或 压力(Pa)
    
    R = 8.314; % 气体常数 J/(mol·K)
    
    % 1. 计算参数a(T)和b
    Tr = T / Tc; % 对比温度
    kappa = 0.37464 + 1.54226*omega - 0.26992*omega^2; % 系数κ
    alpha = (1 + kappa*(1 - sqrt(Tr)))^2; % 温度修正因子
    ac = 0.45724 * (R^2 * Tc^2) / Pc; % 临界吸引参数a_c
    a = ac * alpha; % 温度依赖参数a(T)
    b = 0.07780 * (R * Tc) / Pc; % 分子体积参数b
    
    if strcmp(mode, 'V') % 已知T,P求Vm
        % 定义三次方程 f(Vm) = Vm³ + c2*Vm² + c1*Vm + c0 = 0
        c2 = -(b + R*T/P);
        c1 = a - 3*b^2 - 2*R*T*b/P;
        c0 = -(a*b - b^2 - R*T*b^2/P);
        
        % 牛顿迭代法求解(初值取理想气体体积)
        Vm0 = R*T/P; % 理想气体体积
        tol = 1e-6; max_iter = 100;
        for iter = 1:max_iter
            f = Vm0^3 + c2*Vm0^2 + c1*Vm0 + c0;
            df = 3*Vm0^2 + 2*c2*Vm0 + c1;
            Vm1 = Vm0 - f/df;
            if abs(Vm1 - Vm0) < tol, break; end
            Vm0 = Vm1;
        end
        result = Vm1;
        
    elseif strcmp(mode, 'P') % 已知T,Vm求P
        term1 = R*T / (Vm - b);
        denominator = Vm*(Vm + b) + b*(Vm - b);
        term2 = a / denominator;
        result = term1 - term2;
    else
        error('模式错误!请选择''V''(求Vm)或''P''(求P)');
    end
end

参考代码 用于计算实际气体状态方程P-R方程 www.youwenfan.com/contentcsr/100766.html

七、使用说明

  1. 单位统一:压力用Pa,温度用K,体积用m³/mol,临界参数单位对应;
  2. 常见气体参数:可通过NIST数据库或化工手册查询(如甲烷:);
  3. 多根选择:气液共存区需根据实际状态(气相/液相)选择对应实根(气相取最大根,液相取最小根)。

八、应用场景

P-R方程广泛用于化工热力学计算,如:

专注于matlab/simulink,电子电路,编程