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

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

Примечание

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

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

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

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

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

Оба

Тип пользовательского объекта

'auto'

Предварительно названный и предопределенные наборы свойств, которые указаны в файле sl_customization.m. (См. Регистр mpt Типы Пользовательского объекта.) Это поле активно, когда тип пользовательского объекта указан.

Выберите auto, если это поле доступно, но вы не хотите применять свойства типа пользовательского объекта к выбранному объекту данных. Поля на Model Explorer заполняются со значениями по умолчанию.

  

Имя типа объекта перечисленного пользователя

Выберите имя типа пользовательского объекта, чтобы применить свойства и значения, которые вы сопоставили с этим именем в файле sl_customization.m. Поля на Model Explorer автоматически заполняются с теми значениями.

Параметр

Значение

*0

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

Оба

Тип данных

 

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

Оба

Модуль

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

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

Оба

Размерности

*-1

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

Оба

Сложность

*auto

real

complex

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

Сигнал

'SampleTime'

*-1

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

Сигнал

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

*auto

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

  

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

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

  

Кадр базирующимся

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

Оба

Минимум

*0.0

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

  

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

 

Оба

Максимум

*0.0

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

 

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

  
 

Класс памяти

 

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

Оба

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

Global (Custom) является классом памяти по умолчанию для объектов данных 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 (идентификатор), задавая имя в поле Alias заменяет глобальную переменную, называющую выбор правила, который вы делаете на диалоговом окне Configuration Parameters.

  

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

 

Оба

Описание

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

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

  

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

 

Сигнал

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

 

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

Сигнал

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

*Auto

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

  

File

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

  

Exported

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

  

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Поддержки специализировали вызовы функции считать и записать память, сопоставленную с Блоком памяти Хранилища данных. См. Доступ к данным Через Функции с Пользовательским Классом памяти GetSet.

Y

Y

Global

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

Y

Y

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

N

Y

ImportFromFile

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

Y

Y

Reusable

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

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;. Второе различие - то, что объявление теперь расположено в разделе memory MemConst в файле .cpp или .c.

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

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

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. Я заметил, что поле Alias является пробелом. Я изменил это на data_in_alias, который я знаю, допустимый ANSI имя переменной C/C++.

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

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

С этой процедурой можно управлять уровнем персистентности и объектов параметра сигнала, сопоставленных с моделью. Уровень персистентности позволяет вам делать промежуточную глобальную переменную переменных или параметров во время начального развития. На более поздних этапах развития можно использовать эту процедуру, чтобы удалить эти сигналы и параметры для эффективности. Используйте свойство Persistence Level объектов данных mpt.Parameter и mpt.Signal. Для описаний свойств на 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. Сохраните модель и сгенерируйте код.

Укажите mpt Типы Пользовательского объекта

Введение

Embedded Coder® позволяет вам создавать пользовательские типы объектов mpt и задавать свойства и значения свойств, которые будут сопоставлены с ними. После того, как созданный, тип пользовательского объекта может быть применен к объектам данных, отображенным в Model Explorer. Когда вы применяете тип пользовательского объекта к объекту данных путем выбора имени типа в User object type выпадающий список в Model Explorer, объект данных автоматически заполняется со свойствами и значениями свойств, которые вы задали для типа пользовательского объекта.

Чтобы указать индивидуальные настройки типа пользовательского объекта mpt, используйте файл настройки Simulink sl_customization.m. Этот файл является механизмом, который позволяет вам использовать код MATLAB, чтобы выполнить индивидуальные настройки стандартного пользовательского интерфейса Simulink. Программное обеспечение Simulink читает файл sl_customization.m, если существующий на пути MATLAB, когда это запускается и индивидуальные настройки, заданные в файле, применяются к сеансу Simulink. Для получения дополнительной информации о файле настройки sl_customization.m смотрите Индивидуальные настройки Регистрации (Simulink).

Укажите mpt Типы Пользовательского объекта Используя sl_customization.m

Чтобы указать пользовательский объект mpt вводят индивидуальные настройки, вы создаете экземпляр sl_customization.m и включаете его на пути MATLAB установки Simulink, которую вы хотите настроить. Функция sl_customization принимает один аргумент: указатель на менеджера по индивидуальной настройке объект. Например,

