Свойства объекта данных MPT

В следующей таблице описываются свойства и значения свойств для mpt.Parameter и mpt.Signal объекты данных, которые появляются в Model Explorer.

Примечание

Можно создавать mpt.Signal и mpt.Parameter объекты в базовом MATLAB® или моделировать рабочую область. Однако, если вы создаете объект сигнала в рабочем пространстве модели, класс памяти объекта должен быть установлен на Auto.

Рисунок ниже показывает пример Model Explorer. Когда вы выбираете mpt.Parameter или mpt.Signal объект данных на средней панели, его свойства и значения свойств отображаются на самой правой панели.

В столбце Свойства (Properties) в таблице перечислены свойства в том порядке, в котором они отображаются в Обозревателе моделей (Model Explorer).

Значения свойств параметра и сигнала

Класс: Параметр, Сигнал или ОбаСвойствоДоступные значения свойств
(* Указывает на значение по умолчанию)
Описание

Параметр

Значение

*0

Тип данных и числовое значение объекта данных. Для примера, int8(5). Числовое значение используется как начальное значение параметров в сгенерированном коде.

Оба

Тип данных

 

Используется для определения типа данных для mpt.Signal объект данных, но не для mpt.Parameter объект данных. Тип данных для mpt.Parameter объект данных задан в Value поле выше. Смотрите о типах данных в Simulink.

Оба

Модуль

* null

Единицы измерения сигнала или параметра. (Введите текст в это поле.)

Оба

Размерности

*-1

Размерность сигнала или параметра. Для параметра размерность определяется из его значения.

Оба

Сложность

*auto

real

complex

Комплексность определяет, является ли сигнал или параметр вещественным или комплексным числом. Выберите auto чтобы решить генератор кода. Для параметра сложность определяется из его значения.

Сигнал

Шаг расчета

*-1

Моделируйте или блокируйте скорость выполнения.

Сигнал

Режим расчета

*auto

Определяет, как сигнал распространяется через модель. Выберите auto чтобы решить генератор кода.

  

Основанный на выборке

Сигнал распространяется через модель по одной выборке за раз.

  

Основанный на системах координат

Сигнал распространяется через модель в пакетах выборок.

Оба

Минимум

* 0.0

Минимальное значение, к которому ожидается привязка параметра или сигнала.

  

Число в минимальной области значений параметра или сигнала. (На основе типа данных и разрешения параметра или сигнала.)

 

Оба

Максимум

* 0.0

Максимальное значение, к которому ожидается привязка параметра или сигнала. (Введите информацию с помощью диалогового окна.)

 

Опции генерации кода

  
 

Класс памяти

 

Обратите внимание, что auto выбор для класса памяти сообщает процессу сборки решить, как объявить и сохранить выбранный параметр или сигнал.

Оба

Глобальная (пользовательская)

Global является классом памяти по умолчанию для mpt объекты данных.

Указывает, что генератор кода не помещает квалификатор в объявление объекта данных.

Оба

Раздел памяти

*Default

Memory section позволяет вам задать директивы хранения для объекта данных. Default указывает, что генератор кода не помещает квалификатор типа и pragma оператор с объявлением объекта данных.

Параметр

 

MemConst

Помещает const type qualifier в объявлении.

Оба

 

MemVolatile

Помещает volatile type qualifier в объявлении.

Параметр

 

MemConstVolatile

Помещает const volatile type qualifier в объявлении.

Оба

Заголовочный файл

 

Имя файла, используемого для импорта или экспорта объекта данных. Этот файл содержит объявление (extern) к объекту данных.

Кроме того, вы можете задать это имя файла заголовка между разделителем двойных кавычек или угловых скобок. Вы можете задать разделитель с .h или без расширение. Для примера задайте "object.h" или "object". Для выбранного объекта данных это переопределяет общий выбор разделителя в поле #include file delimiter в диалоговом окне Параметры конфигурации.

Оба

Владелец

* Пусто

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

Оба

Файл определения

* Пусто

Имя файла, который определяет объект данных.

  

Допустимый вектор символов

 

Оба

Уровень стойкости

 

Заданное число соответствует Signal display level или Parameter tune level на панели Code Placement диалогового окна Параметры конфигурации. Для сигнала позволяет вам задать, объявляет ли генератор кода объект данных глобальными данными. Для параметра позволяет вам задать, объявляет ли генератор кода объект данных настраиваемыми глобальными данными. Смотрите Signal display level и Parameter tune level в Параметры конфигурации модели: Размещение кода генерации кода.

