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。