Моделирование объектов с идентичной динамикой, использующих для каждой подсистемы

В этом примере показано, как смоделировать несколько объектов с идентичной динамикой с помощью подсистемы For Each. Количество объектов параметризовано длиной входного сигнала.

Этот пример иллюстрирует, как можно реализовать модель sldemo_metro_basic, используя одну Для Каждой подсистемы для моделирования трех одинаковых метрономов и другую для моделирования того же эффекта, который движение каждого метронома оказывает на движущуюся основу.

Непрерывная динамика трех одинаковых метрономов в sldemo_metro_basic моделируются идентичными подсистемами: sldemo_metro_basic/Metronome1, sldemo_metro_basic/Metronome2, и sldemo_metro_basic/Metronome3. Можно представлять эти три подсистемы как одну подсистему For Each. Начальное положение метрономов передается в качестве параметра маски в подсистему For Each и используется в качестве начального условия для одного из интеграторов. Подсистема For Each сконфигурирована для разбиения этого параметра на разделы по первой размерности. В результате вектор входа с тремя элементами задает начальные положения для трех метрономов.

Фигура 1: Метрономы, смоделированные с использованием трех подсистем с идентичной динамикой

Фигура 2: Метрономы, смоделированные с использованием одной Для каждой подсистемы

При рассмотрении динамики движущейся основы обратите внимание, что она включает три одинаковых дифференциальных члена второго порядка, соответствующих каждому метроному. Можно заменить три копии одной подсистемой For Each. Вместо девяти входных сигналов подсистема For Each требует только трех входных сигналов: угловых перемещений, скоростей вращения и угловых ускорений для всех метрономов. Подсистема For Each сконфигурирована для разбиения входного сигнала по первой размерности и работает с одним элементом из каждого сигнала для одной итерации (то есть с одним метрономом).

Фигура 3: Дифференциальные условия второго порядка, смоделированные с использованием копий одной и той же подсистемы

Фигура 4: Дифференциальные условия второго порядка, смоделированные с использованием одной Для каждой подсистемы

После реализации исходной модели с двумя подсистемами For Each, модель теперь параметризована для количества метрономов. Чтобы увеличить количество метрономов, введите новое значение в параметр маски.

Для примера:

Theta4 = 0.7568;

Дважды щелкните по блоку Metronome_i, чтобы открыть диалог маски и сменить Положения Входа (Разделенные) к: [Theta1 Theta2 Theta3 Theta4]

Выполните модель, чтобы увидеть углы смещения четырех метрономов и положение движущейся основы.

sim('sldemo_metro_foreach');

Фигура 5: Симуляция анимации с For Each подсистемой, параметризованной для четырех метрономов

Фигура 6: Результат симуляции с параметризованной для четырех метрономов подсистемой For Each