For loop 如何在Dymola中迭代类的所有实例?

For loop 如何在Dymola中迭代类的所有实例?,for-loop,modelica,dymola,For Loop,Modelica,Dymola,我目前正在模拟一个区域供热网络模型,该模型包含Dymola中的许多管道,并希望计算有关整个网络的一些数据,即管道中的总热损失 实现这一点的明显方法是使用for循环迭代每个管道,并将各个热损失相加。但是,我不确定如何迭代每个管道。网络中的每个管道都是I类创建的“管道”的实例,声明如下: replaceable model Pipe = DHNAEE.Components.Pipe.PipeHeatLossMod_Double; 然后将每个管道定义为管道类的实例,如下所示: Pip

我目前正在模拟一个区域供热网络模型,该模型包含Dymola中的许多管道,并希望计算有关整个网络的一些数据,即管道中的总热损失

实现这一点的明显方法是使用for循环迭代每个管道,并将各个热损失相加。但是,我不确定如何迭代每个管道。网络中的每个管道都是I类创建的“管道”的实例,声明如下:

 replaceable model Pipe =
      DHNAEE.Components.Pipe.PipeHeatLossMod_Double;
然后将每个管道定义为管道类的实例,如下所示:

 Pipe dualPipeK30_c78(redeclare package Medium = Medium,diameter=0.02, thicknessIns=0.036, length=12.3, m_flow_nominal=5,nPorts = 1)
我的问题是,有没有一种方法可以简单地迭代模型中类“Pipe”的所有实例,并对特定的输出(即每个实例的热损失)求和?我目前正在用Python进行后期处理,但直接从Dymola获得这一功能将更加有益

非常感谢,,
Keith

如果所有管道都使用您可以控制的特殊类,并且它是一个动态物理属性,您可以在管道类中添加类似(未测试)的内容:

然后,全局热损失将收集在该散热器组件中(自动添加)

将来可能会有另一个选项(尤其是当您无法修改管道类时):

   outer MyHeatCapacitor heatSink;
   model MyHeatCapacitor
     extends Modelica.Thermal.HeatTransfer.Components.HeatCapacitor;
     annotation(missingInnerMessage="Need to add global heatSink");
   end MyHeatCapacitor;
equation
   connect(..., heatSink.port);