В этом примере показано, как смоделировать несколько объектов с идентичной динамикой с помощью Для Каждой подсистемы. Количество объектов параметрируется длиной входного сигнала.
Этот пример иллюстрирует, как можно реализовать модель sldemo_metro_basic
, использование того Для Каждой подсистемы, чтобы смоделировать три идентичных метронома и другого, чтобы смоделировать идентичное влияние, которое движение каждого метронома оказывает на движущуюся основу.
Непрерывные движущие силы трех идентичных метрономов в sldemo_metro_basic моделируются в идентичных подсистемах: sldemo_metro_basic/Metronome1
, sldemo_metro_basic/Metronome2
, и sldemo_metro_basic/Metronome3
. Можно представлять эти три подсистемы как один Для Каждой подсистемы. Исходное положение метрономов передается в как параметр маски к Для Каждой подсистемы и используется в качестве начального условия для одного из интеграторов. Для Каждой подсистемы сконфигурирован, чтобы разделить этот параметр по первому измерению. В результате входной вектор с тремя элементами задает исходные положения для этих трех метрономов.
Рисунок 1: Метрономы, смоделированные с помощью трех подсистем с идентичной динамикой
Рисунок 2: Метрономы, смоделированные с помощью один Для Каждой подсистемы
При исследовании динамики движущейся основы обратите внимание, что это включает три идентичных дифференциальных термина второго порядка, соответствующие каждому метроному. Можно заменить три копии на одну Для Каждой Подсистемы. Вместо девяти входных сигналов, Для Каждой подсистемы требует только трех входных сигналов: угловые смещения, скорости вращения и угловые ускорения для всех метрономов. Для Каждой подсистемы сконфигурирован, чтобы разделить входной сигнал по первому измерению и работает с одним элементом от каждого сигнала для одной итерации (i.e. один метроном).
Рисунок 3: дифференциальные термины второго порядка, смоделированные с помощью копий той же подсистемы
Рисунок 4: дифференциальные термины второго порядка, смоделированные с помощью один Для Каждой подсистемы
После реализации исходной модели с два Для Каждого подсистемы, модель теперь параметрируется для количества метрономов. Чтобы увеличить число метрономов, введите новое значение параметру маски.
Например:
Theta4 = 0.7568;
Дважды кликните на блоке Metronome_i, чтобы открыть диалоговое окно маски и сменить Входные Положения (Разделенные) к: [Theta1 Theta2 Theta3 Theta4]
Выполните модель, чтобы видеть углы рассогласования этих четырех метрономов и положение движущейся основы.
sim('sldemo_metro_foreach');
Рисунок 5: анимация Симуляции с Для Каждой подсистемы параметрируется для четырех метрономов
Рисунок 6: Результат симуляции с Для Каждой подсистемы параметрируется для четырех метрономов