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

Modelica表达式求值疑问:模型B中rA及模型A中rD的值?

Modelica表达式求值疑问解答

问题1:模型B内的rA求值结果为5还是11?

结论:结果是5。

解释:
Modelica遵循作用域查找规则,嵌套模型B内部未定义rA时,会引用外部模型A中的rA。A中的rA = 1 + rB,这里的rB是A作用域内定义的4,因此rA的计算结果为1+4=5。B内部的rB=10仅作用于B自身的作用域,不会影响外部A中rA的取值。

对应的代码:

model A
    Real rA = 1 + rB;
    Real rB = 4;
    
    model B
        Real rB = 10;
        // Case A : Evaluation of rA = 1 + 4 = 5 
        // Case B : Evaluation of rA = 1 + 10 = 11 
    end B;
end A;

问题2:模型A内的rD求值结果为5还是11?

结论:结果是5。

解释:
模型B中的rC = rA引用的是外部模型A的rA(B内部无rA定义),而A的rA值由A的rB=4计算得5,因此实例myB的rC值为5。rD = myB.rC自然继承这个值,结果为5。B内部的rB=10不会对A的rA产生影响,所以不会改变最终结果。

对应的代码:

model A
    Real rA = 1 + rB;
    Real rB = 4;

    model B
        Real rB = 10;
        Real rC = rA;
    end B;

    B myB;
    
    Real rD = myB.rC;

    // What is the result of the evaluation of rD ?
    // Case A : Evaluation of rD = 1 + 4 = 5 
    // Case B : Evaluation of rD = 1 + 10 = 11
end A;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:20:25