如何从 Modelica 中的另一个模型访问参数?

1 modelica openmodelica dymola

我在 Modelica 中有两个模型 (A&B),我想在模型 B 中调用模型 A 的参数。事实上,模型 A 计算参数的值,我需要访问模型 B 中的该值。我该怎么做?

我尝试“扩展”命令来连接两个模型,但组件也已连接,但我只需要该特定参数。

小智 7

您可以使用点符号来引用模型中类实例之间的“公共”变量。

在以下示例中,模型“Test”是模型 A 的实例(名为“a”)和模型 B 的实例(名为“b”)。参数“pB”的值被修改,从模型 A 实例计算出的参数“sA”中获取其值。

model Test
    
    model A
        parameter Real pA = 1.234;
        final parameter Real sA = 2*pA;
    end A;
    model B
        parameter Real pB = 4.321;
        final parameter Real sB = pB/2;
        Real x;
    equation
        x = sB;
    end B;
    
    A a;
    B b(pB = a.sA);        

end Test;
Run Code Online (Sandbox Code Playgroud)

模拟该模型,变量“bx”的值为1.234。这是因为“sA”的值是“pA”的两倍,“sB”的值是“pB”的一半,并且修饰符将“pB”等于“a.sA”。

因此我们使用点符号来引用参数“sA”来修改参数“pB”的值。如果没有这个修饰符,我们会看到 x 的值约为 2.16。