Общие факторы при построении моделей Simulink

Предотвращение недопустимых циклов

Можно подключить выход блока прямо или косвенно (то есть через другие блоки) к его входу, тем самым создав цикл. Циклы могут быть очень полезными. Для примера можно использовать циклы для решения дифференциальных уравнений схематично (см. Модель непрерывной системы) или моделировать системы управления с обратной связью. Однако также возможно создать циклы, которые не могут быть моделированы. Общие типы недопустимых циклов включают:

  • Циклы, которые создают недопустимые соединения вызова функции или попытку изменить входные/выходные аргументы вызова функции (см. Использование подсистем вызова функций для описания подсистем вызова функций)

  • Самозапускающиеся подсистемы и циклы, содержащие незакрытые триггируемые подсистемы (см. Использование триггируемых подсистем в Using Simulink® документация для описания триггируемых подсистем и Inport в справочной документации Simulink для описания фиксированного входа)

  • Циклы, содержащие подсистемы действия

Библиотека блоков Subsystem Examples в библиотеке Ports & Subsystems содержит модели, которые иллюстрируют примеры допустимых и недопустимых циклов, включающих триггерные и функциональные подсистемы вызова. Примеры недопустимых циклов включают следующие модели:

  • simulink/Ports&Subsystems/sl_subsys_semantics/Triggered subsystem/sl_subsys_trigerr1 (sl_subsys_trigerr1)

  • simulink/Ports&Subsystems/sl_subsys_semantics/Triggered subsystem/sl_subsys_trigerr2 (sl_subsys_trigerr2)

  • simulink/Ports&Subsystems/sl_subsys_semantics/Function-call systems/sl_subsys_fcncallerr3 (sl_subsys_fcncallerr3)

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

Обнаружение недопустимых циклов

Чтобы определить, содержит ли ваша модель недопустимые циклы, выберите Update Model на вкладке Modeling панели инструментов. Если модель содержит недопустимые циклы, недопустимые циклы подсвечиваются. Это проиллюстрировано в следующей модели (открыто),

и отображает сообщение об ошибке в Средство Просмотра.

Затененные файлы

Если существует два файла Model с таким же именем (например mylibrary.slx) на MATLAB® путь, тот, что выше по пути, загружен, а тот, что ниже по пути, называется «затененным».

Совет

Чтобы избежать проблем с затененными файлами, включите Do not load models that are shadowed on the MATLAB path выборов Simulink. См. Не загружать модели, которые затенены на пути MATLAB.

Правила, используемые программным обеспечением Simulink для поиска файлов Model, аналогичны тем, которые используются программным обеспечением MATLAB. См. Что такой Путь поиска файлов MATLAB? Однако существует важное различие между тем, как обрабатываются функции Диаграмм Simulink и MATLAB: загруженная схема блока имеет приоритет над любой выгруженными таковыми, независимо от ее положения на пути MATLAB. Это делается по причинам эффективности, как часть методики пошаговой загрузки программного обеспечения Simulink.

Приоритет загруженного блока над любыми другими может иметь важные последствия, особенно поскольку блок может быть загружена без видимости соответствующего окна Simulink.

Проверка загрузки правильного блока

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

Например, откройте модель с библиотекой под названием mylib, измените в другую папку, а затем откройте другую модель с библиотекой, также называемой mylib. Когда вы запускаете первую модель, она использует библиотеку, связанную со второй моделью.

Это может привести к проблемам, включая:

  • Ошибки симуляции

  • Значки «Неразрешенная ссылка» на блоках, являющихся библиотечными ссылками

  • Неправильные результаты

Обнаружение и устранение проблем

Чтобы помочь избежать проблем с затененными файлами, можно включить Do not load models that are shadowed on the MATLAB path выборов Simulink. См. Не загружать модели, которые затенены на пути MATLAB.

При обновлении схемы блока программное обеспечение Simulink проверяет положение своего файла по пути MATLAB и выдаст предупреждение, если обнаружит, что другой файл с таким же именем существует и выше по пути MATLAB. Предупреждение гласит:

The file containing block diagram 'mylibrary' is shadowed 
by a file of the same name higher on the MATLAB path.
Это может указать, что не тот файл, который вызывался mylibrary.slx используется. Чтобы увидеть файл, вызываемый mylibrary.slx загружается в память, введите:

 which mylibrary

C:\work\Model1\mylibrary.slx
Чтобы увидеть все файлы, вызываемые mylibrary которые находятся в пути MATLAB, включая скрипты MATLAB, введите:

which -all mylibrary

C:\work\Model1\mylibrary.slx
C:\work\Model2\mylibrary.slx  % Shadowed

Чтобы закрыть блок, вызываемую mylibrary и пусть программное обеспечение Simulink загрузит файл, который является самым высоким по пути MATLAB, введите:
close_system('mylibrary')

Моделирование строительных Советов

Вот некоторые подсказки для построения моделей, которые вы можете найти полезными:

  • Проблемы с памятью

    В целом больше памяти повысит эффективность.

  • Использование иерархии

    Более сложные модели часто выигрывают от добавления иерархии подсистем к модели. Группировка блоков упрощает верхний уровень модели и может облегчить чтение и понимание модели. Для получения дополнительной информации см. раздел «Создание подсистем». Этот Model Browser предоставляет полезную информацию о сложных моделях (см. Simulink Editor).

  • Очистка моделей

    Хорошо организованные и задокументированные модели легче читать и понимать. Метки сигналов и аннотации модели могут помочь описать то, что происходит в модели. Для получения дополнительной информации см. «Имена сигналов и меток» и «Описание моделей с использованием примечаний и аннотаций».

  • Стратегии моделирования

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

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

Похожие примеры

Подробнее о