Прежде чем ссылаться на модели, учитывайте требования и ограничения привязки модели. Понимание требований и ограничений заранее позволяет лучше подготовиться к успешному использованию эталонных моделей.
Можно ссылаться на модель более одного раза в иерархии модели, если у ссылочной модели нет следующих свойств:
Модель ссылается на другую модель, для которой установлен одиночный экземпляр.
Модель содержит блоки «В файл».
Модель содержит внутренний сигнал или состояние с классом хранения, который не поддерживается для моделей с несколькими экземплярами. Внутренние сигналы и состояния должны иметь класс хранения, равный Auto или Model default класс хранения по умолчанию для внутренних данных должен быть многоэкземплярным.
Модель использует любую из следующих конструкций Stateflow ®:
Экспортированные графические функции Stateflow
Машинно-зависимые данные
Ссылочная модель выполняется в режиме ускорителя и содержит S-функцию, которая либо не встроена, либо встроена, но не задает опцию SS_OPTION_WORKS_WITH_CODE_REUSE.
Модель содержит подсистему вызова функций, которая:
Simulink ® заставляет быть функцией
Вызывается по широкому сигналу
Если ссылочная модель имеет одно из этих свойств, в иерархии модели может появиться только один экземпляр модели. Для модели должно быть задано общее число экземпляров, разрешенных для верхней модели One.
В ссылочной модели можно использовать маскированные блоки. Также можно маскировать ссылочную модель (см. раздел Создание и привязка маскированной модели).
Для успешного использования масок необходимо учитывать следующие требования и ограничения:
Если маска указывает имя ссылочной модели, маска должна указывать имя ссылочной модели напрямую. Для указания имени нельзя использовать переменную рабочей области.
Маскирующее рабочее пространство блока модели недоступно для ссылочной модели. Любая переменная, используемая ссылочной моделью, должна разрешаться в любой из следующих рабочих областей:
Рабочее пространство, определяемое ссылочной моделью
Базовое рабочее пространство MATLAB ®
Маскирующие обратные вызовы не могут добавлять блоки модели, изменять имя блока модели или режим моделирования блока модели.
Различные типы S-функций обеспечивают различные уровни поддержки привязок модели.
| Тип S-функции | Модели, на которые имеются ссылки в обычном режиме | Модели, на которые имеются ссылки в режиме ускорителя |
|---|---|---|
| Level-1 S-функция MATLAB | Не поддерживается | Не поддерживается |
| Level-2 S-функция MATLAB | Поддержанный | Поддерживается - требуется файл TLC |
| Рукописная S-функция C MEX | Поддерживается - может быть встроен в файл TLC | Поддерживается - может быть встроен в файл TLC |
| Построитель S-функций | Поддержанный | Поддержанный |
| Устаревший инструмент кода | Поддержанный | Поддержанный |
При использовании S-функций в ссылочных моделях учитывайте эти требования и ограничения.
| Рассмотрение S-функции | Требования и ограничения |
|---|---|
| Пример наследования времени | Если S-функция зависит от наследуемого времени выборки, S-функция должна явным образом объявить зависимость от наследуемого времени выборки. Для контроля наследования по времени выборки используйте |
| Ссылочные модели режима ускорителя | Для ссылочных моделей режима ускорителя, содержащих S-функцию, которая требует встраивания с использованием файла компилятора целевого языка, S-функция должна использовать Ссылочная модель не может использовать неинлинированные S-функции в следующих случаях:
Ссылочная модель в режиме ускорителя не может использовать S-функции, созданные программным обеспечением Simulink Coder™. |
| Ссылочные модели нормального режима | При определенных условиях, когда C S-функция появляется в ссылочной модели, которая выполняется в обычном режиме, успешное выполнение невозможно. Дополнительные сведения см. в разделе S-Функции в ссылочных моделях нормального режима. Чтобы указать, может ли S-функция использоваться в ссылочной модели нормального режима, используйте Для работы S-функции с несколькими экземплярами ссылочных моделей в обычном режиме S-функция должна явно указывать, что она поддерживает несколько |
| Защищенные модели | Защищенная модель не может использовать неинлинные S-функции прямо или косвенно. |
| Элемент | Требования и ограничения |
|---|---|
| Перейти к блокам и из блоков | Блоки Перейти к (Goto) и Из (From) не могут пересекать границы привязки модели. |
| Подсистемы итератора | Если ссылочная модель содержит блоки назначения, блок модели можно поместить в подсистему итератора, только если блоки назначения также находятся в подсистеме итератора. |
| Конфигурируемые подсистемы | В конфигурируемой подсистеме с блоком модели во время обновления модели не изменяйте подсистему, выбранную конфигурируемой подсистемой. |
InitFcn отзыв | Один |
| Печать ссылочных моделей | Печать ссылочной модели из верхней модели невозможна. |
| Сигнал | Требования и ограничения |
|---|---|
| Распространение информации индексирования на основе 0 или 1 | В двух случаях Simulink не распространяет информацию индексации на основе 0 или 1 на порты корневого уровня модели, связанные с блоками, которые:
Примером блока, принимающего индексы, является блок назначения. Примером блока, создающего индексы, является блок для итератора. Эти два случая приводят к отсутствию распространения, что может привести к тому, что Simulink не сможет обнаружить несовместимые индексные соединения. Эти два случая:
|
| Асинхронные скорости | Ссылочные модели могут использовать асинхронные скорости только в том случае, если модель удовлетворяет обоим условиям:
|
| Ввод или вывод определяемого пользователем типа данных | Ссылочная модель может вводить или выводить только определяемые пользователем типы данных с фиксированной точкой или |
| Автобусы | При использовании виртуальной шины в качестве входа или выхода для ссылочной модели шина не может содержать сигнальный элемент переменного размера. См. раздел Использование шин в интерфейсах модели. |
| Сигнальные объекты | Сигнал, который соединяется с блоком модели, функционально является одним и тем же сигналом снаружи и внутри блока. Следовательно, этот сигнал подвергается ограничению, что данный сигнал может иметь не более одного связанного объекта сигнала. Посмотрите |
| Свойство моделирования | Требования и ограничения |
|---|---|
| Непрерывное распространение времени выборки | Непрерывное время выборки не может быть распространено на блок модели, который не зависит от времени выборки. |
| Время выборки и решатели | Решатель верхней модели управляет временем непрерывной выборки в иерархии модели. Например, для решателя с фиксированным шагом все непрерывные скорости в ссылочных моделях выполняются с фиксированным размером шага верхней модели. Сведения о том, как время выборки влияет на решатели, см. в разделе Типы времени выборки. |
| Инициализация состояния | Чтобы инициализировать состояния модели, которая ссылается на другие модели с состояниями, укажите начальные состояния в структуре или структуре с форматом времени. Дополнительные сведения см. в разделе Сведения о состоянии ссылочных моделей. |
| Настраиваемость параметров | При моделировании модели, которая ссылается на другие модели, при некоторых обстоятельствах теряется возможность настройки параметров блока (например, параметра усиления блока усиления). Дополнительные сведения см. в разделе Рекомендации по настройке и ограничения для других целей моделирования. |
Понимание требований и ограничений создания кода заранее позволяет лучше настроить иерархию модели для создания кода. См. разделы Установка параметров конфигурации для генерации кода иерархий модели (Simulink Coder) и Ограничения генерации кода для ссылки на модель (Simulink Coder).