В словаре данных Simulink ® постоянно хранятся данные модели, включая переменные MATLAB ®, объекты данных и типы данных. Основные сведения о словарях данных см. в разделе Что такое словарь данных?.
В этом примере показано, как связать одну автономную модель с одним словарем данных.
Примечание
Simulink не импортирует данные моделирования, такие как объекты Timeseries, в словарь данных.
Откройте окно f14 модель, которая загружает конструкторские данные в базовое рабочее пространство.
Сохраните копию модели в текущей папке. Откройте копию.
В редакторе Simulink на вкладке «Моделирование» в разделе «Проект» выберите «Связать со словарем данных».
В диалоговом окне «Свойства модели» нажмите кнопку «Создать» для создания словаря данных.

Назовите словарь данных, сохраните его и нажмите кнопку Применить.
Щелкните Перенос данных.
Щелкните Перенести в ответ на сообщение о копировании переменных, на которые имеются ссылки.
(Необязательно) Очистить доступ модели к базовой рабочей области.
Нажмите кнопку ОК.
Чтобы открыть словарь, в редакторе Simulink выберите значок данных модели
в левом нижнем углу, затем щелкните ссылку Внешние данные. Чтобы проверить содержимое словаря, на панели «Иерархия моделей обозревателя моделей» в узле «Внешние данные» разверните узел словаря.
В этом примере показано, как связать родительскую модель и все ссылочные модели с одним словарем данных.
Открыть пример модели sldemo_mdlref_datamngt, которая ссылается на модель sldemo_mdlref_counter_datamngt.
Сохраните копии моделей в текущей папке.
Откройте верхнюю модель, sldemo_mdlref_datamngt.
В редакторе Simulink на вкладке «Моделирование» в разделе «Проект» выберите «Связать со словарем данных».
В диалоговом окне «Свойства модели» нажмите кнопку «Создать» для создания словаря данных.

