Управляйте преобразованиями шины к вектору

В этом примере показано, как найти и управлять неявными преобразованиями шины к вектору.

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

Некоторые шины не могут преобразовать в векторы. Для получения дополнительной информации смотрите Шину к Вектору.

Идентифицируйте неявные преобразования шины к вектору

Откройте и симулируйте модель ex_bus_to_vector.

Чтобы принять шину, блоки Усиления неявно преобразуют шину в вектор.

Чтобы идентифицировать шины, обработанные как векторы перед симуляцией, используйте функциональный Simulink.BlockDiagram.addBusToVector.

[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 = 

  1x2 struct array with fields:

    BlockPath
    InputPort
    LibPath

Чтобы идентифицировать шины, обработанные как векторы в процессе моделирования, установите сигнал Шины, обработанный как векторный параметр конфигурации к warning или error. Настройкой по умолчанию для сигнала Шины, обработанного как вектор, является none, который не генерирует предупреждающего сообщения или сообщения об ошибке, когда блок неявно преобразует шину в вектор.

Явным образом задайте преобразования шины к вектору

Чтобы вставить Шину в Векторные блоки, где блоки неявно преобразуют шины в векторы, используйте функциональный Simulink.BlockDiagram.addBusToVector с reportOnly установите на false. Когда вы используете функциональный 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);

Блоки Усиления больше неявно преобразуют шину в вектор. Вставленная Шина с Векторными блоками выполняет преобразование явным образом.

Соедините шиной с Векторными блоками, являются виртуальными и не влияют на результаты симуляции, генерацию кода или эффективность.

Функциональный Simulink.BlockDiagram.addBusToVector не возвращает остающихся неявных преобразований шины к вектору.

[blocks] = Simulink.BlockDiagram.addBusToVector('ex_bus_to_vector_blocks')
###No buses used as vectors left to process

blocks = 

  1x0 empty struct array with fields:

    BlockPath
    InputPort
    MixedAttributes

Путем определения приемлемых преобразований шины к вектору с Шиной с Векторными блоками можно более легко идентифицировать неожиданные преобразования. Обработка Шины параметра конфигурации сигнализирует как векторный набор к warning или error предупреждения вы, когда неожиданное преобразование шины к вектору происходит.