function sl_customization(cm)

Как отправная точка для ваших индивидуальных настроек, функция sl_customization должна сначала получить значение по умолчанию (фабрика) индивидуальные настройки, с помощью следующего оператора присваивания:

hObj = cm.slDataObjectCustomizer;

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

  • addMPTObjectType(hObj, objectTypeName, classtype, propName1, propValue1, propName2, propValue2, ...)

    addMPTObjectType(hObj, objectTypeName, classtype, {propName1, propName2, ...}, {propValue1, propValue2, ...})

    Указывает заданный тип пользовательского объекта, наряду с заданными значениями для свойств объектов, и добавляет тип объекта в верхнюю часть списка типов пользовательского объекта, как отображено в User object type выпадающий список в Model Explorer.

    • objectTypeName — Имя типа пользовательского объекта

    • classType — Класс, к которому применяется тип пользовательского объекта: 'Signal', 'Parameter' или 'Both'

    • propName — Имя свойства mpt или mpt - производные данные возражают, чтобы быть заполненными с соответствующим propValue, когда тип объекта зарегистрированного пользователя выбран

    • propValue — Задает значение для соответствующего propName

  • moveMPTObjectTypeToTop(hObj, objectTypeName)

    Перемещает заданный тип пользовательского объекта в верхнюю часть списка типов пользовательского объекта, как отображено в User object type выпадающий список в Model Explorer.

  • moveMPTObjectTypeToEnd(hObj, objectTypeName)

    Перемещает заданный тип пользовательского объекта в конец списка типов пользовательского объекта, как отображено в User object type выпадающий список в Model Explorer.

  • removeMPTObjectType(hObj, objectTypeName)

    Удаляет заданный тип пользовательского объекта из списка типов пользовательского объекта.

Ваш экземпляр функции sl_customization должен использовать эти методы, чтобы указать индивидуальные настройки типа объекта mpt для вашей установки Simulink.

Программное обеспечение Simulink читает файл sl_customization.m, когда это запускается. Если вы впоследствии изменяете файл, чтобы использовать изменения, необходимо перезапустить сеанс работы с MATLAB.

Индивидуальная настройка Типа Пользовательского объекта mpt Используя sl_customization.m

Файл sl_customization.m, показанный в mpt Индивидуальной настройке Типа Пользовательского объекта Используя sl_customization.m, использует метод addMPTObjectType, чтобы указать пользовательские типы сигнала EngineType и FuelType для объектов mpt.

 Пример 1. sl_customization.m для mpt Индивидуальных настроек Типа объекта
function sl_customization(cm)
% Register user customizations

% Get default (factory) customizations
hObj = cm.slDataObjectCustomizer;

% Add commonly used signal types
hObj.addMPTObjectType(...
    'EngineType','Signal',...
    'DataType', 'uint8',...
    'Min', 0,...
    'Max', 255,...
    'Unit','m/s');  

hObj.addMPTObjectType(...
    'FuelType','Signal',...
    'DataType', 'int16',...
    'Min', -12,...
    'Max', 3000,...
    'Unit','mg/hr');  

end

Если вы будете включать вышеупомянутый файл на пути MATLAB установки Simulink, которую вы хотите настроить, заданные индивидуальные настройки появятся в Model Explorer. Например, вы могли просмотреть индивидуальные настройки можно следующим образом:

  1. Запустите сеанс работы с MATLAB.

  2. Откройте Model Explorer, например, путем ввода команды MATLAB daexplr.

  3. Выберите Base Workspace.

  4. Добавьте сигнал mpt, например, путем выбора Add> Add Custom.

  5. В правом отображении панели для добавленного сигнала mpt исследуйте User object type выпадающий список, отметив влияние изменений, заданных в mpt Индивидуальной настройке Типа Пользовательского объекта Используя sl_customization.m.

  6. От User object type выпадающий список выберите один из типов сигнала зарегистрированного пользователя, например, FuelType, и проверьте, что отображенные настройки сопоставимы с аргументами, заданными к методу addMPTObjectType в sl_customization.m.