Цикл создания объекта и объявления с аннотациями - PullRequest
1 голос
/ 03 мая 2019

Мне нужно использовать цикл для создания нескольких объектов в объявлении модели. Кажется, что циклы 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 Ответ

2 голосов
/ 04 мая 2019

Вы делаете вещи немного по-другому в 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...