Блок Model ввел, вывел, и порты управления, которые соответствуют входу корневого уровня, выводят, и порты управления модели, на которую это ссылается. Модель, на которую ссылаются, может включать Inport, Outport, In Bus Element, Out Bus Element, Trigger и блоки Enable, которые будут введены от родительской модели и предоставят выход родительской модели. Входные сигналы для блока Model должны быть допустимыми для соответствующих входных блоков модели, на которую ссылаются. Выходные сигналы для блока Model являются корневым уровнем модели, на который ссылаются, выходные блоки-сигналы.
В sldemo_mdlref_basic
, каждый блок Model имеет три входных параметров: два блока Constant и блок Pulse Generator. Каждому блоку Model регистрировали один выходной сигнал к осциллографу. Поскольку входной сигнал от каждого блока Pulse Generator использует различный шаг расчета, выходной сигнал каждого блока Model отличается для каждого экземпляра модели.
Соединяться с родительской моделью, моделью sldemo_mdlref_counter
, на которую ссылаются, включает три блока Inport (upper, lower и input) и один блок Outport (output).
Чтобы просмотреть, как выходной сигнал для каждого блока Model отличается, можно использовать Simulation Data Inspector.
Обновление блока Model обновляет свое внутреннее представление, чтобы отразить изменения в интерфейсе модели, на которую ссылаются. Например, когда модель, на которую ссылаются, получает или теряет порт, обновление блока Model обновляет свои порты.
Когда модель, на которую ссылаются, загружается, блоки Model, которые ссылаются на нее автоматически, обновляются. Когда модель, на которую ссылаются, не загружается, соответствующее обновление блоков Model, когда вы выполняете действия, такие как:
Открытие родительской модели
Выбор блока Model
Симуляция иерархии модели
Генерация кода для иерархии модели
Когда вы выбираете блок Model, можно обновить все блоки Model в иерархии модели путем нажатия на стрелу кнопки Refresh на вкладке Model Block, затем нажатия на Refresh Blocks.
Чтобы уведомить, когда Simulink® обнаруживает блоки Model, которые не могут совпадать с их моделями, на которые ссылаются, изменить настройку по умолчанию для этих диагностических параметров конфигурации:
Когда эти параметры конфигурации установлены в error
для модели автоматически не обновляются блоки Model в той модели. Обновить блок Model, когда эти параметры конфигурации установлены в error
:
Выберите блок Model. На вкладке Model Block нажмите Refresh.
Используйте Simulink.ModelReference.refresh
функция.
Атрибуты сигнала в модели, на которую ссылаются, независимы от контекста блока Model. Например, размерности сигнала и типы данных не распространяют через контур блока Model. Чтобы задать атрибуты сигнала в модели, на которую ссылаются, задайте параметры блоков для корневого уровня блоки In Bus Element и Inport.
Для сигналов, которые соединяются с блоками Outport, чтобы распространить из модели, на которую ссылаются, к родительской модели, имена сигнала должны явным образом появиться на сигнальных линиях.
Для виртуальных шин, которые пересекают контуры модели - ссылки, используйте блоки Out Bus Element и In Bus Element.
Для невиртуальных шин, которые пересекают контуры модели - ссылки, используйте Inport и блоки Outport, которые задают тот же объект шины как связанные шины в родительской модели. Смотрите Невиртуальные Шины в Интерфейсах модели.
Для примера иерархии модели, которая использует шины, смотрите sldemo_mdlref_bus
.
Модель, на которую ссылаются, может только обеспечить вход или выводиться для пользовательских типов данных, которые являются фиксированной точкой или тем Simulink.DataType
или Simulink.Bus
объекты задают.
В модели, на которую ссылаются можно регистрировать любой сигнал, сконфигурированный для логгирования сигнала. Используйте Селектор Логгирования Сигнала, чтобы выбрать подмножество или все сигналы, сконфигурированные для сигнала, входящего в систему иерархия модели. Для получения дополнительной информации смотрите Сигнал Переопределения Регистрировать Настройки.
Можно использовать Инспектора Данных моделирования, чтобы просмотреть и анализировать зарегистрированные модели сигналов, на которые ссылаются. Можно просмотреть сигналы на нескольких графиках, изменении масштаба, и использовать Data Cursor, чтобы изучить и оценить данные. Кроме того, можно сравнить данные сигнала от нескольких симуляций. Для примера просмотра сигналов с моделями, на которые ссылаются смотрите Сигналы Просмотра в Экземплярах Модели - ссылки.
Первый невиртуальный блок, который соединяется с блоком ввода или вывода корневого уровня модели, на который ссылаются, должен иметь тот же шаг расчета как связанный порт. Если шаги расчета отличаются, используйте блоки Rate Transition, чтобы совпадать с шагами расчета ввода и вывода, как показано в этой схеме.
По умолчанию каждый экземпляр блока Model читает из и пишет в отдельную копию сигналов и состояний блока в модели. Поэтому экземпляры не взаимодействуют друг с другом через разделяемые данные состояния или сигнала.
Совместно использовать часть данных между всеми экземплярами (например, аккумулятор или индикатор отказа), моделируют данные как хранилище данных.
Чтобы ограничить доступ к данным так, чтобы только блоки в модели, на которую ссылаются, могли читать из и записать в него, используйте блок Data Store Memory в модели и выберите параметр Share across model instances. Для примера смотрите, Осуществляют обмен данными Хранилище Между Экземплярами Допускающего повторное использование Алгоритма.
Чтобы предоставить доступ к данным вне модели, на которую ссылаются, используйте хранилище глобальных данных, которое является Simulink.Signal
объект в базовом рабочем пространстве или словаре данных. Данные вне модели, на которую ссылаются, могут быть в родительской модели или в других моделях, на которые ссылаются.
Для получения дополнительной информации о хранилищах данных, смотрите Глобальные данные Модели путем Создания Хранилищ данных.