Итерация по сигналам шины в подсистемах Simulink / Reuse без копирования - PullRequest
1 голос
/ 08 декабря 2011

В Simulink мне нужно выполнить одну и ту же (нетривиальную) операцию на нескольких шинах. Я думал о реализации этой операции в качестве подсистемы и ее повторного использования, но это не сработало.

Интересно, можно ли итерировать сигналы / шины внутри шины, чтобы применить одну и ту же операцию несколько раз, а затем снова связать результаты вместе. Как бы я это сделал?

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Какой релиз вы используете?Если вы используете R2010b или новее, вы можете использовать массив шин и подсистему для каждого.См. документацию для более подробной информации о том, как это работает.Это будет работать только в том случае, если несколько шин, которые вы хотите перебрать, имеют абсолютно одинаковую структуру.

0 голосов
/ 09 декабря 2011

У меня нет Matlab для тестирования этого решения сейчас. Я предполагаю, что ваши автобусы имеют одинаковое измерение и структуру.

  • Создать блок в библиотеке
  • Определите тип (объект шины) с помощью редактора шины (соответствующего общая структура ваших автобусов)
  • Установите inport и outport на этот тип.
  • Используйте bus selector для разложения ваших данных, выполните ваши операций и собрать ваши шины с bus creator. Имена в селекторе / создателе те, которые вы определили.
  • Используйте этот блок для каждого сигнала.
  • Не забудьте экспортировать тип в файл .mat и загрузить его.
...