Simulink. BlockDiagram.addBusToVector

Преобразуйте виртуальные сигналы шины в векторные сигналы путем добавления Шины в Векторные блоки

Синтаксис

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model)
[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs)
[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly)
[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly,strictOnly)

Описание

пример

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model) ищет модель, исключая любые блоки библиотеки, для сигналов шины, используемых неявно в качестве векторов, и возвращает результаты поиска.

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs) ищет модель, и если includeLibs является true, включает в поисковые блоки библиотеки для сигналов шины, используемых неявно в качестве векторов.

пример

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly) ищет модель, и если reportOnly установлен в false, то функция вставляет блок Bus to Vector в каждую шину, которая используется в качестве вектора в любом блоке, который это ищет. Вставка заменяет неявное использование шины как вектор с явным преобразованием шины к вектору. Источник и целевые блоки сигнала не изменяются.

Если Simulink.BlockDiagram.addBusToVector добавляет Шину в Векторные блоки к модели или какой-либо библиотеке, функция изменяет сохраненную копию схемы.

Если Simulink.BlockDiagram.addBusToVector изменяет блок библиотеки, изменение влияет на каждый экземпляр того блока в каждой модели, которая пользуется библиотекой.

[destBlocks,busToVectorBlocks,ignoredBlocks] = Simulink.BlockDiagram.addBusToVector(model,includeLibs,reportOnly,strictOnly) ищет модель, и если strictOnly является true, функциональные проверки на сигналы входной шины, используемые неявно в качестве векторов, которые поданы в один из этих блоков. Эти блоки не могут взять виртуальные сигналы шины, но они могут принять невиртуальные сигналы шины.

  • Задержка

  • Селектор

  • “()” Присвоение

  • Векторная конкатенация

  • Изменение

  • Переставьте размерности

Примеры

свернуть все

Образцовый ex_bus_to_vector моделирует правильно, но вход к блоку Gain является шиной, в то время как вывод является вектором. Блок Gain неявно преобразовывает шину в вектор.

Откройте модель.

open_system(fullfile(matlabroot,'examples','simulink',...
'ex_bus_to_vector'))

Идентифицируйте шины, обработанные как векторы.

[blocks] = Simulink.BlockDiagram.addBusToVector(...
'ex_bus_to_vector')
### Processing block diagram 'ex_bus_to_vector'
### Number of blocks left that are connected to a bus being used as a vector: 2
### Done processing block diagram 'ex_bus_to_vector'

blocks = 

  1×2 struct array with fields:

    BlockPath
    InputPort
    LibPath

Чтобы понять отношение между Simulink.BlockDiagram.addBusToVector и параметром конфигурации Bus signal treated as vector, смотрите, Управляют Преобразованиями Шины к вектору.

Образцовый ex_bus_to_vector моделирует правильно, но вход к блоку Gain является шиной, в то время как вывод является вектором. Блок Gain неявно преобразовывает шину в вектор.

Откройте модель.

open_system(fullfile(matlabroot,'examples','simulink',...
'ex_bus_to_vector'))

Вставьте Шину в Векторные блоки.

Когда вы используете функциональный Simulink.BlockDiagram.addBusToVector с набором reportOnly к false, функция сохраняет модель. Чтобы создать перезаписываемую копию модели ex_bus_to_vector, этот пример использует функцию save_system.

save_system('ex_bus_to_vector','ex_bus_to_vector_blocks');
[blocks,busToVectors] = Simulink.BlockDiagram.addBusToVector(...
'ex_bus_to_vector_blocks',true,false);

Блок Gain больше неявно преобразовывает шину в вектор. Вставленная Шина к блоку Vector выполняет преобразование явным образом. Блок Bus to Vector является виртуальным и не влияет на результаты симуляции, генерацию кода или производительность.

Чтобы понять отношение между Simulink.BlockDiagram.addBusToVector и параметром конфигурации Bus signal treated as vector, смотрите, Управляют Преобразованиями Шины к вектору.

Входные параметры

свернуть все

Имя модели или указатель, заданный как вектор символов.

Поисковые блоки библиотеки, заданные как false или true.

  • ложь Ищите только блоки в модели.

  • Библиотека true — Search блокируется для сигналов шины, используемых неявно в качестве векторов.

Задайте в качестве второго аргумента.

Типы данных: логический

Выбор сообщить о результатах, не изменяя модель, заданную как false или true.

  • ложь Обновите модель путем вставки Шины в Векторные блоки для сигналов шины, которые неявно используются в качестве векторов.

  • tRUE Сообщите о результатах поиска, но не изменяйте модель.

Задайте в качестве третьего аргумента. Также задайте аргументы model и includeLibs.

Типы данных: логический

Проверяйте сигналы входной шины, используемые неявно в качестве векторов, которые питают блоки, которые могут принять невиртуальный, но не виртуальные, сигналы шины, заданные как false или true. Если strictOnly является true, функциональные проверки на сигналы входной шины, используемые неявно в качестве векторов, которые поданы в один из этих блоков. Эти блоки не могут взять виртуальные сигналы шины, но они могут принять невиртуальные сигналы шины.

  • Задержка

  • Селектор

  • “()” Присвоение

  • Векторная конкатенация

  • Изменение

  • Переставьте размерности

Задайте как четвертый аргумент. Необходимо также задать model, includeLibs и аргументы reportOnly.

Типы данных: логический

Выходные аргументы

свернуть все

Блоки, соединенные с шинами, которые обрабатывают шины как векторы, возвратились как массив структур. Каждая структура в массиве содержит эти поля:

  • BlockPath — Вектор символов, задающий путь к блоку, с которым соединяется шина.

  • InputPort — Целое число, задающее входной порт, с которым соединяется шина.

  • LibPath — Если блок является экземпляром блока библиотеки, и includeLibs является true, значение поля является путем к исходному блоку библиотеки. В противном случае LibPath пуст ([]).

Соедините шиной к Векторным блокам, добавленным функцией, заданной как массив ячеек. Если reportOnly установлен в false, массив ячеек содержит пути к каждой Шине к блоку Vector что функция, добавленная к шинам замены, используемым в качестве векторов. В противном случае busToVectorBlocks пуст ([]).

Случаи, где функция не может вставить Шину в блок Vector, заданный как массив структур. Каждая структура в массиве содержит эти поля:

  • BlockPath — Вектор символов, задающий путь к блоку, с которым соединяется шина.

  • InputPort — Целое число, задающее входной порт, с которым соединяется шина.

Эти случаи происходят, когда Шина к Вектору не может быть вставлена, потому что вход виртуальный сигнал шины состоит из элементов со смешанными атрибутами.

Советы

  • Прежде чем вы выполните эту функцию:

    1. Гарантируйте, что модель компилирует без ошибки.

    2. Сохраните модель.

  • Поддержите модель и любые библиотеки прежде, чем вызвать функцию с набором reportOnly к false.

  • Чтобы предварительно просмотреть эффекты изменения на блоках во всех моделях, вызовите Simulink.BlockDiagram.addBusToVector с набором includeLibs к true и набором reportOnly к true. Затем исследуйте информацию, возвращенную в выходном аргументе destBlocks.

Представленный в R2007a