Когда вы используете ссылку модели, чтобы повредить большую систему моделей на меньшие компоненты и субкомпоненты, можно создать словари данных, чтобы выделять design data. Данные проектирования являются набором переменных рабочей области что использование моделей, чтобы задать параметры блоков и характеристики сигнала. Для основной информации о словарях данных смотрите то, Что Словарь Данных?.
Чтобы проявить этот разбитый на компоненты подход к управлению данными, создайте разделяемый словарь, который содержит общие данные и отдельный словарь для каждого компонента, который содержит данные, необходимые тому компоненту.
Этот пример показывает, как разделить данные проектирования в словари. Когда вы закончили, каждый компонент в системе имеет словарь, и ссылки словаря позволяют компонентам осуществлять обмен данными.
Перейдите к
(открытой) папке .matlabroot/help/toolbox/simulink/examples
Скопируйте эти файлы в перезаписываемую папку:
ProjectData_Contr.mat
ProjectData_ContrSub1.mat
ProjectData_ContrSub2.mat
ProjectData_ContrSubs.mat
ProjectData_Plant.mat
ProjectData_System.mat
ex_SystemModel
ex_PlantComp_Lvl1
ex_PlantComp_Lvl2
ex_ContrComp
ex_ContrComp_Sub1_Lvl1
ex_ContrComp_Sub1_Lvl2
ex_ContrComp_Sub2_Lvl1
ex_ContrComp_Sub2_Lvl2
Загрузите MAT-файлы, чтобы создать данные проектирования в базовом рабочем пространстве.
Откройте модель ex_SystemModel в качестве примера. Эта модель наверху ссылочной иерархии, которая включает другие модели в качестве примера.
Выберите Analysis> Model Dependencies> Model Dependency Viewer> Models Only. Иерархия модели - ссылки содержит системную модель, компонент объекта с двумя моделями и компонент контроллера. Компонент контроллера содержит два субкомпонента, каждый из которых состоят из двух моделей.

