我需要使用循环在模型声明中创建多个对象。 对于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;
尽管这两种方法都不起作用。
您有什么建议吗?
谢谢。
答案 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;