Блок управления для Для Каждой подсистемы
Блок For Each служит блоком управления для блока For Each Subsystem. А именно, блок For Each позволяет блокам в Для Каждой подсистемы обработать элементы или входных сигналов или параметров маски независимо. Каждый блок в этой подсистеме, которая имеет состояния, обеспечивает отдельный набор состояний для каждого элемента или подрешетки, которую это обрабатывает. Когда набор блоков в подсистеме обрабатывает элементы или подрешетки, подсистема конкатенирует результаты сформировать выходные сигналы.
Используйте Для Каждой подсистемы, чтобы итеративно вычислить выходные параметры после изменения параметры маски или входные параметры. Для этого сконфигурируйте разделение входных сигналов или параметров маски в диалоговом окне блока For Each.
Чтобы задать который входные сигналы к разделу для каждой итерации в Для Каждой подсистемы, используйте вкладку Input Partition в диалоговом окне блока For Each. При определении сигнала, который будет разделен, задайте Partition Dimension, Partition Width и параметры Partition Offset.
Можно разделить параметры маски блока For Each Subsystem. Разделение полезно для систем, которые имеют идентичные структуры в каждой итерации, но различных значениях параметров. В этом случае изменение модели, чтобы разделить дополнительные входные сигналы для каждого параметра является громоздким. Вместо этого добавьте параметр маски в Для Каждой подсистемы. Для получения дополнительной информации смотрите, Создают Простую Маску. Чтобы выбрать параметр маски для разделения, используйте вкладку Parameter Partition диалогового окна блока For Each. Для получения дополнительной информации смотрите, Выбирают Partition Parameters, ниже.
Задайте размерность, по которой можно конкатенировать результаты путем определения Concatenation Dimension во вкладке Output Concatenation.
Результаты, сгенерированные блоком для каждой подрешетки, сложены по измерению конкатенации. По умолчанию размерность 1 (y - ось) используется, означая, что результаты сложены вертикально. Однако, если вы задаете размерность конкатенации 2, результаты конкатенируют вдоль горизонтального направления (x - ось). Таким образом, если процесс генерирует векторы-строки, то конкатенированным результатом является матрица в первом случае и вектор-строка во втором случае.
При выборе входного сигнала или параметра маски подсистемы для разделения, необходимо задать, как разложить его на элементы или подрешетки для каждой итерации. Сделайте это путем устанавливания целочисленных значений для Partition Dimension, Partition Width и параметров Partition Offset.
Как рисунок, считайте матрицу входного сигнала A
из формы:
Маркирует d 1 и d 2, соответственно, задайте размерности 1 и 2. Если вы сохраняете настройку по умолчанию 1
и для размерности раздела и для ширины раздела и 0
для смещения раздела, затем Simulink® перпендикуляр срезов, чтобы разделить размерность 1 в ширине равняется ширине раздела, которая является одним элементом:
Матрица А разлагается в эти три вектора-строки:
Если вместо этого вы задаете 2
как размерность раздела, перпендикуляр срезов Simulink, чтобы определить размеры 2, чтобы сформировать три вектор-столбца:
В дополнение к установке Partition Dimension к 2
, если вы устанавливаете Partition Width на 2
и Partition Offset к -1
, Simulink использует два наложения 3 2 разделы для обработки.
Для примера с помощью параметра Partition Offset смотрите, что Окружение Обрабатывает Используя Для Каждого Подсистемы.
По умолчанию все разделы входного сигнала или параметра маски обрабатываются. Чтобы обработать подмножество разделов, введите номер разделов к процессу как Number of iterations. В матричных примерах выше, если Partition Offset установлен в 0
(значение по умолчанию), и Number of iterations установлен в 2
, только первые 2 строки или столбцы входной матрицы A
обрабатываются.
Примечание
Только сигналы рассматриваются одномерными в Simulink. Параметры маски являются строкой или вектор-столбцами, согласно их ориентации. Чтобы разделить вектор-строку, задайте размерность раздела как 2 (вдоль столбцов). Чтобы разделить вектор-столбец, задайте размерность раздела как 1 (вдоль строк).