如何在Dymola中为连接线样式进行条件赋值?
多流体库开发中连接器参数循环依赖问题
我正在开发一个多流体库,已完成物理组件、连接器、边界条件、传感器、物理属性等模块的编写。目前通过Integer fluid参数实现流体选择,并且已经完成根据该参数值为组件样式条件赋值颜色的功能。
现在我希望进一步为连接线样式设置条件赋值,参考了Modelica中为连接器指定连接样式的方法,在连接器模型中定义参数:
parameter Integer fluid=fluid "1: 1st fluid / 2: 2nd fluid";
意图让连接器继承所在组件的fluid参数值,按照方法设置图形元素条件样式时,却出现错误:mean circular equalities for conduite.C1.fluid(其中"conduite"为组件实例名,"C1"是该组件的连接器之一)。
补充说明
初始方法(存在循环依赖错误)
- 连接器模型代码:
parameter Integer fluid=fluid "1: 1st fluid / 2: 2nd fluid"; - 组件模型代码:
parameter Integer fluid=1 "1: 1st fluid / 2: 2nd fluid";
连接器实例的fluid参数保留默认的fluid值,生成的扁平Modelica代码显示循环等式:
parameter Integer conduite.C1.fluid = conduite.C1.fluid; parameter Integer conduite.C2.fluid = conduite.C2.fluid;
可行但不理想的方法
- 连接器模型代码:
parameter Integer fluid=1 "1: 1st fluid / 2: 2nd fluid"; - 组件模型代码:
parameter Integer fluid=1 "1: 1st fluid / 2: 2nd fluid";
手动将连接器实例的fluid参数值改为fluid后,生成的扁平Modelica代码符合预期:
parameter Integer conduite.C1.fluid = conduite.fluid; parameter Integer conduite.C2.fluid = conduite.fluid;
疑问
为何连接器模型中设置默认值fluid时,不会指向上级组件的同名参数,而手动在连接器实例中赋值fluid却能正确关联到组件的参数?
内容的提问来源于Stack Exchange,提问作者Clement44
相关产品推荐
相关产品推荐

