使用注释循环对象创建和声明
Loop in object creation and declaration with annotations
我需要使用循环在我的模型声明中创建多个对象。
For 循环似乎在 "equation" 或 "algorithm" 块之外不起作用。
我需要在模型的开头声明我的对象。
我还需要为每个对象添加不同的注释,使每个对象的位置不同。
因此,我想创建一个由 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;
尽管这两种方法 None 有效。
你有什么建议吗?
提前谢谢你。
您在 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;
我需要使用循环在我的模型声明中创建多个对象。 For 循环似乎在 "equation" 或 "algorithm" 块之外不起作用。 我需要在模型的开头声明我的对象。 我还需要为每个对象添加不同的注释,使每个对象的位置不同。
因此,我想创建一个由 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;
尽管这两种方法 None 有效。
你有什么建议吗?
提前谢谢你。
您在 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;