Данные о разделе для иерархии модели - ссылки Используя словари данных

Когда вы используете ссылку модели, чтобы повредить большую систему моделей на меньшие компоненты и субкомпоненты, можно создать словари данных, чтобы выделять design data. Данные проектирования являются набором переменных рабочей области что использование моделей, чтобы задать параметры блоков и характеристики сигнала. Для основной информации о словарях данных смотрите то, Что Словарь Данных?.

Чтобы проявить этот разбитый на компоненты подход к управлению данными, создайте разделяемый словарь, который содержит общие данные и отдельный словарь для каждого компонента, который содержит данные, необходимые тому компоненту.

Создайте словарь для каждого компонента

Этот пример показывает, как разделить данные проектирования в словари. Когда вы закончили, каждый компонент в системе имеет словарь, и ссылки словаря позволяют компонентам осуществлять обмен данными.

Исследуйте иерархию модели в качестве примера

  1. Перейдите к (открытой) папке matlabroot/help/toolbox/simulink/examples.

  2. Скопируйте эти файлы в перезаписываемую папку:

    • 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

  3. Загрузите MAT-файлы, чтобы создать данные проектирования в базовом рабочем пространстве.

  4. Откройте модель ex_SystemModel в качестве примера. Эта модель наверху ссылочной иерархии, которая включает другие модели в качестве примера.

  5. Выберите Analysis> Model Dependencies> Model Dependency Viewer> Models Only. Иерархия модели - ссылки содержит системную модель, компонент объекта с двумя моделями и компонент контроллера. Компонент контроллера содержит два субкомпонента, каждый из которых состоят из двух моделей.

  6. В модели обновите схему. Каждый сигнал шины в модели использует объект Simulink.Bus в качестве типа данных. Объекты, SensorBus и CtrlBus, находятся в базовом рабочем пространстве.

    Модели ex_PlantComp_Lvl1 и ex_ContrComp, на которые ссылаются, используют объекты шины для вводов и выводов корневого уровня, что означает объект, и компоненты контроллера совместно используют объекты.

  7. В базовом рабочем пространстве дважды кликните объект Simulink.NumericType под названием FloatType. Сигналы, параметры и другие элементы данных в компоненте контроллера используют этот тип разделяемых данных.

  8. В панели Model Hierarchy Model Explorer расширьте узел ex_SystemModel.

    Кликните по узлу Configurations. В панели Contents узел появляется Reference to SimConfigSet. SimConfigSet является объектом Simulink.ConfigSet в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для симуляции, все модели в иерархии относятся к SimConfigSet.

  9. Щелкните правой кнопкой по узлу Controller (ex_ContrComp) и выберите Open.

  10. В панели Model Hierarchy Model Explorer расширьте новый узел ex_ContrComp. Кликните по узлу Configurations.

    В панели Contents узел появляется Reference to CodeGenConfigSet. CodeGenConfigSet является объектом Simulink.ConfigSet в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для генерации кода, модели в компоненте контроллера относятся к CodeGenConfigSet. Модели в компоненте объекта не используют CodeGenConfigSet.

  11. В панели 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Все модели в иерархииСовместно использованный глобально целой системой
rhoex_PlantComp_Lvl2, ex_ContrComp_Sub1_Lvl2 и ex_ContrComp_Sub2_Lvl2Совместно использованный глобально целой системой
muex_PlantComp_Lvl1 и ex_PlantComp_Lvl2Совместно использованный моделями в компоненте объекта
FloatTypeВсе модели в компоненте контроллераСовместно использованный компонентом контроллера и субкомпонентами
CodeGenConfigSetВсе модели в компоненте контроллераСовместно использованный компонентом контроллера и субкомпонентами
initex_ContrComp_Sub1_Lvl2 и ex_ContrComp_Sub2_Lvl1Совместно использованный субкомпонентами контроллера
diffex_ContrComp_Sub1_Lvl1 и ex_ContrComp_Sub1_Lvl2Совместно использованный моделями в первом субкомпоненте контроллера
coeffex_ContrComp_Sub2_Lvl1 и ex_ContrComp_Sub2_Lvl2Совместно использованный моделями во втором субкомпоненте контроллера

Предположим, что отдельные команды разработчиков поддерживают компонент объекта и компоненты контроллера. Можно использовать словари данных, чтобы сохранить и определить объем разделяемых данных проектирования.

Создайте разделяемый глобальный словарь

Создайте разделяемый словарь глобальных данных, который содержит данные, совместно использованные глобально целой системой.

  1. В Model Explorer выберите File> New> Data Dictionary.

  2. Определите новое имя словаря к GlobalShare и нажмите Save.

  3. В панели Model Hierarchy щелкните правой кнопкой по узлу GlobalShare и выберите Show Empty Sections.

  4. В панели Model Hierarchy выберите Base Workspace. В панели Contents выберите данные проектирования, которые совместно используются глобально целой системой: CtrlBus, SensorBus и rho.

  5. Щелкните правой кнопкой и выберите Copy.

  6. В панели Model Hierarchy щелкните правой кнопкой по узлу Design Data под GlobalShare и выберите Paste.

  7. Точно так же скопируйте SimConfigSet с Base Workspace и скопируйте в узел Configurations под GlobalShare.

Создайте словарь для компонента объекта

Создайте словарь данных для данных, совместно использованных моделями в компоненте Объекта. Добавьте ссылку от этого словаря до разделяемого глобального словаря.

  1. В Model Explorer выберите File> New> Data Dictionary.

  2. Определите новое имя словаря к Plant и нажмите Save.

  3. В панели Model Hierarchy выберите узел Plant. В Диалоговой панели, под Referenced Dictionaries, нажимают Add.

  4. Дважды кликните GlobalShare.sldd.

  5. В панели Model Hierarchy щелкните правой кнопкой по узлу Plant и выберите Save Changes.

Соедините компонент объекта со словарем и переместите данные

Соединитесь компонент Объекта к его словарю компонента затем перемещают данные, совместно использованные моделями в компоненте Объекта от базового рабочего пространства до словаря.

  1. Откройте модель ex_PlantComp_Lvl1.

  2. В модели обновите схему.

  3. Если Диагностическое Представление отображает ошибку для нескольких противоречивых определений SimConfigSet, выберите Delete others рядом с экземпляром GlobalShare. Эта фиксация сохраняет определение в словаре GlobalShare и удаляет другие определения, которые видны модели.

  4. Выберите File> Model Properties> Link to Data Dictionary.

  5. В диалоговом окне нажмите Browse.

  6. Дважды кликните Plant.sldd.

  7. В диалоговом окне Model Properties нажмите Apply. Нажмите Change all models в ответ на сообщение о соединении моделей, на которые ссылаются.

  8. В диалоговом окне Model Properties нажмите Migrate data.

  9. В диалоговом окне Migrate Data выберите Include data from referenced models и затем нажмите Migrate.

  10. (Необязательно) В диалоговом окне Model Properties, очистите Enable access to base workspace.

  11. Удалите предыдущий метод для загрузки данных модели. В диалоговом окне Model Properties, на вкладке Callbacks, очищают PreLoadFcn для модели.

  12. Нажмите OK.

Создайте словарь для компонента контроллера

Создайте словарь данных, который содержит данные, совместно использованные моделями в компоненте контроллера. Этот словарь может также сослаться на разделяемый глобальный словарь.

  1. В Model Explorer выберите File> New> Data Dictionary.

  2. Определите новое имя словаря к Controller и нажмите Save.

  3. В панели Model Hierarchy выберите узел Controller. В Диалоговой панели, под Referenced Dictionaries, нажимают Add.

  4. Дважды кликните GlobalShare.sldd.

  5. В панели Model Hierarchy щелкните правой кнопкой по узлу Controller и выберите Save Changes.

Соедините компонент контроллера со словарем и переместите данные

Соединитесь компонент Контроллера к его словарю компонента затем перемещают данные, совместно использованные моделями в компоненте Контроллера от базового рабочего пространства до словаря.

  1. Откройте модель ex_ContrComp.

  2. Если Диагностическое Представление отображает ошибку для нескольких противоречивых определений SimConfigSet, выберите Delete others рядом с экземпляром GlobalShare. Эта фиксация сохраняет определение в словаре GlobalShare и удаляет другие определения, которые видны модели.

  3. Выберите File> Model Properties> Link to Data Dictionary.

  4. В диалоговом окне нажмите Browse.

  5. Дважды кликните Controller.sldd.

  6. В диалоговом окне Model Properties нажмите Apply. Нажмите Change all models в ответ на сообщение о соединении моделей, на которые ссылаются.

  7. В диалоговом окне Model Properties нажмите Migrate data.

  8. В диалоговом окне Migrate Data выберите Include data from referenced models и затем нажмите Migrate.

  9. (Необязательно) В диалоговом окне Model Properties, очистите Enable access to base workspace.

  10. Удалите предыдущий метод для загрузки данных модели. В диалоговом окне Model Properties, на вкладке Callbacks, очищают PreLoadFcn для модели.

  11. Нажмите OK.

Соедините систему с глобальным словарем

Наконец, соедините топ-модель с глобальным словарем.

  1. Откройте модель ex_SystemModel.

  2. Выберите File> Model Properties> Link to Data Dictionary.

  3. В диалоговом окне нажмите Browse.

  4. Дважды кликните GlobalShare.sldd.

  5. В диалоговом окне 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.

Осмотрите иерархию словаря

Чтобы просмотреть целый словарь и иерархию модели, можно выполнить анализ зависимостей в проекте.

  1. Откройте свою сохраненную модель ex_SystemModel. Выберите File> Project> Create Project from Model.

  2. Задайте имя для проекта в поле Project name. Нажмите Create.

  3. В проекте нажмите Dependency Analysis. Нажмите Analyze.

Системная модель, ex_SystemModel, соединяется со словарем GlobalShare.sldd. Компонент объекта и компонент контроллера каждый соединяются с отдельным словарем. Чтобы получить доступ к разделяемым данным, словари компонента ссылаются на словарь, GlobalShare.sldd.These словари формирует ссылочную иерархию.

Стратегии обнаружить разделяемые данные

Чтобы изучить, как модели в иерархии модели - ссылки осуществляют обмен данными, используйте эти методы:

  • В открытой модели выберите Edit> Find Referenced Variables. Model Explorer отображает переменные, которые модель использует, а также переменные, которые сослались на использование моделей. Можно затем щелкнуть правой кнопкой по переменной и выбрать Find Where Used, чтобы отобразить все модели, которые используют переменную. Для получения дополнительной информации смотрите Редактирование и Управляйте Переменными Рабочей области при помощи Model Explorer.

  • В командной строке используйте функциональный Simulink.findVars, чтобы определить переменные, которые использует модель. Можно затем использовать функциональный intersect, чтобы определить переменные две модели, компоненты или доля субкомпонентов.

Похожие темы