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