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_mux_ng моделирует правильно, но входной параметр к блоку Gain является шиной, в то время как вывод является вектором. Поэтому блок Gain использует сигнал шины в качестве вектора.

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

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

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

[blocks,busToVectors] = Simulink.BlockDiagram.addBusToVector(...
'ex_bus_to_mux_ng',true,false)
### Processing block diagram 'ex_bus_to_mux_ng'
### Number of blocks left that are connected to a bus being used as a vector: 1
### Successfully inserted Bus to Vector Blocks in model. Preparing to save model and/or libraries
### To eliminate modeling errors in the future, please enable strict bus modeling by setting the 'Bus signal treated as vector' diagnostic in the Configuration parameter dialog, Diagnostic/Connectivity tab to 'error'
### Done processing block diagram 'ex_bus_to_mux_ng'

blocks = 

  struct with fields:

    BlockPath: 'ex_bus_to_mux_ng/Gain'
    InputPort: 1
      LibPath: ''


busToVectors =

  cell

    'ex_bus_to_mux_ng/Bus to Vector'

Блок Gain больше неявно преобразовывает шину в вектор. Вставленная Шина к блоку Vector выполняет преобразование явным образом. Результатами моделирования является то же самое для обеих моделей. Блок Bus to 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

Была ли эта тема полезной?