Оба

Битовое поле (пользовательское)

 

Встраивает логические данные в именованное битовое поле.

 

Имя struct

Имя struct в который будут упакованы данные объекта.

Параметр

Const (пользовательский)

 

Помещает const type qualifier в объявлении.

Параметр

Заголовочный файл

 

См. выше.

Параметр

Владелец

 

См. выше.

Параметр

 Файл определения

 

См. выше.

Параметр

 Уровень стойкости

 

См. выше.

Оба

Изменчивый (пользовательский)

 

Помещает volatile type qualifier в объявлении.

Оба

Заголовочный файл

 

См. выше.

Оба

Владелец

 

См. выше.

Оба

 Файл определения

 

См. выше.

Оба

 Уровень стойкости

 

См. выше.

Параметр

ConstVolatile (пользовательский)

 

Помещает const volatile type qualifier in declaration.

Параметр

Заголовочный файл

 

См. выше.

Параметр

Владелец

 

См. выше.

Параметр

 Файл определения

 

См. выше.

Параметр

 Уровень стойкости

 

См. выше.

Параметр

Определить (Пользовательский)

 

Представляет параметры с #define макрос.

Параметр

Заголовочный файл

 

См. выше.

Оба

ЭкспортВФайл (Пользовательский)

 

Генерирует определение глобальной переменной и пользовательский заголовок (.h) файл, содержащий объявление (extern) к этой переменной.

Оба

 Раздел памяти

 

См. выше.

Оба

Заголовочный файл

 

См. выше.

Оба

 Файл определения

 

См. выше.

Оба

ImportFromFile (Пользовательский)

 

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

Оба

Доступ к данным

* Direct

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

Оба

 

Указатель

Если вы выбираете PointerГенератор кода помещает * перед идентификатором в сгенерированном коде.

 

Заголовочный файл

 

См. выше.

Оба

Struct (пользовательская)

 

Встраивает данные в именованный struct для инкапсуляции наборов данных.

Оба

Имя struct

 

См. выше.

Сигнал

GetSet (Пользовательский)

 

Считывает (получает) и записывает (устанавливает) данные с помощью функций.

Сигнал

Заголовочный файл

 

См. выше.

Сигнал

Получите функцию

 

Задайте функцию Get.

Сигнал

Установите функцию

 

Задайте функцию Set.

Оба

Псевдоним

* null

Как подробно объяснено в Переопределении Правил Именования Объектов Данных, для Simulink® или mpt объект данных (идентификатор), указание имени в поле Identifier переопределяет выбор глобального правила именования, который вы делаете в диалоговом окне Параметры конфигурации (Configuration Parameters).

  

Действительный ANSI®[a] Имя переменной C/C + +

 

Оба

Описание

* null

Текстовое описание параметра или сигнала. Появляется как комментарий к идентификатору сигнала или параметра в сгенерированном коде.

  

Вектор символов

 

Сигнал

Повторно используемый

 

Позволяет генератору кода повторно использовать пару корневых сигналов ввода-вывода, когда вы задаете одно и то же имя и один и тот же класс памяти для обоих. Либо класс памяти Reusable или получен из Reusable.

Сигнал

Возможности данных

*Auto

Можно задать возможности генерации кода символов для объекта данных этого класса, выбрав значение для DataScope. Когда вы принимаете значение по умолчанию Auto, генерация кода определяет возможности внутренне. При возможности символы имеют File возможности. В противном случае они Exported возможности.

  

File

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

  

Exported

Генерация кода экспортирует символы во внешний код в заголовочном файле, заданном полем HeaderFile. Если HeaderFile не задана, символы экспортируются во внешний код в model.h.

  

Imported

Генерация кода импортирует символы из внешнего кода в заголовочный файл, заданный полем HeaderFile. Если вы не задаете заголовочный файл, генерация кода генерирует extern директива в model_private.h.

Сигнал

Заголовочный файл

 

См. выше.

Сигнал

Владелец

 

См. выше.

Сигнал

 Файл определения

 

См. выше.

[a] ANSI является зарегистрированным товарным знаком Американского национального института стандартов, Inc.

mpt Упаковать классы памяти

Имя CSCЦельСигналы?Параметры?

