Общие Факторы при Создавании Моделей Simulink

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

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

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

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

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

Библиотека блоков Подсистемы В качестве примера в библиотеке 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 Diagram из меню Simulation модели. Если модель содержит недопустимые циклы, недопустимые циклы подсвечены. Это проиллюстрировано в следующей (открытой) модели,

и отображает сообщение об ошибке в Диагностическом Средстве просмотра.

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

Если существует два Образцовых файла с тем же именем (например, mylibrary.slx) на пути MATLAB®, один выше на пути загружается, и один ниже на пути, как говорят, "затенен".

Совет

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

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

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

Убеждаясь правильная блок-схема загружается

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

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

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

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

  • "Неразрешенная Ссылка" значки на блоках, которые являются ссылками библиотеки

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

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

Чтобы помочь избежать проблем с затененными файлами, можно включить настройку Simulink Do not load models that are shadowed on the MATLAB path. Смотрите не загружают модели, которые затенены на пути 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 предоставляет полезную информацию о сложных моделях (см., Исследуют Иерархию модели Используя Model Browser).

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

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

  • Моделирование стратегий

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

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

Связанные примеры

Больше о