Этот пример показывает, как просмотреть зависимости среди моделей, на которые ссылаются.
В этом примере Simulink® генерирует файлы в текущей рабочей директории. Если вы не хотите генерировать файлы в этой директории, необходимо изменить рабочую директорию на подходящую директорию прежде, чем запустить этот пример.
Откройте модель в качестве примера. Модель sldemo_mdlref_depgraph
выглядит так:
Используйте служебную функцию find_mdlrefs
, чтобы найти все блоки Model и все модели что модели - ссылки. Введите help find_mdlrefs
для получения дополнительной информации об этой функции.
[refMdls, modelBlks] = find_mdlrefs('sldemo_mdlref_depgraph');
find_mdlrefs
возвращает два массива ячеек, refMdls
и modelBlks
. refMdls
содержит имена всех моделей, на которые прямо или косвенно ссылается sldemo_mdlref_depgraph
. Последний элемент в refMdls
всегда является именем входной модели. modelBlks
содержит пути к блоку для всех блоков Model в топ-модели и всех моделей, на которые ссылаются.
Чтобы просмотреть диаграмму зависимостей для модели в качестве примера, дважды щелкают по синему полю в модели в качестве примера. В целом используйте view_mdlrefs
или служебную функцию depview
, или выберите пункт меню Analysis> Model Dependencies> Model Dependency Viewer> Models Only, чтобы открыть средство просмотра зависимости для определенной модели.
Следующие данные показывают диаграмму зависимостей sldemo_mdlref_depgraph
:
В диаграмме зависимостей серые узлы представляют модели Simulink. Направленные строки указывают на зависимости. Например, в примере моделируют ссылку от sldemo_mdlref_depgraph
до sldemo_mdlref_house
, указывает на тот sldemo_mdlref_depgraph
ссылки sldemo_mdlref_house
. Если бы модель имела ссылки библиотеки, вы могли бы выбрать User-defined Libraries из панели инструментов, чтобы иметь средство просмотра зависимости, показывают библиотеки, соединенные с моделями в иерархии. Когда Пользовательские Библиотеки выбраны, фиолетовые узлы используются, чтобы изобразить библиотеки.
Чтобы выбрать узел, щелкните левой кнопкой по нему.
Чтобы открыть модель или библиотеку, сопоставленную с узлом, дважды кликните на нем.
Чтобы панорамировать диаграмму зависимостей, кликните и удержите левую кнопку мыши на пустом месте, затем перетаскивают мышь.
Чтобы масштабировать в и из области под указателем мыши, используйте колесо мыши.
Чтобы сосредоточить диаграмму зависимостей и настроить изменение масштаба так, чтобы диаграмма зависимостей заполнила свободное место, нажмите клавишу "пробел".
Обратитесь к документации для получения дополнительной информации обо всех функциях Средства просмотра Зависимости.
В предыдущей диаграмме зависимостей только один узел существует для каждой модели в графике, и самое большее одна ссылка существует от одного узла до другого узла. Поэтому эта диаграмма зависимостей не показывает, существуют ли несколько ссылок от одной модели до другой модели. Кроме того, это представление не показывает, на какие модели ссылаются в Режиме normal mode и на какие модели ссылаются в Режиме Accelerator.
Средство просмотра зависимости может показать образцовые экземпляры, на которые ссылаются, и к этому представлению можно получить доступ одним из двух способов:
Из модели выберите пункт меню Analysis> Model Dependencies> Model Dependency Viewer> Referenced Model Instances
От средства просмотра зависимости моделей выберите Model Instances из панели инструментов.
Обратите внимание на то, что в этом представлении, известном как Представление Экземпляра, библиотеки никогда не показывают.
В Представлении Экземпляра серые узлы представляют модели Simulink. Направленные строки указывают на зависимости. Примечание: в этом представлении два узла маркированы sldemo_mdlref_F2C
, потому что на эту модель ссылается дважды, однажды sldemo_mdlref_outdoor_temp
и однажды sldemo_mdlref_heater
. За исключением топ-модели, все узлы имеют углы, которые обозначают режим симуляции модели, на которую ссылаются. Белые углы обозначают Режим normal mode, ссылочные и черные углы обозначают ссылку Режима Accelerator. Таким образом sldemo_mdlref_heater
делает ссылку Режима normal mode на sldemo_mdlref_F2C
и ссылку Режима Accelerator на sldemo_mdlref_thermostat
.
В настоящее время ссылочный sldemo_mdlref_outdoor_temp
делает к sldemo_mdlref_F2C
, ссылка Режима Accelerator. Предположим, что вы хотите изменить эту ссылку, чтобы быть ссылкой Режима normal mode:
Щелкните левой кнопкой по узлу по sldemo_mdlref_F2C
, на который указывает sldemo_mdlref_outdoor_temp
.
Выберите Highlight Block из панели инструментов; это открывает sldemo_mdlref_outdoor_temp
, и подсветите соответствующий блок Model.
Щелкните правой кнопкой мыши по подсвеченному блоку.
Выберите Block Parameters (ModelReference) из меню, которое появляется.
Измените режим Simulation на Нормальный, и нажмите ОК.
Чтобы видеть это изменение в средстве просмотра зависимости, перейдите к средству просмотра зависимости и выберите Refresh из панели инструментов.
Диаграмма зависимостей Представления Экземпляра теперь выглядит так:
Средство просмотра зависимости теперь показывает, что ссылочный sldemo_mdlref_outdoor_temp
делает к sldemo_mdlref_F2C
как ссылка Режима normal mode, но это имеет круглый информационный значок на нем. Этот значок появляется, потому что sldemo_mdlref_F2C
сконфигурирован, чтобы запуститься в Режиме normal mode, но его родительский элемент, sldemo_mdlref_outdoor_temp
, сконфигурирован, чтобы запуститься в Режиме Accelerator. Ссылки режима normal mode из моделей, запускающихся в Режиме Accelerator, не поддержаны, таким образом, sldemo_mdlref_F2C
запустится в Режиме Accelerator во время симуляции.
Чтобы сделать это образцовое выполнение в Режиме normal mode, необходимо сконфигурировать всех его предков, чтобы запуститься в Режиме normal mode. Для этого:
Нажмите на узел sldemo_mdlref_outdoor_temp
Выберите Highlight Block из панели инструментов; это действие открывает sldemo_mdlref_depgraph
и подсвечивает соответствующий блок Model.
Щелкните правой кнопкой мыши по подсвеченному блоку
Выберите Block Parameters (ModelReference),
Измените режим Simulation на Нормальный, и нажмите ОК. (Если бы было больше предков Режима Accelerator sldemo_mdlref_F2C
, они должны были бы также быть изменены на ссылки Режима normal mode.)
Чтобы видеть это изменение в средстве просмотра зависимости, перейдите к средству просмотра зависимости и выберите Refresh из панели инструментов:
Существует теперь две модели что ссылочный sldemo_mdlref_F2C
в Режиме normal mode. После симуляции этой модели взгляду sl_demo_mdlref_heater
нравится это:
И sldemo_mdlref_outdoor_temp
выглядит так:
Блок Model, что ссылки sldemo_mdlref_F2C
в sldemo_mdlref_heater
имеют белые углы, в то время как блок Model, что ссылки sldemo_mdlref_F2C
в sldemo_mdlref_outdoor_temp
имеют серые углы. Это вызвано тем, что Видимость Режима normal mode блока Model включена для блока Model в sldemo_mdlref_heater
, но не включена для блока Model в sldemo_mdlref_outdoor_temp
. Обратите внимание на то, что только один экземпляр Режима normal mode каждой модели будет иметь белые углы, у остальных будут серые углы. Отобразите блоки (например, Осциллографы) покажет данные для экземпляра, на который ссылаются от блока Model с белыми углами, в этом случае из модели sldemo_mdlref_heater
, но не для любого другого экземпляра:
Чтобы открыть диалоговое окно Normal Mode Visibility блока Model, от топ-модели (sldemo_mdlref_depgraph
) выбирают Diagram> Subsystem & Model Reference> Model Block Normal Mode Visibility.... Выберите экземпляр каждой модели, на которую ссылаются несколько раз в Режиме normal mode, для которого вы хотите иметь Видимость Режима normal mode на.
Прямо сейчас никакие блоки Model не были выбраны, что означает, что во время последней симуляции, Simulink выбрал один экземпляр sldemo_mdlref_F2C
, чтобы установить Видимость Режима normal mode на на, который был обозначен блоком Model с белыми углами. Чтобы выбрать экземпляр, на который ссылается sldemo_mdlref_outdoor_temp
, проверяйте флажок, соответствующий тому экземпляру, затем нажмите OK:
После изменения настроек Normal Mode Visibility моделируйте модель sldemo_mdlref_depgraph
, чтобы использовать новую установку.