Прежде чем ссылаться на модели, учитывайте модель-ссылку требования и ограничения. Понимая требования и ограничения заранее, вы лучше готовы успешно ссылаться на модели.
Можно ссылаться на модель более одного раза в иерархии модели, если модель-ссылка не имеет каких-либо из следующих свойств:
Это модели-ссылки другую модель, которая установлена на один образец.
Модель содержит 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 |
---|---|---|
Level-1 S-функцию MATLAB | Не поддерживается | Не поддерживается |
Level-2 S-функцию MATLAB | Поддержанный | Поддерживается - требуется файл TLC |
Рукописная функция MEX S на C | Поддерживаемые - могут быть встроены в файл TLC | Поддерживаемые - могут быть встроены в файл TLC |
Построитель S-функций | Поддержанный | Поддержанный |
Legacy Code Tool | Поддержанный | Поддержанный |
Когда вы используете S-функции в ссылочных моделях, учитывайте эти требования и ограничения.
S-функциональные Факторы | Требования и ограничения |
---|---|
Наследование шага расчета | Если S-функция зависит от наследуемого шага расчета, S-функция должна явным образом объявить зависимость от наследуемого шага расчета. Чтобы контролировать наследование шаг расчета, используйте |
Ссылка на режим Accelerator Моделей | Для моделей, на которые ссылаются в режиме Accelerator, которые содержат S-функцию, которая требует инкрустации с использованием файла Target Language Compiler, S-функция должна использовать Ссылочная модель не может использовать неинлинфицированные S-функции в следующих случаях:
Ссылка на модель в режиме Accelerator не может использовать S-функции, сгенерированные программным обеспечением Simulink Coder™. |
Режим normal mode ссылку на Модели | В определенные обстоятельства, когда S-функция C появляется в ссылочной модели, который выполняется в режим normal mode, успешное выполнение невозможно. Для получения дополнительной информации см. S-Functions in Режим normal mode Models. Чтобы указать, может ли S-функция использоваться в модели, на которую ссылаются в режиме normal mode, используйте Чтобы S-функция работала с несколькими образцов ссылок на модели в режиме normal mode, S-функция должна явным образом указать, что она поддерживает несколько |
Защищенные модели | Защищенная модель не может использовать неинстрированные S-функции прямо или косвенно. |
Элемент | Требования и ограничения |
---|---|
Goto и From блоки | Goto и From блоки не могут пересекать контуры моделей-ссылок. |
Подсистемы итератора | Если ссылочная модель содержит Assignment блоков, можно поместить блок Model в подсистему итератора, только если Assignment блоков также находятся в подсистеме итератора. |
Конфигурируемые подсистемы | В конфигурируемой подсистеме с блоком Model во время обновления модели не изменяйте подсистему, которую выбирает конфигурируемая подсистема. |
InitFcn коллбэк | Система координат |
Печать ссылочных моделей | Вы не можете напечатать ссылочную модель из верхней модели. |
Сигнал | Требования и ограничения |
---|---|
0-основанное или 1-основанное распространение информации индексации | В двух случаях Simulink не распространяет информацию индексации на основе 0 или 1 на порты корневого уровня модели, соединенные с блоками, которые:
Примером блока, который принимает индексы, является Assignment блок. Примером блока, который производит индексы, является For Iterator блок. Эти два случая приводят к отсутствию распространения, которое может привести к тому, что Simulink не сможет обнаружить несовместимые индексные соединения. Эти два случая:
|
Асинхронные скорости | Ссылочные модели могут использовать только асинхронные скорости, если модель соответствует обоим из следующих условий:
|
Пользовательский входной или выходной вход данных | Ссылка на модель может вводить или выводить только определяемые пользователем типы данных, которые являются фиксированной точкой или что |
Автобусы | Если вы используете виртуальную шину в качестве входа или выхода для ссылочной модели, шина не может содержать сигнальный элемент переменного размера. См. Использование шин в интерфейсах модели. |
Сигнальные объекты | Сигнал, который соединяется с блоком Model, функционально является тем же сигналом снаружи и внутри блока. Поэтому этот сигнал подвержен ограничению, что данный сигнал может иметь не более одного связанного объекта сигнала. См. |
Свойство симуляции | Требования и ограничения |
---|---|
Непрерывное распространение шага расчета | Непрерывное время расчета не может быть распространено на блок Model, который является независимым от шага расчета. |
Шаги расчета и решатели | Решатель верхней модели управляет всеми непрерывными шагами расчета в иерархии модели. Для примера, для решателя с фиксированным шагом, все непрерывные скорости в ссылочных моделях выполняются при фиксированном размере шага модели верхней части. Для получения информации о том, как шаги расчета влияют на решатели, смотрите Типы шага расчета. |
Инициализация состояния | Чтобы инициализировать состояния модели, которая ссылается на другие модели с состояниями, задайте начальные состояния в структуре или структуре с временным форматом. Для получения дополнительной информации смотрите Сведения о состоянии для ссылочных моделей. |
Настраиваемость параметра | Когда вы симулируете модель, которая ссылается на другие модели, в некоторых обстоятельствах вы теряете некоторую настраиваемость параметров блоков (для примера Gain параметр блока Gain). Для получения дополнительной информации см. Факторы о настраиваемости и ограничения для других целей моделирования. |
Путем понимания требований к генерации кода и ограничений заранее, вы лучше готовы правильно настроить иерархию модели для генерации кода. Смотрите Set Configuration Parameters для генерации кода иерархий модели (Simulink Coder) и Ограничения генерации кода для модели-ссылки (Simulink Coder).