Чтобы соответствовать требованиям и ограничениям составного сигнала, Simulink® может добавить скрытые Bus to Vector и блоки Signal Conversion к вашей модели. Эти сложения помогают вам избежать ручного преобразования или рефакторинга ваших моделей, что может быть длительным и подверженным ошибкам.
Когда блок требует вектор, но получает виртуальную шину, скрытый Bus to Vector блок может преобразовать шину в вектор. Блоки Bus to Vector являются виртуальными и не влияют на результаты симуляции, генерацию кода или эффективность. Однако, когда шина рассматривается как вектор, элементы шины становятся недоступными.
Чтобы получить предупреждения или ошибки, когда шина рассматривается как вектор, установите параметр конфигурации Bus signal treated as vector равным warning
или error
, соответственно. Эти настройки позволяют вам идентифицировать потенциальные проблемы в источнике, а не в нисходящих блоках, которые ожидают шины.
Для исправления шин, используемых в качестве векторов:
В Model Advisor для верхней модели запустите сигналы шины Check, обработанные как проверка векторов, и выполните рекомендуемые действия.
Используйте Simulink.BlockDiagram.addBusToVector
функция для добавления Bus To Vector блоков, где Simulink неявно преобразует шины в векторы. Для получения примера смотрите Управление преобразованиями шин в векторы.
Замените связанный Bus Creator блок на Mux блок, который создает вектор.
При обновлении схемы перед симуляцией или генерацией кода Simulink может автоматически преобразовать виртуальную шину в невиртуальную шину или невиртуальную шину в виртуальную шину. Например, Simulink неявно преобразует шину, когда:
Блок, такой как S-Function блок или Stateflow® диаграмма, получает виртуальную шину, но требует невиртуальную шину.
Ссылочная модель получает невиртуальную шину, но соответствующий блок Inport задает виртуальную шину.
Блок Outport корневого уровня получает невиртуальную шину, но задает виртуальную шину.
Simulink вставляет скрытые блоки Signal Conversion в модель там, где это необходимо. Если a Simulink.Bus
объект не задан для виртуальной шины, преобразование в невиртуальную шину прекращается, и вы получаете ошибку.
В отличие от блоков Bus to Vector, блоки Signal Conversion не влияют на структуру шины выхода.
По умолчанию In Bus Element и Out Bus Element блоки наследуют виртуальность шины от шины. Когда они задают виртуальную или невиртуальную шину, они вызывают ошибку вместо автоматического преобразования виртуальности шины.