В модели обновите схему. Каждый сигнал шины в модели использует объект Simulink.Bus в качестве типа данных. Объекты, SensorBus и CtrlBus, находятся в базовом рабочем пространстве.
Модели ex_PlantComp_Lvl1 и ex_ContrComp, на которые ссылаются, используют объекты шины для вводов и выводов корневого уровня, что означает объект, и компоненты контроллера совместно используют объекты.
В базовом рабочем пространстве дважды кликните объект Simulink.NumericType под названием FloatType. Сигналы, параметры и другие элементы данных в компоненте контроллера используют этот тип разделяемых данных.
В панели Model Hierarchy Model Explorer расширьте узел ex_SystemModel.
Кликните по узлу Configurations. В панели Contents узел появляется Reference to SimConfigSet. SimConfigSet является объектом Simulink.ConfigSet в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для симуляции, все модели в иерархии относятся к SimConfigSet.
Щелкните правой кнопкой по узлу Controller (ex_ContrComp) и выберите Open.
В панели Model Hierarchy Model Explorer расширьте новый узел ex_ContrComp. Кликните по узлу Configurations.
В панели Contents узел появляется Reference to CodeGenConfigSet. CodeGenConfigSet является объектом Simulink.ConfigSet в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для генерации кода, модели в компоненте контроллера относятся к CodeGenConfigSet. Модели в компоненте объекта не используют CodeGenConfigSet.
В панели Model Hierarchy выберите Base Workspace. В панели Contents щелкните правой кнопкой по переменной diff и выберите Find Where Used. В диалоговом окне Select a system выберите ex_SystemModel и нажмите OK. Если вы видите сообщение об обновлении схемы, нажмите OK.
В панели Contents переменная diff используется блоками Константа в моделях ex_ContrComp_Sub1_Lvl1 и ex_ContrComp_Sub1_Lvl2, которые составляют первый субкомпонент контроллера. Точно так же другие модели в иерархии совместно используют переменные coeff базового рабочего пространства, init, mu и rho.
Таблица показывает модели, которые совместно используют каждую переменную в базовом рабочем пространстве.
| Имя переменной | Модели Используя переменную | Осциллограф совместного использования |
|---|---|---|
CtrlBus | Модели верхнего уровня на объекте и компонентах контроллера | Совместно использованный глобально целой системой |
SensorBus | Модели верхнего уровня на объекте и компонентах контроллера | Совместно использованный глобально целой системой |
SimConfigSet | Все модели в иерархии | Совместно использованный глобально целой системой |
rho | ex_PlantComp_Lvl2, ex_ContrComp_Sub1_Lvl2 и ex_ContrComp_Sub2_Lvl2 | Совместно использованный глобально целой системой |
mu | ex_PlantComp_Lvl1 и ex_PlantComp_Lvl2 | Совместно использованный моделями в компоненте объекта |
FloatType | Все модели в компоненте контроллера | Совместно использованный компонентом контроллера и субкомпонентами |
CodeGenConfigSet | Все модели в компоненте контроллера | Совместно использованный компонентом контроллера и субкомпонентами |
init | ex_ContrComp_Sub1_Lvl2 и ex_ContrComp_Sub2_Lvl1 | Совместно использованный субкомпонентами контроллера |
diff | ex_ContrComp_Sub1_Lvl1 и ex_ContrComp_Sub1_Lvl2 | Совместно использованный моделями в первом субкомпоненте контроллера |
coeff | ex_ContrComp_Sub2_Lvl1 и ex_ContrComp_Sub2_Lvl2 | Совместно использованный моделями во втором субкомпоненте контроллера |
Предположим, что отдельные команды разработчиков поддерживают компонент объекта и компоненты контроллера. Можно использовать словари данных, чтобы сохранить и определить объем разделяемых данных проектирования.
Создайте разделяемый словарь глобальных данных, который содержит данные, совместно использованные глобально целой системой.
В Model Explorer выберите File> New> Data Dictionary.
Определите новое имя словаря к GlobalShare и нажмите Save.
В панели Model Hierarchy щелкните правой кнопкой по узлу GlobalShare и выберите Show Empty Sections.
В панели Model Hierarchy выберите Base Workspace. В панели Contents выберите данные проектирования, которые совместно используются глобально целой системой: CtrlBus, SensorBus и rho.
Щелкните правой кнопкой и выберите Copy.
В панели Model Hierarchy щелкните правой кнопкой по узлу Design Data под GlobalShare и выберите Paste.
Точно так же скопируйте SimConfigSet с Base Workspace и скопируйте в узел Configurations под GlobalShare.
Создайте словарь данных для данных, совместно использованных моделями в компоненте Объекта. Добавьте ссылку от этого словаря до разделяемого глобального словаря.
В Model Explorer выберите File> New> Data Dictionary.
Определите новое имя словаря к Plant и нажмите Save.
В панели Model Hierarchy выберите узел Plant. В Диалоговой панели, под Referenced Dictionaries, нажимают Add.
Дважды кликните GlobalShare.sldd.
В панели Model Hierarchy щелкните правой кнопкой по узлу Plant и выберите Save Changes.
Соединитесь компонент Объекта к его словарю компонента затем перемещают данные, совместно использованные моделями в компоненте Объекта от базового рабочего пространства до словаря.
Откройте модель ex_PlantComp_Lvl1.
В модели обновите схему.
Если Диагностическое Представление отображает ошибку для нескольких противоречивых определений SimConfigSet, выберите Delete others рядом с экземпляром GlobalShare. Эта фиксация сохраняет определение в словаре GlobalShare и удаляет другие определения, которые видны модели.
Выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне нажмите Browse.
Дважды кликните Plant.sldd.
В диалоговом окне Model Properties нажмите Apply. Нажмите Change all models в ответ на сообщение о соединении моделей, на которые ссылаются.
В диалоговом окне Model Properties нажмите Migrate data.
В диалоговом окне Migrate Data выберите Include data from referenced models и затем нажмите Migrate.
(Необязательно) В диалоговом окне Model Properties, очистите Enable access to base workspace.
Удалите предыдущий метод для загрузки данных модели. В диалоговом окне Model Properties, на вкладке Callbacks, очищают PreLoadFcn для модели.
Нажмите OK.
Создайте словарь данных, который содержит данные, совместно использованные моделями в компоненте контроллера. Этот словарь может также сослаться на разделяемый глобальный словарь.
В Model Explorer выберите File> New> Data Dictionary.
Определите новое имя словаря к Controller и нажмите Save.
В панели Model Hierarchy выберите узел Controller. В Диалоговой панели, под Referenced Dictionaries, нажимают Add.
Дважды кликните GlobalShare.sldd.
В панели Model Hierarchy щелкните правой кнопкой по узлу Controller и выберите Save Changes.
Соединитесь компонент Контроллера к его словарю компонента затем перемещают данные, совместно использованные моделями в компоненте Контроллера от базового рабочего пространства до словаря.
Откройте модель ex_ContrComp.
Если Диагностическое Представление отображает ошибку для нескольких противоречивых определений SimConfigSet, выберите Delete others рядом с экземпляром GlobalShare. Эта фиксация сохраняет определение в словаре GlobalShare и удаляет другие определения, которые видны модели.
Выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне нажмите Browse.
Дважды кликните Controller.sldd.
В диалоговом окне Model Properties нажмите Apply. Нажмите Change all models в ответ на сообщение о соединении моделей, на которые ссылаются.
В диалоговом окне Model Properties нажмите Migrate data.
В диалоговом окне Migrate Data выберите Include data from referenced models и затем нажмите Migrate.
(Необязательно) В диалоговом окне Model Properties, очистите Enable access to base workspace.
Удалите предыдущий метод для загрузки данных модели. В диалоговом окне Model Properties, на вкладке Callbacks, очищают PreLoadFcn для модели.
Нажмите OK.
Наконец, соедините топ-модель с глобальным словарем.
Откройте модель ex_SystemModel.
Выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне нажмите Browse.
Дважды кликните GlobalShare.sldd.
В диалоговом окне Model Properties нажмите OK. Нажмите Change this model only в ответ на сообщение о соединении моделей, на которые ссылаются.
В панели Model Hierarchy Model Explorer выберите Объект узла словаря. В панели Contents, чтобы просмотреть содержимое Plant.sldd, нажимают кнопку Show Current System and Below
. Содержимое Данных проектирования и разделов Настроек появляется.

