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

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

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

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

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

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

Для инициированного и примеров подсистемы вызова функций, смотрите Семантику Подсистемы Simulink.

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

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

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

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

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

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

Совет

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

Правила использование программного обеспечения Simulink, чтобы найти файлы Модели похожи на используемых программным обеспечением 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 предоставляет полезную информацию о сложных моделях (см. Simulink Editor).

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

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

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

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

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

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте