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

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

Примечание

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

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

В столбце Свойств таблица приводит свойства в порядке, в котором они появляются на Model Explorer.

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

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

Параметр

Значение

*0

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

Оба

Тип данных

 

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

Оба

Модуль

пустой указатель

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

Оба

Размерности

*-1

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

Оба

Сложность

*auto

real

complex

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

Сигнал

Размер шага

*-1

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

Сигнал

Демонстрационный режим

*auto

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

  

Выборка базирующейся

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

  

Система координат базирующейся

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

Оба

Минимум

*0.0

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

  

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

 

Оба

Максимум

*0.0

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

 

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

  
 

Класс памяти

 

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

Оба

(Пользовательская) глобальная переменная

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

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

Оба

Раздел Memory

*Default

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

Параметр

 

MemConst

Помещает const введите спецификатор в объявлении.

Оба

 

MemVolatile

Помещает volatile введите спецификатор в объявлении.

Параметр

 

MemConstVolatile

Помещает const volatile введите спецификатор в объявлении.

Оба

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

 

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

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

Оба

Владелец

*Пробел

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

Оба

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

*Пробел

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

  

Вектор допустимого символа

 

Оба

Уровень персистентности

 

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

Оба

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

 

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

 

Имя struct

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

Параметр

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

 

Помещает const введите спецификатор в объявлении.

Параметр

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

 

Смотрите выше.

Параметр

Владелец

 

Смотрите выше.

Параметр

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

 

Смотрите выше.

Параметр

 Уровень персистентности

 

Смотрите выше.

Оба

Энергозависимый (Пользовательский)

 

Помещает volatile введите спецификатор в объявлении.

Оба

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

 

Смотрите выше.

Оба

Владелец

 

Смотрите выше.

Оба

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

 

Смотрите выше.

Оба

 Уровень персистентности

 

Смотрите выше.

Параметр

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

 

Помещает const volatile введите спецификатор в объявлении.

Параметр

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

 

Смотрите выше.

Параметр

Владелец

 

Смотрите выше.

Параметр

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

 

Смотрите выше.

Параметр

 Уровень персистентности

 

Смотрите выше.

Параметр

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

 

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

Параметр

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

 

Смотрите выше.

Оба

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

 

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

Оба

 Раздел Memory

 

Смотрите выше.

Оба

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

 

Смотрите выше.

Оба

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

 

Смотрите выше.

Оба

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

 

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

Оба

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

*Direct

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

Оба

 

Указатель

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

 

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

 

Смотрите выше.

Оба

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

 

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

Оба

Имя struct

 

Смотрите выше.

Сигнал

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

 

Чтения (добираются) и записи (наборы) данные с помощью функций.

Сигнал

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

 

Смотрите выше.

Сигнал

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

 

Задайте Получить функцию.

Сигнал

Функция множества

 

Задайте Функцию множества.

Оба

Псевдоним

пустой указатель

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

  

Допустимый ANSI® имя переменной C/C++

 

Оба

Описание

пустой указатель

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

  

Символьный вектор

 

Сигнал

Допускающий повторное использование

 

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

Сигнал

Осциллограф данных

*Auto

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

  

File

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

  

Exported

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

  

Imported

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

Сигнал

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

 

Смотрите выше.

Сигнал

Владелец

 

Смотрите выше.

Сигнал

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

 

Смотрите выше.

[a]  ANSI является зарегистрированной торговой маркой American National Standards Institute, Inc.

mpt Классы памяти пакета

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

BitField

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

Y

Y

CompilerFlagУсловные выражения препроцессора поддержек заданы через флаг компилятора. Смотрите Генерируют Условные выражения Препроцессора для Вариантных систем.

N

Y

Const

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

N

Y

ConstVolatile

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

N

Y

Define

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

Y

Y

ExportToFile

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

Y

Y

FileScope

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

Y

Y

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

Y

Y

Global

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

Y

Y

ImportedDefineУсловные выражения препроцессора поддержек заданы через устаревший заголовочный файл. Смотрите Генерируют Условные выражения Препроцессора для Вариантных систем.

N

Y

ImportFromFile

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

Y

Y

Reusable

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

Y

N

Struct

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

Y

Y

StructConst

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

N

Y

StructVolatile

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

Y

Y

Volatile

Используйте volatile введите спецификатор в объявлении.

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 раздел memory в .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 Data Object Properties.

Заметьте также поля 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 диалогового окна Configuration Parameters объект данных сигнала мог появиться в коде как локальные данные без пользовательских атрибутов, которые вы задали для того объекта данных. Или на основе сворачивания выражения генератор кода мог удалить объект данных так, чтобы это не появлялось в коде.

Поле 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. С открытой моделью, в диалоговом окне Configuration Parameters, выбирают Code Generation> Code Placement.

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

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

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