exponenta event banner

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

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

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

Некоторые шины не могут преобразовываться в векторы. Дополнительные сведения см. в разделе Bus to Vector.

Определение неявных преобразований шины в вектор

Открытие и моделирование модели 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

Для идентификации шин, обрабатываемых как векторы во время моделирования, установите для сигнала Bus, обрабатываемого как параметр конфигурации вектора, значение warning или error. Значение по умолчанию для сигнала шины, обрабатываемого как вектор, равно none, которая не генерирует предупреждения или сообщения об ошибке, когда блок неявно преобразует шину в вектор.

Явное определение преобразований «шина-вектор»

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

Блоки усиления больше неявно не преобразуют шину в вектор. Вставленные блоки Bus to Vector выполняют преобразование явно.

Блоки Bus to Vector являются виртуальными и не влияют на результаты моделирования, создание кода или производительность.

Функция 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

Задавая приемлемые преобразования «шина-вектор» с блоками «шина-вектор», можно легче идентифицировать неожиданные преобразования. Имеет параметр конфигурации Bus signal, обрабатываемый как вектор, установленный на warning или error предупреждает о неожиданном преобразовании шины в вектор.