exponenta event banner

Выбор подхода к конфигурированию данных

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

  • Какие типы элементов данных необходимо использовать в модели?

  • Где следует хранить данные?

  • Каковы мои цели создания кода?

  • Как настроить данные в соответствии с задачами создания кода?

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

Категории элементов данных

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

Тип элемента данныхОписание
InportsВходные порты корневого уровня модели, такие как блоки Inport и Bus Element In.
Вспомогательные портыВыходные порты корневого уровня модели, такие как блоки Outport и Bus Element Out.
Параметры в области модели
  • Аргументы параметра модели - переменные в рабочей области модели, настраиваемые как аргументы модели. Эти параметры отображаются в блоке модели, что позволяет родительской модели предоставлять различные значения для каждого экземпляра модели.

  • Параметры модели - параметры, определенные в рабочем пространстве модели. В отличие от аргументов модели, эти параметры совместно используются каждым экземпляром модели.

Внешние параметрыПараметры, определяемые как объекты в базовой рабочей области или в словаре данных. Эти параметры могут использоваться несколькими моделями в приложении.
Хранилища данных
  • Внутренние данные (локальные хранилища данных) - хранилища данных, доступные из любой точки иерархии подсистемы на уровне или ниже уровня, на котором определяется хранилище данных. Определяется графически в модели путем включения блока памяти хранилища данных или путем создания сигнального объекта в рабочем пространстве модели.

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

  • Общие локальные хранилища данных - блоки памяти хранилища данных, для которых установлен параметр блока Общий доступ для всех экземпляров модели. Эти хранилища данных доступны только в системе, где расположен блок памяти хранилища данных. Значение хранилища данных является общим для всех экземпляров модели.

Внутренние данныеЛокальные данные, такие как внутренние сигналы и состояния блоков. Включает локальные хранилища данных.
КонстантыПараметры константы и вывод блока константы-значения в модели.

Параметры конфигурации кода, доступные для данных, зависят от категории настраиваемых данных. Место хранения данных определяет, следует ли настраивать их с помощью объекта данных или с помощью сопоставления кода, сохраненного вместе с моделью.

Где хранить элементы данных, используемые моделью

Место хранения данных для модели может зависеть от типа используемой архитектуры модели и целей моделирования:

  • Базовое рабочее пространство MATLAB ® - используется для временного хранения данных во время экспериментов с методами моделирования.

  • Рабочее пространство модели - используется для постоянного хранения данных, локальных для одной модели. Поскольку данные хранятся вместе с моделью, использование этой рабочей области может улучшить переносимость модели. Рабочая область модели преимущественно используется для хранения параметров, аргументов и числовых переменных. Эти элементы обычно не хранятся в рабочей области модели:

    • Сигнальные объекты - невозможно настроить сигнальный объект в рабочей области модели для создания кода. Нет необходимости определять объект сигнала для конфигурирования сигнала для генерации кода.

    • Объекты типа данных.

  • Словарь данных Simulink ® - используется для постоянного хранения глобальных данных, типов данных и данных, совместно используемых моделями.

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

Когда конфигурировать элемент данных для создания кода

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

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

  • Настройка параметров.

  • Контроль сигналов и состояний во время выполнения.

  • Настройте размещение данных в памяти.

  • Обмен данными с внешним кодом.

  • Улучшение читаемости и прослеживаемости генерируемого кода.

Конфигурирование элемента данных для создания кода

Чтобы настроить данные для создания кода, примените класс хранения. Класс хранения - это параметр создания кода, который позволяет управлять внешним видом и расположением элемента данных в сгенерированном коде и предотвращает оптимизацию, которая может исключить хранение этого элемента данных. Можно использовать классы хранения данных, доступные в Simulink Coder™ и Embedded Coder ®. Если существуют особые требования, которые не удовлетворяются этими классами хранения, и создается код для целевого объекта на основе ERT, можно определить и использовать новый класс хранения. Дополнительные сведения о классах хранения и свойствах классов хранения см. в разделе Выбор класса хранения для управления представлением данных в сгенерированном коде.

Когда конфигурировать данные с помощью объекта данных

