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