Можно соединить вывод блока прямо или косвенно (i. e., через другие блоки) к его входному параметру, таким образом, создавая цикл. Циклы могут быть очень полезными. Например, можно использовать циклы, чтобы решить дифференциальные уравнения схематически (см. Модель Непрерывная Система), или образцовые системы управления с обратной связью. Однако также возможно создать циклы, которые не могут быть моделированы. Общие типы недопустимых циклов включают:
Циклы, которые создают недопустимые связи вызова функции или попытку изменить аргументы ввода/вывода вызова функции (см. Используя Подсистемы вызова функций для описания подсистем вызова функций),
Самоинициирование подсистем и циклов, содержащих нефиксируемые инициированные подсистемы (см. Используя Инициированные Подсистемы в Использовании документации 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 модели. Если модель содержит недопустимые циклы, недопустимые циклы подсвечены. Это проиллюстрировано в следующей (открытой) модели,
и отображает сообщение об ошибке в Диагностическом Средстве просмотра.
Если существует два Образцовых файла с тем же именем (e. g. mylibrary.slx
) на пути MATLAB®, один выше на пути загружается, и один ниже на пути, как говорят, "затенен".
Чтобы помочь избежать проблем с затененными файлами, включите настройку Simulink, не загружают модели, которые затенены на пути MATLAB. Смотрите не загружают модели, которые затенены на пути MATLAB.
Правила использование программного обеспечения Simulink, чтобы найти Образцовые файлы подобны используемым программным обеспечением MATLAB. Смотрите то, Что Путь поиска файлов MATLAB? (MATLAB) в документации MATLAB. Однако существует важное различие между тем, как обработаны Диаграммы Simulink и функции MATLAB: загруженная блок-схема более приоритетна по сравнению с любыми разгруженными единицами, независимо от ее позиции по пути MATLAB. Это сделано по причинам производительности как часть инкрементной методологии загрузки программного обеспечения Simulink.
Приоритет загруженной блок-схемы по любым другим может иметь важные последствия, особенно поскольку блок-схема может загрузиться без соответствующего окна Simulink, являющегося видимым.
При использовании библиотек и моделей, на которые ссылаются, можно загрузить блок-схему, не показывая ее окно. Если путь MATLAB или текущая папка MATLAB изменяются, в то время как блок-схемы находятся в памяти, эти блок-схемы могут вмешаться в использование других файлов того же имени.
Например, откройте модель с библиотекой под названием mylib
, изменитесь на другую папку, и затем откройте другую модель с библиотекой также под названием mylib
. Когда вы запускаете первую модель, она пользуется библиотекой, сопоставленной со второй моделью.
Это может привести к проблемам включая:
Ошибки моделирования
"Неразрешенная Ссылка" значки на блоках, которые являются ссылками библиотеки
Неправильные результаты
Чтобы помочь избежать проблем с затененными файлами, можно включить настройку Simulink, не загружают модели, которые затенены на пути MATLAB. Смотрите не загружают модели, которые затенены на пути 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.
Обычно при создании модели, разработайте его сначала на бумаге, затем создайте его с помощью компьютера. Затем когда вы начинаете соединять блоки в модель, добавьте блоки к образцовому окну прежде, чем добавить строки, которые соединяют их. Таким образом, можно уменьшить, как часто необходимо открыть библиотеки блоков.