Simulink.BlockDiagram.addBusToVector

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

Описание

пример

[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 добавляют блоки Bus to Vector к модели или любой библиотеке, функция изменяет сохраненную копию схемы.

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

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

  • Delay

  • Selector

  • Assignment

  • Vector Concatenate

  • Reshape

  • Permute Dimensions

Примеры

свернуть все

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

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

open_system(fullfile(matlabroot,'examples','simulink','main',...
'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','main',...
'ex_bus_to_vector'))

Вставьте блоки 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 больше неявно преобразует шину в вектор. Вставленный блок Bus to Vector выполняет преобразование явным образом. Блок Bus to Vector является виртуальным и не влияет на результаты симуляции, генерацию кода или эффективность.

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

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

свернуть все

Имя модели или указатель в виде вектора символов, строкового скаляра или числового скаляра.

Типы данных: double | char | string

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

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

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

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

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

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

  • false — Обновите модель путем вставки блоков Bus to Vector для сигналов шины, которые неявно используются в качестве векторов.

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

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

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

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

  • Delay

  • Selector

  • Assignment

  • Vector Concatenate

  • Reshape

  • Permute Dimensions

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

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

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

свернуть все

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

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

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

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

Блоки Bus to Vector, добавленные функцией в виде массива ячеек. Если reportOnly установлен в false, массив ячеек содержит пути к каждому блоку Bus to Vector что функция, добавленная к шинам замены, используемым в качестве векторов. В противном случае, busToVectorBlocks isempty).

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

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

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

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

Советы

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

    1. Убедитесь, что модель компилирует без ошибки.

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

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

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

Смотрите также

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