Массив шин - это массив, элементы которого являются невиртуальными шинами.
Используйте массив шин для:
Сократите объем технического обслуживания за счет централизации алгоритмов, используемых для обработки нескольких шин.
Оптимизируйте итеративную обработку нескольких шин одного типа, например, используя подсистему For Each с массивом шин.
Изменение количества обрабатываемых шин без необходимости реструктуризации частей модели, использующих массив шин.
Встроенные блоки, такие как блоки назначения или селектора, используются для управления массивами шин так же, как массивы любого другого типа. Использование массива шин позволяет избежать необходимости создания пользовательских S-функций для управления упаковкой и распаковкой сигналов структуры.
Создайте код с массивом структур C, который можно интегрировать с устаревшим кодом C, использующим массивы структур. Этот подход упрощает индексирование в массив для вычислений Simulink ® с использованием for цикл на индексированных структурах.
Например, можно моделировать многоканальную систему, например систему связи, как массив шин. Все каналы имеют одинаковый тип данных, и каждый из каналов может иметь разное значение.
Пример модели, демонстрирующей несколько способов использования массива шин, см. в разделе Массивы шин модели.
Все шины, объединенные в массив, должны:
Быть невиртуальным
Укажите то же самое Simulink.Bus тип данных объекта (то есть то же имя, иерархии и атрибуты элемента шины)
Отсутствие сигналов переменного размера или сигналов на основе кадров
Сведения о создании невиртуальных шин см. в разделе Создание невиртуальных шин.
Сведения о том, какие блоки поддерживают массивы шин, см. в разделе Блоки с поддержкой шины.
Блок Vector Concatenate или Matrix Concatenate можно использовать для группировки невиртуальных шин в массив шин. Simulink рассматривает невиртуальные шины как скаляры. Поэтому можно использовать любой из этих блоков независимо от типов данных элемента шины.
Чтобы создать массив шин с одним из следующих блоков:
Определить одно Simulink.Bus тип данных объекта для всех невиртуальных шин, которые требуется сгруппировать в массиве шин.
В диалоговом окне «Параметры блока» для блока «Векторная конкатенация» или «Матричная конкатенация» задайте для параметра «Количество входов» требуемое количество шин в массиве шин. Значок блока отображает указанное количество входных портов.
Подключите невиртуальные шины к входам блока.
Блочным выходом является массив шин.
Откройте и скомпилируйте пример модели. Чтобы скомпилировать модель, на вкладке Моделирование (Modeling) панели инструментов Simulink щелкните Обновить модель (Update Model) или Выполнить (Run). При компиляции модели обновляются стили линий, которые можно использовать для визуальной идентификации массивов шин.

Чтобы продемонстрировать, как создавать массивы шин из невиртуальных шин, модель использует:
Два блока Bus Creator для создания двух невиртуальных шин, имеющих одно и то же Bus тип данных объекта (Bus: BusObject).
Блок векторной конкатенации, матричной конкатенации с числом входов, равным 2 для группирования двух невиртуальных шин в массив шин.
Чтобы продемонстрировать, как выбрать элементы из массива шин, модель использует:
Блок выбора для извлечения одной из шин из массива шин на основе указанного в диалоговом окне индекса. Поскольку массивы шин являются конкатенированными сигналами, обеспечивающими доступ к их элементам на основе индекса, блок селектора использует Index vector (dialog) для параметра «Индекс».
Блок выбора шины для извлечения элементов невиртуальной шины с использованием доступа на основе имени.
Наложение информации Signal Dimensions показывает, что массив шин содержит две шины. Чтобы включить наложение размеров сигнала, на панели инструментов Simulink на вкладке Debug выберите Information Overlays > Signal Dimensions.
Блок константы можно использовать для компактного представления массива шин с элементами шины с постоянным значением. Этот метод может уменьшить количество линий в модели и количество переменных, используемых моделью, особенно когда модель повторяет алгоритм с различными значениями параметров.
В блоке «Константа» укажите:
Постоянное значение как массив структур MATLAB или Simulink.Parameter объект, определяющий массив структур MATLAB
Тип выходных данных как Simulink.Bus объект
Блоки констант поддерживают только структуры MATLAB ®, если типом выходных данных является Bus объект.
Определение массива структур с именем const_struct_array. Составьте каждую структуру из одних и тех же элементов: Offset, Gain, и Threshold.
const_struct_array(1).Offset = 197; const_struct_array(1).Gain = 4.32; const_struct_array(1).Threshold = 795.68; const_struct_array(2).Offset = 158; const_struct_array(2).Gain = 3.83; const_struct_array(2).Threshold = 1039.77;
Чтобы создать массив структур для иерархии шин с множеством элементов, рассмотрите возможность использования Simulink.Bus.createMATLABStruct функция.
Определение соответствующего Bus тип данных объекта.
Simulink.Bus.createObject(const_struct_array)
Новое Bus объект использует имя по умолчанию slBus1.
Откройте и смоделируйте примерную модель, которая содержит блок «Константа» со значением «Константа», равным const_struct_array и тип данных Output имеет значение Bus: slBus1.
open_system('ArrayOfBusesFromStructModel') sim('ArrayOfBusesFromStructModel');

Выход блока Константы представляет собой массив шин.
Блок For Each Subsystem итеративно обрабатывает значения констант для каждой невиртуальной шины в массиве. Содержимое подсистемы отображает невиртуальную шину вместо массива шин, подключенных к порту.
