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