Когда вы используете ссылку модели, чтобы повредить большую систему моделей в меньшие компоненты и субкомпоненты, можно создать словари данных, чтобы выделять данные проектирования. Данные проектирования являются набором переменных рабочей области что использование моделей, чтобы задать блочные параметры и характеристики сигнала. Для основной информации о словарях данных смотрите то, Что Словарь Данных?.
Можно переместить все модели в иерархии модели - ссылки, чтобы использовать один или несколько словарей данных с помощью любого из этих методов:
Переместите все модели в иерархии целиком, чтобы использовать единственный словарь. Затем создайте отдельные словари, на которые ссылаются, чтобы организовать данные проектирования.
Инкрементно мигрируйте путем начала с моделей в нижней части иерархии. Используйте этот метод, если вы не можете переместить все модели целиком.
Этот пример показывает, как разделить данные проектирования в словари. Когда вы заканчиваете, каждый компонент и субкомпонент в системе имеют словарь, и ссылки словаря позволяют компонентам и субкомпонентам осуществлять обмен данными.
Перейдите к
(открытой)
папке
.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
. Сигналы, параметры и другие элементы данных в компоненте контроллера используют этот тип разделяемых данных.
В Образцовой панели Иерархии модели Проводника расширьте узел ex_SystemModel.
Ссылка узла на SimConfigSet появляется. SimConfigSet
является объектом Simulink.ConfigSet
в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для моделирования, все модели в иерархии относятся к SimConfigSet
.
Щелкните правой кнопкой по Контроллеру узла (ex_ContrComp) и выберите Open.
В Образцовой панели Иерархии модели Проводника расширьте новый узел ex_ContrComp. Расширьте Модель (ex_ContrComp_Sub1_Lvl1) узла.
Ссылка узла на CodeGenConfigSet появляется. CodeGenConfigSet
является объектом Simulink.ConfigSet
в базовом рабочем пространстве. Чтобы поддержать однородность параметра конфигурации для генерации кода, модели в компоненте контроллера относятся к CodeGenConfigSet
. Модели в компоненте завода не используют CodeGenConfigSet
.
В панели Иерархии модели выберите Base Workspace. В панели Содержимого щелкните правой кнопкой по переменному diff
и выберите Find Where Used. В Выборе системное диалоговое окно выберите ex_SystemModel
и нажмите ОК. Если вы видите сообщение об обновлении схемы, нажимаете ОК.
В панели Содержимого переменный 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 | Совместно использованный моделями во втором субкомпоненте контроллера |
Предположим, что три команды разработчиков поддерживают компонент завода и два субкомпонента контроллера. Можно использовать словари данных, чтобы сохранить и определить объем разделяемых данных проектирования.
В образцовом ex_SystemModel
выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне, под Моделью относится к, выберите Data Dictionary. Нажмите New.
Определите новое имя словаря к System
и нажмите Save.
В диалоговом окне Model Properties нажать ОК.
Нажмите ОК в ответ на сообщение о миграции переменных, на которые ссылаются.
Нажмите кнопку Да в ответ на сообщение об удалении импортированных элементов от базового рабочего пространства.
Сохраните модель.
Можно моделировать и сгенерировать код от моделей в иерархии. Все модели в иерархии соединяются со словарем. Все переменные в базовом рабочем пространстве теперь находятся в новом словаре System.sldd
.
Откройте образцовый ex_PlantComp_Lvl1
.
Выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне, под Моделью относится к, нажмите New.
Определите новое имя словаря к Plant
и нажмите Save.
В диалоговом окне Model Properties нажать ОК.
В ответ на сообщение нажмите Move Data.
Нажмите кнопку Да в ответ на сообщение о мигрирующих данных.
Сохраните модель.
Модели в компоненте завода, ex_PlantComp_Lvl1
и ex_PlantComp_Lvl2
, соединяются с новым словарем Plant.sldd
. Другие модели в иерархии остаются соединенными с System.sldd
. Поскольку образцовый ex_PlantComp_Lvl1
использует глобально совместно используемые переменные, такие как CtrlBus
и SensorBus
, процесс миграции перемещает эти переменные в Plant.sldd
. Однако System.sldd
теперь ссылается на Plant.sldd
, таким образом, все модели в иерархии могут продолжить использовать глобально совместно используемые переменные.
Переменная, которую модели объекта управления совместно используют, mu
, также находится в Plant.sldd
. Другие переменные, которые модели контроллера совместно используют, такие как init
и diff
, остаются в System.sldd
.
Компонент завода может одинокий от остальной части системы, потому что все ее данные находятся в Plant.sldd
. Однако компонент контроллера зависит от разделяемых данных, который также сохранен в Plant.sldd
.
Откройте образцовый ex_ContrComp
, который является топ-моделью в компоненте контроллера. Соедините эту модель с новым словарем под названием Contr.sldd
. Затем сохраните модель.
Когда вы заканчиваете, эти пять моделей в компоненте контроллера соединяются с Contr.sldd
. Поскольку глобально совместно используемые переменные, такие как CtrlBus
и SensorBus
все еще находятся в словаре Plant.sldd
, словарь ссылки Contr.sldd
Plant.sldd
. Из-за этой ссылки, модели в компоненте контроллера могут продолжить использовать глобально совместно используемые переменные.
Переменные, которые модели контроллера совместно используют, такие как diff
, init
и CodeGenConfigSet
, теперь находятся в Contr.sldd
.
Откройте образцовый ex_ContrComp_Sub1_Lvl1
. Соедините эту модель с новым словарем под названием ContrSub1.sldd
. Затем сохраните модель.
Когда вы заканчиваете, модели в первом субкомпоненте контроллера, ex_ContrComp_Sub1_Lvl1
и ex_ContrComp_Sub1_Lvl2
, соединяются с ContrSub1.sldd
. Модели во втором субкомпоненте остаются соединенными со словарем Contr.sldd
.
Откройте образцовый ex_ContrComp_Sub2_Lvl1
. Соедините эту модель с новым словарем под названием ContrSub2.sldd
. Затем сохраните модель.
Словарь контроллера Contr.sldd
ссылается на словари субкомпонента, ContrSub1.sldd
и ContrSub2.sldd
. Поэтому словарь контроллера и топ-модель в компоненте контроллера (ex_ContrComp
) могут использовать все данные, заданные в этих словарях субкомпонента.
Первый словарь субкомпонента, ContrSub1.sldd
, задает данные, которые субкомпоненты совместно используют, такие как CodeGenConfigSet
. Второй словарь субкомпонента, ContrSub2.sldd
, ссылки ContrSub1.sldd
так, чтобы модели во втором субкомпоненте могли использовать это, осуществляли обмен данными.
Словари субкомпонента ContrSub1.sldd
и ссылка ContrSub2.sldd
Plant.sldd
. Поэтому все модели в иерархии могут продолжить использовать глобально совместно используемые переменные, такие как SensorBus
и SimConfigSet
, которые сохранены в Plant.sldd
.
В Образцовой панели Иерархии модели Проводника выберите Систему узла словаря. В панели Содержимого, чтобы просмотреть содержимое System.sldd
, нажимают кнопку Show Current System и Below. Содержимое Данных проектирования и разделов Настроек появляется.
Столбец источника данных показывает переменные и возражает, что каждый словарь хранит.
Все глобально совместно используемые переменные, такие как CtrlBus
и SensorBus
, находятся в Plant.sldd
. Переменный init
, который обе из доли субкомпонентов контроллера, находится в ContrSub1.sldd
. Из-за ссылок словаря, созданных процессом миграции, компоненты и субкомпоненты могут все еще совместно использовать эти переменные.
Если группы разработчиков, присвоенные компоненту контроллера, должны внести изменения в глобально совместно используемые переменные, они должны получить доступ к файлу словаря завода. Точно так же, если команда, присвоенная второму субкомпоненту контроллера, должна внести изменения в переменный init
, они должны получить доступ к первому файлу словаря субкомпонента.
Чтобы совместно использовать глобальные переменные, такие как CtrlBus
и SensorBus
путем ясного определения переменного осциллографа, можно создать ссылочный словарь. Добавьте новый словарь как ссылку на весь компонент и словари субкомпонента, которые требуют разделяемых данных.
Закройте все модели, которые вы имеете открытый.
bdclose all
В Образцовом Проводнике выберите File> New> Data Dictionary.
Определите новое имя словаря к GlobalShare
и нажмите Save.
В панели Иерархии модели выберите узел ContrSub2. В Диалоговой панели, под Dictionares, на который Ссылаются, нажимают Add.
Дважды кликните GlobalShare.sldd
.
В панели Иерархии модели щелкните правой кнопкой по узлу ContrSub2 и выберите Save Changes.
Добавьте GlobalShare.sldd
как ссылку на словари ContrSub1.sldd
и Plant.sldd
. Сохраните каждый словарь после того, как вы добавите ссылку.
В панели Иерархии модели выберите Систему узла.
В панели Содержимого выберите глобально совместно используемые переменные:
CtrlBus
SensorBus
SimConfigSet
\rho
В Столбце источника данных выберите GlobalShare.sldd
для любой из выбранных переменных.
Все переменные перемещаются от Plant.sldd
до GlobalShare.sldd
.
Сохраните изменения в словаре System.sldd
.
Теперь, если какая-либо из этих трех групп разработчиков должна внести изменения в глобально совместно используемые переменные, такие как SimConfigSet
и CtrlBus
, они могут получить доступ к словарю GlobalShare.sldd
. Этот словарь содержит только переменные, которые совместно используют все модели в системе. Поскольку компонент и словари субкомпонента Plant.sldd
, ContrSub1.sldd
и ContrSub2.sldd
вся ссылка глобально разделяемый словарь GlobalShare.sldd
, все модели в иерархии могут использовать данные.
К дальнейшему разделу и осциллографу разделяемые данные, создайте другой ссылочный словарь, чтобы содержать переменные, которые совместно используют субкомпоненты контроллера.
В Образцовом Проводнике выберите File> New> Data Dictionary.
Определите новое имя словаря к ContrShare
и нажмите Save.
В панели Иерархии модели выберите узел словаря ContrSub2. В Диалоговой панели, в соответствии со Словарями, на которые Ссылаются, выбирают Add.
В диалоговом окне дважды кликните ContrShare.sldd
.
В панели Иерархии модели щелкните правой кнопкой по узлу ContrSub2 и выберите Save Changes.
Добавьте ContrShare.sldd
как ссылку на ContrSub1.sldd
и сохраните словарь ContrSub1.sldd
.
Добавьте GlobalShare.sldd
как ссылку на ContrShare.sldd
и сохраните словарь ContrShare.sldd
.
В панели Иерархии модели выберите Систему узла.
В панели Содержимого выберите эти переменные:
CodeGenConfigSet
init
FloatType
В Столбце источника данных выберите ContrShare.sldd
для любой из выбранных переменных.
Все выбранные переменные перемещаются от ContrSub1.sldd
до ContrShare.sldd
.
Сохраните изменения в словаре System.sldd
.
Чтобы далее оптимизировать иерархию словаря, удалите ненужные ссылки, которые создал процесс миграции. Кроме того, удалите ненужные ссылки, которые вы создали из ContrSub1.sldd
и ContrSub2.sldd
к GlobalShare.sldd
. Поскольку ссылки ContrShare.sldd
GlobalShare.sldd
, словари субкомпонента контроллера могут использовать данные в GlobalShare.sldd
, непосредственно не ссылаясь на GlobalShare.sldd
.
В Образцовой панели Иерархии модели Проводника выберите Противоречие узла словаря. В Диалоговой панели, в списке Словарей, на который Ссылаются, выбирают Plant и нажимают Remove. Сохраните изменение в Contr.sldd
.
Удалите ссылки на GlobalShare.sldd
и Plant.sldd
от ContrSub1.sldd
. Сохраните изменения в ContrSub1.sldd
.
Удалите ссылки на GlobalShare.sldd
, Plant.sldd
и ContrSub1.sldd
от ContrSub2.sldd
. Сохраните изменения в ContrSub2.sldd
.
Чтобы просмотреть целый словарь и иерархию модели, можно выполнить анализ зависимостей в проекте Simulink®.
Откройте свой сохраненный образцовый ex_SystemModel
. Выберите File> Simulink Project> Create Project from Model.
Задайте имя для проекта в поле Названия проекта. Нажмите Create.
В Проекте Simulink нажмите Dependency Analysis. Нажмите Analyze.
Системная модель, ex_SystemModel
, соединяется со словарем System.sldd
. Компонент завода, компонент контроллера и субкомпоненты контроллера каждый соединяются с отдельным словарем. Эти словари формируют ссылочную иерархию. Чтобы получить доступ к разделяемым данным, компонент и словари субкомпонента ссылаются на словари ContrShare.sldd
и GlobalShare.sldd
.
Чтобы осмотреть данные в словарях, используйте Образцовый Проводник.
В вашем сохраненном образцовом ex_SystemModel
кликните по значку словаря данных.
В Образцовой панели Иерархии модели Проводника, под узлом словаря, выбирают узел Данных проектирования.
В панели Содержимого кликните по имени столбца DataSource, чтобы отсортировать данные проектирования. Словари в иерархии делят переменные на основе разделяемого осциллографа каждой переменной.
Можно также щелкнуть правой кнопкой по имени столбца и выбрать Group by This Column, чтобы сгруппировать записи словарями, которые задают их.
В панели Иерархии модели, под Системой узла, кликают по Настройкам узла. В панели Содержимого объект Simulink.ConfigSet
CodeGenConfigSet
сохранен в разделяемом словаре для компонента контроллера. SimConfigSet
сохранен в глобально разделяемом словаре.
В основанной на команде среде разработки, если вы не можете переместить все модели иерархии модели - ссылки целиком, можно вместо этого переместить отдельную модель или компонент в нижней части иерархии. В зависимости от времени можно возрасти целая иерархия одна модель или компонент за один раз. В каждой промежуточной стадии можно продолжить разрабатывать, моделировать, и генерировать код от моделей.
При использовании этот метод, необходимо начать с моделей и компонентов в нижней части иерархии. В иерархии моделей, на которые ссылаются, если какая-либо модель соединяется со словарем данных, все модели ниже ее должны также быть соединены со словарем данных.
В примере Создают Словарь для Каждого Компонента, вы перемещаете иерархию компонентов и субкомпонентов от базового рабочего пространства до словарей данных, начинающихся с топ-модели. Этот пример показывает, как достигнуть того же конечного состояния, начав процесс миграции с субкомпонентов в нижней части иерархии. Чтобы осуществлять обмен данными с другими моделями, которые все еще используют базовое рабочее пространство, вы конфигурируете новые словари, чтобы обеспечить доступ к базовому рабочему пространству (см., Продолжают Использовать Разделяемые данные в Базовом рабочем пространстве).
Перейдите к
(открытой)
папке
.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
. Эта модель наверху ссылочной иерархии, которая включает другие модели в качестве примера.
Для дополнительного объяснения моделей и данных базового рабочего пространства, смотрите, Исследуют Иерархию модели В качестве примера.
Предположим, что только команда, ответственная за второй субкомпонент контроллера, готова переместить их модели на словарь данных. Можно независимо переместить эти две модели, оставив другие модели в иерархии одними.
Откройте модель ex_ContrComp_Sub2_Lvl1
. Эта модель наверху второго субкомпонента.
Выберите File> Model Properties> Link to Data Dictionary.
В диалоговом окне, под Моделью относится к, выберите Data Dictionary и нажмите New.
Определите новое имя словаря к ContrSub2
и нажмите Save.
В диалоговом окне Model Properties нажать ОК.
В диалоговом окне Link Model to Data Dictionary снимите флажок и нажмите ОК. Со снятым флажком Simulink не перемещает данные от базового рабочего пространства до словаря.
Нажмите ОК в диалоговом окне Model Properties, затем сохраните модель.
С этой настройкой все существующие данные все еще находятся в базовом рабочем пространстве. Когда вы и другие члены команды создаете новые данные для второго субкомпонента контроллера:
Если часть данных используется субкомпонентом только, можно создать его в новом словаре, ContrSub2.sldd
.
Если другие компоненты или субкомпоненты должны использовать часть данных, можно создать ее в базовом рабочем пространстве.
Опционально, после того, как вы соединяете модель со словарем, можно переместить данные от базового рабочего пространства до словаря вручную. Переместите только данные, которые модель не совместно использует с другими моделями через базовое рабочее пространство.
В этом случае можно переместить переменный coeff
. Вы не можете переместить другие данные, которые использует субкомпонент, потому что другим моделям в иерархии нужен он, чтобы существовать в базовом рабочем пространстве.
В нижнем левом углу модели ex_ContrComp_Sub2_Lvl1
кликните по значку словаря. Словарь ContrSub2.sldd
открывается в Образцовом Проводнике.
В Образцовой панели Иерархии модели Проводника нажмите Base Workspace.
В панели Содержимого, сокращение переменная coeff
.
В панели Иерархии модели, под узлом ContrSub2, выбирают узел Данных проектирования.
В панели Содержимого вставьте переменную coeff
.
В панели Иерархии модели щелкните правой кнопкой по узлу ContrSub2 и выберите Save Changes.
Теперь, переменный coeff
задан в словаре, не базовом рабочем пространстве.
Чтобы предотвратить ошибки, когда вы работаете с моделями в субкомпоненте, необходимо удалить некоторые обратные вызовы загрузки данных из моделей. Если вы не удаляете обратные вызовы, каждый раз, когда вы открываете одну из моделей, обратный вызов создает копию переменной coeff
в базовом рабочем пространстве. Конфликтные определения переменной в словаре и базовом рабочем пространстве затем приводят к ошибкам, когда вы пытаетесь моделировать или обновить блок-схему.
В Образцовой панели Иерархии модели Проводника выберите ex_ContrCompSub2_Lvl1 узел.
В Диалоговой панели (правая панель), выберите вкладку Callbacks.
Для обратного вызова PreLoadFcn
удалите строку, которая загружает данные от ProjectData_ContrSub2.mat
. Этот MAT-файл задает coeff
.
Другие строки в обратном вызове загружают данные из других MAT-файлов. Оба субкомпонентам контроллера нужны данные в этих файлах, таким образом, данные должны остаться в базовом рабочем пространстве, что означает обратные вызовы, должны остаться.
Удалите ту же строку из обратного вызова PreLoadFcn
другой модели во втором субкомпоненте контроллера.
При необходимости очистите любые остающиеся копии coeff
от базового рабочего пространства.
Соедините первый субкомпонент контроллера, топ-моделью которого является ex_ContrComp_Sub1_Lvl1
к словарю под названием ContrSub1.sldd
. После того, как вы закончите, переместите переменный diff
на новый словарь и, в обратном вызове PreLoadFcn
моделей в субкомпоненте, удалите строку, которая загружает данные от ProjectData_ContrSub1.mat
. Когда вы заканчиваете, очистите любые остающиеся копии diff
, которые остаются в базовом рабочем пространстве.
Субкомпоненты контроллера совместно используют переменную под названием init
, который находится все еще в базовом рабочем пространстве. Теперь, когда оба субкомпонента используют словари, можно переместить init
в разделяемый, ссылочный словарь.
В Образцовом Проводнике выберите File> New> Data Dictionary.
В Создавании нового диалогового окна Data Dictionary, Имени файла набора к ContrShare
и нажимают Save.
В Образцовой панели Иерархии модели Проводника выберите узел ContrSub1.
В Диалоговой панели (правая панель), в соответствии со Словарями, на которые Ссылаются, нажимают Add.
В диалоговом окне Open Data Dictionary дважды кликните ContrShare.sldd
.
Словарь ContrSub1.sldd
относится к ContrShare.sldd
.
Сконфигурируйте словарь ContrSub2.sldd
, чтобы относиться к ContrShare.sldd
.
Используйте Образцовый Проводник, чтобы переместить init
от базового рабочего пространства до ContrShare.sldd
.
Сохраните изменения, которые вы внесли в словари.
В обратном вызове PreLoadFcn
моделей в субкомпонентах контроллера удалите строку, которая загружает данные от ProjectData_ContrSubs.mat
.
Соедините модель компонента контроллера, ex_ContrComp
, к словарю под названием Contr.sldd
. После того, как вы закончите, Simulink конфигурирует ссылки словаря: ссылки Contr.sldd
ContrSub1.sldd
и ContrSub2.sldd
.
Contr.sldd
не содержит данных, но он изолирует словари контроллера от системного словаря, который вы создаете позже.
Теперь, когда целый компонент контроллера использует словари данных, можно переместить дополнительные данные от базового рабочего пространства.
Используйте Образцовый Проводник, чтобы переместить переменный FloatType
в раздел Design Data ContrShare.sldd
(не Contr.sldd
).
Переместите переменный CodeGenConfigSet
в раздел Configurations ContrShare.sldd
.
Чтобы представить раздел Configurations, в Образцовой панели Иерархии модели Проводника, щелкают правой кнопкой по узлу словаря и выбирают Show Empty Sections.
Эти переменные используются всеми моделями в компоненте контроллера.
В обратном вызове PreLoadFcn
всех моделей в компоненте контроллера удалите строку, которая загружает данные от ProjectData_Contr.mat
.
Соедините топ-модель в компоненте завода, ex_PlantComp_Lvl1
, к новому словарю под названием Plant.sldd
.
Соедините системную модель, ex_SystemModel
, к новому словарю под названием System.sldd
.
Теперь, когда все модели используют словари, можно переместить все данные от базового рабочего пространства:
Переместите переменный mu
в Plant.sldd
.
В обратном вызове PreLoadFcn
моделей в компоненте завода удалите строку, которая загружает данные от ProjectData_Plant.mat
.
Используйте Образцовый Проводник, чтобы создать новый словарь под названием GlobalShare.sldd
.
Сконфигурируйте Plant.sldd
и ContrShare.sldd
, чтобы относиться к GlobalShare.sldd
.
Переместите эти переменные в GlobalShare.sldd
:
\rho
SimConfigSet
SensorBus
CtrlBus
GlobalShare.sldd
содержит переменные, в которых нуждаются все модели в иерархии.
В обратном вызове PreLoadFcn
всех моделей удалите строку, которая загружает данные от ProjectData_System.mat
.
Для ContrSub1
ContrSub2
и словари Plant
, в Образцовой панели Иерархии модели Проводника, выбирают узел словаря и в Диалоговой панели, ясный Предоставляют доступ к базовому рабочему пространству.
Для каждого из других словарей подтвердите, что Предоставляют доступ к базовому рабочему пространству, очищен. Моделям в иерархии больше не нужно базовое рабочее пространство.
Чтобы изучить, как модели в иерархии модели - ссылки осуществляют обмен данными, используйте эти методы:
В открытой модели выберите Edit> Find Referenced Variables. Образцовый Проводник отображает переменные, которые модель использует, а также переменные, которые сослались на использование моделей. Можно затем щелкнуть правой кнопкой по переменной и выбрать Find Where Used, чтобы отобразить все модели, которые используют переменную. Для получения дополнительной информации смотрите Редактирование и Управляйте Переменными Рабочей области при помощи Образцового Проводника.
В командной строке используйте функциональный Simulink.findVars
, чтобы определить переменные, которые использует модель. Можно затем использовать функциональный intersect
, чтобы определить переменные две модели, компоненты или доля субкомпонентов.