Назовите словарь данных, сохраните его и нажмите кнопку Применить.
Щелкните Изменить все модели в ответ на сообщение о связывании ссылочных моделей, которые еще не используют словарь.
Щелкните Перенос данных.
Щелкните Перенести в ответ на сообщение о копировании переменных, на которые имеются ссылки.
(Необязательно) Очистить доступ модели к базовой рабочей области.
Нажмите кнопку ОК.
После связывания модели со словарем данных можно выбрать перенос данных из базового рабочего пространства в словарь. Если вы решите перенести данные, учтите эти соображения.
Можно использовать обратные вызовы модели, такие как PreLoadFcn обратный вызов для загрузки конструкторских данных из файла в базовую рабочую область при загрузке модели. Например, следующий обратный вызов загружает проектные данные из файла MAT myData.mat.
load myData
После миграции в словарь данных эти обратные вызовы будут продолжать загружать конструкторские данные в базовую рабочую область. Поскольку затем модель извлекает конструкторские данные из словаря, вручную удалите или прокомментируйте эти обратные вызовы загрузки данных.
Для поиска обратных вызовов с загрузкой данных можно использовать анализатор зависимостей. См. раздел Анализ зависимостей модели.
Новая модель имеет доступ к базовой рабочей области по умолчанию, но не теряет доступ при связи со словарем данных. Сценарии должны быть написаны с предположением, что модель может иметь доступ к базовой рабочей области, словарю данных или и тому, и другому.
При создании явных ссылок на базовое рабочее пространство с помощью маркера base в сценариях рассмотрите возможность изменения этих ссылок.
Рассмотрим этот пример. Здесь сценарий выполняет поиск переменной в базовом рабочем пространстве sensor и задает параметр enable в зависимости от значения sensor.noiseEnable.
if evalin('base','sensor.noiseEnable')
enable = 'Enabled';
else
enable = 'Disabled';
end При миграции в словарь данных замените эти явные ссылки на base следующим образом:
if Simulink.data.evalinGlobal(myExampleModel,... 'sensor.noiseEnable') enable = 'Enabled'; else enable = 'Disabled'; end
Simulink.data.evalinGlobal функция вычисляет выражение в глобальной области действия указанной модели. Здесь глобальная область может находиться в словаре данных или в базовом рабочем пространстве, если модель не связана со словарем.Если модель связана со словарем данных и у нее нет доступа к базовой рабочей области (см. раздел Продолжение использования общих данных в базовой рабочей области), Simulink игнорирует информацию о классе хранения, указанную в диалоговом окне Конфигурация параметров модели.
При использовании интерфейса Simulink для переноса модели с использованием словаря данных и переноса базовых данных рабочей области Simulink также переносит информацию о классах хранения модели. Если модель содержит информацию о классе хранения для переменных в базовой рабочей области, Simulink преобразует эти переменные в Simulink.Parameter объектов во время миграции. Затем Simulink устанавливает класс хранения этих Simulink.Parameter с использованием информации о классе хранения из модели.
При переносе этой модели обратно в базовую рабочую область Simulink не восстанавливает данные класса хранения в модели. Чтобы сохранить класс хранения для этих переменных, используйте объекты параметров из словаря данных. Можно также вручную сбросить информацию о классе хранения в модели.
Если установить DataDictionary свойство модели из командной строки, можно преобразовать настраиваемые переменные в Simulink.Parameter с использованием tunablevars2parameterobjects функция.
При использовании ссылок на модели для разделения большой системы моделей на более мелкие компоненты и подкомпоненты можно создать словари данных для разделения данных конструкции. Проектные данные - это набор переменных рабочего пространства, которые используются моделями для задания параметров блока и характеристик сигнала.
Модели в иерархии ссылок на модели обычно совместно используют данные. Владение данными, количество общих переменных и сложность стратегии совместного использования могут влиять на способ использования словарей.
Повторяющиеся определения данных могут существовать в ссылочной иерархии модели при следующих условиях:
Каждая модель в иерархии может видеть только одно определение.
Определения должны быть одинаковыми для моделей в иерархии.
Дополнительные сведения см. в разделе Определение места хранения переменных и объектов для моделей Simulink.
Можно импортировать, хранить или создавать переменные MATLAB, использующие поддерживаемые Simulink типы данных, такие как boolean и int32и структуры в разделе «Конструкторские данные» словаря данных Simulink. Можно также использовать объекты этих классов и объекты большинства классов, которые подклассифицируют эти классы:
Simulink.AliasType
Simulink.Bus
Simulink.NumericType
Simulink.Parameter
Simulink.LookupTable
Simulink.Breakpoint
Simulink.Signal
Simulink.Variant
Simulink.data.dictionary.EnumTypeDefinition
embedded.fi
embedded.fimath
numlti
Кроме того, можно импортировать, хранить или создавать объекты конфигурации следующих классов в разделе Конфигурации словаря данных Simulink.
Можно импортировать, хранить или создавать объекты данных многих встроенных и пользовательских классов или типов данных в разделе «Другие данные» словаря данных Simulink, за исключением следующих:
Массивы объектов, созданных из встроенных или пользовательских классов
Пользовательские классы, имеющие свойство с любым из следующих имен:
LastModified
LastModifiedBy
DataSource
Status
Variant
Если модель содержит блок «Из рабочей области», который ссылается на переменную в базовой рабочей области, можно перенести модель в словарь данных. Однако процесс миграции выполняет различные действия в зависимости от характера переменной, на которую ссылается блок:
Если значение переменной не является timeseries , процесс миграции импортирует переменную в раздел «Конструкторские данные» словаря данных. Блок по-прежнему может ссылаться на переменную.
Если переменная имеет значение timeseries объект (который словарь данных не может хранить) или структура с полями, идентичными объекту временных рядов, процесс миграции не импортирует переменную. Затем при попытке обновить схему или смоделировать модель блок Из рабочей области (From Workspace) не может найти переменную и выдает ошибку. В этом случае можно настроить блок для ссылки на базовую переменную рабочей области с помощью evalin функция. Дополнительные сведения см. в разделе Из рабочей области.
Simulink не может автоматически переносить переменные, используемые только неактивными вариативными моделями, в словарь данных.
Нельзя импортировать определенные виды конструкторских данных, например meta объекты класса и timeseries объектов в раздел «Конструкторские данные» словаря данных.
Simulink не допускает неявного разрешения сигнала для модели, связанной со словарем данных. Для использования словаря данных установите параметр конфигурации модели Signal resolution равным Explicit only или None.
Если иерархия ссылок на модель уже связана со словарем данных, можно защитить ссылочную модель, являющуюся частью иерархии. Однако при переносе иерархии ссылок на модель, включающей защищенную модель, моделирование завершится неудачей.
Другими словами, перенесите модель, чтобы использовать словарь данных перед его защитой.
Оценка выражений, включающих переменные Simulink или типы данных, которые хранятся в словаре данных, может не поддерживаться.
Для сохранения общих данных в базовой рабочей области и специфичных для модели данных в словаре данных выполните следующие действия:
Включение доступа к базовой рабочей области для модели.
Включение доступа к основной рабочей области из словаря данных.
Чтобы разрешить доступ к базовому рабочему пространству для модели, в диалоговом окне Свойства модели (Model Properties) на вкладке Внешние данные (External Data) выберите Включить доступ модели к базовому рабочему пространству (Enable model access to base workspace). Для новой модели этот флажок установлен по умолчанию. Если модель не связана со словарем данных, необходимо выбрать этот параметр.
Также можно разрешить доступ к базовому рабочему пространству из словаря данных. Для существующего словаря в Обозревателе моделей выберите Включить доступ словаря к базовому рабочему пространству.
При разрешении доступа к базовой рабочей области из словаря данных применяются следующие ограничения и последствия:
Как правило, взаимодействие с базовыми данными рабочей области через словарь невозможно.
При проверке содержимого словаря в обозревателе моделей базовые данные рабочей области не отображаются. Для взаимодействия с базовыми данными рабочей области на панели Иерархия модели (Model Hierarchy) выберите узел Базовая рабочая область (Base Workspace).
С помощью программного интерфейса словаря данных (см. раздел Хранение данных в словаре программно) для взаимодействия с базовыми данными рабочей области можно использовать только эти функции с Simulink.data.dictionary.Section объект:
assignin
exist
evalin
Рассмотрите возможность использования таких функций, как Simulink.data.assigninGlobal вместо этого. См. раздел Переход к использованию словаря данных.
Функции отслеживания изменений, такие как возможность просмотра и возврата изменений в словарных статьях (см. Просмотр и возврат изменений в словарных статьях), не применяются к базовым данным рабочей области.
При экспорте данных из словаря (см. Импорт и экспорт данных словаря) Simulink игнорирует базовые данные рабочей области.
Simulink рассматривает основное рабочее пространство и словарь как единое пространство имен. Однако можно определить две переменные с одинаковым именем: одну в базовом рабочем пространстве и одну в словаре. В этом случае переменные должны быть идентичными, и используется переменная в словаре.
Примеры см. в разделе Данные раздела для иерархии ссылок на модели с использованием словарей данных.
Из рабочей области | Ссылочные защищенные модели от третьих лиц