Прежде, чем сослаться на модели, рассмотрите требования модели - ссылки и ограничения. Путем понимания требований и ограничений заранее, вы лучше подготовлены к образцам модели успешно.
Можно сослаться на модель несколько раз в иерархии модели, если модель, на которую ссылаются, не имеет ни одного из этих свойств:
Модели - ссылки другая модель, которая установлена в один экземпляр.
Модель содержит блоки To File.
Модель содержит внутренний сигнал или состояние с классом памяти, который не поддержан для моделей мультиэкземпляра. Внутренним сигналам и состояниям нужно было установить класс памяти на Auto
или Model default
и класс памяти по умолчанию для внутренних данных должен быть классом памяти мультиэкземпляра.
Модель использует любое из этих построений Stateflow®:
Графические функции Stateflow
Порожденные машиной данные
Модель, на которую ссылаются, выполняется в режиме Accelerator и содержит S-функцию, которая или не встраивается или встраивается, но не устанавливает опцию SS_OPTION_WORKS_WITH_CODE_REUSE
.
Модель содержит подсистему вызова функций что:
Simulink® обеспечивает, чтобы быть функцией
Вызван широким сигналом
Если модель, на которую ссылаются, имеет какое-либо из этих свойств, только один экземпляр модели может появиться в иерархии модели. Модели нужно было позволить Общее количество экземпляров на набор топ-модели к One
.
Можно использовать маскированные блоки в модели, на которую ссылаются. Кроме того, можно замаскировать модель, на которую ссылаются (см., Создают и Ссылаются на Модель Маскированную).
Чтобы успешно использовать маски, рассмотрите эти требования и ограничения:
Если маска задает имя модели, на которую ссылаются, маска должна обеспечить имя модели, на которую ссылаются, непосредственно. Вы не можете использовать переменную рабочей области, чтобы обеспечить имя.
Рабочая область маски блока Model не доступна для модели, на которую ссылаются. Любая переменная, которую использование модели, на которое ссылаются, должно разрешить к любой из этих рабочих областей:
Рабочая область, которую, задает модель, на которую ссылаются
Базовое рабочее пространство MATLAB®
Коллбэки маски не могут добавить блоки Model, изменить имя блока Model или изменить режим симуляции блока Model.
Различные типы S-функций обеспечивают разные уровни поддержки моделей - ссылок.
Тип S-функции | Модели, ссылаемые в режиме normal mode | Модели, ссылаемые в режиме Accelerator |
---|---|---|
Уровень 1 S-функция MATLAB | Не поддерживаемый | Не поддерживаемый |
Уровень 2 S-функция MATLAB | Поддерживаемый | Поддерживаемый — требует файла TLC |
Рукописная S-функция MEX C | Поддерживаемый — может быть встроен с файлом TLC | Поддерживаемый — может быть встроен с файлом TLC |
Разработчик S-функции | Поддерживаемый | Поддерживаемый |
Legacy Code Tool | Поддерживаемый | Поддерживаемый |
Для получения информации о различных типах S-функций смотрите S-функции Реализации.
Для получения информации о том, как использовать S-функции в моделях, смотрите S-функции Использования в Моделях.
Когда вы используете S-функции в моделях, на которые ссылаются, рассматриваете эти требования и ограничения.
Фактор S-функции | Требования и ограничения |
---|---|
Наследование шага расчета | Если S-функция зависит от наследованного шага расчета, S-функция должна явным образом объявить зависимость от наследованного шага расчета. Чтобы управлять наследованием шага расчета, используйте |
Режим Accelerator модели, на которые ссылаются, | Поскольку режим Accelerator сослался на модели, которые содержат S-функцию, которая требует встраивания с помощью файла Компилятора Выходного языка, S-функция должна использовать Модель, на которую ссылаются, не может использовать невстроенные S-функции в этих случаях:
Модель, на которую ссылаются, в режиме Accelerator не может использовать S-функции, сгенерированные программным обеспечением Simulink Coder™. |
Режим normal mode модели, на которые ссылаются, | При определенных обстоятельствах, когда S-функция C появляется в модели, на которую ссылаются, которая выполняется в режиме normal mode, успешное выполнение невозможно. Для получения дополнительной информации смотрите S-функции в Режиме normal mode Модели, на которые Ссылаются. Чтобы задать, может ли S-функция использоваться в режиме normal mode модель, на которую ссылаются, используйте Для S-функции, чтобы работать с несколькими экземплярами моделей, на которые ссылаются, в режиме normal mode, S-функция должна указать явным образом, что это поддерживает несколько |
Защищенные модели | Защищенная модель не может использовать невстроенные S-функции прямо или косвенно. |
Элемент | Требования и ограничения |
---|---|
Goto и блоки From | Goto и блоки From не могут пересечь контуры модели - ссылки. |
Подсистемы итератора | Если модель, на которую ссылаются, содержит блоки Assignment, можно поместить блок Model в подсистему итератора, только если блоки Assignment находятся также в подсистеме итератора. |
Конфигурируемые подсистемы | В конфигурируемой подсистеме с блоком Model, во время обновления модели, не изменяют подсистему, которую выбирает конфигурируемая подсистема. |
InitFcn 'callback' |
|
Печать моделей, на которые ссылаются, | Вы не можете распечатать модель, на которую ссылаются, от топ-модели. |
Сигнал | Требования и ограничения |
---|---|
Распространение информации об индексации на основе 1 или на основе 0 | В двух случаях Simulink не распространяет информацию об индексации на основе 1 или на основе 0 к портам корневого уровня модели, на которые ссылаются, соединенным с блоками что:
Примером блока, который принимает индексы, является блок Assignment. Примером блока, который производит индексы, является блок For Iterator. Эти два случая приводят к отсутствию распространения, которое может заставить Simulink не удаваться обнаружить несовместимые связи индекса. Эти два случая:
|
Асинхронные уровни | Модели, на которые ссылаются, могут только использовать асинхронные уровни, если модель удовлетворяет обоим из этих условий:
|
Пользовательский ввод или вывод типа данных | Модель, на которую ссылаются, может ввод или вывод только пользовательские типы данных, которые являются фиксированной точкой или тем |
Шины | Если вы используете виртуальную шину в качестве входа или выхода для модели, на которую ссылаются, шина не может содержать элемент сигнала переменного размера. Смотрите Требования Модели - ссылки для Невиртуальных Шин. |
Объекты сигнала | Сигнал, который соединяется с блоком Model, является функционально тем же сигналом внутри и снаружи блока. Поэтому тот сигнал подвергается ограничению, что данный сигнал может иметь самое большее один связанный объект сигнала. Смотрите |
Свойство симуляции | Требования и ограничения |
---|---|
Распространение времени непрерывной выборки | Время непрерывной выборки не может быть распространено с блоком Model, который является независимым шагом расчета. |
Шаги расчета и решатели | Решатель топ-модели управляет всеми временами непрерывной выборки в иерархии модели. Например, для решателя фиксированного шага, всех непрерывных уровней в моделях, на которые ссылаются, запущенных в размере фиксированного шага топ-модели. Для получения информации о том, как шаги расчета влияют на решатели, видят Типы Шага расчета. |
Инициализация состояния | Чтобы инициализировать состояния модели, которая ссылается на другие модели с состояниями, задайте начальные состояния в структуре или структуре с форматом времени. Для получения дополнительной информации смотрите информацию состояния для Моделей, на которые Ссылаются. |
Приспособляемость параметра | Когда вы симулируете модель, которая ссылается на другие модели при некоторых обстоятельствах, вы теряете некоторую приспособляемость параметров блоков (например, параметр Gain блока Gain). Для получения дополнительной информации смотрите Факторы Приспособляемости и Ограничения для Других Целей Моделирования. |
Путем понимания требований генерации кода и ограничений заранее, вы лучше готовы правильно настроить иерархию модели для генерации кода. См., что Модель Генерации кода Ссылается на Ограничения (Simulink Coder).