gpt4 book ai didi

modelica - 使用内部/外部传播包

转载 作者:行者123 更新时间:2023-12-03 22:21:51 25 4
gpt4 key购买 nike

我想在我的模拟中放置一个“系统”组件(类似于 Modelica.Fluid.SystemModelica.Mechanics.MultiBody.World ),所有其他组件都可以从中访问 Medium包装,以便为整个流程仅设置一次工作流体。我的 System定义如下:

model System  annotation(defaultAttributes="inner");
replaceable package Medium = Modelica.Media.Interfaces.PartialMedium
annotation(choicesAllMatching=true);
parameter Modelica.SIunits.Temperature T_amb=293.15;
// ...
equation
// empty
end System;

我引用了 System在其他组件中使用 outer System system; ,因此我可以访问其中包含的所有变量/参数,例如 system.T_amb .然而,试图拉 Medium像这样的包不起作用:
model MixingVolume
outer System system;
package Medium = system.Medium;
// ...
equation
// ...
end MixingVolume;

我收到一条消息,说缺少基类“system.Medium”。 (这是从我注定要使用的 CATIA V6 的 Modelica 环境中极差的德语翻译重新翻译的 - 也许原始消息会提供更多信息。)我做错了什么?我很困惑,因为这...
model MixingVolume
outer System system;
Constant Integer nXi = system.Medium.nXi; // number of independent mass fractions
// ...
equation
// ...
end MixingVolume;

...工作正常,所以 MixingVolume确实看到了 system.Medium成分。有什么线索吗?非常感谢您的帮助。

最佳答案

您不能通过点表示法访问组件内的包。

如果第一个名称是一个组件引用,则在 dot 之后仅是一个组件
可以遵循引用或函数。阅读 Modelica 规范:
https://www.modelica.org/documents/ModelicaSpec32Revision2.pdf .

如果允许 system.Medium.nXi,这可能是工具中的错误。

关于modelica - 使用内部/外部传播包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com