Точно так же просмотрите содержимое Controller.sldd.

Столбец DataSource показывает переменные и возражает, что каждый словарь хранит.
Все глобально совместно используемые переменные, такие как CtrlBus и SensorBus, находятся в GlobalShare.sldd. Переменная init, который обе из доли субкомпонентов контроллера, находится в Controller.sldd.
Если группа разработчиков, присвоенная компоненту контроллера, должна внести изменения в глобально совместно используемые переменные, они получают доступ к файлу словаря GlobalShare. Точно так же, если команда должна внести изменения в переменную init, они должны получить доступ к файлу словаря ContrShare.
Чтобы просмотреть целый словарь и иерархию модели, можно выполнить анализ зависимостей в проекте.
Откройте свою сохраненную модель ex_SystemModel. Выберите File> Project> Create Project from Model.
Задайте имя для проекта в поле Project name. Нажмите Create.
В проекте нажмите Dependency Analysis. Нажмите Analyze.

Системная модель, ex_SystemModel, соединяется со словарем GlobalShare.sldd. Компонент объекта и компонент контроллера каждый соединяются с отдельным словарем. Чтобы получить доступ к разделяемым данным, словари компонента ссылаются на словарь, GlobalShare.sldd.These словари формирует ссылочную иерархию.
Чтобы изучить, как модели в иерархии модели - ссылки осуществляют обмен данными, используйте эти методы:
В открытой модели выберите Edit> Find Referenced Variables. Model Explorer отображает переменные, которые модель использует, а также переменные, которые сослались на использование моделей. Можно затем щелкнуть правой кнопкой по переменной и выбрать Find Where Used, чтобы отобразить все модели, которые используют переменную. Для получения дополнительной информации смотрите Редактирование и Управляйте Переменными Рабочей области при помощи Model Explorer.
В командной строке используйте функциональный Simulink.findVars, чтобы определить переменные, которые использует модель. Можно затем использовать функциональный intersect, чтобы определить переменные две модели, компоненты или доля субкомпонентов.