BitField

Сгенерируйте struct объявление, которое встраивает логические данные в именованные битовые поля.

Y

Y

CompilerFlagПоддерживает предварительные условия, заданные через флаг компилятора. См. «Генерация предварительных условий процессора для вариантных систем».

N

Y

Const

Сгенерируйте постоянное объявление с const type qualifier.

N

Y

ConstVolatile

Сгенерируйте объявление летучей константы с const volatile type qualifier.

N

Y

Define

Сгенерируйте #define директива.

Y

Y

ExportToFile

Сгенерируйте заголовок (.h) файл с заданным пользователем именем, содержащий глобальные объявления переменных.

Y

Y

FileScope

Сгенерируйте статический суффикс квалификатора для объявления переменной, чтобы возможности переменной была ограничиваемы текущим файлом.

Y

Y

GetSetПоддерживает специализированные вызовы функций для чтения и записи памяти, связанной с блоком Data Store Memory. См. раздел «Доступ к данным через функции с класс памяти».

Y

Y

Global

Класс памяти по умолчанию для mpt пакет. Сгенерируйте объявление и определение объекта данных в заданных файлах и используйте указанный раздел памяти.

Y

Y

ImportedDefineПоддерживает предварительные условия, определенные через устаревший заголовочный файл. См. «Генерация предварительных условий процессора для вариантных систем».

N

Y

ImportFromFile

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

Y

Y

Reusable

Позволяет генератору кода повторно использовать пару корневых сигналов ввода-вывода, когда вы задаете одно и то же имя и один и тот же класс памяти для обоих. Либо класс памяти Reusable или получен из Reusable.

Y

N

Struct

Сгенерируйте struct параметр инкапсуляции объявления или данные объекта сигнала.

Y

Y

StructConst

Сгенерируйте struct объявление, с const type qualifier, инкапсуляция данных объекта параметра.

N

Y

StructVolatile

Сгенерируйте struct объявление, с volatile type qualifier, инкапсулирующий параметр или данные сигнального объекта.

Y

Y

Volatile

Использование volatile type qualifier in declaration.

Y

Y

Примеры изменений значения свойств на сгенерированном коде

Что я заметил при проверке файла .c/.cppИзмените настройки значения свойстваЧто я заметил после регенерации и переустановки файла

Пример 1:
Объекты данных параметра могут быть объявлены или определены как константы. Я знаю, что объект данных GAIN является параметром. Я хочу, чтобы это было объявлено или определено в .c файл как переменная. Но я замечаю это GAIN объявлен как константа оператором const real_T GAIN = 5.0;. Кроме того, этот оператор находится в постоянном разделе файла.

В Model Explorer я кликнул объект данных GAIN. Я заметил, что значение свойства его Memory section свойства установлено на MemConst. Я изменил это на Default.

Я замечаю два различия. Один из них теперь GAIN объявлен как переменная с оператором real_T GAIN = 5.0;. Второе различие заключается в том, что декларация теперь находится в MemConst раздел памяти в .c или .cpp файл.

Пример 2:
Я снова замечаю заявление о GAIN в .c файл, упомянутый в примере 1. Оно выглядит следующим real_T GAIN = 5.0;. Но я передумал. Мне нужен объект данных GAIN чтобы быть #define.

Я изменил выбор Storage class на Define.

GAIN не объявлен в .c файл как MemConst параметр. Скорее это определяется как #define макрос по коду #define GAIN 5.0, и это расположено недалеко от верхней части .c файл с другими директивами препроцессора.

Пример 3:
Я снова передумал после того, как сделал Пример 2. Я хочу GAIN определено с использованием #define директива препроцессора. Но я не хочу включать #define в этом файле. Я знаю, что он существует в другом файле, и я хочу ссылаться на этот файл.

