Допустим, у нас есть следующая модель:
Коллекционер:
model Collector
Real collect_here;
annotation(defaultComponentPrefixes="inner");
end Collector;
и следующая модель потенциально несколько раз:
model Calculator
outer Collector collector;
Real calculatedVariable = 2*time;
equation
calculatedVariable = collector.collect_here;
end Calculator;
Приведенный выше код работает, если calcModel присутствует в моделируемой системе только один раз. Если модель существует более одного раза, я получаю особую систему. Это демонстрирует пример ниже. Изменение параметра works
приводит либо к исправной, либо к неисправной системе.
model Example
parameter Boolean works = true;
inner Collector collector;
Calculator calculator1;
Calculator calculator2 if not works;
end Example;
Использование массива внутри коллектора для передачи в него нескольких переменных не решает эту проблему.
Другой возможный способ решить эту проблему - использовать коннекторы, но я заставил его работать только с одной calcModel.