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

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

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

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

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

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

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

  9. В панели Model Hierarchy Model Explorer расширьте новый узел ex_ContrComp. Нажмите Configurations узел.

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

  10. В панели Model Hierarchy выберите Base Workspace. В панели Contents щелкните правой кнопкой по переменной diff и выберите Find Where Used. В диалоговом окне Select a system выберите ex_SystemModel и нажмите OK. Если вы видите сообщение об обновлении схемы, нажмите OK.

    В панели Contents, переменной diff используется блоками Constant в моделях 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. Во вкладке Modeling, под Design, нажимают 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 model 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. Во вкладке Modeling, под Design, нажимают 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 model access to base workspace.

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

  11. Нажмите OK.

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

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

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

  2. Во вкладке Modeling, под Design, нажимают 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, они должны получить доступ к Controller файл словаря.

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

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

  1. Откройте свою сохраненную модель ex_SystemModel.

  2. На вкладке Modeling, в разделе Design, нажимают Dependency Analyzer.

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

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

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

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

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

Похожие темы

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