В Model Explorer я замечаю, что значение свойства Header file пусто. Я изменил это на filename.h. (Я выбрал механизм двойной кавычки ANSI C/C + + для #include, но мог выбрать механизм угловой скобки.) Кроме того, я должен сделать пользовательский filename.h доступно компилятору, помещая его либо в системный путь, либо в локальную директорию.

#define GAIN 5.0 отсутствует в этом .c файл. Вместо этого, #include filename.h код появляется как директива препроцессора в верхней части файла.

Пример 4:
У меня есть еще одно изменение, которое я хочу сделать. Допустим, что мы объявили объект данных data_in, и что его заявление оператор в .c чтение файла
real_T data_in = 0.0;. Я хочу заменить этот оператора псевдонимом в .c файл.

В Model Explorer я выбрал объект данных data_in. Я заметил, что поле Identifier пусто. Я изменил это на data_in_alias, которое, как я знаю, является допустимым именем переменной ANSI C/C + +.

Идентификатор
data_in_alias теперь появляется в .c файл везде data_in появилась.

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

С помощью этой процедуры можно управлять уровнем стойкости объектов сигнала и параметра, сопоставленных с моделью. Уровень стойкости позволяет вам сделать промежуточные переменные или параметры глобальными во время начальной разработки. На более поздних стадиях разработки можно использовать эту процедуру для удаления этих сигналов и параметров для эффективности. Используйте свойство Persistence Level mpt.Signal и mpt.Parameter объекты данных. Описания свойств в Model Explorer см. в разделе Свойства объекта данных MPT.

Заметьте также поля Signal display level и Parameter tune level на панели Code Placement диалогового окна Параметры конфигурации (Configuration Parameters), как показано на следующем рисунке.

Поле Signal display level позволяет вам определить, определяет ли генератор кода объект данных сигнала как глобальные данные в сгенерированном коде. Номер, указанный в этом поле, соответствует номеру, указанному в поле Persistence level. Номер Signal display level предназначен для mpt(инструмент упаковки модулей) сигнализирует об объектах данных в модели. Номер Persistence level предназначен для определенного mpt объект сигнальных данных. Если Persistence level объекта данных равна или меньше, чем Signal display level, сигнал появляется в сгенерированном коде как глобальные данные с заданными пользовательскими атрибутами. Для примера это произойдет, если Persistence level 2 а Signal display level есть 5.

В противном случае генератор кода автоматически определяет, как конкретный объект данных сигнала появляется в сгенерированном коде. В зависимости от настроек на панели Optimization диалогового окна Параметров конфигурации, объект данных сигнала может появиться в коде как локальные данные без пользовательских атрибутов, заданных для этого объекта данных. Или, основываясь на сворачивании выражения, генератор кода мог удалить объект данных так, чтобы он не появился в коде.

Поле Parameter tune level позволяет вам указать, объявляет или нет генератор кода объект данных параметра как настраиваемые глобальные данные в сгенерированном коде.

Номер, указанный в этом поле, соответствует номеру, указанному в поле Persistence level. Номер Parameter tune level предназначен для mpt объекты данных параметра в модели. Номер Persistence level предназначен для определенного mpt объект данных параметра. Если Persistence level объекта данных равна или меньше Parameter tune level, параметр появляется настраиваемым в сгенерированном коде с заданными пользовательскими атрибутами. Для примера это произойдет, если Persistence level 2 а Parameter tune level есть 5.

В противном случае параметр вставляется в сгенерированный код, и настройки генерации кода определяют его точную форму.

Обратите внимание, что на начальных стадиях разработки вы можете быть больше обеспокоены отладкой, чем размером кода. Или вы можете захотеть, чтобы один или несколько конкретных объектов данных появились в коде, чтобы вы могли анализировать промежуточные вычисления уравнения. В этом случае можно хотеть задать, чтобы Parameter tune level (Signal display level для сигналов) была выше, чем Persistence level для некоторых mpt параметрические (или сигнальные) объекты данных. Это приводит к большему размеру кода, потому что генератор кода определяет объекты данных параметра (или сигнала) как глобальные данные, которые имеют заданные вами пользовательские свойства. Однако, когда вы приближаетесь к генерации производственного кода, у вас может быть больше опасений по поводу уменьшения размера кода и меньше необходимости в отладке или промежуточном анализе. На этом этапе компромисса можно сделать Parameter tune level (Signal display level для сигналов) больше Persistence level для одного или нескольких объектов данных, сгенерировать код и наблюдать результаты. Повторяйте до удовлетворения.

  1. Когда модель открыта, в диалоговом окне Параметров конфигурации выберите Code Generation > Code Placement.

  2. Введите нужный номер в поле Signal display level или Parameter tune level и нажмите Apply.

  3. В Model Explorer введите нужное число в поле Persistence для выбранного сигнала или параметра и нажмите Apply.

  4. Сохраните модель и сгенерируйте код.