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

Когда вы используете ссылку модели, чтобы повредить большую систему моделей на меньшие компоненты и субкомпоненты, можно создать словари данных, чтобы выделять 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, чтобы определить переменные две модели, компоненты или доля субкомпонентов.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте