В этом примере показано, как просмотреть зависимости среди моделей, на которые ссылаются.
В этом примере 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 в топ-модели и всех моделей, на которые ссылаются.
Чтобы просмотреть диаграмму зависимостей для модели в качестве примера, дважды щелкают по синему полю в модели в качестве примера. Выполните одно из этих действий, чтобы открыть средство просмотра зависимости для модели: * Используйте depview
функция. * Во вкладке Modeling выберите Compare> Dependencies> Models Only.
Следующий рисунок показывает диаграмму зависимостей sldemo_mdlref_depgraph
:
В диаграмме зависимостей серые узлы представляют модели Simulink. Направленные линии указывают на зависимости. Например, в примере моделируют ссылку от sldemo_mdlref_depgraph
к sldemo_mdlref_house
указывает на тот sldemo_mdlref_depgraph
ссылки sldemo_mdlref_house
. Если бы модель имела ссылки библиотеки, вы могли бы выбрать User-defined Libraries из панели инструментов, чтобы иметь средство просмотра зависимости, показывают библиотеки, соединенные с моделями в иерархии. Когда Пользовательские Библиотеки выбраны, фиолетовые узлы используются, чтобы изобразить библиотеки.
Чтобы выбрать узел, щелкните левой кнопкой по нему.
Чтобы открыть модель или библиотеку, сопоставленную с узлом, дважды кликните на нем.
Чтобы панорамировать диаграмму зависимостей, кликните и удержите левую кнопку мыши на пустом месте, затем перетаскивают мышь.
Чтобы масштабировать в и из области под указателем мыши, используйте колесо мыши.
Чтобы сосредоточить диаграмму зависимостей и настроить изменение масштаба так, чтобы диаграмма зависимостей заполнила свободное место, нажмите клавишу "пробел".
Обратитесь к документации для получения дополнительной информации обо всех функциях Средства просмотра Зависимости.
В предыдущей диаграмме зависимостей только один узел существует для каждой модели в графике, и самое большее одна ссылка существует от одного узла до другого узла. Поэтому эта диаграмма зависимостей не показывает, существуют ли несколько ссылок от одной модели до другой модели. Кроме того, это представление не показывает, на какие модели ссылаются в Режиме normal mode и на какие модели ссылаются в Режиме Accelerator.
Средство просмотра зависимости может показать экземпляры модели, на которые ссылаются, и к этому представлению можно получить доступ одним из двух способов:
В модели, на вкладке Modeling, выбирают Compare> Dependencies> 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.
Выберите подсвеченный блок.
Во вкладке блока Model измените Режим Симуляции в Normal
.
Чтобы видеть это изменение, перейдите к Средству просмотра Зависимости моделей и нажмите 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.
Выберите подсвеченный блок.
Во вкладке блока Model измените Режим Симуляции в Normal
. (Если было больше предков Режима 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
) во вкладке Simulation, из галереи Prepare, нажимают 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
использовать новую установку.