Этот пример показывает, как найти и управлять неявными преобразованиями шины к вектору.
Блоки, которые не принимают шины, могут неявно преобразовать шины в векторы. Когда шина обработана как вектор, элементы шины становятся недоступными.
Некоторые шины не могут преобразовать в векторы. Для получения дополнительной информации смотрите Шину к Вектору.
Откройте и моделируйте модель 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
предупреждает вас, когда неожиданное преобразование шины к вектору происходит.