Для большинства данных, принадлежащих модели, класс хранения можно сопоставить непосредственно с элементом данных с помощью редактора сопоставления кодов или API сопоставления кодов. Необходимо настроить некоторые данные, используемые моделью для создания кода с помощью объекта данных, включая:

  • Параметры (Parameters) - включает параметры в базовое рабочее пространство, рабочее пространство модели или словарь данных. Настройка параметров с помощью Simulink.Parameter объект.

  • Глобальные хранилища данных - настройка с использованием сигнального объекта.

Перед настройкой числовых переменных для создания кода их необходимо преобразовать в Simulink.Parameter объекты.

Настройка данных, принадлежащих модели, с помощью сопоставления кода

Данные, принадлежащие модели, состоят из блоков вывода, сигнальных линий, состояний блоков, хранилищ данных и объектов параметров в рабочем пространстве модели. Для этих данных можно сопоставить класс хранения с элементом данных в приложении кодера с помощью редактора сопоставлений кода или API сопоставлений кода. Для удобства можно также настроить внешние объекты данных в редакторе сопоставлений кодов, хотя для внешних объектов данных класс хранения сохраняется в объекте данных, а не в модели. Для просмотра этих объектов в редакторе щелкните ссылку «Обновить» справа от имени категории.

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

  • На вкладке Код C выберите Интерфейс кода > Сопоставления кодов по умолчанию.

  • На вкладке Значения по умолчанию выберите категорию данных, затем выберите класс хранения по умолчанию для этой категории. Если класс хранения для категории не указан, Default применяется класс хранения. В этом случае генератор кода помещает код для категории элементов данных в стандартные структуры. Другие параметры класса хранения включают в себя:

  • В инспекторе свойств настройте свойства для этого класса хранения. (Например, файлы заголовков и определений).

Дополнительные сведения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели.

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

  • В редакторе сопоставлений кодов найдите элемент данных на соответствующей вкладке категории (например, для настройки отдельного параметра выберите вкладку Параметры).

  • Выберите класс хранения для элемента данных. Чтобы применить конфигурацию по умолчанию, выберите класс хранения Model default.

  • В инспекторе свойств настройте свойства для этого класса хранения. (Например, файлы заголовков и определений).

Дополнительные сведения см. в разделе Конфигурация генерации кода C для элементов интерфейса модели.

Настройка внешних данных

Настройте внешние объекты данных для создания кода с помощью редактора Сопоставления кодов (Code Mappings) или Проводника моделей (Model Explorer). Выберите объект данных на панели «Содержимое». Затем в диалоговом окне на вкладке Создание кода выберите класс хранения и задайте свойства для этого класса хранения. Для удобства можно также настроить внешние объекты данных в редакторе сопоставлений кода. Чтобы просмотреть и настроить эти объекты, в редакторе щелкните ссылку Обновить справа от имени категории.

Внешние объекты данных можно конфигурировать программно. Например, для настройки Simulink.Parameter объект для создания кода путем применения класса хранения ExportedGlobal, можно использовать код, подобный:

P = Simulink.Parameter;
P.Value = 5;
P.DataType = 'int32';
P.CoderInfo.StorageClass = 'ExportedGlobal';

Загрузка пакетов классов хранения в словарь встроенного кодера

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

  1. Откройте приложение Embedded Coder.

  2. Откройте словарь встроенного кодера. На вкладке C Code выберите Code Interface > Embedded Coder Dictionary.

  3. В словаре встроенного кодера нажмите кнопку Управление пакетами.

  4. В диалоговом окне «Управление пакетами» выберите пакет. Если интересующий пакет отсутствует в списке, нажмите кнопку Обновить. Затем выберите пакет.

  5. Закройте словарь встроенного кодера.

  6. Щелкните Загрузить (Load).

  7. Для настройки элементов интерфейса модели используйте редактор сопоставлений кода или API сопоставлений кода.

Дополнительные сведения см. в разделах Embedded Coder Dictionary, Code Mappings editor и coder.mapping.api.CodeMapping.

Применение класса хранения с помощью объекта данных (обязательные параметры) вместо создания Simulink.Signal или Simulink.Parameter объект, создайте myPackage.Signal или myPackage.Parameter объект. Сведения о создании объектов данных из пакета см. в разделе Создание объектов данных из другого пакета классов данных. Пример создания и применения собственного класса хранения см. в разделе Создание и применение класса хранения.

См. также

|

Связанные темы