You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab循环中gamma2变量未更新问题排查求助

问题分析:gamma2始终未更新的原因

循环内变量x1,x2,T1,T2,P1_sat,P2_sat,gamma1均能正常更新,但gamma2始终保持初始值不变,核心原因是迭代逻辑形成了数学闭环:

  1. 先看rr函数与r2函数的数学关系:

    • rr(gamma, T)的计算逻辑:x = sqrt(log(gamma)/A),其中A = 2.771 - 0.00523*T
    • r2(x, T)的计算逻辑:gamma_2 = exp(A * x^2)
  2. 代入迭代步骤拆解:
    每次循环中,先通过x1 = rr(gamma2, T0)得到x1,随后又用gamma2 = r2(x1, T0)计算新的gamma2。将x1的表达式代入r2的计算:

    gamma2 = exp(A * (sqrt(log(gamma2_old)/A))^2) = exp(A * (log(gamma2_old)/A)) = exp(log(gamma2_old)) = gamma2_old
    

    这就导致gamma2永远等于上一次的取值,完全没有变化。

  3. 补充说明:
    初始T0=0时,A=2.771,计算出的x1固定;后续T0增加时A会变化,但由于上述逆运算关系,gamma2依然会保持前一次的值,无法更新。

解决方向

需要重新梳理迭代逻辑:当前x1 = rr(gamma2,T0)这一步的合理性存疑,应根据相平衡的实际物理模型调整x1的计算方式,打破这个无意义的数学闭环。


原始代码

P = 101.33; y1 = 0.4; y2 = 0.6;
T1 = reverse_antoine1(P);
T2 = reverse_antoine2(P);dT = 0.01; Tf = 1000; n = round(Tf/dT);
x1 = 0.0001; x2 = 0.9999;T=0;gamma1 = 1.01;gamma2 = 1.01; 
T0 = 0;
for i = 1:n
    P1_sat = antoine1(T0);
    P2_sat = antoine2(T0);
    x1 = rr(gamma2,T0);
    x2 = 1 - x1;
    T1 = reverse_antoine1(P1_sat);
    T2 = reverse_antoine2(P2_sat);
    gamma1 = r1(x2, T0);
    gamma2 = r2(x1, T0);

     fprintf('\nIntermediate values at iteration %d: gamma2 = %.16f\n', i, gamma2);

    if ((abs(x1*gamma1*P1_sat + x2*gamma2*P2_sat - P)) < 0.1);
        T = T0;
        break;
    end

    T0 = T0 + dT;
end

function [gamma_1] = r1(x, T)
    A = 2.771 - 0.00523 * T;
    gamma_1 = exp(A*(x^2));
end

function [gamma_2] = r2(x, T)
    A = 2.771 - 0.00523 * T;
    gamma_2 = exp(A * x^2);
end

function [x] = rr(gamma, T)
    A = 2.771 - 0.00523 * T;
    x = sqrt(log(gamma)/A);
end

function [P_1_sat] = antoine1(T)
    P_1_sat = exp(16.59158 - 3643.31/(T - 33.424));
end

function [P_2_sat] = antoine2(T)
    P_2_sat = exp(14.25326 - 2665.54/(T - 53.424));
end

function [T1_0] = reverse_antoine1(P)
    T1_0 = 3643.31 / (16.59158 - log(P)) + 33.424;
end

function [T2_0] = reverse_antoine2(P)
    T2_0 = 2665.54 / (14.25326 - log(P)) + 53.424;
end

内容的提问来源于stack exchange,提问作者koh05163

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 06:25:12