Правильные шины, используемые в качестве векторов

Используя сигнал шины, когда входной параметр к блоку, который требует векторного входного параметра, делает модель менее устойчивой. Конфигурирование модели, чтобы избегать использования сигналов шины как векторов:

  • Улучшает обработку цикла

  • Производит ясные сообщения об ошибке

  • Способствует сопоставимому редактированию и поведению времени компиляции

Предотвращение использования сигналов шины как векторы также позволяет вам обновлять свою модель, чтобы использовать в своих интересах несколько функций, которые в противном случае вы не могли использовать, такой как

  • Ненулевая инициализация сигналов шины

  • Соедините шиной поддержку блоков такой как Постоянную Из Файла и нескольких других

  • Массивы шин

Три подхода

Три подхода, которые можно использовать, чтобы исправить сигналы шины, используемые в качестве векторов (мультиплексоры), чтобы избежать ошибки:

Обычно использование Образцового Советника является самым эффективным подходом.

Используйте образцового советника

  1. В Редакторе Simulink® выберите Analysis> Model Advisor> Model Advisor.

  2. Выберите и запустите сигналы шины Simulink Check, обработанные как проверка векторов.

    Образцовый Советник сообщает о любых случаях сигналов шины, обработанных как векторы.

  3. Следуйте за Образцовыми предложениями Советника для исправления ошибок, о которых сообщает проверка.

Для получения дополнительной информации об использовании Образцового Советника смотрите Выбор и Выполнение Образцовый советник Чекс.

Явным образом добавьте шину к векторным блокам

Можно явным образом добавить Шину к Векторным блокам, чтобы преобразовать сигнал шины в мультиплексор (вектор), с помощью одного из этих подходов:

  • Чтобы преобразовать шину в вектор явным образом, вставьте блок Bus to Vector в любую шину, используемую неявно в качестве вектора.

  • Используйте функцию Simulink.BlockDiagram.addBusToVector, которая автоматически вставляет Шину в Векторные блоки везде, в случае необходимости.

Например, эта модель обрабатывает сигнал шины как векторный сигнал при помощи шины как входной параметр к блоку Gain. Блок Scope показывает результаты симуляции.

Эти данные показывают ту же модель, восстановленную после вставки блока Bus to Vector после блока Bus Creator.

Результатами моделирования является то же самое в любом случае, но добавление блока Bus to Vector избегает ошибки. Блок Bus to Vector является виртуальным, и не влияет на результаты симуляции, генерацию кода или производительность.

Реорганизуйте модель

Можно заменить блоки вручную. Измените источники для блока, которые требуют, чтобы векторные входные параметры постарались не подавать сигнал шины в блок, который требует векторного входного параметра.

Например, в следующей модели, блок Gain требует векторного сигнала. Однако входной сигнал является сигналом шины, созданным блоком Bus Creator.

Чтобы обеспечить необходимый векторный сигнал для блока Gain, измените блок Bus Creator на блок Mux.

Проблемы с реорганизацией модели вручную включают:

  • Может быть трудно идентифицировать все случаи в модели. (Образцовая проверка Советника идентифицирует все случаи в модели и помогает вам исправить их.)

  • Контакт со многими случаями в модели длителен и подвержен ошибкам.

  • Реорганизация модели, чтобы решить эту проблему может вмешаться в другие аспекты модели.

Соедините шиной к векторным блочным проблемам совместимости

При использовании, Сохраняют Что касается модели в версии продукта Simulink, прежде чем R2007a, Simulink заменит каждую Шину к блоку Vector с пустой подсистемой, которая ничего не выводит. Прежде чем можно будет использовать модель, снова соединиться или в противном случае правильный каждый сигнал, который раньше содержал блок Bus to Vector, но теперь прерван пустой подсистемой.

Похожие темы

Была ли эта тема полезной?