循环使用注释进行对象创建和声明

时间:2019-05-03 17:17:26

标签: modelica dymola

我需要使用循环在模型声明中创建多个对象。 对于for循环,似乎在“等式”或“算法”块之外无法正常工作。 我需要在模型的开头声明我的对象。 我还需要为每个对象添加不同的注释,以使每个对象的位置不同。

因此,我想创建一个由cellConst子部件(位于Thermocycle软件包中)组成的容器。

我已经尝试通过使用以下代码来做到这一点:

model MyTank

CellConst [N] cellConstArray = {
CellConst (
Ai=0.53, 
Ac=0.88, 
Mdotnom=1, 
L=0.25, Discretization=ThermoCycle.Functions.Enumerations.Discretizations.upwind_AllowFlowReversal, Vi=0.030, Tstart=293.15)
annotation (Placement(transformation(extent={{-14,22},{-8,28}})))
for i in 1:N
};

end MyTank;

我还尝试了一个简单的循环

model MyTank

for i in 1:N loop
end for;

end MyTank;

尽管这两种方法都不起作用。

您有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您在Modelica中所做的操作略有不同:您可以向向量的每个元素添加修饰符,如下所示:

model MyTank

CellConst [N] cellConstArray(each Ai=0.53, 
 each Ac=0.88, 
 each Mdotnom=1, 
 each L=0.25, 
 each Discretization=ThermoCycle.Functions.Enumerations.Discretizations.upwind_AllowFlowReversal, 
 Vi = fill(0.030, N), // Just to show you can use an array here
 each Tstart=293.15)
);
end MyTank;